IP Library Granted Patent US 12,430,449
Granted Patent B2
US 12,430,449 · App. 18/075,873 · Granted Sep 30, 2025

Systems and methods for hiding response volume with encrypted multi-maps

Inventors: Marilyn George (Brooklyn, NY); Seny Kamara (New York, NY); Tarik Moataz (Brooklyn, NY)
Assignee: MongoDB, Inc.
G06F21/602G06F16/2455G06F16/258
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,430,449
App. No.
18/075,873
Granted
Sep 30, 2025
Kind
B2
Abstract

A volume hiding structured encryption system and method is provided. According to some embodiments, the system leverages the principle that a STE scheme can leak cumulative information about the query volumes of the data stored in multi-map format, while still hiding the volumes of client queries at query time. According to various examples, the system implements encryption schemes that have smaller storage and better query complexity than the current state-of-the-art, for some input distributions. According to one example, the STE schemes are adapted to the input data structure in order to improve efficiency over known approaches. Further examples includes schemes that are configured to partition a multi-map into smaller multi-maps, and use different allocation functions for different efficiency trade-offs: (i) random allocation, (ii) cuckoo-hashing allocation, and (iii) Garbled Bloom Filter allocation. In one example, the GBF construct enables a stash-less encryption scheme that hides query volumes.

Claims (33)

1. A volume hiding encryption system comprising:

at least one processor operatively connected to a memory, the at least one processor when executing, is configured to:

execute setup operations on an input multi-map data structure;

transform the input multi-map data structure into at least two multi-map data structures as part of the setup operations, wherein the operation to transform includes an operation to generate a minimum number of encrypted values based on at least one characteristic of one or more tuples in the input multi-map;

encrypt the at least two multi-map data structures;

store the encrypted form of the at least two multi-map data structures for executing queries; and

execute queries on the encrypted form of the at least two multi-map data structures, wherein execution of each query reads a system defined number of encrypted values irrespective of a length of a tuple stored in the input multi-map.

2. The system of claim 1 , wherein the system defined number is a fixed number.

3. The system of claim 1 , wherein the operation to generate the minimum number of encrypted values based on at least one characteristic of one or more tuples in the input multi-map includes an operation to generate the minimum number of encrypted values based on at least a minimum length of a tuple in the input multi-map.

4. The system of claim 1 , wherein the operation to transform the input multi-map data structure into at least two multi-map data structures as part of the setup operations includes an operation to build a first multi-map storing a first set of values from every tuple in the input multi-map for tuple values up to a minimum response length.

5. The system of claim 4 , wherein the at least one processor is configured to construct a second multi-map storing tuple values for tuples exceeding a minimum response length.

6. The system of claim 5 , wherein the at least one processor is configured to assign storage locations in the second multi-map based on logarithmic choice for the storage location.

7. The system of claim 5 , wherein the at least one processor if configured to assign storage locations in the multi-map data structure based on cuckoo-hashing allocation or garbled bloom filter allocation.

8. The system of claim 5 , wherein the at least one processor is configured to assign dummy values to any empty storage locations in the second multi-map.

9. The system of claim 4 , wherein the at least one processor is configured to store any excess values in a stash repository responsive to identifying allocated locations.

10. The system of claim 4 , wherein the at least one processor is configured to generate an encrypted dictionary storing the storage location labels and contents.

11. The system of claim 1 , wherein a first one of the at least two multi-map data structures is constructed based on a consistent size tuple, and the second one of the at least two multi-map data structures is constructed to include at least some values that store data exceeding the consistent size of the first multi-map data structure.

12. The system of claim 1 , wherein the at least one processor is configured to execute queries to include at least operations to:

retrieve encrypted values from the first one of the at least two multi-map data structures; and

obscure a volume associated with a client query based on retrieving encrypted values from an encrypted dictionary needed to reconstruct a plaintext query response at the client.

13. The system of claim 1 , wherein the at least one processor is configured to store the encrypted form of the at least two multi-map data structures for executing queries without requiring a stash for excess values.

14. A computer implemented method for volume hiding encryption, the method comprising:

executing, by the at least one processor, setup operations on an input multi-map data structure;

transforming, by the at least one processor, the input multi-map data structure into at least two multi-map data structures as part of the setup operations, wherein transforming includes generating a minimum number of encrypted values based on at least one characteristic of one or more tuples in the input multi-map;

encrypting, by the at least one processor, the at least two multi-map data structures;

storing, by the at least one processor, the encrypted form of the at least two multi-map data structures for executing queries; and

executing, by the at least one processor, queries on the encrypted form of the at least two multi-map data structures, wherein the act of executing for each query reads a system defined number of encrypted values irrespective of a length of a tuple stored in the input multi-map.

15. The method of claim 14 , wherein the system defined number of encrypted values is a fixed number for a given input multi-map.

16. The method of claim 14 , wherein generating the minimum number of encrypted values based on at least one characteristic of one or more tuples in the input multi-map includes generating a minimum number of encrypted values based on at least a minimum length of a tuple in the input multi-map.

17. The method of claim 16 , wherein transforming includes generating a second multi-map storing tuple values for tuples exceeding a minimum response length.

18. The method of claim 14 , wherein transforming the input multi-map data structure into at least two multi-map data structures as part of the setup operations includes generating a first multi-map storing a first set of values from every tuple in the input multi-map for tuple values up to a minimum response length.

19. The method of claim 18 , wherein generating the second multi-map includes assigning storage locations in the second multi-map based on logarithmic choice for the storage location.

20. The method of claim 14 , wherein the method further comprises assigning storage locations in the multi-map data structure based on cuckoo-hashing allocation or garbled bloom filter allocation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: GEORGE, MARILYN; MOATAZ, TARIK; KAMARA, SENY
To: MONGODB, INC.
Reel/Frame 063314/0383 →
Continuity (2)
Provisional Application 63286919 · Dec 7, 2021
Related Publication 20230177177A1 · Jun 8, 2023
References Cited (14)
US 11269824B1 · Waas · 2022 [cited by examiner]
US 20200285777A1 · Heller et al. · 2020 [cited by applicant]
US 20220207171A1 · Moataz · 2022 [cited by applicant]
US 20220215115A1 · Moataz · 2022 [cited by applicant]
US 20230315896A1 · Karama et al. · 2023 [cited by applicant]
US 20230315897A1 · Karama et al. · 2023 [cited by applicant]
US 20230325524A1 · Kamara et al. · 2023 [cited by applicant]
Wang et al., Simple Storage-Saving Structure for Volume-Hiding Encrypted Multi-Maps (A Slot in Need is a Slot Indeed). International Federation for Information Processing. Jul. 2021. pp. 63-83. [cited by examiner]
Amjad et al., Dynamic Volume-Hiding Encrypted Multi-Maps with Applications to Searchable Encryption. Google. Jun. 10, 2021. 31 pages. [cited by applicant]
Kamara et al., Computationally Volume-Hiding Structure Encryption. International Conference on the Theory and Application of Cryptographic Techniques. May 19, 2019. 30 pages. [cited by applicant]
Patel et al., Mitigating Leakage in Secure Cloud-Hosted Data Structures: Volume-Hiding for Multi-Maps via Hashing. ACM SIGSAC Conference. Nov. 2019. 26 pages. [cited by applicant]
Wang et al., Simple Storage-Saving Structure for vol. Hiding Encrypted Multi-Maps (A Slot in Need is a Slot Indeed). International Federation for Information Processing. Jul. 2021. pp. 63-83. [cited by applicant]
Wang et al., Practical Volume-Hiding Encrypted Multi-Maps with Optimal Overhead and Beyond. Association for Computing Machinery. Nov. 7, 2022. 2825-2839. [cited by applicant]
Wong et al., Secure query processing with data interoperability in a cloud database environment. In Proceedings of the 2014 ACM SIGMOD international conference on Management of data. 1395-1406. [cited by applicant]