A computer-implemented method, comprising: encrypting a plaintext m into a ciphertext c, where the encrypting uses a public key and a corresponding private key; and storing the ciphertext; wherein the public key comprises a composite number n, and the private key is generated using prime numbers p and q, and n = p times q, and wherein p and q are components of the private key; wherein the encrypting the plaintext m into the ciphertext c further comprises: using g1 and g2, where said g1 is a generator of a cyclic group associated with said p, and said g2 is a generator of a cyclic group associated with said q; using GN1 and GN2, where said GN1 is a constant based on said g1, and said GN2 is a constant based on said g2; determining s1 and s2, where said s1 is a random number based on said p, and said s2 is a random number based on said q; calculating a value H equivalent to (r n ) mod n 2 using said s1, said s2, and the Chinese Remainder Theorem, CRT, on GN1 s1 mod p 2 and GN2 s2 mod q 2 , where r ∈ Z ∗ n 2 , wherein by using the CRT, (r n ) mod n 2 is converted to (r1) n mod p 2 and (r2) n mod q 2 , wherein r1 = (g1) s1 mod p 2 and r2 = (g2) s2 mod q 2 , where r 1 ∈ Z ∗ p 2 , and r 2 ∈ Z ∗ q 2 , and determining c as DH mod n 2 , wherein D is calculated as (1+nm) mod n 2 . encrypting a plaintext m into a ciphertext c, where the encrypting uses a public key and a corresponding private key; and storing the ciphertext; wherein the public key comprises a composite number n, and the private key is generated using prime numbers p and q, and n = p times q, and wherein p and q are components of the private key; wherein the encrypting the plaintext m into the ciphertext c further comprises: using g1 and g2, where said g1 is a generator of a cyclic group associated with said p, and said g2 is a generator of a cyclic group associated with said q; using GN1 and GN2, where said GN1 is a constant based on said g1, and said GN2 is a constant based on said g2; determining s1 and s2, where said s1 is a random number based on said p, and said s2 is a random number based on said q; calculating a value H equivalent to (r n ) mod n 2 using said s1, said s2, and the Chinese Remainder Theorem, CRT, on GN1 s1 mod p 2 and GN2 s2 mod q 2 , where r ∈ Z ∗ n 2 , wherein by using the CRT, (r n ) mod n 2 is converted to (r1) n mod p 2 and (r2) n mod q 2 , wherein r1 = (g1) s1 mod p 2 and r2 = (g2) s2 mod q 2 , where r 1 ∈ Z ∗ p 2 , and r 2 ∈ Z ∗ q 2 , and determining c as DH mod n 2 , wherein D is calculated as (1+nm) mod n 2 . using g1 and g2, where said g1 is a generator of a cyclic group associated with said p, and said g2 is a generator of a cyclic group associated with said q; using GN1 and GN2, where said GN1 is a constant based on said g1, and said GN2 is a constant based on said g2; determining s1 and s2, where said s1 is a random number based on said p, and said s2 is a random number based on said q; calculating a value H equivalent to (r n ) mod n 2 using said s1, said s2, and the Chinese Remainder Theorem, CRT, on GN1 s1 mod p 2 and GN2 s2 mod q 2 , where r ∈ Z ∗ n 2 , wherein by using the CRT, (r n ) mod n 2 is converted to (r1) n mod p 2 and (r2) n mod q 2 , wherein r1 = (g1) s1 mod p 2 and r2 = (g2) s2 mod q 2 , where r 1 ∈ Z ∗ p 2 , and r 2 ∈ Z ∗ q 2 , and determining c as DH mod n 2 , wherein D is calculated as (1+nm) mod n 2 . <EOS>