Secure communications providing forward secrecy
AssigneeVisa International Service Association
InventorsEric Le Saint, Payman Mohassel
Life of this patent
Estimating the term…
Abstract
Embodiments of the invention can establish secure communications using a single non-traceable request message from a first computer and a single non-traceable response message from a second computer. Non-traceability may be provided through the use of blinding factors. The request and response messages can also include signatures that provide for non-repudiation. In addition, the encryption of the request and response message is not based on the static keys pairs, which are used for validation of the signatures. As such, perfect forward secrecy is maintained.
Claims20
A computer-implemented method for performing communications between a first computer and a second computer, the method comprising:
- storing, by the first computer, a first static private key of the first computer, a first static public key of the first computer corresponding to the first static private key, and a second static public key of the second computer;
- generating, by the first computer, a first blinding factor;
- determining, by the first computer, a first blinded public key using the first blinding factor;
- generating, by the first computer, a first-computer signature by signing the first blinded public key using the first static private key;
- determining, by the first computer, a first shared secret using the first blinding factor and the second static public key;
- encrypting, by the first computer using the first shared secret, first-computer data including the first static public key and the first-computer signature to obtain encrypted first-computer data;
- and
- sending, by the first computer to the second computer, a first message including the first blinded public key and the encrypted first-computer data.
A computer-implemented method for performing communications between a first computer and second computer, the method comprising:
- storing, by the second computer, a second static private key of the second computer, and a second static public key of the second computer corresponding to the second static private key;
- receiving, from the first computer by the second computer, a first message including a first blinded public key of the first computer and encrypted first-computer data of the first computer;
- determining, by the second computer, a first shared secret using the first blinded public key and the second static private key;
- decrypting, by the second computer using the first shared secret, the encrypted first-computer data to obtain first-computer data, the first-computer data including a first static public key and a first-computer signature of the first computer, wherein the first-computer signature is generated by the first computer signing the first blinded public key using a first static private key of the first computer, the first static private key corresponding to the first static public key;
- and
- validating, by the second computer, the first-computer signature using the first static public key of the first computer and the first blinded public key.
A computer system, comprising:
- one or more processor circuits;
- and
- a system memory coupled to the one or more processor circuits and storing computer-readable code that, when executed by the one or more processor circuits, performs operations including:
- storing a first static private key, a first static public key corresponding to the first static private key, and a second static public key of a second computer;
- generating a first blinding factor;
- determining a first blinded public key using the first blinding factor;
- generating a first-computer signature by signing the first blinded public key using the first static private key;
- determining a first shared secret using the first blinding factor and the second static public key;
- encrypting, using the first shared secret, data including the first static public key and the first-computer signature to obtain encrypted data;
- and
- sending, to the second computer, a first message including the first blinded public key and the encrypted data.
Dependencies are inferred from the claim text.