CPC G06F 21/6227 (2013.01) [G06F 16/248 (2019.01); G06F 16/24573 (2019.01); G06F 21/32 (2013.01); G06F 21/602 (2013.01); G06F 21/107 (2023.08)] | 15 Claims |
1. A method of providing a searchable encrypted database and for searching the searchable encrypted database comprising:
obtaining plain text data from a first party and obtaining a first encryption key and a second encryption key;
parsing the plain text data using a priori knowledge of a plain text data structure to identify a plurality of data blocks and associated metadata components;
encrypting the plurality of data blocks using the first encryption key to provide one or more encrypted data blocks;
separately encrypting the metadata components with the second encryption key to provide a plurality of encrypted metadata components;
providing the second encryption key to a third party for enabling the third party to search the searchable encrypted database, wherein the third party does not have access to the first encryption key;
storing the one or more encrypted data blocks and the encrypted metadata components in a storage vault to provide the searchable encrypted database whilst discarding the plain text data and the first encryption key;
defining, by the third party, a search term;
encrypting the search term with the second encryption key to provide an encrypted search term;
searching the searchable encrypted database using the encrypted search term to determine whether or not the encrypted search term matches one or more of the encrypted metadata components; and
returning a search result.
|