17. The method of claim 9 , further comprising generating, at the user terminal, decryption keys using a decryption attribute, the primary key, and the decryption parameter.
9. A multi-user searchable encryption method, the method comprising: generating, at a key generation server, system parameters, a primary key, and a secondary key; receiving, at a user terminal, the primary key; encrypting, at the user terminal, data to obtain cypher text, symmetric key to obtain encrypted symmetric key, keyword to obtain encrypted keyword; generating, at the user terminal, trapdoor using the primary key for a search keyword inputted by user, and a decryption parameter using the primary key; receiving, at a proxy server, the cypher text, the encrypted keyword, the encrypted symmetric key, and the secondary key; encrypting, at the proxy server, trapdoor using the secondary key; performing, at the proxy server, a lookup for search results corresponding to the search keyword; and storing, at a database server, the cypher text at a location address and returning the location address of the cypher text to the proxy server; wherein the method further comprises at least one selected from the group consisting of (a), (b), and (c): (a) re-encrypting, at the proxy server, the encrypted symmetric key and encrypted keyword using the secondary key; (b) maintaining, at the proxy server, a table of re-encrypted symmetric keys and a table to store location address of data; and (c) receiving, at the user terminal, a decryption attribute and the cypher text.