Patent ID: 8656484

Claim:
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 Z, using computerized devices for storing, processing, transmitting and receiving data, comprising: the first party enters a user identifier and a shared secret that is used to generate a singular matrix M of size mxm; 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 receiving party choosing a random matrix N; the second party using the identifier to look up the shared secret and generating said singular matrix M from the shared secret, 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 party 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 Z.