IP Library › Granted Patent US 12,386,825
Granted Patent B1
US 12,386,825 · App. 18/908,157 · Granted Aug 12, 2025

Parametric searching under fully homomorphic encryption

Inventors: Hayim Shaul (Kfar Saba, IL); Guy Moshkowich (Nes Ziyona, IL); Eyal Kushnir (Kfar Vradim, IL)
Assignee: International Business Machines Corporation
G06F16/2453G06F16/2246G06F16/2264H04L9/008
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,386,825
App. No.
18/908,157
Granted
Aug 12, 2025
Kind
B1
Abstract

A computer-implemented method for identifying a leaf in a tree is provided. A processor set receives a first point representing one or more values within a d-dimensional space for identifying the leaf in the tree. The processor set generates a parameter for identifying the leaf in the tree. The processor set identifies a node at highest depth of the tree. The processor set determines a first value of the parameter for generating a range. The processor set selects a subset of child nodes from the number of child nodes associated with the node at the highest depth of the tree based on the range. The processor sets the subset of child nodes as the node at the highest depth of the tree. The processor set traverses the tree by repeating the identifying step, the determining step, the selecting step, and setting steps until the leaf in the tree is identified.

Claims (58)

1. A computer implemented method for identifying a leaf in a tree, the computer implemented method comprising:

receiving, by a processor set, a first point representing one or more values within a d-dimensional space for identifying the leaf in the tree, wherein the tree is generated based on a set of values within the d-dimensional space, and wherein each node in the tree represents a subset of points with a bounding simplex within the d-dimensional space;

generating, by the processor set, a parameter for identifying the leaf in the tree, wherein the leaf in the tree represents a second point representing one or more values that is nearest to the first point;

identifying, by the processor set, a node at highest depth of the tree, wherein the node at the highest depth of the tree is associated with a number of child nodes;

determining, by the processor set, a first value of the parameter for generating a range, wherein the first value is determined based on existing value for the parameter and bounding simplexes for all child nodes associated with the node at the highest depth of the tree;

selecting, by the processor set, a subset of child nodes from the number of child nodes associated with the node at the highest depth of the tree based on the range, wherein the subset of child nodes represent points for values within a subrange that overlaps with the range;

setting, by the processor set, the subset of child nodes as the node at the highest depth of the tree; and

traversing, by the processor set, the tree by repeating the identifying step, the determining step, the selecting step, and setting steps until the leaf in the tree is identified.

2. The computer implemented method of claim 1 , wherein the determining, by the processor set, a first value of the parameter for generating a range comprises:

determining, by the processor set, a second value of the parameter for each child node associated with the node at the highest depth of the tree based on the first point and bounding simplex for each child node associated with the node at the highest depth of the tree, wherein the bounding simplex for each child node associated with the node at the highest depth of the tree is contained within a second range determined for each child node associated with the node at the highest depth of the tree, and wherein the second ranges are determined based on the second value of the parameter for each child node associated with the node at the highest depth of the tree and the first point.

3. The computer implemented method of claim 2 , further comprising:

determining, by the processor set, a third value of the parameter for each child node associated with the node at the highest depth of the tree based on the first point and bounding simplex for each child node associated with the node at the highest depth of the tree, wherein the bounding simplex for each child node associated with the node at the highest depth of the tree is intersected with a third range determined for each child node associated with the node at the highest depth of the tree, and wherein the third ranges are determined based on the third value of parameters for each child node associated with the node at the highest depth of the tree and the first point;

determining, by the processor set, a fourth value of the parameter by identifying a maximum from the third values for all child nodes associated with the node at the highest depth of the tree; and

determining, by the processor set, the first value for the parameter by identifying a minimal value of the existing value for the parameter, the second values, the third values, and the fourth value.

4. The computer implemented method of claim 1 , wherein the tree is a partition tree.

5. The computer implemented method of claim 1 , wherein the d-dimensional space comprises a two dimension space or a three dimension space.

6. The computer implemented method of claim 1 , wherein each node in the tree represents a geographical location.

7. The computer implemented method of claim 1 , wherein the identification of the leaf in the tree is used in combination with homomorphic encryption.

8. A computer system for identifying a leaf in a tree, comprising:

a processor set;

a set of one or more computer-readable storage media; and

program instructions stored on the set of one or more storage media to cause the processor set to perform operations comprising:

receiving a first point representing one or more values within a d-dimensional space for identifying the leaf in the tree, wherein the tree is generated based on a set of values within the d-dimensional space, and wherein each node in the tree represents a subset of points with a bounding simplex within the d-dimensional space;

generating a parameter for identifying leaf in the tree, wherein the leaf in the tree represents a second point representing one or more values that is nearest to the first point;

identifying a node at highest depth of the tree, wherein the node at the highest depth of the tree is associated with a number of child nodes;

determining a first value of the parameter for generating a range, wherein the first value is determined based on an existing value for the parameter and bounding simplexes for all child nodes associated with the node at the highest depth of the tree;

selecting a subset of child nodes from the number of child nodes associated with the node at the highest depth of the tree based on the range, wherein the subset of child nodes represents points for values within a subrange that overlaps with the range;

setting the subset of child nodes as the node at the highest depth of the tree; and

traversing, by the processor set, the tree by repeating the identifying step, the determining step, the selecting step, and setting steps until the leaf in the tree is identified.

9. The computer system of claim 8 , wherein the determining a first value of the parameter for generating a range comprises:

determining a second value of the parameter for each child node associated with the node at the highest depth of the tree based on the first point and bounding simplex for each child node associated with the node at the highest depth of the tree, wherein the bounding simplex for each child node associated with the node at the highest depth of the tree is contained within a second range determined for each child node associated with the node at the highest depth of the tree, and wherein the second ranges are determined based on the second value of the parameter for each child node associated with the node at the highest depth of the tree and the first point.

10. The computer system of claim 9 , wherein the operations further comprise:

determining a third value of the parameter for each child node associated with the node at the highest depth of the tree based on the first point and bounding simplex for each child node associated with the node at the highest depth of the tree, wherein the bounding simplex for each child node associated with the node at the highest depth of the tree is intersected with a third range determined for each child node associated with the node at the node at the highest depth of the tree, and wherein the third ranges are determined based on the third value of parameter for each child node associated with the node at the highest depth of the tree and the first point;

determining a fourth value of the parameter by identifying a maximum from the third values for all child nodes associated with the node at the highest depth of the tree; and

determining the first value for the parameter by identifying a minimal value of the existing value for the parameter, the second values, the third values, and the fourth value.

11. The computer system of claim 10 , wherein the tree is a partition tree.

12. The computer system of claim 10 , wherein the d-dimensional space comprises a two dimension space or a three dimension space.

13. The computer system of claim 8 , wherein each node in the tree represents a geographical location.

14. The computer system of claim 8 , wherein the identification of the leaf in the tree is used in combination with homomorphic encryption.

15. A computer program product for identifying a leaf in a tree, comprising:

a set of one or more computer-readable storage media;

program instructions stored in the set of one or more storage media to perform operations comprising:

receiving, by a processor set, a first point representing one or more values within a d-dimensional space for identifying the leaf in the tree, wherein the tree is generated based on a set of values within the d-dimensional space, and wherein each node in the tree represents a subset of points with a bounding simplex within the d-dimensional space;

generating, by the processor set, a parameter for identifying the leaf in the tree, wherein the leaf in the tree represents a second point representing one or more values that is nearest to the first point;

identifying, by the processor set, a node at highest depth of the tree, wherein the node at the highest depth of the tree is associated with a number of child nodes;

determining, by the processor set, a first value of the parameter for generating a range, wherein the first value is determined based on existing value for the parameter and bounding simplexes for all child nodes associated with the node at the highest depth of the tree;

selecting, by the processor set, a subset of child nodes from the number of child nodes associated with the node at the highest depth of the tree based on the range, wherein the subset of child nodes represents points for values within a subrange that overlaps with the range;

setting, by the processor set, the subset of child nodes as the node at the highest depth of the tree; and

traversing, by the processor set, the tree by repeating the identifying step, the determining step, the selecting step, and setting steps until the leaf in the tree is identified.

16. The computer program product of claim 15 , wherein the determining, by the processor set, a first value of the parameter for generating a range comprises:

determining, by the processor set, a second value of the parameter for each child node associated with the node at the highest depth of the tree based on the first point and bounding simplex for each child node associated with the node at the highest depth of the tree, wherein the bounding simplex for each child node associated with the node at the highest depth of the tree is contained within a second range determined for each child node associated with the node at the highest depth of the tree, and wherein the second ranges are determined based on the second value of the parameter for each child node associated with the node at the highest depth of the tree and the first point.

17. The computer program product of claim 16 , wherein the operations further comprise:

determining, by the processor set, a third value of the parameter for each child node associated with the node at the highest depth of the tree based on the first point and bounding simplex for each child node associated with the node at the highest depth of the tree, wherein the bounding simplex for each child node associated with the node at the highest depth of the tree is intersected with a third range determined for each child node associated with the node at the highest depth of the tree, and wherein the third ranges are determined based on the third value of the parameter for each child node associated with the node at the highest depth of the tree and the first point;

determining, by the processor set, a fourth value of the parameter by identifying a maximum from the third values for all child nodes associated with the node at the highest depth of the tree; and

determining, by the processor set, the first value for the parameter by identifying a minimal value of the existing value for the parameter, the second values, the third values, and the fourth value.

18. The computer program product of claim 15 , wherein the tree is a partition tree.

19. The computer program product of claim 15 , wherein the d-dimensional space comprises a two dimension space or a three dimension space.

20. The computer program product of claim 15 , wherein the identification of the leaf in the tree is used in combination with homomorphic encryption.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2024
From: SHAUL, HAYIM; MOSHKOWICH, GUY; KUSHNIR, EYAL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 068815/0922 →
References Cited (24)
US 8510302B2 · Sweeney · 2013 [cited by examiner]
US 9195939B1 · Goyal · 2015 [cited by examiner]
US 10275480B1 · Evenson · 2019 [cited by examiner]
US 10902062B1 · Guha · 2021 [cited by examiner]
US 11294960B1 · Zuber · 2022 [cited by examiner]
US 11502820B2 · Ratha · 2022 [cited by examiner]
US 12015550B1 · Mishra · 2024 [cited by examiner]
US 12123291B1 · Tian · 2024 [cited by examiner]
US 12129752B1 · Tian · 2024 [cited by examiner]
US 20030018623A1 · Aggarwal · 2003 [cited by examiner]
US 20040073475A1 · Tupper · 2004 [cited by examiner]
US 20100241662A1 · Keith, Jr. · 2010 [cited by examiner]
US 20130317878A1 · Mansoor · 2013 [cited by examiner]
US 20170213127A1 · Duncan · 2017 [cited by examiner]
US 20170235848A1 · Van Dusen · 2017 [cited by examiner]
US 20190035138A1 · Fuetterling · 2019 [cited by examiner]
US 20230020080A1 · Kishore · 2023 [cited by examiner]
US 20240297777A1 · Shaul · 2024 [cited by examiner]
CN 116266180A · 2023 [cited by applicant]
CN 117828660A · 2024 [cited by applicant]
EP 3264669A1 · 2018 [cited by applicant]
Cheon et al., “Tree-based Lookup Table on Batched Encrypted Queries using Homomorphic Encryption,” Cryptology ePrint Archive, Jan. 23, 2024, pp. 1-12, iacr.org, accessed Aug. 23, 2024, https://eprint.iacr.org/2024/087. [cited by applicant]
Kushnir et al., “Secure Range-Searching Using Copy-And-Recurse,” Cryptology ePrint Archive, Apr. 8, 2024, pp. 1-19, iacr.org, accessed Aug. 23, 2024, https://eprint.iacr.org/2023/983. [cited by applicant]
Megiddo, “Applying Parallel Computation Algorithms in the Design of Serial Algorithms,” Journal of the ACM (JACM), Oct. 1, 1983, pp. 852-865, acm.org, accessed Aug. 23, 2024, https://doi.org/10.1145/2157.322410. [cited by applicant]