  Cloud computing has become a potential resource for businesses and
individuals to outsource their data to remote but highly accessible servers.
However, potentials of the cloud services have not been fully unleashed due to
users' concerns about security and privacy of their data in the cloud.
User-side encryption techniques can be employed to mitigate the security
concerns. Nonetheless, once the data in encrypted, no processing (e.g.,
searching) can be performed on the outsourced data. Searchable Encryption (SE)
techniques have been widely studied to enable searching on the data while they
are encrypted. These techniques enable various types of search on the encrypted
data and offer different levels of security. In addition, although these
techniques enable different search types and vary in details, they share
similarities in their components and architectures. In this paper, we provide a
comprehensive survey on different secure search techniques; a high-level
architecture for these systems, and an analysis of their performance and
security level.
