Patent ID: 8572379

Claim:
A method comprising: using a first electronic processing device, encrypting the entries of a hash table using a first cryptographic process and performing a first permutation process to reorder the entries of the hash table to generate a first-processed hash table; communicating the first-processed hash table from the first electronic processing device to the second electronic processing device; using a second electronic processing device, encrypting the entries of the first-processed hash table using a second cryptographic process that is commutative with the first cryptographic process and performing a second permutation process that is commutative with the first permutation process to reorder the entries of the first-processed hash table to generate a first-and-second-processed hash table; communicating the first-and-second processed hash table from the second electronic processing device to the first electronic processing device; and using the first electronic processing device, decrypting the entries of the first-and-second processed hash table using the first cryptographic process and undoing the performing of the first permutation process to generate a double-blind hash table; using the second electronic processing device, generating a reordered hash table key value by hashing an index key value using a hash function associated with the hash table and performing the second permutation process on the hashed index key value; communicating the reordered hash table key value from the second electronic processing device to the first electronic processing device; using the first electronic processing device, retrieving the entry of the double-blind hash table that is indexed by the reordered hash table key value; communicating the retrieved entry of the double-blind hash table from the first electronic processing device to the second electronic processing device; and using the second electronic processing device, decrypting the retrieved entry of the double-blind hash table using the second cryptographic process; wherein the first electronic processing device does not have access to the second cryptographic process and does not have access to the second permutation process, and wherein the second electronic processing device does not have access to the hash table and does not have access to the double-blind hash table and does not have access to the first cryptographic process and does not have access to the first permutation process.