IP Library Granted Patent US 10,198,399
Granted Patent B1
US 10,198,399 · App. 15/913,864 · Granted Feb 5, 2019

Cryptographically secure machine learning

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 10,198,399
App. No.
15/913,864
Granted
Feb 5, 2019
Kind
B1
Abstract

Embodiments are directed towards classifying data. A machine learning (ML) engine may select an ML model that may employ a cryptographic multi-party computation (MPC) protocol based on model preferences, including a parameter model, provided by a client. A randomness engine may be employed to provide random values and other random values based on the MPC protocol such that the random values may be provided to the client and the other random values may be provided to an answer engine. Input values that correspond to fields in the parameter model may be provided by the client such that the input values may be based on the MPC protocol and the random values. The answer engine may be employed to provide partial results to the question based on the ML model, the input values, and the MPC protocol that may be provided to the client.

Claims (120)

1. A method for classifying data over a network using one or more processors, included in one or more network computers, to perform actions, comprising:

employing a machine learning (ML) engine to perform actions, including:

selecting an ML model that employs a cryptographic multi-party computation (MPC) protocol based on model preferences provided by a client, wherein the provided model preferences include both a question and a parameter model, and wherein the parameter model includes one or more model objects of the ML model, and wherein the ML engine uses the parameter model to define one or more input values that are compatible with the ML model;

employing a randomness engine to perform actions, including:

providing one or more random values and one or more other random values based on the cryptographic MPC protocol, wherein the one or more random values are provided to the client and the one or more other random values are provided to an answer engine;

distributing a first instance of the randomness engine and a first random information datastore to the client, wherein the one or more random values are provided from the first random information datastore; and

distributing a second instance of the randomness engine and a second random information datastore to the answer engine, wherein the one or more other random values are provided from the second random information datastore; and

employing the answer engine to perform further actions, including:

synchronizing the first random information datastore and second random information datastore to maintain a correlation between the one or more random values and the one or more other random values;

receiving, from the client, a data model having model objects that include the one or more input values that correspond to one or more fields of the one or more model objects in the parameter model, wherein the one or more input values are based on the cryptographic MPC protocol and the one or more random values;

determining compliance of the data model with one or more requirements of the ML model based on a comparison of the data model to the parameter model;

in response to the data model complying with the one or more requirements of the ML model, providing one or more partial results to the question based on the ML model, the one or more input values, and the cryptographic MPC protocol; and

providing the one or more partial results to the client, wherein a ML client engine provides one or more answers to the question based on the one or more partial results.

2. The method of claim 1 , wherein employing the randomness engine to perform further actions, includes:

generating randomness information that includes the one or more random values and the one or more other random values based on the cryptographic MPC protocol;

storing the randomness information in a persistent data store;

discarding the one or more random values from the persistent datastore as they are provided to the client; and

discarding the one or more other random values from the persistent datastore as they are provided to the answer engine.

3. The method of claim 1 , wherein the one or more random values and the one or more other random values are correlated with each other based on the cryptographic MPC protocol.

4. The method of claim 1 , wherein the selecting the ML model, further comprises:

comparing the parameter model with one or more other parameter models that are associated with one or more ML models, wherein the one or more ML models remain encrypted during the comparison; and

selecting the ML model from the one or more ML models based on the comparison.

5. The method of claim 1 , wherein providing the one or more partial results to the question, further comprises:

evaluating nodes of one or more decision trees included in the ML model by computing secure partial results that correspond to each node of the one or more decision trees;

generating a polynomial from the secure partial results that represents a path through the one or more decision trees; and

providing the polynomial to the client and the answer engine, wherein the terms of the polynomial are secured using the cryptographic MPC protocol.

6. The method of claim 1 , wherein providing the one or more partial results to the question, further comprises, evaluating one or more of, one or more decision tree models, one or more random forest models, one or more heuristics, or one or more filters, that are included in the selected ML model.

7. The method of claim 6 , wherein the one or more input values are secured using oblivious input selection.

8. A system for classifying data over a network, comprising:

a network computer, comprising:

a memory that stores at least instructions; and

one or more processor devices that execute instructions that perform actions, including:

employing a machine learning (ML) engine to perform actions, including:

selecting an ML model that employs a cryptographic multi-party computation (MPC) protocol based on model preferences provided by a client, wherein the provided model preferences include both a question and a parameter model, and wherein the parameter model includes one or more model objects of the ML model, and wherein the ML engine uses the parameter model to define one or more input values that are compatible with the ML model;

employing a randomness engine to perform actions, including:

providing one or more random values and one or more other random values based on the cryptographic MPC protocol, wherein the one or more random values are provided to the client and the one or more other random values are provided to an answer engine;

distributing a first instance of the randomness engine and a first random information datastore to the client, wherein the one or more random values are provided from the first random information datastore; and

distributing a second instance of the randomness engine and a second random information datastore to the answer engine, wherein the one or more other random values are provided from the second random information datastore; and

employing the answer engine to perform further actions, including:

synchronizing the first random information datastore and second random information datastore to maintain a correlation between the one or more random values and the one or more other random values;

receiving, from the client, a data model having model objects that include the one or more input values that correspond to one or more fields of the one or more model objects in the parameter model, wherein the one or more input values are based on the cryptographic MPC protocol and the one or more random values;

determining compliance of the data model with one or more requirements of the ML model based on a comparison of the data model to the parameter model;

in response to the data model complying with the one or more requirements of the ML model, providing one or more partial results to the question based on the ML model, the one or more input values, and the cryptographic MPC protocol; and

providing the one or more partial results to the client; and

a client computer, comprising:

a client computer memory that stores at least instructions; and

one or more processor devices that execute instructions that perform actions, including:

providing the question and the parameter model; and

employing a ML client engine to provide one or more answers to the question based on the one or more partial results.

9. The system of claim 8 , wherein employing the randomness engine to perform further actions, includes:

generating randomness information that includes the one or more random values and the one or more other random values based on the cryptographic MPC protocol;

storing the randomness information in a persistent data store;

discarding the one or more random values from the persistent datastore as they are provided to the client; and

discarding the one or more other random values from the persistent datastore as they are provided to the answer engine.

10. The system of claim 8 , wherein the one or more random values and the one or more other random values are correlated with each other based on the cryptographic MPC protocol.

11. The system of claim 8 , wherein the selecting the ML model, further comprises:

comparing the parameter model with one or more other parameter models that are associated with one or more ML models, wherein the one or more ML models remain encrypted during the comparison; and

selecting the ML model from the one or more ML models based on the comparison.

12. The system of claim 8 , wherein providing the one or more partial results to the question, further comprises:

evaluating nodes of one or more decision trees included in the ML model by computing secure partial results that correspond to each node of the one or more decision trees;

generating a polynomial from the secure partial results that represents a path through the one or more decision trees; and

providing the polynomial to the client and the answer engine, wherein the terms of the polynomial are secured using the cryptographic MPC protocol.

13. The system of claim 8 , wherein providing the one or more partial results to the question, further comprises, evaluating one or more of, one or more decision tree models, one or more random forest models, one or more heuristics, or one or more filters, that are included in the selected ML model.

14. The system of claim 8 , wherein the one or more input values are secured using oblivious input selection.

15. A processor readable non-transitory storage media that includes instructions for classifying data over a network, wherein execution of the instructions by one or more hardware processors performs actions, comprising:

employing a machine learning (ML) engine to perform actions, including:

selecting an ML model that employs a cryptographic multi-party computation (MPC) protocol based on model preferences provided by a client, wherein the provided model preferences include both a question and a parameter model, and wherein the parameter model includes one or more model objects of the ML model, and wherein the ML engine uses the parameter model to define one or more input values that are compatible with the ML model;

employing a randomness engine to perform actions, including:

providing one or more random values and one or more other random values based on the cryptographic MPC protocol, wherein the one or more random values are provided to the client and the one or more other random values are provided to an answer engine;

distributing a first instance of the randomness engine and a first random information datastore to the client, wherein the one or more random values are provided from the first random information datastore; and

distributing a second instance of the randomness engine and a second random information datastore to the answer engine, wherein the one or more other random values are provided from the second random information datastore; and

employing the answer engine to perform further actions, including:

receiving, from the client, a data model having model objects that include the one or more input values that correspond to one or more fields of the one or more model objects in the parameter model, wherein the one or more input values are based on the cryptographic MPC protocol and the one or more random values;

synchronizing the first random information datastore and second random information datastore to maintain a correlation between the one or more random values and the one or more other random values;

determining compliance of the data model with one or more requirements of the ML model based on a comparison of the data model to the parameter model;

in response to the data model complying with the one or more requirements of the ML model, providing one or more partial results to the question based on the ML model, the one or more input values, and the cryptographic MPC protocol; and

providing the one or more partial results to the client, wherein a ML client engine provides one or more answers to the question based on the one or more partial results.

16. The media of claim 15 , wherein employing the randomness engine to perform further actions, includes:

generating randomness information that includes the one or more random values and the one or more other random values based on the cryptographic MPC protocol;

storing the randomness information in a persistent data store;

discarding the one or more random values from the persistent datastore as they are provided to the client; and

discarding the one or more other random values from the persistent datastore as they are provided to the answer engine.

17. The media of claim 15 , wherein the one or more random values and the one or more other random values are correlated with each other based on the cryptographic MPC protocol.

18. The media of claim 15 , wherein the selecting the ML model, further comprises:

comparing the parameter model with one or more other parameter models that are associated with one or more ML models, wherein the one or more ML models remain encrypted during the comparison; and

selecting the ML model from the one or more ML models based on the comparison.

19. The media of claim 15 , wherein providing the one or more partial results to the question, further comprises:

evaluating nodes of one or more decision trees included in the ML model by computing secure partial results that correspond to each node of the one or more decision trees;

generating a polynomial from the secure partial results that represents a path through the one or more decision trees; and

providing the polynomial to the client and the answer engine, wherein the terms of the polynomial are secured using the cryptographic MPC protocol.

20. The media of claim 15 , wherein providing the one or more partial results to the question, further comprises, evaluating one or more of, one or more decision tree models, one or more random forest models, one or more heuristics, or one or more filters, that are included in the selected ML model.

21. A network computer for classifying data over a network, comprising:

a memory that stores at least instructions; and

one or more processor devices that execute instructions that perform actions, including:

employing a machine learning (ML) engine to perform actions, including:

selecting an ML model that employs a cryptographic multi-party computation (MPC) protocol based on model preferences provided by a client, wherein the provided model preferences include both a question and a parameter model, and wherein the parameter model includes one or more model objects of the ML model, and wherein the ML engine uses the parameter model to define one or more input values that are compatible with the ML model;

employing a randomness engine to perform actions, including:

providing one or more random values and one or more other random values based on the cryptographic MPC protocol, wherein the one or more random values are provided to the client and the one or more other random values are provided to an answer engine;

distributing a first Ma instance of the randomness engine and a first random information datastore to the client, wherein the one or more random values are provided from the first random information datastore; and

distributing a second instance of the randomness engine and a second random information datastore to the answer engine, wherein the one or more other random values are provided from the second random information datastore; and

employing the answer engine to perform further actions, including:

synchronizing the first random information datastore and second random information datastore to maintain a correlation between the one or more random values and the one or more other random values;

receiving, from the client, a data model having model objects that include the one or more input values that correspond to one or more fields of the one or more model objects in the parameter model, wherein the one or more input values are based on the cryptographic MPC protocol and the one or more random values;

determining compliance of the data model with one or more requirements of the ML model based on a comparison of the data model to the parameter model;

in response to the data model complying with the one or more requirements of the ML model, providing one or more partial results to the question based on the ML model, the one or more input values, and the cryptographic MPC protocol; and

providing the one or more partial results to the client, wherein a ML client engine provides one or more answers to the question based on the one or more partial results.

22. The network computer of claim 21 , wherein employing the randomness engine to perform further actions, includes:

generating randomness information that includes the one or more random values and the one or more other random values based on the cryptographic MPC protocol;

storing the randomness information in a persistent datastore;

discarding the one or more random values from the persistent datastore as they are provided to the client; and

discarding the one or more other random values from the persistent datastore as they are provided to the answer engine.

23. The network computer of claim 21 , wherein the one or more random values and the one or more other random values are correlated with each other based on the cryptographic MPC protocol.

24. The network computer of claim 21 , wherein the selecting the ML model, further comprises:

comparing the parameter model with one or more other parameter models that are associated with one or more ML models, wherein the one or more ML models remain encrypted during the comparison; and

selecting the ML model from the one or more ML models based on the comparison.

25. The network computer of claim 21 , wherein providing the one or more partial results to the question, further comprises:

evaluating nodes of one or more decision trees included in the ML model by computing secure partial results that correspond to each node of the one or more decision trees;

generating a polynomial from the secure partial results that represents a path through the one or more decision trees; and

providing the polynomial to the client and the answer engine, wherein the terms of the polynomial are secured using the cryptographic MPC protocol.

26. The network computer of claim 21 , wherein providing the one or more partial results to the question, further comprises, evaluating one or more of, one or more decision tree models, one or more random forest models, one or more heuristics, or one or more filters, that are included in the selected ML model.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2025
From: ADVATA INC.
To: R1 RCM INC.
Reel/Frame 071515/0680 →
SECURITY AGREEMENT Recorded Nov 20, 2024
From: R1 RCM INC.; IVINCI PARTNERS, LLC; ADVATA INC.; PAR8O, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS TRUSTEE AND COLLATERAL AGENT
Reel/Frame 069402/0739 →
RELEASE OF SECURITY INTERESTS Recorded Nov 20, 2024
From: BANK OF AMERICA, N.A., AS AGENT
To: INTERMEDIX OFFICE BASED, LLC; INTERMEDIX CORPORATION; R1 RCM INC.; SCHEDULING.COM, INC.; IVINCI PARTNERS, LLC; PAR8O, LLC; ADVATA INC.
Reel/Frame 069402/0845 →
NOTICE AND CONFIRMATION OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Nov 19, 2024
From: INVINCI PARTNERS, LLC; ADVATA INC.; PAR8O, LLC; R1 RCM INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 069390/0490 →
SECURITY AGREEMENT (SUPPLEMENT) Recorded Mar 15, 2024
From: ADVATA INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 066944/0699 →
CHANGE OF NAME Recorded Nov 21, 2023
From: KENSCI INC.
To: ADVATA INC.
Reel/Frame 065660/0009 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2018
From: FRITCHMAN, KYLE JOSIAH; HUGHES, TYLER JOHN; TEREDESAI, ANKUR; DE COCK, MARTINE IVONNE LEO; NASCIMENTO, ANDERSON
To: KENSCI INC.
Reel/Frame 045126/0126 →
Cited By (9)
US 12,190,254 US 12,212,651 US 12,241,753 US 12,341,758 US 12,386,918 US 12,388,799 US 12,450,959 US 12,462,165 US 12,566,982