Patent ID: 9141824
Filing Date: 2015-09-22
Classification: G06F,H04L

Abstract:
1. A method for a first server to compute an oblivious database based on an original database such that a data block of the original database can be updated without the first server being able to determine the corresponding data block in the oblivious database, the method comprising: selecting, by the first server, a first random server and a second random server from a plurality of random servers, each of the random servers having a random database; establishing, by the first random server and the second random server, a cryptographically secure pseudorandom function and a synchronized timestamp; selecting, by the first server from the original database, a first original database random data set and a second original database random data set; sending, by the first server, the first original database random data set to the first random server and the second original database random data set to the second random server; selecting, by the first random server from the random database, a first random database random data set and a second random database random data set; sending, by the first random server, the second random database random data set to the second random server; computing, by the first random server, a first vector of length n and initializing each element of the first vector to a current timestamp; computing, by the first random server, a first temporary data set based on the first original database random data set and the first random database random data set and sending the first temporary data set to the first server; computing, by the second random server, a second vector of length n and initializing each element of the second vector to the current timestamp; computing, by the second random server, a second temporary data set based on the second original database random data set, the second random database random data set and the cryptographically secure pseudorandom function, and sending the second temporary data set to the first server; and computing, by the first server, the oblivious database based on the first temporary data set and the second temporary data set.