System and method for cryptographic key exchange using matrices
AssigneeAuthernative, Inc.
InventorsEdward M. Barton, Len L. Mizrah
Life of this patent
Estimating the term…
Abstract
Two parties can establish a cryptographic key using a matrix based key exchange protocol, for secure communications without any prior distribution of secret keys or other secret data, and without revealing said key to any third party who may have access to all of the transmissions between them. A common matrix M, shared in advance, is multiplied by a random matrix K on the sending side, and a different random matrix N on the receiving side. The matrix product KM is sent from the sending side to the receiving side, and the matrix product MN is sent from the receiving side to the sending side. Both sides produce the common matrix product KMN, and use it for producing a symmetric key for encrypted communications.
Claims54
A method for enabling a first party, which can be a sending or receiving party, and a second party, which can be a receiving or sending party, to develop at least one cryptographic key as the basis for secure communication of at least part of a message Y, using computerized devices for storing, processing, transmitting and receiving data, comprising:
- selecting a singular matrix M of size m×m;
- the first party choosing a random matrix K;
- the first party left multiplying said matrix M by said matrix K and transmitting the matrix product KM to the second party;
- the second party choosing a random matrix N;
- the second party right multiplying said matrix M by said matrix N and transmitting the matrix product MN to the first party;
- the first party left multiplying the received matrix product MN by the matrix K to produce the matrix product K(MN);
- and the second party right multiplying the received matrix product KM by the matrix N to produce the matrix product (KM)N, which is equal to the matrix product K(MN) because of the associative property of matrix multiplication;
- wherein:
- the first and second parties have thereby both developed the matrix product K(MN)=(KM)N;
- and at least part of said matrix product K(MN)=(KM)N being usable to produce at least one cryptographic key which can be used for encrypting and decrypting at least part of said message Y.
A system for enabling a first party, which can be a sending or receiving party, and a second party, which can be a receiving or sending party, to develop at least one common cryptographic key as the basis for secure communication of at least part of a message Y, comprising first party and second party computerized devices with associated data storage, processing, transmitting and receiving capacity, configured for:
- selecting a singular matrix M of size m×m;
- the first party choosing a random matrix K;
- the first party left multiplying said matrix M by said matrix K and transmitting the matrix product KM to the second party;
- the second party choosing a random matrix N;
- the second party right multiplying said matrix M by said matrix N and transmitting the matrix product MN to the first party;
- the first party left multiplying the received matrix product MN by the matrix K to produce the matrix product K(MN);
- and the second party right multiplying the received matrix product KM by the matrix N to produce the matrix product (KM)N, which is equal to the matrix product K(MN) because of the associative property of matrix multiplication;
- wherein:
- the first and second parties have thereby both developed the matrix product K(MN)=(KM)N;
- and the at least part of said matrix product K(MN)=(KM)N being usable to produce at least one cryptographic key which can be used for encrypting and decrypting at least part of said message Y.
A method for developing at least one cryptographic key as the basis for secure communication of at least part of a message, using computerized devices for storing, processing, transmitting and receiving data, comprising:
- storing a singular matrix M of size m×m;
- receiving from a sending party a matrix product KM, which results from a multiplication in a predetermined order selected from left side multiplication and right side multiplication of the singular matrix M by a random matrix K of size k×m or m×k;
- multiplying the singular matrix M by a random matrix N of size m×n or n×m to produce a matrix product MN using an opposite order selected from left side multiplication and right side multiplication, and transmitting the matrix product MN to the sending party;
- multiplying using said opposite order the received matrix product KM by the matrix N to produce a matrix product (KM)N, which is equal, because of the associative property, to the matrix product K(MN) which results from multiplication in the first predetermined order of the matrix product MN by the matrix K;
- using at least part of the matrix product (KM)N to produce a cryptographic key;
- receiving a message from the sending party, at least part of which is encrypted using the cryptographic key;
- and
- decrypting the part of the message using the cryptographic key.
A method for developing at least one, mutually authenticated, common cryptographic key as the basis for secure communication of at least part of a message, using computerized devices for storing, processing, transmitting and receiving data, comprising:
- storing a singular matrix M of size m×m;
- multiplying the singular matrix M by a random matrix K of size k×m or m×k using a predetermined order selected from left side multiplication and right side multiplication, and transmitting the matrix product KM to a receiving party;
- receiving from the receiving party a matrix product MN, which results from multiplication in an opposite order selected from left side multiplication and right side multiplication of the singular matrix M by a random matrix N of size m×n or n×m;
- multiplying using the predetermined order the received matrix product MN by the matrix K to produce a matrix product K(MN), which is equal, because of the associative property, to the matrix product (KM)N which results from multiplication in said opposite order of the matrix product (KM) by the matrix N;
- using at least part of the matrix product K(MN) to produce a cryptographic key;
- and
- encrypting at least part of a message using the cryptographic key to produce an encrypted message, and sending the encrypted message to the receiving party.
An apparatus for developing at least one, mutually authenticated, common cryptographic key as the basis for secure communication of at least part of a message, comprising:
- a processor arranged to execute logic processes, and including memory, a singular matrix M of size m×m stored in the memory, a communications port, and instructions stored in the memory executable by the processor, the logic processes including logic to
- receive from a sending party a matrix product KM, which results a multiplication in a predetermined order selected from left side multiplication and right side multiplication of the singular matrix M by a random matrix K of size k×m or m×k;
- multiply the singular matrix M by a random matrix N of size m×n or n×m to produce a matrix product MN using an opposite order selected from left side multiplication and right side multiplication, and transmit the matrix product MN to the sending party;
- multiply using said opposite order the received matrix product KM by the matrix N to produce a matrix product (KM)N, which is equal, because of the associative property, to the matrix product K(MN) which results from multiplication in the first predetermined order of the matrix product MN by the matrix K;
- use at least part of matrix product (KM)N to produce a cryptographic key;
- receive a message from the sending party, at least part of which is encrypted using the cryptographic key;
- and
- decrypt the part of the message using the cryptographic key.
An apparatus for developing at least one, mutually authenticated, common cryptographic key as the basis for secure communication of at least part of a message, comprising:
- a processor arranged to execute logic processes, and including memory, a singular matrix M of size m×m stored in the memory, a communications port, and instructions stored in the memory executable by the processor, the logic processes including logic to
- multiply the singular matrix M by a random matrix K of size k×m or m×k using a predetermined order selected from left side multiplication and right side, and transmit the matrix product KM to a receiving party;
- receive from the receiving party a matrix product MN, which results from multiplication in an opposite order selected from left side multiplication and right side multiplication of the singular matrix M by a random matrix N of size m×n or n×m;
- multiply using the predetermined order the received matrix product MN by the matrix K to produce a product K(MN), which is equal, because of the associative property, to the matrix product (KM)N which results from multiplication in said opposite order of the matrix product KM by the matrix N;
- use at least part of the matrix product K(MN) to produce a cryptographic key;
- and
- encrypt at least part of a message using the cryptographic key to produce an encrypted message, and send the encrypted message to the receiving party.
A non-transitory computer readable memory storing executable instructions, the executable instructions defining logic using a singular matrix M for developing at least one, mutually authenticated, common cryptographic key as the basis for secure communication of at least part of a message, and comprising logic to:
- receive from a sending party a matrix product KM, which results from a multiplication in a predetermined order selected from left side multiplication and right side multiplication of the singular matrix M by a random matrix K of size k×m or m×k;
- multiply the singular matrix M by a random matrix N of size m×n or n×m to produce a matrix product MN using an opposite order selected from left side multiplication and right side multiplication, and transmit the matrix product MN to the sending party;
- multiply using said opposite order the received matrix product KM by the matrix N to produce a matrix product (KM)N, which is equal, because of the associative property, to the matrix product K(MN) which results from multiplication in the first predetermined order of the matrix product MN by the matrix K;
- use at least part of the matrix product (KM)N to produce a cryptographic key;
- receive a message from the sending party, at least part of which is encrypted using the cryptographic key;
- and
- decrypt the part of the message using the cryptographic key.
A non-transitory computer readable memory storing executable instructions, the executable instructions defining logic using a singular matrix M for developing at least one, mutually authenticated, common cryptographic key as the basis for secure communication of at least part of a message, and comprising logic to:
- multiply the singular matrix M by a random matrix K of size k×m or m×k using a predetermined order selected from left side multiplication and right side, and transmit the matrix product KM to a receiving party;
- receive from the receiving party a matrix product MN, which results from multiplication in an opposite order selected from left side multiplication and right side multiplication of the singular matrix M by a random matrix N of size m×n or n×m;
- multiply using the predetermined order the received matrix product MN by the matrix K to produce a product K(MN), which is equal, because of the associative property, to the matrix product (KM)N which results from multiplication in said opposite order of the matrix product (KM) by the matrix N;
- use at least part of the product K(MN) to produce a cryptographic key;
- and
- encrypt at least part of a message using the cryptographic key to produce an encrypted message, and send the encrypted message to the receiving party.
Dependencies are inferred from the claim text.