Advanced Homomorphic Encryption for Cloud Data Security

This paper aims to provide security of data in the Cloud using Multiplicative Homomorphic Approach. Encryption process is done with RSA algorithm. In this RSA algorithm, Shor’s algorithm is used for generating Public key Component, which enhances the security. Shor’s algorithm plays as important role in generating public key. Plain Text Message is encrypted with Public Key to generate Cipher Text and for decryption Chinese Remainder Theorem (CRT) is used to speed up the computations. By doing so, it shows how the CRT representation of numbers in Zn can be used to perform modular exponentiation about much more efficiently using three extra values pre-computed from the prime factors of n. Hence, security is enhanced in the cloud provider. Keywords— Multiplicative homomorphic, encryption, RSA algorithm, Shor’s algorithm, CRT, public key, modular exponentiation


I. INTRODUCTION
Security of data is the most important aspect that has to be considered in the cloud, which gives an importance and value of exchanged data over the Internet or other media types.This paper tries to increase a fair performance of the most commonly used RSA(Rivest-Shamir-Adleman) algorithm in the data encryption field [9].Cryptography is usually referred to as "the study of secret", while now a day is most attached to the definition of encryption.Encryption is the process of converting plain text to a hidden form or scrambled manner to secure it against attacks [1].This process has another part where cryptic text needs to be decrypted on the other end to be understood.The process of encryption is carried using RSA algorithm and the cipher is generated which is stored in the cloud.Further,in the cloud homomorphic multiplicative operation is performed for authentication .If authentication is successful then we using Chinese reminder theorem to decrypt the cipher text to generate plain text [1] [2].

RSA Cryptosystem
The RSA system is an asymmetric public key cryptosystem .This means that there are many number of pairs of algorithms (E, D) both defined on the same set of values.E is the public encryption algorithm and D is the private decryption algorithm [4] [9].These satisfy: • Encryption process followed by decryption process : If c=E(m) is the chipper text generated from some plaintext m, then m=D(c) i.e. m=D( E( m ) ) • Encrypt efficiently: For any message m, there is an efficient algorithm to calculate E( m ).• Decrypt efficiently: or any message or cipher text x, there is an efficient algorithm to calculate D( x ).• Public and private keys intact: From knowledge of E, there is no efficient way to discover D. • Signing phase: The set of messages m are the same as the set of cipher texts c=E( m ), for all m, so that the decryption algorithm can be applied to a message, resulting in signature.• Verification: If s=D (m) is the signature corresponding to some plaintext m, then m=E( s ).

Shor's Algorithm
This algorithm is used in the generation of the public key used in RSA encryption.It helps in the generation of two GCD values and from which we can decide on one as the public key.We first compute gcd of the number by using Euclidean algorithm.Then we check whether the gcd of the number is not equal to 1.If it so then it is the gcd otherwise we use to find period subroutine a r /2 ≢ −1 mod B,which generates two gcd values ie, gcd (a r/2 + 1, N) and gcd (a r/2 -1, N) .The below is the Shor's algorithm : 1. Compute gcd(a, N).This can be done using the Euclidean algorithm.2. If gcd(a, N) ≠ 1, then there is a nontrivial factor of N, so we are done.3. Otherwise, use the period-finding subroutine (below) to find r. 4. If r is odd, go back to step 1. 5. If a r /2 ≢ −1 (mod N), go to step 1. 6. gcd (a r/2 + 1, N) and gcd (a r/2 -1, N) are both nontrivial factors of N. We are done.

Homomorphic Encryption
Homomorphic Encryption systems are used to perform operations on encrypted data.This is done without knowing the private key (without decryption).The client is the only holder of the secret key [4] [5].When we decrypt the result of any operation, it is the same as if we had carried out the calculation on the raw data.For example let us consider two ciphers as 3 and 2.Then we need to calculate the multiplicative operation for homomorphic encryption as 3 * 2 = ?Encrypt 3 to get =10 Encrypt 2 to get =20 10 * 20 = 200 Decrypt 200 with private key to get original value 6.

Chinese Reminder Theorem:
The major importance of CRT is that it speeds up the calculations for RSA algorithm.CRT representation of numbers in Zn is used to perform modular exponentiation which is about four times more efficient.By using three extra values pre-computed from the prime factors of n, and Garner's formula for the calculations make it more efficient.To decrypt ciphertext ' c ' or to generate a signature using RSA with private key (n, d), calculation of the modular exponentiation m = c d mod n is needed.The private exponent 'd' is not as convenient as the public exponent .Hence we can choose a value with as few '1' bits as possible.For a modulus n of k bits, the private exponent 'd' will be of similar length, with approximately half being '1'.CRT is used to compute m = c d mod n more efficiently which is given below.
CRT is used for the process of decryption of the data stored in the cloud.

Proposed Method
There are many traditional algorithms for encryption and decryption such as RSA,DES,IDEA etc.But these are not sufficient to provide security in cloud, since much of calculations are done for using private key.The proposed scheme uses Shor's algorithm for generating two GCD values which enhances more security and the computed cipher is stored in cloud.It provides confidentiality to the data because at no stage data is exposed in plain text and also uses Chinese remainder theorem(CRT) to decrypt the cipher which would be much more faster than standard RSA.

Results:
The implementation is carried using python and the database as MySQL.Here the exection is done taking different file sizes with respect to the keyids .'e1'and 'e2' are public keys that are generated using shor's algorithm and d is the private key.Below is shown the analysis of encryption and decryption time.The average execution time for encryption and decryption is generated using MYSQL query which is shown below.It is clear that the process of decryption is faster than encryption process.Hence homomorphic encryption takes less time and it is faster and secure.

III. CONCLUSIONS
The Security of Data is a major concern in Cloud Computing.Homomorphic Encryption is a new concept of security which enables to provide the results of calculations on encrypted data without knowing the raw entries on which the calculation was carried out respecting the confidentiality of data.From the analysis it is clear that the decryption process is decreased than encryption process.Even though computing of two exponentiations instead of one and there are additional steps involved in doing CRT, overall, the decryption would be much faster.
Pick a random number a < N.

Fig. 1
Fig. 1 Work Flow In standard RSA, for encryption we need a public key.For finding it, we calculate 'e' value which is difficult for the user to choose such value.To overcome this problem shor's algorithm is used to find two GCD values.It reduces the effort of user for finding public key.Algorithm • Step 1. Choose random large prime integers P and Q which are roughly the same size and which are not too close together.• Step 2. Calculate the product N= P * Q. • Step 3. Calculate Ø(N)=(P-1)*(Q-1) • Step 4. Calculate 'e' such that 1 < e < phi(n) (For Calculating 'e' using Shor's Algorithm, randomly choose 'x' between 1 and Ø(N), then find r = x mod Ø(N) and y = x^(r/2) mod Ø(N ) .Then find GCD(y+1, Ø(N ) =1 and GCD(y-1, Ø(N ) =1 ) • Step 5. Calculate 'd' such that e * d mod Ø(N ) = 1 • Step 6. Encryption: C = M^e % Ø(N ).Homomorphic Encryption to provide Security in Cloud • Step 7. Compute (C1 * C2*….. * Cn) and Store the Mulitple value in cloud.