Cryptographic methods and devices for pseudo-random generation, encrypting data, and cryptographically hashing a message
AssigneeOridao
InventorNicolas Reffe
Life of this patent
Estimating the term…
Abstract
The invention relates to the general field of digital security and more particularly cryptography. In particular it proposes a device and a method of encrypting a sequence of data. The invention also relates to a cryptographic device (1) and a cryptographic method of generating a pseudo-random data sequence (13) and their favored use in the field of digital security, in particular for encrypting and decrypting data and for cryptographically hashing messages.
Claims28
1-27. (canceled)
A cryptographic method of generating a pseudo-random data sequence formed by a succession of values of a state vector of size k generated iteratively from an initial value of the state vector,
- wherein, during each iteration by a pseudo-random generator, to generate a current value of the state vector for that iteration:
- a predetermined number d of permutations of size k1 greater than or equal to k are applied successively by the pseudo-random generator to a provisional vector of size k1 including at least one first intermediate vector of size k formed from at least one section of a preceding value of the state vector generated in a preceding iteration, each permutation being associated with a bit of a permutation key of size d and chosen as a function at least of the value of that bit, said permutation key being the result of selecting d bits from the k bits of the first intermediate vector;
- the current value of the state vector being obtained from at least one section of a result vector of this application step.
A method of encrypting an input data sequence, in which, from an initial value of a state vector and a succession of input words forming said input sequence, there is generated iteratively a succession of values of the state vector and a succession of output words, each iteration being accomplished by a central processing unit and including:
- an encryption step in which a current output word for said iteration is calculated by a reversible application depending on a current input word and a preceding value of the state vector generated in a preceding iteration;
- and
- a pseudo-random generation step in which a current value of the state vector for said iteration is calculated by a non-invertible application depending at least on said preceding value of the state vector;
- and wherein:
- said reversible application includes at least first and second secret key functions, said secret keys being generated from at least one section of the preceding value of the state vector;
- and
- said non-invertible application further depends on a current intermediate value depending on the preceding value of the state vector and the current input word and being isolated from the input words, respectively from the output words, by means of said first secret key function, respectively said second secret key function.
A cryptographic module adapted to generate a vector of output bits from an input vector of input bits of size k1, including:
- means for forming a permutation key of predetermined size d by selecting d distinct bits from the input bits of the input vector;
- means for associating with each bit of the permutation key a permutation of size k1 chosen as a function at least of the value of that bit;
- and
- means for applying successively to the input vector the d permutations of size k1 associated with the d bits of the permutation key to obtain said vector of output bits.
An encryption device for encrypting an input data sequence adapted to generate iteratively from an initial value of a state vector and a succession of input words forming said input sequence, a succession of values of the state vector, and a succession of output words, said encryption device using in each iteration:
- encryption means adapted to calculate a current output word for said iteration by a reversible application depending on a current input word and a preceding value of the state vector generated in a preceding iteration;
- and
- a pseudo-random generator adapted to calculate a current value of the state vector for said iteration by a non-invertible application depending at least on the preceding value of the state vector;
- and wherein:
- said reversible application includes at least first and second secret key functions, the secret keys being generated from at least one section of the preceding value of the state vector;
- and
- said non-invertible application further depends on a current intermediate value depending on the preceding value of the state vector and the current input word and being isolated from the input words, respectively the output words, by means of said first secret key function, respectively said second secret key function.
Dependencies are inferred from the claim text.