Patent ID: 8819451

Claim:
A method in a networked computer system having a memory and a processor for searching for documents, the method comprising: generating a searchable encrypted keyword index for a plurality of documents by identifying a plurality of keywords, and for each of the identified plurality of keywords, encrypting the keyword to generate an encrypted instance of the keyword; identifying the documents that contain the keyword, for each of the identified documents, determining a document identifier, with a processor, generating a concatenated string by sequentially joining a string of the keyword to a string of the determined document identifier into the concatenated string, and encrypting the concatenated string by applying an encryption function to the concatenated string, and sending to a document storage service the encrypted instance of the keyword along with each of the encrypted concatenated strings wherein the document storage server associates the encrypted instance of the keyword with each of the encrypted concatenated strings that is an encryption of that keyword concatenated with a document identifier; and identifying an encrypted document that matches a query by inputting a keyword received from a user, encrypting the inputted keyword to generate an encrypted instance of the inputted keyword, sending the encrypted instance of the inputted keyword to the document storage service, receiving from the document storage service at least one encrypted concatenated string associated with the encrypted instance of the inputted keyword, and decrypting the received at least one encrypted concatenated string to identify both the keyword of the encrypted concatenated string and the document identifier of the encrypted concatenated string.