Privacy preserving data search
AssigneeProtegrity Corporation
InventorsYigal Rozenberg, Ulf Mattsson
Life of this patent
Estimating the term…
Abstract
Database entries can be protected by indexing the entries using a plurality of indexes, each associated with a level of access rights. A level of access rights can be determined from a search query, and an index can be selected based on the determined level of access rights. A search key can be generated based on the received query, and the selected index can be searched using the search query. Database entries mapped to the values of the selected index returned in response to the search can be outputted. Each index is associated with a different granularity defining the number and/or ambiguity of search results returned in response to searching an index.
Claims18
A method for data protection in a computer system associated with a plurality of levels of access rights, the method comprising:
- indexing a portion of a database stored in memory with a plurality of indexes, each index including a plurality of values each mapped to a different one or more database entries, each index associated with a different access rights level;
- receiving a query to search the indexed portion of the database from a user;
- generating, by a hardware processor, a search key based on the received query;
- hashing the generated search key using a hash table;
- hashing, for each index, the values of an index corresponding to an access rights level associated with the user using the hash table;
- truncating the hashed search key and each hashed index value, wherein truncating the hashed search key comprises maintaining a leading portion of the hashed search key and discarding the remainder of the hashed search key;
- after truncating the hashed search key and the hashed index values, searching, by the hardware processor, the truncated hashed index values using the truncated hashed search key to identify truncated hashed index values associated with the truncated hashed search key;
- and
- outputting database entries mapped to the identified truncated hashed index values.
A information retrieval system associated with a plurality of levels of access rights, the system comprising:
- a non-transitory computer-readable storage medium storing executable computer instructions that, when executed, perform steps comprising:
- indexing a portion of a database stored in memory with a plurality of indexes, each index including a plurality of values each mapped to a different one or more database entries, each index associated with a different access rights level;
- receiving a query to search the indexed portion of the database from a user;
- generating a search key based on the received query;
- hashing the generated search key using a hash table;
- hashing, for each index, the values of an index corresponding to an access rights level associated with the user using the hash table;
- truncating the hashed search key and each hashed index value, wherein truncating the hashed search key comprises maintaining a leading portion of the hashed search key and discarding the remainder of the hashed search key;
- after truncating the hashed search key and the hashed index values, searching, by the hardware processor, the truncated hashed index values using the truncated hashed search key to identify truncated hashed index values associated with the truncated hashed search key;
- and
- outputting database entries mapped to the identified truncated hashed index values;
- and
- a hardware processor configured to execute the instructions.
A non-transitory computer-readable storage medium storing executable computer instructions that, when executed, are configured to perform steps comprising:
- indexing a portion of a database stored in memory with a plurality of indexes, each index including a plurality of values each mapped to a different one or more database entries, each index associated with a different access rights level;
- receiving a query to search the indexed portion of the database from a user;
- generating a search key based on the received query;
- hashing the generated search key using a hash table;
- hashing, for each index, the values of an index corresponding to an access rights level associated with the user using the hash table;
- truncating the hashed search key and each hashed index value, wherein truncating the hashed search key comprises maintaining a leading portion of the hashed search key and discarding the remainder of the hashed search key;
- after truncating the hashed search key and the hashed index values, searching, by the hardware processor, the truncated hashed index values using the truncated hashed search key to identify truncated hashed index values associated with the truncated hashed search key;
- and
- outputting database entries mapped to the identified truncated hashed index values.
Dependencies are inferred from the claim text.