IP Library Granted Patent US 12,026,219
Granted Patent B2
US 12,026,219 · App. 16/828,216 · Granted Jul 2, 2024

Systems and methods for efficient computations on split data and split algorithms

Inventors: Greg Storm (Parkville, MO); Riddhiman Das (Lenexa, KS); Babak Poorebrahim Gilkalaye (Kansas City, MO)
Assignee: TRIPLEBLIND, INC.
G06F17/16G06N3/045G06N3/048G06Q20/1235G06Q30/0623H04L9/0625H04L63/0428G06F18/2113G06F18/24G06F18/24133G06N3/04G06N3/082G06N3/084G06Q20/401G06Q2220/00G06V10/454G06V10/764G06V10/82H04L9/008H04L9/085H04L2209/46
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,026,219
App. No.
16/828,216
Granted
Jul 2, 2024
Kind
B2
Abstract

The disclosed concepts achieve privacy for data operated on by an algorithm in an efficient manner A method includes receiving a first algorithm subset, receiving a second algorithm subset, generating two shares of a first mathematical set based on the first algorithm subset and transmitting the two shares of the first mathematical set from a first entity to a second entity. The method can include generating two shares of a second mathematical set based on the second algorithm subset, transmitting the two shares of the second mathematical set from the second entity to the first entity, receiving first split data subset of a full data set and receiving a second split data subset of the full data set. The system, based on these subsets of data, generates a first output subset and a second output subset which are combined for the final output.

Claims (58)

1. A method comprising:

converting an algorithm into a Boolean logic set to yield a Boolean algorithm;

dividing, at an algorithm provider physical computer system, the Boolean algorithm into a first algorithm subset and a second algorithm subset, the first algorithm subset representing a first portion of the Boolean algorithm that is less than the Boolean algorithm and the second algorithm subset representing a second portion of the Boolean algorithm that is less than the Boolean algorithm, wherein the second portion of the Boolean algorithm differs from the first portion of the Boolean algorithm;

receiving, via at least one processor of a first entity physical computer system, the first algorithm subset from the algorithm provider physical computer system;

receiving, via at least one processor of a second entity physical computer system, the second algorithm subset from the algorithm provider physical computer system, wherein the first entity physical computer system does not receive the second algorithm subset and the second entity physical computer system does not receive the first algorithm subset;

generating, via the first entity physical computer system, two shares of a first mathematical set based on a first parameter associated with the first algorithm subset;

transmitting a first share of the two shares of the first mathematical set from the first entity physical computer system to the second entity physical computer system;

generating, via the second entity physical computer system, two shares of a second mathematical set based on a second parameter associated with the second algorithm subset;

transmitting a first share of the two shares of the second mathematical set from the second entity physical computer system to the first entity physical computer system;

receiving, at the first entity physical computer system, a first split data subset of a full data set;

receiving, at the second entity physical computer system, a second split data subset of the full data set;

running, at the first entity physical computer system, the first algorithm subset on the first split data subset based on the two shares of the first mathematical set to yield a first output subset;

running, at the second entity physical computer system, the second algorithm subset on the second split data subset based on the two shares of the second mathematical set to yield a second output subset, wherein the running of the first algorithm subset on the first split data subset and the running of the second algorithm subset based on the second split data subset are performed as part of a secure multi-party computation in which only an AND operation and an XOR operation are performed and wherein the first entity physical computer system and the second entity physical computer system exchange interim processing results to yield the first output subset and the second output subset; and

combining the first output subset and the second output subset.

2. The method of claim 1 , further comprising dividing the first algorithm subset of the Boolean algorithm into a third algorithm subset and a fourth algorithm subset.

3. The method of claim 1 , wherein the first parameter comprises a first characteristic of the first algorithm subset and wherein the second parameter comprises a second characteristic of the second algorithm subset.

4. The method of claim 1 , wherein the first parameter relates to a nature of the first algorithm subset and wherein the second parameter relates to a nature of the second algorithm subset.

5. The method of claim 1 , wherein the first split data subset is generated randomly as part of the full data set.

6. The method of claim 1 , wherein the second split data subset is generated randomly as part of the full data set.

7. The method of claim 1 , wherein the first entity physical computer system and the second entity physical computer system comprise two physically separate computing devices.

8. The method of claim 1 , wherein each of the first mathematical set and the second mathematical set comprises a beaver set.

9. The method of claim 1 , wherein each of the first mathematical set and the second mathematical set comprises an N×M matrix.

10. The method of claim 1 , wherein the running of the first algorithm subset on the first split data subset based on the two shares of the first mathematical set to yield the first output subset and the running of the second algorithm subset on the second split data subset based on the two shares of the second mathematical set to yield the second output subset occur using a memoization technique.

11. A system comprising:

a physical computer system;

a physical computer system processor operating on the physical computer system;

a first entity computer system;

a first processor operating on the first entity computer system;

a second entity computer system;

a second processor operating on the second entity computer system; and

a physical computer system non-transitory computer-readable storage medium storing instructions which, when executed by the physical computer system processor, cause the physical computer system processor to perform operations comprising:

converting an algorithm into a Boolean logic set to yield a Boolean algorithm;

dividing the Boolean algorithm into a first algorithm subset and a second algorithm subset, the first algorithm subset representing a first portion of the Boolean algorithm that is less than the Boolean algorithm and the second algorithm subset representing a second portion of the Boolean algorithm that is less than the Boolean algorithm, wherein the second portion of the Boolean algorithm differs from the first portion of the Boolean algorithm;

transmitting, to the first entity computer system, the first algorithm subset; and

transmitting, to the second entity computer system, the second algorithm subset, wherein the first entity computer system does not receive the second algorithm subset and the second entity computer system does not receive the first algorithm subset;

a first entity computer-readable storage medium of the first entity computer system storing instructions which, when executed by the first processor, cause the first processor of the first entity computer system to perform operations comprising:

generating, two shares of a first mathematical set based on a first parameter associated with the first algorithm subset; and

transmitting at least a portion of the two shares of the first mathematical set from the first entity computer system to the second entity computer system;

a second entity computer-readable storage medium of the second entity computer system storing instructions which, when executed by the second processor of the second entity computer system, cause the second processor to perform operations comprising:

generating two shares of a second mathematical set based on a second parameter associated with the second algorithm subset; and

transmitting at least a portion of the two shares of the second mathematical set from the second entity computer system to the first entity computer system,

wherein the first entity computer-readable storage medium stores additional instructions which, when executed by the first processor of the first entity computer system, cause the first processor to perform operations comprising:

receiving a first split data subset of a full data set; and

running the first algorithm subset on the first split data subset based on the two shares of the first mathematical set to yield a first output subset,

wherein the second entity computer-readable storage medium stores additional instructions which, when executed by the second processor of the second entity computer system, cause the second processor to perform operations comprising:

receiving a second split data subset of the full data set; and

running the second algorithm subset on the second split data subset based on the two shares of the second mathematical set to yield a second output subset, wherein the running of the first algorithm subset on the first split data subset and the running of the second algorithm subset based on the second split data subset are performed as part of a secure multi-party computation in which only an AND operation and an XOR operation are performed and wherein the first entity computer system and the second entity computer system exchange interim processing results to yield the first output subset and the second output subset and,

wherein the physical computer system non-transitory computer-readable storage medium stores additional instructions which, when executed by the physical computer system processor, cause the physical computer system processor to perform operations comprising:

combining the first output subset and the second output subset.

12. The system of claim 11 , wherein the first algorithm subset of the Boolean algorithm is divided into a third algorithm subset and a fourth algorithm subset.

13. The system of claim 11 , wherein the first parameter comprises a first characteristic of the first algorithm subset and wherein the second parameter comprises a second characteristic of the second algorithm subset.

14. The system of claim 11 , wherein the first parameter relates to a nature of the first algorithm subset and wherein the second parameter relates to a nature of the second algorithm subset.

15. The system of claim 11 , wherein the first split data subset is generated randomly as part of the full data set.

16. The system of claim 11 , wherein the second split data subset is generated randomly as part of the full data set.

17. The system of claim 11 , wherein the first entity computer system and the second entity computer system comprise two physically separate computing devices.

18. The system of claim 11 , wherein each of the first mathematical set and the second mathematical set comprises a beaver set.

19. The system of claim 11 , wherein each of the first mathematical set and the second mathematical set comprises an N×M matrix.

20. The system of claim 11 , wherein the running of the first algorithm subset on the first split data subset based on the two shares of the first mathematical set to yield a first output subset and the running of the second algorithm subset on the second split data subset based on the two shares of the second mathematical set to yield a second output subset occur using a memoization technique.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2024
From: TRIPLEBLIND HOLDINGS, INC.
To: SELFIIE CORPORATION
Reel/Frame 068907/0556 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE SHOULD BE CORRECTED FROM TRIPLEBLIND HOLDING COMPANY TO TRIPLEBLIND HOLDINGS, INC. PREVIOUSLY RECORDED AT REEL: 67568 FRAME: 689. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 24, 2024
From: TRIPLEBLIND, INC.
To: TRIPLEBLIND HOLDINGS, INC.
Reel/Frame 068722/0100 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2024
From: TRIPLEBLIND, INC.
To: TRIPLEBLIND HOLDING COMPANY
Reel/Frame 067568/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2020
From: STORM, GREG; DAS, RIDDHIMAN; GILKALAYE, BABAK POOREBRAHIM
To: TRIPLEBLIND, INC.
Reel/Frame 052231/0308 →
Continuity (2)
Provisional Application 62948105 · Dec 13, 2019
Related Publication 20200220851A1 · Jul 9, 2020
Cited By (2)
US 12,242,946 US 12,488,222