IP Library › Granted Patent US 11,784,826
Granted Patent B2
US 11,784,826 · App. 17/784,696 · Granted Oct 10, 2023

System, method, and computer program product for secure real-time n-party computation

Inventors: Rohit Sinha (Bokaro Steel, IN); Ranjit Kumar Kumaresan (Sunnyvale, CA); Sivanarayana Gaddam (Santa Clara, CA); Mihai Christodorescu (Belmont, CA); Srinivasan Raghuraman (Cambridge, MA)
Assignee: Visa International Service Association
H04L9/3247H04L9/50H04L2209/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 11,784,826
App. No.
17/784,696
Granted
Oct 10, 2023
Kind
B2
Abstract

Described are a system, method, and computer program product for secure real-time n-party computation. The method includes communicating, to a trusted execution environment (TEE), a first computation input and a first portion of a one-time key. The method also includes receiving, from the TEE, an encrypted output of a computation based on the first computation input and a second computation input communicated to the TEE by a second computing device. The method further includes communicating the encrypted output to the second computing device and receiving a digital signature indicating that the second computing device received the encrypted output. The method further includes communicating the first portion of the one-time key to the second computing device and, in response to not receiving the second portion of the one-time key from the second computing device, executing a fallback computation process using the TEE and a shared ledger to determine the computation.

Claims (57)

1. A system for multi-party computation between a first party and a second party, the system comprising:

a first computer device associated with the first party; and

a trusted execution environment (TEE) associated with the first computer device, wherein the first computer device is programmed or configured to:

communicate, to the TEE, a first computation input and a first portion of a one-time key;

receive, from the TEE, an encrypted output of a computation based on the first computation input and a second computation input, wherein the second computation input and a second portion of the one-time key are communicated to the TEE by a second computer device associated with the second party, and wherein the encrypted output is encrypted by the TEE with the one-time key;

communicate the encrypted output to the second computer device;

receive a digital signature from the second computer device indicating that the second computer device received the encrypted output;

communicate the first portion of the one-time key to the second computer device; and

(i) in response to receiving the second portion of the one-time key from the second computer device, determine the one-time key from the first portion of the one-time key and the second portion of the one-time key, and determine the computation by decrypting the encrypted output with the one-time key; or

(ii) in response to not receiving the second portion of the one-time key from the second computer device, execute a fallback computation process using the TEE and a ledger accessible to both the first computer device and the second computer device to determine the computation.

2. The system of claim 1 , wherein the first computer device is further programmed or configured to, in the fallback computation process:

publish, to the ledger, the first portion of the one-time key and the digital signature received from the second computer device;

receive a proof of publication from the ledger;

input the proof of publication to the TEE;

receive the one-time key from the TEE; and

determine the computation by decrypting the encrypted output with the one-time key.

3. The system of claim 2 , wherein the first portion of the one-time key that is published to the ledger by the first computer device is encrypted with a public key associated with the second computer device.

4. The system of claim 1 , wherein the one-time key is generated by the TEE from the first portion of the one-time key, the second portion of the one-time key, and a unique nonce associated with an instance of the computation.

5. The system of claim 4 , wherein the first portion of the one-time key is generated from a private key associated with the first computer device, and wherein the second portion of the one-time key is generated from a private key associated with the second computer device.

6. The system of claim 5 , wherein the first portion of the one-time key and the second portion of the one-time key are communicated to the TEE in a first time period and are configured to generate a plurality of one-time keys over successive instances of multi-party computation in subsequent time periods.

7. The system of claim 1 , wherein the ledger comprises an append-only blockchain and is configured to be accessible only by computer devices that contribute to the computation.

8. A computer program product for multi-party computation between a first party and a second party, the computer program product being stored on a first computer device associated with the first party and comprising at least one non-transitory computer-readable medium including program instructions that, when executed by at least one processor of the first computer device, cause the at least one processor to:

communicate, to a trusted execution environment (TEE) associated with the first computer device, a first computation input and a first portion of a one-time key;

receive, from the TEE, an encrypted output of a computation based on the first computation input and a second computation input, wherein the second computation input and a second portion of the one-time key are communicated to the TEE by a second computer device associated with the second party, and wherein the encrypted output is encrypted by the TEE with the one-time key;

communicate the encrypted output to the second computer device;

receive a digital signature from the second computer device indicating that the second computer device received the encrypted output;

communicate the first portion of the one-time key to the second computer device; and

(i) in response to receiving the second portion of the one-time key from the second computer device, determine the one-time key from the first portion of the one-time key and the second portion of the one-time key, and determine the computation by decrypting the encrypted output with the one-time key; or

(ii) in response to not receiving the second portion of the one-time key from the second computer device, execute a fallback computation process using the TEE and a ledger accessible to both the first computer device and the second computer device to determine the computation.

9. The computer program product of claim 8 , wherein the program instructions further cause the at least one processor to, in the fallback computation process:

publish, to the ledger, the first portion of the one-time key and the digital signature received from the second computer device;

receive a proof of publication from the ledger;

input the proof of publication to the TEE;

receive the one-time key from the TEE; and

determine the computation by decrypting the encrypted output with the one-time key.

10. The computer program product of claim 9 , wherein the first portion of the one-time key that is published to the ledger by the at least one processor is encrypted with a public key associated with the second computer device.

11. The computer program product of claim 8 , wherein the one-time key is generated by the TEE from the first portion of the one-time key, the second portion of the one-time key, and a unique nonce associated with an instance of the computation.

12. The computer program product of claim 11 , wherein the first portion of the one-time key is generated from a private key associated with the first computer device, and wherein the second portion of the one-time key is generated from a private key associated with the second computer device.

13. The computer program product of claim 12 , wherein the first portion of the one-time key and the second portion of the one-time key are communicated to the TEE in a first time period and are configured to generate a plurality of one-time keys over successive instances of multi-party computation in subsequent time periods.

14. The computer program product of claim 8 , wherein the ledger comprises an append-only blockchain and is configured to be accessible only by computer devices that contribute to the computation.

15. A computer-implemented method for multi-party computation between a first party and a second party, the method comprising:

communicating, with at least one processor of a first computer device associated with the first party, to a trusted execution environment (TEE) associated with the first computer device, a first computation input and a first portion of a one-time key;

receiving, with at least one processor of the first computer device, from the TEE, an encrypted output of a computation based on the first computation input and a second computation input, wherein the second computation input and a second portion of the one-time key are communicated to the TEE by a second computer device associated with the second party, and wherein the encrypted output is encrypted by the TEE with the one-time key;

communicating, with at least one processor of the first computer device, the encrypted output to the second computer device;

receiving, with at least one processor of the first computer device, a digital signature from the second computer device indicating that the second computer device received the encrypted output;

communicating, with at least one processor of the first computer device, the first portion of the one-time key to the second computer device; and

in response to not receiving the second portion of the one-time key from the second computer device, executing, with at least one processor of the first computer device, a fallback computation process using the TEE and a ledger accessible to both the first computer device and the second computer device to determine the computation.

16. The method of claim 15 , wherein the fallback computation process comprises:

publishing, with at least one processor of the first computer device, to the ledger, the first portion of the one-time key and the digital signature received from the second computer device;

receiving, with at least one processor of the first computer device, a proof of publication from the ledger;

inputting, with at least one processor of the first computer device, the proof of publication to the TEE;

receiving, with at least one processor of the first computer device, the one-time key from the TEE; and

determining, with at least one processor of the first computer device, the computation by decrypting the encrypted output with the one-time key.

17. The method of claim 16 , wherein the first portion of the one-time key that is published to the ledger is encrypted with a public key associated with the second computer device.

18. The method of claim 15 , wherein the one-time key is generated by the TEE from the first portion of the one-time key, the second portion of the one-time key, and a unique nonce associated with an instance of the computation.

19. The method of claim 18 , wherein the first portion of the one-time key is generated from a private key associated with the first computer device, and wherein the second portion of the one-time key is generated from a private key associated with the second computer device.

20. The method of claim 19 , wherein the first portion of the one-time key and the second portion of the one-time key are communicated to the TEE in a first time period and are configured to generate a plurality of one-time keys over successive instances of multi-party computation in subsequent time periods.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2022
From: SINHA, ROHIT; KUMARESAN, RANJIT KUMAR; GADDAM, SIVANARAYANA; CHRISTODORESCU, MIHAI
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 060177/0090 →
Continuity (2)
Provisional Application 63124159 · Dec 11, 2020
Related Publication 20230133311A1 · May 4, 2023
Cited By (1)
US 12,200,113