1 Introduction
Cloud computing is the delivery of on-demand computation and storage resources over the internet in the matter of pay-as-you-go basis. In order to reduce the local maintenance cost, more and more users prefer to outsource their data to the cloud server [8], [9], [10]. However, one of the main challenges for cloud computing is the data privacy, because the cloud server may try to learn as much information about the outsourced data as possible. Although the end-to-end encryption technique can protect the confidentiality of users’ data, it leads to the loss of search ability over the encrypted data.