Fast oblivious transfers
AssigneeVisa International Service Association
InventorsDaniel Siegfried Werner Masny, Peter Byerley Rindal
Life of this patent
Estimating the term…
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.
Claims20
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 r0 and a second value r1 from the receiver device;
- generating a first key k0 using the first value r0 and a first hash output by operating a hash function H on the second value r1 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 k0, wherein the hash function H corresponds to the cryptographic function;
- generating a second key k1 using the second value r1 and a second hash output by operating the hash function H on the first value r0 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 k1;
- 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.
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 r0 and a second value r1 from the receiver device;
- generating a first key k0 using the first value r0 and a first hash output by operating a hash function H on the second value r1 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 k0, wherein the hash function H corresponds to the cryptographic function;
- generating a second key k1 using the second value r1 and a second hash output by operating the hash function H on the first value r0 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 k1;
- 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.
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 r0 and a second value r1 from the receiver device;
- generating a first key k0 using the first value r0 and a first hash output by operating a hash function H on the second value r1 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 k0, wherein the hash function H corresponds to the cryptographic function;
- generating a second key k1 using the second value r1 and a second hash output by operating the hash function H on the first value r0 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 k1;
- 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.
Dependencies are inferred from the claim text.