Method and apparatus for private information retrieval from a single electronic storage device
First Claim
1. A method of privately retrieving selected information from a database that contains the selected information, without requiring replication of said database, said method comprising the steps of:
- a) selecting, at an inquiring processor from a set of known data addresses, the addresses of information to be retrieved from said database;
b) encoding, at said inquiring processor, said addresses into a mathematical function that does not reveal to said database the addresses of information to be retrieved;
c) communicating said mathematical function containing encoded addresses to said database;
d) executing said mathematical function against the entirety of said database, and transmitting the results of said execution to said inquiring processor; and
e) decoding said results at said inquiring processor, wherein the total amount of information exchanged between said database and said inquiring processor is less than the total amount of information stored in said database.
11 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for privately retrieving information from a single electronic storage device (e.g., a database) is described. An inquiring processor identifies a portion of a database memory with information for retrieval and encodes address of the information into a preselected mathematical function that conceals the identity of the selected information from the database. The inquiring processor transmits the encoded function to the database. The database cooperates by executing the encoded function on the database and transmits an encoded result that represents an evaluation of the encoded function to the inquiring processor. The inquiring processor, having knowledge of the selected mathematical function, decodes the encoded result to generate the information from the selected memory section of the database. The inquiry can be repeated until the inquiring processor can retrieve the selected information. The process minimizes the exchange of information between the database and the inquiring processor that is necessary to privately retrieve information.
-
Citations
18 Claims
-
1. A method of privately retrieving selected information from a database that contains the selected information, without requiring replication of said database, said method comprising the steps of:
-
a) selecting, at an inquiring processor from a set of known data addresses, the addresses of information to be retrieved from said database; b) encoding, at said inquiring processor, said addresses into a mathematical function that does not reveal to said database the addresses of information to be retrieved; c) communicating said mathematical function containing encoded addresses to said database; d) executing said mathematical function against the entirety of said database, and transmitting the results of said execution to said inquiring processor; and e) decoding said results at said inquiring processor, wherein the total amount of information exchanged between said database and said inquiring processor is less than the total amount of information stored in said database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of privately retrieving selected information from a database that contains the selected information, without requiring replication of said database, said method comprising the steps of:
-
a) identifying, at an inquiring processor, the addresses of information to be retrieved from said database; b) encoding, at said inquiring processor, said addresses into a mathematical function that does not reveal to said database the addresses of information to be retrieved; c) transmitting said mathematical function containing encoded addresses to said database; d) executing the mathematical function against the entirety of said database, said execution step further comprising the steps of; i) translating the data in said database into encoded information corresponding to said function, such that data in said identified addresses is decodable by said inquiring processor but not said database; and ii) transmitting to said inquiring processor said encoded information; and e) decoding said encoded information at said inquiring processor, wherein the total amount of information exchanged between said database and said inquiring processor is less than the total amount of information stored in said database. - View Dependent Claims (11)
-
-
12. A method of privately retrieving selected information from a database that contains the selected information, without requiring replication of said database, said method comprising the steps of:
-
a) identifying, at an inquiring processor, the addresses of information to be retrieved from said database; b) encoding, at said inquiring processor, said addresses into a mathematical function that does not reveal to said database the addresses of information to be retrieved; c) transmitting said mathematical function containing encoded addresses to said database; d) executing the mathematical function against the entirety of said database, said execution step further comprising the steps of; (i) translating the data in said database into encoded information corresponding to said function, such that data in said identified addresses is decodable by said inquiring processor but not said database; and (ii) transmitting to said inquiring processor said encoded information; e) decoding said encoded information at said inquiring processor; and f) repeating steps a) through e) until said inquiring processor can read the desired information wherein the total amount of information exchanged between said database and said inquiring processor is less than the total amount of information stored in said database. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A method of querying a database from an inquiring database for an address of a selected key without revealing to said database which key is being searched, said method comprising the steps of:
-
a) selecting, at said database, a perfect hash function wherein said hash function provides a one-to-one correspondence between stored key values and hash values; b) transmitting a description of said hash function to said inquiring processor; c) reordering, at said database, database entries according to said hash function; d) applying, at said inquiring processor, said hash function to the selected key; and e) determining, at said inquiring processor, the address of the selected key in said reordered database.
-
-
18. A method of privately retrieving selected information from a database that contains the selected information, without requiring replication of said database, said method comprising the steps of:
-
a) identifying, at an inquiring processor, the addresses of information to be retrieved from said database; b) encoding, at said inquiring processor, said addresses into a mathematical function that does not reveal the addresses of information to be retrieved to said database; c) transmitting said mathematical function containing encoded addresses to said database; d) executing the mathematical function against a subset of the entire database defined by said inquiring processor, said execution step further comprising the steps of; (i) translating the data in said database into encoded information corresponding to said function, such that data in said identified addresses is decodable by said inquiring processor but not said database; and (ii) transmitting to said inquiring processor said encoded information; and e) decoding said encoded information at said inquiring processor.
-
Specification