US 11,784,826 B2
System, method, and computer program product for secure real-time n-party computation
Rohit Sinha, Bokaro Steel (IN); Ranjit Kumar Kumaresan, Sunnyvale, CA (US); Sivanarayana Gaddam, Santa Clara, CA (US); Mihai Christodorescu, Belmont, CA (US); and Srinivasan Raghuraman, Cambridge, MA (US)
Assigned to Visa International Service Association, San Francisco, CA (US)
Appl. No. 17/784,696
Filed by Visa International Service Association, San Francisco, CA (US)
PCT Filed Dec. 10, 2021, PCT No. PCT/US2021/062731
§ 371(c)(1), (2) Date Jun. 13, 2022,
PCT Pub. No. WO2022/125847, PCT Pub. Date Jun. 16, 2022.
Claims priority of provisional application 63/124,159, filed on Dec. 11, 2020.
Prior Publication US 2023/0133311 A1, May 4, 2023
Int. Cl. H04L 9/40 (2022.01); H04L 9/32 (2006.01); H04L 9/00 (2022.01)
CPC H04L 9/3247 (2013.01) [H04L 9/50 (2022.05); H04L 2209/46 (2013.01)] 20 Claims
OG exemplary drawing
 
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.