Patent ID: 7907723

Claim:
An encryption and decryption method for enabling secure communication from a sending party to a receiving party of a message M, using sending party and receiving party computerized devices comprising means for storing and processing data, comprising: the sending party breaking said message into k message blocks M 1 , M 2 , . . . , M k to be encrypted wherein said k message blocks M i , for 1≦i≦k, may be, but are not necessarily, the same size, wherein each message block is treated as a vector of size b i over a non-commutative ring, and wherein each scalar element of said message block vector is a numerical representation of an element of said ring; establishing for each distinct message block size b i a corresponding non-maximal commutative family F(b i ) of left-invertible square matrices of size b i ×b i over said ring, wherein each scalar element of each such matrix is a numerical representation of an element of said ring; the sending party choosing as sending party encryption key, S i a matrix chosen from said commutative family F(b i ) of left-invertible square matrices, for encrypting said message block M i ; establishing sending party decryption key S i ′ being a left inverse matrix of S i , such that S i ′S i is the identity matrix; the receiving party independently choosing as receiving party encryption key, R i a matrix chosen from said commutative family F(b i ) of left-invertible square matrices for encrypting said message block M i ; establishing receiving party decryption key R i ′ being a left inverse matrix of R i , such that R i ′R i is the identity matrix; the sending party matrix multiplying one or more of the message blocks M i of M with its corresponding encryption matrix S i to produce a first encrypted message block S i M i ; the sending party electronically transmitting a message containing said encrypted message block S i M i to the receiving party; the receiving party receiving and matrix multiplying said encrypted message block S i M i with its corresponding encryption matrix R i to produce a second, superencrypted message block R i S i M i ; the receiving party electronically transmitting a message containing said superencrypted message block R i S i M i to the sending party; the sending party receiving and matrix multiplying said R i S i M i with its corresponding decryption matrix S i ′ to produce a third encrypted message block S i ′R i S i M i =R i M i , where said R i M i represents said message block M i encrypted solely using the receiving party's encryption key R i ; the electronically transmitting party sending a message containing said encrypted message block R i M i to the receiving party; and the receiving party receiving and matrix multiplying said R i M i with its corresponding decryption matrix R i ′ to produce a decrypted message block R i ′R i M i =M i , that is, to produce the original message block M i .