PUBLIC KEY ENCRYPTION SYSTEM USING ERROR CORRECTING CODES
First Claim
1. A method of encrypting data by constructing a digital cryptogram by means of a public key algorithm comprising:
- (a) constructing a first generator matrix of a binary code with dimension k with a pre-selected Galois field whose base field is 2, and a Goppa polynomial whose degree is such that the corresponding binary code provides at error correcting capability by utilising n−
k parity bits,(b) constructing a scrambled k×
n generator matrix by matrix multiplication, said scrambled generator matrix being the product of a non-singular matrix, said first generator matrix and a first permutation matrix,(c) constructing a reduced echelon k×
n generator matrix by randomly selecting k independent columns of the scrambled k×
n generator matrix according to a second permutation matrix,(d) converting a message to be sent into binary form and formatting it by appending dummy bits as necessary into an integral number r of binary message vectors of length k bits each,(e) scrambling each binary message vector using a k-bit to k-bit invertible scrambler,(f) encoding each scrambled binary message vector by adding rows of said reduced echelon generator matrix according to the is in each scrambled message vector to form r codeword vectors of length n bits,(g) adding to each codeword vector using modulo 2 arithmetic an error vector of length n bits, containing s bit errors where s≦
t, and(h) forming a cryptogram from the r said corrupted codeword vectors.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention provides improved security and improved throughput of the McEliece public key encryption system and reduces the public key size. Even though the public key is reduced, in some embodiments of the invention the ensemble of cryptograms produced is identical to the ensemble of cryptograms produced by the original system for a given Goppa code, and the same private key. It is possible using this invention that the encrypted message, the cryptogram is a truly random function, not a pseudo random function of the message so that even with the same message and the same public key, a different, unpredictable cryptogram is produced each time. Other embodiments of the invention use a shortened error correcting code allowing the length of the generated cryptogram to match exactly the available transmission or storage media such as is the case of RFID and packet based radio applications.
-
Citations
32 Claims
-
1. A method of encrypting data by constructing a digital cryptogram by means of a public key algorithm comprising:
-
(a) constructing a first generator matrix of a binary code with dimension k with a pre-selected Galois field whose base field is 2, and a Goppa polynomial whose degree is such that the corresponding binary code provides at error correcting capability by utilising n−
k parity bits,(b) constructing a scrambled k×
n generator matrix by matrix multiplication, said scrambled generator matrix being the product of a non-singular matrix, said first generator matrix and a first permutation matrix,(c) constructing a reduced echelon k×
n generator matrix by randomly selecting k independent columns of the scrambled k×
n generator matrix according to a second permutation matrix,(d) converting a message to be sent into binary form and formatting it by appending dummy bits as necessary into an integral number r of binary message vectors of length k bits each, (e) scrambling each binary message vector using a k-bit to k-bit invertible scrambler, (f) encoding each scrambled binary message vector by adding rows of said reduced echelon generator matrix according to the is in each scrambled message vector to form r codeword vectors of length n bits, (g) adding to each codeword vector using modulo 2 arithmetic an error vector of length n bits, containing s bit errors where s≦
t, and(h) forming a cryptogram from the r said corrupted codeword vectors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 24, 25)
-
-
19. Apparatus for encrypting data by constructing a digital cryptogram by means of a public key algorithm, comprising:
-
(a) a first constructor operable to construct a first generator matrix of a binary code with dimension k with a pre-selected Galois field whose base field is 2, and a Goppa polynomial whose degree is such that the corresponding binary code provides at error correcting capability by utilising n−
k parity bits,(b) a second constructor operable to construct a scrambled k×
n generator matrix by matrix multiplication, said scrambled generator matrix being the product of a non-singular matrix, said first generator matrix and a first permutation matrix,(c) a third constructor operable to construct a reduced echelon k×
n generator matrix by randomly selecting k independent columns of the scrambled k×
n generator matrix according to a second permutation matrix,(d) a convertor operable to convert a message to be sent into binary form and formatting it by appending dummy bits as necessary into an integral number r of binary message vectors of length k bits each, (e) a scrambler operable to scramble each binary message vector using a k-bit to k-bit invertible scrambler, (f) an encoder operable to encode each scrambled binary message vector by adding rows of said reduced echelon generator matrix according to the is in each scrambled message vector to form r codeword vectors of length n bits, (g) an adder operable to add to each codeword vector using modulo 2 arithmetic an error vector of length n bits, containing s bit errors where s≦
t, and(h) a former operable to form a cryptogram from the r said corrupted codeword vectors. - View Dependent Claims (20, 22, 23, 26, 27, 28, 29, 30, 31)
-
-
32. A non-transitory computer-readable storage medium storing computer-executable instructions that when executed perform the method of encrypting data by constructing a digital cryptogram by means of a public key algorithm, comprising:
-
(a) constructing a first generator matrix of a binary code with dimension k with a pre-selected Galois field whose base field is 2, and a Goppa polynomial whose degree is such that the corresponding binary code provides at error correcting capability by utilising n−
k parity bits,(b) constructing a scrambled k×
n generator matrix by matrix multiplication, said scrambled generator matrix being the product of a non-singular matrix, said first generator matrix and a first permutation matrix,(c) constructing a reduced echelon k×
n generator matrix by randomly selecting k independent columns of the scrambled k×
n generator matrix according to a second permutation matrix,(d) converting a message to be sent into binary form and formatting it by appending dummy bits as necessary into an integral number r of binary message vectors of length k bits each, (e) scrambling each binary message vector using a k-bit to k-bit invertible scrambler, (f) encoding each scrambled binary message vector by adding rows of said reduced echelon generator matrix according to the is in each scrambled message vector to form r codeword vectors of length n bits, (g) adding to each codeword vector using modulo 2 arithmetic an error vector of length n bits, containing s bit errors where s≦
t, and(h) forming a cryptogram from the r said corrupted codeword vectors.
-
Specification