IP Library › Granted Patent US 12,659,140
Granted Patent B2
US 12,659,140 · App. 18/773,918 · Granted Jun 16, 2026

Encrypted information retrieval

Inventors: Eli Simon Fox-Epstein (Los Angeles, CA); Kevin Wei Li Yeo (New York, NY)
Assignee: Google LLC
H04L9/085G06F16/285G06F21/6227
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,659,140
App. No.
18/773,918
Granted
Jun 16, 2026
Kind
B2
Abstract

Methods, systems, and computer readable medium facilitating encrypted information retrieval. Methods can include receiving a batch of queries that includes queries to special buckets in each database shard. Query results responsive to the batch of queries are transmitted to the client device. The query results includes server-encrypted secret shares obtained from the special buckets. Client-encrypted versions of the secret shares are received. A full set of server-encrypted secret shares is transmitted to the client device, which is encrypted by the client device to create a full set of client-server-encrypted secret shares. The client device is classified based on how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the full set of client-server-encrypted secret shares received from the client device.

Claims (74)

1 . A method, comprising:

receiving, at a server device and from a client device, a batch of queries that includes queries to special buckets across database shards;

generating, by the server device, a set of query results that includes server-encrypted secret shares from the special buckets queried by the batch of queries;

obtaining, at the server device and from the client device, client-encrypted secret shares, wherein the client-encrypted secret shares are client encrypted versions of the secret shares that were included in the set of query results;

receiving, at the server device and from the client device, a set of client-server-encrypted secret shares, wherein the set of client-server-encrypted secret shares are client encrypted versions of a set of server-encrypted secret shares that (i) were transmitted to the client device and (ii) includes server-encrypted secret shares that were not included in the set of query results;

determining, by the server device, how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device; and

classifying, by the server device, the client device based on how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device.

2 . The method of claim 1 , further comprising:

removing, by the server device, server decryption from the set of client-server-encrypted secret shares received from the client device to obtain a full set of client-encrypted secret shares, wherein determining how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device comprises comparing the client-encrypted secret shares received from the client device to the set of client-encrypted secret shares obtained by removing the server decryption from the set of client-server-encrypted secret shares.

3 . The method of claim 2 , wherein classifying the client device comprises determining that the client device is malicious based on a determination that fewer than a required number of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-encrypted secret shares obtained by removing the server decryption from the set of client-server-encrypted secret shares.

4 . The method of claim 3 , further comprising:

receiving, from the client device, a set of client-encrypted entity identifiers;

encrypting, by the server device, the set of client-encrypted entity identifiers to create a set of sever-client-encrypted identifiers;

transmitting, by the server device, the set of server-client-encrypted identifiers to the client device.

5 . The method of claim 4 , further comprising:

generating a partitioned database in which a database is partitioned into multiple database shards each having a shard identifier that logically distinguishes each database shard from other database shards, and database entries in each database shard are partitioned into buckets having a bucket identifier that logically distinguishes each bucket in the shard from other buckets in the shard.

6 . The method of claim 5 , further comprising:

adding a special bucket to each database shard;

including, in each special bucket, special data that is known to the server device, but not the client device; and

after each query to a given shard, updating the special data in the special bucket of the given shard to maintain privacy of information contained in the special bucket of the given shard.

7 . The method of claim 6 , further comprising:

generating, by the client device, a set of queries using the set of server-client-encrypted identifiers;

generating, by the client device, a set of decryption keys using the set of server-client-encrypted identifiers;

encrypting, by the client device, the set of queries to create the batch of client-encrypted queries.

8 . A system comprising:

a database configured to store data; and

a server device configured to process queries using the database and execute instructions that cause the server device to perform operations comprising:

receiving, from a client device, a batch of queries that includes queries to special buckets across database shards;

generating a set of query results that includes server-encrypted secret shares from the special buckets queried by the batch of queries;

obtaining, from the client device, client-encrypted secret shares, wherein the client-encrypted secret shares are client encrypted versions of the secret shares that were included in the set of query results;

receiving, from the client device, a set of client-server-encrypted secret shares, wherein the set of client-server-encrypted secret shares are client encrypted versions of a set of server-encrypted secret shares that (i) were transmitted to the client device and (ii) includes server-encrypted secret shares that were not included in the set of query results;

determining how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device; and

classifying the client device based on how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device.

9 . The system of claim 8 , wherein the instructions cause the server device to perform operations further comprising:

removing server decryption from the set of client-server-encrypted secret shares received from the client device to obtain a full set of client-encrypted secret shares, wherein determining how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device comprises comparing the client-encrypted secret shares received from the client device to the set of client-encrypted secret shares obtained by removing the server decryption from the set of client-server-encrypted secret shares.

10 . The system of claim 9 , wherein classifying the client device comprises determining that the client device is malicious based on a determination that fewer than a required number of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-encrypted secret shares obtained by removing the server decryption from the set of client-server-encrypted secret shares.

11 . The system of claim 10 , wherein the instructions cause the server device to perform operations further comprising:

receiving, from the client device, a set of client-encrypted entity identifiers;

encrypting the set of client-encrypted entity identifiers to create a set of sever-client-encrypted identifiers;

transmitting the set of server-client-encrypted identifiers to the client device.

12 . The system of claim 11 , wherein the instructions cause the server device to perform operations further comprising:

generating a partitioned database in which a database is partitioned into multiple database shards each having a shard identifier that logically distinguishes each database shard from other database shards, and database entries in each database shard are partitioned into buckets having a bucket identifier that logically distinguishes each bucket in the shard from other buckets in the shard.

13 . The system of claim 12 , wherein the instructions cause the server device to perform operations further comprising:

adding a special bucket to each database shard;

including, in each special bucket, special data that is known to the server device, but not the client device; and

after each query to a given shard, updating the special data in the special bucket of the given shard to maintain privacy of information contained in the special bucket of the given shard.

14 . The system of claim 13 , wherein the instructions cause the server device to perform operations further comprising:

generating, by the client device, a set of queries using the set of server-client-encrypted identifiers;

generating, by the client device, a set of decryption keys using the set of server-client-encrypted identifiers;

encrypting, by the client device, the set of queries to create the batch of client-encrypted queries.

15 . A non-transitory computer readable medium storing instructions that, upon execution by one or more data processing apparatus, cause the one or more data processing apparatus to perform operations comprising:

receiving, from a client device, a batch of queries that includes queries to special buckets across database shards;

generating a set of query results that includes server-encrypted secret shares from the special buckets queried by the batch of queries;

obtaining, from the client device, client-encrypted secret shares, wherein the client-encrypted secret shares are client encrypted versions of the secret shares that were included in the set of query results;

receiving, from the client device, a set of client-server-encrypted secret shares, wherein the set of client-server-encrypted secret shares are client encrypted versions of a set of server-encrypted secret shares that (i) were transmitted to the client device and (ii) includes server-encrypted secret shares that were not included in the set of query results;

determining how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device; and

classifying the client device based on how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device.

16 . The non-transitory computer readable medium of claim 15 , wherein the instructions cause the one or more data processing apparatus device to perform operations further comprising:

removing server decryption from the set of client-server-encrypted secret shares received from the client device to obtain a full set of client-encrypted secret shares, wherein determining how many of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-server-encrypted secret shares received from the client device comprises comparing the client-encrypted secret shares received from the client device to the set of client-encrypted secret shares obtained by removing the server decryption from the set of client-server-encrypted secret shares.

17 . The non-transitory computer readable medium of claim 16 , wherein classifying the client device comprises determining that the client device is malicious based on a determination that fewer than a required number of the secret shares are included in both of the client-encrypted secret shares received from the client device and the set of client-encrypted secret shares obtained by removing the server decryption from the set of client-server-encrypted secret shares.

18 . The non-transitory computer readable medium of claim 17 , wherein the instructions cause the one or more data processing apparatus to perform operations further comprising:

receiving, from the client device, a set of client-encrypted entity identifiers;

encrypting the set of client-encrypted entity identifiers to create a set of sever-client-encrypted identifiers;

transmitting the set of server-client-encrypted identifiers to the client device.

19 . The non-transitory computer readable medium of claim 18 , wherein the instructions cause the one or more data processing apparatus to perform operations further comprising:

generating a partitioned database in which a database is partitioned into multiple database shards each having a shard identifier that logically distinguishes each database shard from other database shards, and database entries in each database shard are partitioned into buckets having a bucket identifier that logically distinguishes each bucket in the shard from other buckets in the shard.

20 . The non-transitory computer readable medium of claim 19 , wherein the instructions cause the one or more data processing apparatus to perform operations further comprising:

adding a special bucket to each database shard;

including, in each special bucket, special data that is known to the one or more data processing apparatus, but not the client device; and

after each query to a given shard, updating the special data in the special bucket of the given shard to maintain privacy of information contained in the special bucket of the given shard.

21 . The non-transitory computer readable medium of claim 20 , wherein the instructions cause the one or more data processing apparatus to perform operations further comprising:

generating, by the client device, a set of queries using the set of server-client-encrypted identifiers;

generating, by the client device, a set of decryption keys using the set of server-client-encrypted identifiers;

encrypting, by the client device, the set of queries to create the batch of client-encrypted queries.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2024
From: FOX-EPSTEIN, ELI SIMON; YEO, KEVIN WEI LI
To: GOOGLE LLC
Reel/Frame 068101/0044 →
Continuity (3)
Continuation 17856629 · Jul 1, 2022
Provisional Application 63218120 · Jul 2, 2021
Related Publication 20240372709A1 · Nov 7, 2024
References Cited (38)
US 10181049B1 · Defrawy et al. · 2019 [cited by applicant]
US 20100185847A1 · Shasha · 2010 [cited by examiner]
US 20100306221A1 · Lokam · 2010 [cited by examiner]
US 20140122476A1 · Kaliski, Jr. · 2014 [cited by examiner]
US 20140281511A1 · Kaushik · 2014 [cited by examiner]
US 20140304505A1 · Dawson · 2014 [cited by examiner]
US 20160261408A1 · Peddada · 2016 [cited by examiner]
US 20160352511A1 · Bashyam · 2016 [cited by examiner]
US 20160357869A1 · Hang et al. · 2016 [cited by applicant]
US 20170083718A1 · Peddada · 2017 [cited by examiner]
US 20170317828A1 · Reinhold · 2017 [cited by examiner]
US 20170344646A1 · Antonopoulos · 2017 [cited by examiner]
US 20180107843A1 · Setty · 2018 [cited by examiner]
US 20180124027A1 · Venkiteswaran · 2018 [cited by examiner]
US 20180294952A1 · Yuan · 2018 [cited by examiner]
US 20190147170A1 · Keselman et al. · 2019 [cited by applicant]
US 20190236284A1 · Hersans · 2019 [cited by examiner]
US 20200193048A1 · Evans · 2020 [cited by examiner]
US 20210192076A1 · Patel et al. · 2021 [cited by applicant]
US 20210328789A1 · Hosur · 2021 [cited by examiner]
US 20220021524A1 · Peddada · 2022 [cited by examiner]
US 20220021525A1 · Peddada · 2022 [cited by examiner]
US 20220247554A1 · Peddada · 2022 [cited by examiner]
CN 105468986 · 2016 [cited by applicant]
CN 109325870 · 2019 [cited by applicant]
CN 112400171 · 2021 [cited by applicant]
Rei Yoshida; Practical Searching Over Encrypted Data by Private Information Retrieval; IEEE:2010; pp. 1-5. [cited by examiner]
Extended European Search Report in European Appln. No. 24195751.3, mailed on Sep. 26, 2024, 7 pages. [cited by applicant]
International Preliminary Report on Patentability in International Appln. No. PCT/US2022/035965, mailed on Jan. 11, 2024, 7 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2022/035965, mailed on Oct. 11, 2022, 13 pages. [cited by applicant]
Notice of Allowance in European Appln. No. 22754599.3, mailed on Jun. 7, 2023, 8 pages. [cited by applicant]
Office Action in Indian Appln. No. 202327006797, mailed on Feb. 13, 2024, 8 pages (with English translation). [cited by applicant]
Pang et al., “Obfuscating the topical intention in enterprise text search.” 2012 IEEE 28th International Conference on Data Engineering. IEEE, Apr. 2012, 1168-1179. [cited by applicant]
Sepehri et al., “Low-Cost Hiding of the Query Pattern.” Practice and Experience in Advanced Research Computing, ACMPUB27, May 24, 2021, 593-603. [cited by applicant]
Stanislaw Jarecki; Outsourced Symmetric Private Information Retrieval; ACM, 2013, 875-887. [cited by applicant]
Tajima et al., “Outsourced private set intersection cardinality with fully homomorphic encryption.” 2018 6th International Conference on Multimedia Computing and Systems (ICMCS). IEEE, May 2018, 8 pages. [cited by applicant]
Wu et al., “Constructing Dummy Query Sequences to Protect Location Privacy and Query Privacy in Location-Based Services” World Wide Web, vol. 24, No. 1, Jul. 6, 2020, 25-49. [cited by applicant]
Office Action in Chinese Appln. No. 202280005729.0, mailed on Mar. 9, 2026, 10 pages (with English translation). [cited by applicant]