Keywords

1 Introduction

Distributed computing is being used on a wide-scale basis by almost all big and small organizations to store and access shared data. However, the security issues possessed by cloud computing become a deterrent when it comes to the wholehearted acceptance of the computing model. Data in cloud needs to be secure throughout its whole life cycle that is from creation to destruction of the data. This paper stresses on the confidentiality of data stored on cloud when it is at rest.

If data is stored on cloud in plain text format, it is vulnerable to attacks [1]. Hence, data on cloud is usually stored in encrypted format. However while performing operations on this data, it becomes necessary to convert it back into plain text. The client has to convert the encrypted data into plain text every time before operating on it. This defeats the purpose of cloud as the client is doing the majority of the work. Also, a lot of time is wasted in encrypting and decrypting data each time.

This is where homomorphic encryption comes into play. Homomorphic encryption allows computation on encrypted data. The results yielded by this are the same as the results obtained from performing the same operation on plain text. Thus, the client can now store data on cloud in an encrypted form. Any operations required by the client are performed on the encrypted data by the cloud provider, and the results are sent back to the client where the client has to only decrypt the result and not the whole dataset. This saves time and provides security to the data. The client is also relieved of computing on the data.

In this paper, elliptic curve cryptography (ECC) with ElGamal is used. Further, we apply searching and sorting techniques on the encrypted data. The data to be searched is sent by the client to the distributed server in an encrypted format. The searching is carried out on the server, and encrypted result is sent back to the client where it is decrypted and the final result is obtained. Sorting is done in a similar way where encrypted data is sorted by the cloud server and sent to the client where it is decrypted and displayed.

The paper is organized as follows: Sect. 1 presents an introduction to the area of homomorphic encryption, and Sect. 2 gives an insight into the related work done. Section 3 is proposing our system; Sect. 4 gives a detailing on experimentations and result, while Sect. 5 concludes the paper.

2 Related Work

Gentry [2] proposed the first fully homomorphic encryption (FHE) scheme. Also, the arithmetic operations over integers using homomorphic encryption were proposed by Dijk, Gentry, Halevi and Vaikuntanathan. In the research work [3, 4], the authors have proposed ECC-ElGamal scheme to implement homomorphic encryption over plain text [5].

The authors in [6, 7] in their research paper titled “homomorphic encryption scheme based on elliptic curve cryptography for privacy protection of cloud computing” proposed ECC-based homomorphic encryption schemes to solve the following issues in the execution of fully homomorphic encryption scheme: the public key is too large, the expansion rate of the ciphertext is large and the calculation of the ciphertext is too time-consuming. In [8], the authors investigate how different operations can be defined on FHE cloud data. Thus from the literature review, it can be seen that there are homomorphic encryptions which are used in the context of security of the data [7]. In [9, 10], authors have used additive homomorphic encryption to compute secure sum computation in SMC environment to make it applicable for insecure networks. The protocol is suitable for semi-honest parties who follow the steps in the protocol but also curious to learn data of the other parties.

Our work is extending this security to allow the operations like searching and sorting to be performed on this encrypted data in a distributed environment, thereby relieving the owner of performing these operations.

3 Proposed System

In this system, we propose a banking application where the database containing the account information of the client is stored on a cloud server. The client, in this case the bank employee, would insert data to be put into the database through the application. This data will be homomorphically encrypted at the client-side and then uploaded in the database in the cloud server, where it stays in the encrypted format. Now the client can ask the server to perform searching or sorting operations on the encrypted data and send it back to the client. On the client end, the data is decrypted and results are displayed. The system consists of three major steps:

  1. 1.

    Encryption of data using ECC-ElGamal Scheme using Koblitz’s method.

  2. 2.

    Storing the encrypted database on a distributed server.

  3. 3.

    Performing searching and sorting of the encrypted data.

In ECC the plaintext is converted into integers. These integers are then plotted as points on the elliptic curve.

$$ y^{2} = x^{3} + ax + b $$
(1)

Now these points on the elliptic curve are added using the ElGamal scheme. Koblitz’s method is used to encode the data. This is explained in detail in the flow diagram of ECC-ElGamal shown in Fig. 1.

Fig. 1.
figure 1

Flow diagram of ECC-ElGamal scheme

This encrypted data is stored on the server in a database. Multiple clients can access this server. Every client can sort data as well search for a particular entry on the server. The sorting is performed using queries on the database on the server side. This sorted data is then sent to the client where it is decrypted. When a client searches for a particular item in the database, the client will provide a primary or candidate key whose corresponding entry will be fetched.

In the banking application, the entries were sorted based on the bank balance of the entries. Searching was performed on the bank’s database using two parameters, account number and the branch name. These parameters served as the candidate key.

4 Implementation and Evaluations

To implement the proposed homomorphic encryption, we design a banking system where information is entered through the client side, encrypted, and stored in the server in encrypted format. Later searching and sorting operations are performed on the encrypted data, and the results are sent to the client where it is decrypted and shown to the client in plain text.

The client side of the banking system shows an interface to make an entry into the database table according to the account number and branch. Entry made is acknowledged as shown in Fig. 2.

Fig. 2.
figure 2

Client interface for account entry

These entries are encrypted and stored on the server in an encrypted format itself. We can see as shown in Fig. 3 that the confidentiality of the data is preserved as the data are not stored on the server in plain text format. Now operations can be performed on this data.

Fig. 3.
figure 3

Encrypted data on server

In this system, we provide the client with the functionality of sorting the data as well as searching the details of a particular account holder by querying the account number and branch name. The interface for the same can be shown in Fig. 4. The searching and sorting operation are shown in Figs. 4 and 5.

Fig. 4.
figure 4

Client interface for searching and sorting

Fig. 5.
figure 5

Result of searching operation

Thus, we achieve the objective of encrypting the data and storing it on a remote server in encrypted format. We also perform searching and sorting operation on the encrypted data which is later sent to the client where it is decrypted, and the results are shown in plain text. Hence, we achieve the basic objective of homomorphic encryption of providing confidentiality to data stored on distributed systems like cloud along with the liberty to perform operations on encrypted data.

5 Conclusions

The banking system shows the implementation of homomorphic encryption by storing data on the distributed platform in encrypted format and performing operations like searching and sorting on it. Using ECC-ElGamal encryption scheme considerably small ciphertext was obtained which in turn takes relatively less space for storage. Searching and sorting of the data were successfully carried out. However, the need to reduce the size of the ciphertexts even further persists because of storage restrictions. Also, more efficient ways of searching and sorting on the encrypted data need to be researched.