| CPC H04L 9/0825 (2013.01) [H04L 9/0866 (2013.01)] | 20 Claims |

|
1. A computer-implemented method, comprising:
receiving, by a server including one or more processors and from a client device, a set of client-encrypted queries that were encrypted by the client device;
identifying, by the server, a set of server-encrypted decryption keys based on the set of client-encrypted queries;
transmitting, by the server, the set of server-encrypted decryption keys to the client device;
receiving, by the server and from the client device, a set of client-server-encrypted decryption keys that includes the set of server-encrypted decryption keys that have been further encrypted by the client device;
receiving, by the server and from the client device, a set of client-encrypted/client-derived decryption keys that (i) were derived by the client device independent of the set of server-encrypted decryption keys, and (ii) are encrypted by the client device;
generating, by the server, a matching decryption key map that specifies matches between (i) the set of client-server-encrypted decryption keys and (ii) the set of client-encrypted/client-derived decryption keys;
filtering, by the server, the set of client-encrypted queries using the matching decryption key map to create a set of filtered client-encrypted queries; and
generating, by the server, a set of query results using the set of filtered client-encrypted queries.
|