Homomorphic encryption
Idea: do some useful operations, or operations, using only encrypted data.
Example: in the RSA cryptosystem with unpadded messages, multiplication of the cipher-texts corresponds to multiplication of the plaintexts.
Using a lot of processing power (and using somewhat cumbersome methods), it is possible to apply an arbitrary function (a logic function described by a boolean circuit) to the encrypted data (to know more, search for fully homomorphic encryption schemes and lattice-based cryptography).
Paillier Cryptosystem
Choose two large primes p and q. Ensure that p is not a factor of q−1, and vice-versa.
Compute n=pq and λ=lcm(p−1,q−1).
Select a random integer g in the interval ]0,n2[ that is coprime to n.
Compute u=gλmodn2. It must be of the form u=vn+1.
Compute μ=((u−1)/n)−1modn.
The public key is (n,g)
The private key is (λ,μ).
To encrypt the plaintext m, with 0≤m<n, select a random r such that 0<r<n, and compute the ciphertext c=gmrnmodn2.
To decrypt, compute x=cλmodn2, then m=((x−1)/n)μmodn.
Last updated