IP Library › Granted Patent US 11,601,407
Granted Patent B2
US 11,601,407 · App. 17/510,235 · Granted Mar 7, 2023

Fast oblivious transfers

Inventors: Daniel Siegfried Werner Masny (Palo Alto, CA); Peter Byerley Rindal (San Francisco, CA)
Assignee: VISA INTERNATIONAL SERVICE ASSOCIATION
H04L63/0428H04L9/0819H04L9/0869H04L9/14H04L9/3073H04L9/3242
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,601,407
App. No.
17/510,235
Granted
Mar 7, 2023
Kind
B2
Abstract

Systems, methods, and computing device readable media for implementing fast oblivious transfer between two computing devices may improve data security and computational efficiency. The various aspects may use random oracles with or without key agreements to improve the security of oblivious transfer key exchanges. Some techniques may include public/private key strategies for oblivious transfer, while other techniques may use key agreements to achieve simultaneous and efficient cryptographic key exchange.

Claims (49)

1. A method for performing a privacy-preserving multi-party computation, the method comprising performing, by a sender device:

generating a first private key d using a random number generator;

generating a first public key c using a cryptographic function;

sending the first public key c to a receiver device;

receiving a first value r 0 and a second value r 1 from the receiver device;

generating a first key k 0 using the first value r 0 and a first hash output by operating a hash function H on the second value r 1 to obtain a first intermediate result, wherein the cryptographic function operates on the first intermediate result using the first private key d to generate the first key k 0 , wherein the hash function H corresponds to the cryptographic function;

generating a second key k 1 using the second value r 1 and a second hash output by operating the hash function H on the first value r 0 to obtain a second intermediate result, wherein the cryptographic function operates on the second intermediate result using the first private key d to generate the second key k 1 ;

sending an encrypted program to the receiver device, wherein the receiver device executes the encrypted program to generate an encrypted output value;

receiving the encrypted output value; and

decrypting the encrypted output value using a corresponding key.

2. The method of claim 1 , wherein generating the first public key c using the cryptographic function comprises: raising a value g to a power of d to produce the first public key c.

3. The method of claim 1 , wherein the first value r 0 is randomly generated by the receiver device using a random number generator.

4. The method of claim 3 , wherein the second value r 1 is generated by the receiver device, by subtracting a hash output of executing the hash function H on the first value r 0 from a value g raised to a power of a randomly generated number a.

5. The method of claim 1 , wherein the encrypted program is keyed to either the first value r 0 or the second value r 1 .

6. The method of claim 1 , wherein the first public key c raised to a power of a randomly generated number a is equal to one of the first key k 0 or the second key k 1 .

7. The method of claim 1 , wherein the hash function H is a random oracle.

8. A system for performing a privacy-preserving multi-party computation, the system comprising:

one or more processors; and

a non-transitory computer readable medium storing instructions that, when executed, cause the one or more processors to perform a method comprising:

generating a first private key d using a random number generator;

generating a first public key c using a cryptographic function;

sending the first public key c to a receiver device;

receiving a first value r 0 and a second value r 1 from the receiver device;

generating a first key k 0 using the first value r 0 and a first hash output by operating a hash function H on the second value r 1 to obtain a first intermediate result, wherein the cryptographic function operates on the first intermediate result using the first private key d to generate the first key k 0 , wherein the hash function H corresponds to the cryptographic function;

generating a second key k 1 using the second value r 1 and a second hash output by operating the hash function H on the first value r 0 to obtain a second intermediate result, wherein the cryptographic function operates on the second intermediate result using the first private key d to generate the second key k 1 ;

sending an encrypted program to the receiver device, wherein the receiver device executes the encrypted program to generate an encrypted output value;

receiving the encrypted output value; and

decrypting the encrypted output value using a corresponding key.

9. The system of claim 8 , wherein generating the first public key c using the cryptographic function comprises: raising a value g to a power of d to produce the first public key c.

10. The system of claim 8 , wherein the first value r 0 is randomly generated by the receiver device using a random number generator.

11. The system of claim 8 , wherein the second value r 1 is generated by the receiver device, by subtracting a hash output of executing the hash function H on the first value r 0 from a value g raised to a power of a randomly generated number a.

12. The system of claim 8 , wherein the encrypted program is keyed to either the first value r 0 or the second value r 1 .

13. The system of claim 8 , wherein the first public key c raised to a power of a randomly generated number a is equal to one of the first key k 0 or the second key k 1 .

14. The system of claim 8 , wherein the hash function H is a random oracle.

15. A non-transitory computer readable medium storing a plurality of instructions that, when executed, cause a computer system to perform a method comprising:

generating a first private key d using a random number generator;

generating a first public key c using a cryptographic function;

sending the first public key c to a receiver device;

receiving a first value r 0 and a second value r 1 from the receiver device;

generating a first key k 0 using the first value r 0 and a first hash output by operating a hash function H on the second value r 1 to obtain a first intermediate result, wherein the cryptographic function operates on the first intermediate result using the first private key d to generate the first key k 0 , wherein the hash function H corresponds to the cryptographic function;

generating a second key k 1 using the second value r 1 and a second hash output by operating the hash function H on the first value r 0 to obtain a second intermediate result, wherein the cryptographic function operates on the second intermediate result using the first private key d to generate the second key k 1 ;

sending an encrypted program to the receiver device, wherein the receiver device executes the encrypted program to generate an encrypted output value;

receiving the encrypted output value; and

decrypting the encrypted output value using a corresponding key.

16. The non-transitory computer readable medium of claim 15 , wherein generating the first public key c using the cryptographic function comprises: raising a value g to a power of d to produce the first public key c.

17. The non-transitory computer readable medium of claim 15 , wherein the first value r 0 is randomly generated by the receiver device using a random number generator.

18. The non-transitory computer readable medium of claim 15 , wherein the second value r 1 is generated by the receiver device, by subtracting a hash output of executing the hash function H on the first value r 0 from a value g raised to a power of a randomly generated number a.

19. The non-transitory computer readable medium of claim 15 , wherein the encrypted program is keyed to either the first value r 0 or the second value r 1 .

20. The non-transitory computer readable medium of claim 15 , wherein the first public key c raised to a power of a randomly generated number a is equal to one of the first key k 0 or the second key k 1 .

Continuity (3)
Division 16434338 · Jun 7, 2019
Provisional Application 62804435 · Feb 12, 2019
Related Publication 20220045994A1 · Feb 10, 2022