Patent ID: 8549653

Claim:
A method for providing access to data stored in encrypted form in a physically non-secure database without compromising security of the data in the physically non-secure database, the non-secure database residing in non-volatile storage, the method comprising: in a server, maintaining a representation of at least some of the data from the database in unencrypted form in volatile memory associated with the server; receiving a request to search the data from an authorized user, the request containing a wildcard character; executing the request containing the wildcard character by conducting a wildcard search on the representation in the volatile memory of the server; displaying search results to the user sufficient to allow the user to select database contents to be retrieved from the non-volatile storage; receiving a selection from the user; retrieving from the database, specific encrypted data associated with the user's selection; decrypting the specific encrypted data using a key retrieved from a keystore that is accessible by the server but is stored remote from the server, and is inaccessible to both the physically non-secure database and the user, so as to obtain unencrypted selection results, wherein the server is one of multiple servers, wherein an other of the multiple servers contains a separate representation of the at least some of the data in volatile memory of the other server in unencrypted form; providing the unencrypted selection results to the user; and using a publish/subscribe messaging mechanism to maintain consistency between the unencrypted representation in the volatile memory of the server and the unencrypted separate representation in the volatile memory of the other server.