Ciphertext Search Algorithm under Cloud Storage

With the development of network storage services,cloud storage have the advantage of high scalability,inexpensive,without access limit and easy to manage. These advantages make more and more small or medium enterprises choose to outsource large quantities of data to a third party. This way can make lots of small and medium enterprises get rid of costs of construction and maintenance,so it has broad market prospects. But now lots of cloud storage service providers can not protect data security.This result leakage of user data ,so many users have to use traditional storage method.This has become one of the important factors that hinder the development of cloud storage. In this article,establishing keyword index by extracting keywords from ciphertext data. After that,encrypted data and the encrypted index upload cloud server together.User get related ciphertext by searching encrypted index,so it can response data leakage problem.


Introduction
Cloud storage has the advantages of costeffective,high scalability,inexpensive,without access limit and easy to manage.These advantages can enable small businesses spend less cost getting rid of the high cost of construction of the storage system, which greatly reduce their storage costs.Therefore, cloud storage has a high market prospect.The behavior of confidential data is saved to third parties caused the company's great worry,which limit the development of cloud storage.Many enterprises have to adopt the traditional storage model.This has become an important factor of restricting the development of cloud storage.
Under these conditions,encrypted storage produced.In the conditions of large amount of ciphertext data stored in server-side ,users need to put all of the ciphertext data downloaded to the local and retrieve after decrypting data.Although this strategy protects the privacy of data, but users need to waste a lot of resources, consume large amounts of network bandwidth, which also poses a serious obstacle to the development of cloud storage.At the same time, a huge cloud server computing capacity were idle, and became a simple data pool.In order to exert cloud server computing power and huge storage resources, keyword-based search technologies emerged. [1]After encrypting ,client upload documents and inverted index to the cloud server.When searching, users only need to enter a keyword.Cloud Server can search for relevant ciphertext file and then return to the client.Local users can use the key to decrypt the ciphertext file.This program not only protect the security of data,but also use computing power and large storage resources.

The Method of Ciphertext Search
First,The user selects a file and extracts the keywords in the file.Then, the keyword and the document identification combined to form an inverted index.Files use symmetric key encryption algorithm to encrypt and inverted indices also use a pseudo-random function to encrypt.Ciphertext and the encrypted indices upload to the server with storage.When the user queries, client hosts use the search algorithm to process the keyword to a query pointer and submit to the server.The server uses the pointer to call the user's encrypted search index.Server use the user's encrypted index to find the corresponding ciphertext and returns to the client, the client can use the key to decrypt the ciphertext.
With this idea, the cloud server will not get any useful information about files.Server just know the ciphertext, encrypted index, and search pointer and can not get any effective plaintext and keyword information.Therefore, using this search method will give the ability of transparently querying to cloud server .

Implementation Model of Ciphertext Search Method
This article discusses the method involving two entities.The one is the owner of the confidential data.They want the data to be stored in the cloud server, they need to protect the confidentiality of data, such entities are called users.The other is a provider of cloud storage services.They offer storage interface for users, and perform some operations of retrieving on the data , such entities are called servers.
From the foregoing, in order to protect the confidentiality of data, the cloud server can not get any useful information throughout the search process.All data processing on locally, including file encryption, encryption of the index,and the process of generating search pointer by keywords.The key to the searchable encryption algorithm is to encrypt file index.This programme use pretreatment method.First,we extract a few keywords from each file you want to upload, and then use the symmetric key encryption algorithm to encrypt the plaintext.Each keyword contain files generate list called keyword list.The node structure of linked list include file identification, the location of the previous node and the location of last node.All keyword lists consist of index called inverted index [3] .Using pseudo-random function encrypt inverted index and get encrypted index.This method make server can not get effective information.Then,these encrypted indices are stored in random locations on the array( s A ).The first node for each keyword list is stored uniformly in the dictionary called( s T ).Encryption array and dictionary are stored on the server and the server can not get effective information.When the user queries, client hosts use the search algorithm to process the keyword to a query pointer and submit to the server.The server uses the pointer to call the user's encrypted search index.Server use the user's encrypted index to find the corresponding ciphertext and returns to the client.By these steps can complete the search process [4] . .Enc represent the algorithm of encrypting files.Client operate the algorithm to encrypt plaintext file.Gen represent the algorithm of generating key,and generate the key of symmetric key encryption algorithm and pseudo-random function.IndEnc represent the algorithm of encrypting keyword and generate encrypted index.Client perform this algorithm to generate encrypted index and upload encrypted index and ciphertext to server.IndGen represent the algorithm of generating search pointer.Client perform this algorithm to transform keyword to search pointer,and upload to server.Search represent the algorithm of searching encrypted indices.This algorithm run in server,and server can find related ciphertext when client submit search pointer.Dec represent the algorithm of decryption.Client decrypt ciphertext return from server by using key.

The Generation of Key
The process of generating key: IndEnc :The algorithm of encrypting keyword,three randomly selected m-bit key length string ,they are

The Encryption of Files and Indices
Files encryption are to encrypt the plaintext document by using symmetric key encryption algorithm. [6]he process of index encryption: ) , , ( A is the array that store encrypted index, s T is the dictionary that store first node of keyword list,V is the collection of keywords, V $ is the number of keywords, f L is the list consist of all keywords by file $ is the number of files including v . (1) Initialize array s A and dictionary s T .
(2)Perform following operations for each the node of linked list are nodes.These nodes are stored in random position of array s A .The structure of node is ))) ( ( ), ( ), ( ( : Encrypted files and encrypted indices are uploaded to cloud server.Specific storage operations are done by cloud server, the client is not involved in this work. [7]

Implement of Search
When user want to search files,they upload keyword and client transform keyword to K by using IndEnc algorithm .Server use search index to read encrypted index.10] This completes the whole search process.Specific search process is as follows

Conclusion
Through the above analysis,programme extract keywords from user's files,and transform plaintext files and keywords to ciphertext and encrypted index respectively.These two steps can be done on the client.Ciphertext and encrypted indices are stored on cloud server.When the user queries, client hosts use the search algorithm to process the keyword to a query pointer and submit to the server.The server uses the pointer to call the user's encrypted search index.Server use the user's encrypted index to find the corresponding ciphertext and returns to the client, the client can use the key to decrypt the ciphertext.

Figure 1 .
Figure 1.Search model under the cloud

T
identification of node.(b)The first node of every linked list are stored in s represent location of first node of every linked list.(3) These free nodes of s A and s T

:
Input P ,K ,after following these steps:(a)Find the location of i v in s T ,this location name i D .(b)Using i D find the coordinate of keyword in s A

Figure 2 .
Figure 2.The whole search process of chart In this article,we use Random oracle to generate search index and use Pseudo-random function to generate encrypted index.We choose