A method of computing an algorithm ( m,S) having i operations with input m and secret S, comprising: defining a white-box fully-homomorphic key generation function ( P, p) ← Gen(1 w) with public-key P and private-key p that selects random prime numbers p, q, s E W of similar size, wherein: B = {0,1} b is the domain of order b, of the algorithm, where b >= 8; W = {0,1} w is a white-box domain of order w, for w » b; p > 2 b is a white-box fully-homomorphic private key; N = pq; k = s ( p - 1); P = ( N, k) is a white-box fully-homomorphic public key; defining a white-box fully-homomorphic encoding function Enc(P, m):= m rk +1 (mod N) that generates a random integer r 6 W, then performs an encoding of the input m ∈ B; defining a white-box fully-homomorphic decoding function Dec(p, c):= c(mod p) that decodes c by computing c modulo p; defining i transform key pairs ( T i, t i), at least on part from P and p, wherein T i is the i th transform public key and t i is the i th transform private key; selecting prime numbers t i, and q i ∈ W of similar size to p, with t i >2 b; computing N i = p i p -1 q 2 such that N i and N are pairwise co-prime; computing e i = p i p -1 - 1 where T i = ( N i, e i); accepting an encoded input c 0, where c 0 = Enc(P, m); generate an encoded output c ' by performing, for each of the i operations: accepting an encoded transform public key T i = Enc(T i,S); performing the i th operation on the encoded input c i -1 and the encoded transform public key in modulo N i to obtain an encoded output c i; reencoding c i with transform T i without any interim decoding operation; decoding the encoded output c ' with the private key p to recover an output m' according to m' = Dec(p, c'), such that defining a white-box fully-homomorphic key generation function ( P, p) ← Gen(1 w) with public-key P and private-key p that selects random prime numbers p, q, s E W of similar size, wherein: B = {0,1} b is the domain of order b, of the algorithm, where b >= 8; W = {0,1} w is a white-box domain of order w, for w » b; p > 2 b is a white-box fully-homomorphic private key; N = pq; k = s ( p - 1); B = {0,1} b is the domain of order b, of the algorithm, where b >= 8; W = {0,1} w is a white-box domain of order w, for w » b; p > 2 b is a white-box fully-homomorphic private key; N = pq; k = s ( p - 1); P = ( N, k) is a white-box fully-homomorphic public key; defining a white-box fully-homomorphic encoding function Enc(P, m):= m rk +1 (mod N) that generates a random integer r 6 W, then performs an encoding of the input m ∈ B; defining a white-box fully-homomorphic decoding function Dec(p, c):= c(mod p) that decodes c by computing c modulo p; defining i transform key pairs ( T i, t i), at least on part from P and p, wherein T i is the i th transform public key and t i is the i th transform private key; selecting prime numbers t i, and q i ∈ W of similar size to p, with t i >2 b; computing N i = p i p -1 q 2 such that N i and N are pairwise co-prime; computing e i = p i p -1 - 1 where T i = ( N i, e i); selecting prime numbers t i, and q i ∈ W of similar size to p, with t i >2 b; computing N i = p i p -1 q 2 such that N i and N are pairwise co-prime; computing e i = p i p -1 - 1 where T i = ( N i, e i); accepting an encoded input c 0, where c 0 = Enc(P, m); generate an encoded output c ' by performing, for each of the i operations: accepting an encoded transform public key T i = Enc(T i,S); performing the i th operation on the encoded input c i -1 and the encoded transform public key in modulo N i to obtain an encoded output c i; reencoding c i with transform T i without any interim decoding operation; accepting an encoded transform public key T i = Enc(T i,S); performing the i th operation on the encoded input c i -1 and the encoded transform public key in modulo N i to obtain an encoded output c i; reencoding c i with transform T i without any interim decoding operation; decoding the encoded output c ' with the private key p to recover an output m' according to m' = Dec(p, c'), such that