WO2007093723A2 - Dispositif et procede de cryptographie pour generer des nombres pseudo-aleatoires - Google Patents

Dispositif et procede de cryptographie pour generer des nombres pseudo-aleatoires Download PDF

Info

Publication number
WO2007093723A2
WO2007093723A2 PCT/FR2007/050725 FR2007050725W WO2007093723A2 WO 2007093723 A2 WO2007093723 A2 WO 2007093723A2 FR 2007050725 W FR2007050725 W FR 2007050725W WO 2007093723 A2 WO2007093723 A2 WO 2007093723A2
Authority
WO
WIPO (PCT)
Prior art keywords
words
state
state block
cells
block
Prior art date
Application number
PCT/FR2007/050725
Other languages
English (en)
Other versions
WO2007093723A3 (fr
WO2007093723B1 (fr
Inventor
Matt Robshaw
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to US12/278,583 priority Critical patent/US20090022310A1/en
Priority to EP07731553A priority patent/EP1984813A2/fr
Publication of WO2007093723A2 publication Critical patent/WO2007093723A2/fr
Publication of WO2007093723A3 publication Critical patent/WO2007093723A3/fr
Publication of WO2007093723B1 publication Critical patent/WO2007093723B1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Definitions

  • the invention relates to the field of cryptography. More specifically, the invention relates to the use of a pseudo-random number generation scheme that can be implemented in devices having a low computing power.
  • the technique according to the invention can be applied to the implementation of a pseudo-random number generator (in English "pseudo-random number generato /" or PRNG) of low cost.
  • the first approach is to provide "proof of security” based on the relationship between a method to "break” a code and the ability to solve what is commonly considered a difficult problem.
  • the second most common approach depends on careful engineering of an electronic circuit comprising several logic gate components to achieve encryption according to the desired level of security.
  • the efficiency can be quantified by the speed of calculation or the number of logic gates necessary to produce the electronic circuit.
  • AES is notable for its close observation of Shannon's known principles and two important concepts for the implementation of cryptographic algorithms, namely "confusion” and “diffusion".
  • confusion corresponds to the idea of "doing difficult operations”
  • diiffusion corresponds to the idea of "propagating change or transformation” during a cryptographic calculation.
  • the AES algorithm takes as input a block of 16 bytes. Each byte is replaced by another byte according to a substitution box (S-box) from 8-bit to 8-bit. These bytes are then placed in a matrix where each element of the matrix is shifted cyclically to the left of a certain number of columns. Then, a matrix product is performed before adding each byte with a corresponding byte of an iteration key (round ke / in English) obtained by diversification of an encryption key.
  • S-box substitution box
  • the security of an AES type algorithm depends on an interaction between the S-box and a mixing (or broadcasting) operation of permuting bytes and structurally combining them.
  • the interaction between these bytes is implemented accurately to ensure and provide good resistance against differential cryptanalysis or linear cryptanalysis attacks.
  • we try to introduce cryptographic features in very limited computing environments such as for example in RFID chips.
  • the present invention relates to a cryptographic method for generating pseudo-random numbers comprising the following steps:
  • an AES-type algorithm uses an S-box having elements of the same size as the words of an internal state block matching a b-bit input word to another output word of b-bits, and the words are used one by one.
  • the replacement of words by substitution according to the box-S made by this kind of algorithm generates a confusion effect but no diffusion effect.
  • the substitution operation according to the reference table of the invention does not use the words one by one, but by grouping. Moreover, it will be noted that the use of a reference table or S-box having elements larger than the words of the internal state is completely contrary to the habits of the person skilled in the art.
  • the configuration according to the invention ensures both diffusion and confusion while saving computing time for the same level of security. This makes it possible to improve the level of security while reducing the number of logic gates ("equivalent gates" or GE in English) in the production of an electronic circuit implementing this encryption method.
  • the technique according to the invention can be easily applied for the implementation of a pseudo-random number generator of low cost and in a very restricted environment such as a cell or RFID chip.
  • this technique can be applied to a variety of cryptographic algorithms such as block-based, stream-based, hash, or message authentication codes.
  • the iterative generation of said succession of state blocks further comprises a step for mixing the words of said current state block according to a predetermined mixing transformation.
  • This mix transformation guarantees a better diffusion or propagation of the bits of a state block thus improving the security of the encryption and the quality of the pseudorandom numbers generated without making the calculation steps too heavy.
  • This predetermined mixture transformation may comprise a multiplication in the finite field GF (2 fc ) of a column of said current state block by a predefined matrix in said finite field.
  • This matrix multiplication is a linear transformation that is fairly simple to implement.
  • the iterative generation of said succession of state blocks further comprises a permutation between words on at least a part of said current state block.
  • the iterative generation of said succession of state blocks further comprises a modification of at least a part of a word located in a predetermined cell of the state table.
  • the method comprises a combination by adding in the finished body of each word of said initial state block with a corresponding word in an encryption key thus improving the security level.
  • a security similar to that of an AES type algorithm can be guaranteed with an optimal number of calculations.
  • said initial data are generated by a counter.
  • a counter e.g., one can easily generate pseudo-random numbers with a minimal number of operations.
  • the invention also relates to a cryptographic device for generating pseudo-random numbers, comprising:
  • subdivision means for subdividing initial data into a plurality of b-bit words defined in a finite field GF (2 fc ),
  • assignment means for assigning said words to cells of a state table to form an initial state block
  • a definition means for defining and memorizing at least one reference table comprising substitution elements at d-bits, where d is a multiple of b strictly greater than b,
  • grouping means for grouping the cells of said state table to assign a group of cells to each set of d / b words
  • generation means for iteratively generating from said initial state block a succession of state blocks to form an end state block, so that at each iteration each set of d / b words a current state block is replaced by another set of d / b words according to said reference table to form a next state block.
  • the invention also relates to a pseudo-random number generator comprising a counter and a plurality of logic gates for implementing the method described briefly above.
  • the invention also relates to an RFID device comprising a generator as briefly described above.
  • FIG. 1 is a flowchart illustrating the various steps of a cryptographic method according to the invention
  • FIG. 2 is an example illustrating the action of a reference table according to the method of FIG. 1;
  • FIG. 3 very schematically illustrates a device implementing the method of FIG. 1;
  • FIG. 4 is a particular embodiment of the method of FIG. 1;
  • FIG. 5 very schematically illustrates a pseudo-random number generator implementing the method of FIG. 4.
  • FIG. 1 is a flowchart illustrating the various steps of a cryptographic method for generating pseudo-random numbers from initial data.
  • Step E1 comprises the division or subdivision of the message or initial data 1 into a plurality of 3-b-bit words defined in a finite field GF (2 fc ), where b may for example be equal to 2, 4, 8, 16, 32, 64 or 128.
  • step E2 these words 3 are assigned to cells 5 of a state table 7 to form an initial state block. It should be noted that only part of these words 3 can be placed in the state table 7.
  • step E3 cells 5 from state table 7 are grouped so as to assign a group 11 of cells to each set of d 1 words, where d is a multiple of b, with d> b. Each set of words then corresponds to an element of d-bits.
  • step E4 it is iteratively generated from the initial state block 13a, a succession of current state blocks 13b to form a last block or an end state block 13c. To do this, at least one predefined reference or substitution table 9 with substitution elements at d-bits is used. Thus, this reference table 9 makes it possible to replace a d-bit input element with a d-bit output element.
  • each set of d / b words of a current state block 13b is replaced by another set of d / b words according to the reference table 9 to form a next state block.
  • the last state block 13c represents the pseudo-random number generated.
  • FIG. 2 is an example illustrating the action of a reference table 9 on a state table 7 comprising four columns and four lines (4x4).
  • an S-box reference table of an AES algorithm can be used.
  • the cells 5 of the state table 7 are grouped into groups of two cells.
  • the cells 5 comprising the words A 00 and A 01 form a first group 11a
  • those comprising the words A 02 and AQ 3 form a second group 11b
  • those comprising the words A 11 and A 12 form a third group. lie, etc.
  • the reference table 9 substitutes the words two by two.
  • the words A 00 and A 01 are replaced by B 00 and B 01 and the words A02 and A03 are replaced by B 0 2 and B 03 .
  • another state block 13b is formed comprising the words B 00 ,..., B 33 defined by a function "S" determined by the reference table 9 as follows:
  • B 12 S [A 11 I
  • B 10 S [A 13
  • the words 3 of a current state block 13b can be mixed according to a predetermined mix "MIX" transformation.
  • the substitution operation according to the reference table 9 can be followed by a mixture of b-bit words, using for example a technique similar to that used by the AES algorithm.
  • this MIX mixture can be produced as follows:
  • a simple incrementation counter or any other similar mechanism can be used to reduce any symmetry that can be installed. during successive iterations. For example, this may include a simple modification of at least a portion of a word located in a predetermined cell of the state array 7. For example, it is sufficient to complement a few bits located in a single cell 5 well determined and at a definite moment in the calculation.
  • the method according to the invention may comprise an addition combination ("exclusive-or" operation) in the finite field of each word 3 of the initial state block 13a with a corresponding word of a predefined encryption key or with alternating sequences of secret words.
  • FIG. 3 very schematically illustrates a device 21 implementing the method according to FIG. 1.
  • This device 21 comprises a subdivision means 23, an assignment means 25, a definition means 27, a grouping means 29 and a means of generation 31.
  • the subdivision means 23 is adapted to subdivide the initial message or data into a plurality of 3-to-bit words.
  • the means of assignment 25 is intended to assign these words 3 to the cells 5 of the state table 7 to form the initial state block 13a.
  • the definition means 27 is intended to define and store the reference or replacement table 9 having the substitution elements at ⁇ i -bits withd> b.
  • the grouping means 29 is intended to group the cells of the state table to assign a group 11 of cells to each set of d lb words.
  • the generation means 31 is intended to generate iteratively from the initial state block 13a, a succession of state blocks 13b to form a final state block 13c representative of a pseudo-random number.
  • the initial data 1 used to form the initial state block 13a can be generated by a simple counter.
  • FIG. 4 is a flowchart illustrating a particular embodiment of a 64-bit PRNG pseudorandom number generator with ten iterations.
  • This generator can be used in an RFID chip with a 128-bit secret key.
  • the secret key may for example be represented by a pair of data (So, S 1 ) where So and S 1 a both have a length of 64 bits.
  • the 64-bits of the initial data 1 are stored in a state table 7 (4x4) comprising sixteen words Aoo,..., A33 with 4-bits as illustrated in the example of FIG. 2.
  • step E13 three iterations of "mixtable” type operations are performed.
  • Each “mixtable” iteration includes substitutions according to a function S determined by a reference table 9 carrying out 8-bit permutations (for example an AES-type box) and / or a "MIX" mixture inside. one or more columns, and / or "Exchange” permutations.
  • the current state block 13b is then defined according to the reference table 9 as follows:
  • Bool lBoi S [A 00 I IA 01 ], B 02
  • B 03 S [A 02 I IA 03 ]
  • B 12 S [A 11 I
  • B 10 S [Ai 3 I
  • B 21 S [A 20
  • B 23 S [A 22
  • B 31 NB 32 S [A 31
  • B 33 I IB 30 S [A 33 MA 30 ]
  • the value taken by r is added to a word (for example the word A 32 ) in order to reduce any symmetry effect that may occur between the iterations.
  • the mixing operation MIX is a mixture within a column using a predetermined 4x4 matrix M in a finite field GF (2 4 ). This operation consists in multiplying each column of the state table (7) by this matrix M.
  • the mixing operation MIX can be followed by a permutation of the words on the last two lines of the current state block 13b as follows:
  • step E14 the 64-bits of the current state block 13b are combined by exclusive-or-addition with the sixteen (16-bit 4-bit) half-octets in S 1 of the secret key.
  • step E15 four more iterations of "mixtable" type operations are performed.
  • step E16 the 64-bits of the current state block 13b are combined by exclusive-or-addition with the sixteen (16-bit 4-bit) half-octets in S 0 of the secret key.
  • step E17 three iterations of "mixtable" type operations are performed.
  • step E18 the 64-bits of the current state block 13b with the sixteen half-octets (4-bits) in S 1 of the secret key are recombined by an exclusive-or-addition.
  • the step E19 gives the output value v ⁇ to the i th sequence of iterations in the following way:
  • Step E20 is a test to check whether the value q of the counter is equal to (2 16 -1). If so, the chip is destroyed in step E21, if not, q is incremented in step E22 before repeating the above steps.
  • FIG. 5 very schematically illustrates a PRNG pseudo-random number generator 41 implementing the method according to FIG. 4.
  • This generator 41 comprises a counter 43 and a plurality of logic gates 45.
  • This PRNG generator can be easily used in a chip RFID.
  • a PRNG 41 in comparison with the AES algorithm, divides the number of states by two and does not include iteration keys obtained by diversification. In addition, the mixing operations inside the columns require very few logic gates.
  • an efficient PRNG generator 41 is obtained with a good level of security and a reduced number of doors (GE) compared to the AES algorithm.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un dispositif et un procédé cryptographique pour générer des nombres pseudo-aléatoires (1), comportant les étapes suivantes ; subdiviser des données initiales (1) en une pluralité de mots (3) à b-bits définis dans un corps fini GF(2b ), affecter lesdits mots à des cellules (5) d'un tableau d'état (7) pour former un bloc d'état initial (13a), regrouper les cellules (5) dudit tableau d'état (7) pour affecter un groupe (11) de cellules à chaque ensemble de d /b mots, où d est un multiple de b strictement supérieur à b , et générer de manière itérative à partir dudit bloc d'état initial (13a), une succession de blocs d'états (13b) pour former un bloc d'état final (13c), de sorte qu'à chaque itération chaque ensemble de d /b mots d'un bloc d'état (13b) courant est remplacé par un autre ensemble de d /b mots, en utilisant, pour former un bloc d'état suivant, au moins une table de référence (9) comportant des éléments de substitution à d-bits.

Description

Titre de l'invention
Dispositif et procédé de cryptographie pour générer des nombres pseudo-aléatoires.
Domaine technique de l'invention
L'invention se rapporte au domaine de la cryptographie. Plus précisément, l'invention concerne l'utilisation d'un schéma de génération de nombres pseudo-aléatoires pouvant être mis en œuvre dans des dispositifs ayant une faible puissance de calcul. La technique selon l'invention peut être appliquée à la mise en œuvre d'un générateur de nombres pseudo-aléatoires (en anglais " pseudo-random number generato/" ou PRNG) de faible coût.
Arrière-plan de l'invention
D'une manière générale, il existe deux approches pour la conception des algorithmes cryptographiques symétriques.
La première approche consiste à fournir " une preuve de sécurité " fondée sur la relation entre une méthode pour "casser" un code et la capacité à résoudre ce qui est communément considéré comme un problème difficile.
La deuxième approche plus commune dépend d'une ingénierie minutieuse d'un circuit électronique comportant plusieurs composants de type portes logiques pour réaliser un chiffrement selon le niveau de sécurité souhaité. Dans ce cas, l'efficacité peut être quantifiée par la vitesse de calcul ou le nombre de portes logiques nécessaires pour réaliser le circuit électronique.
Actuellement, et après la normalisation des algorithmes cryptographiques de type AES (Standard de chiffrement avancé, ou " Advanced Encryption Standard'' en anglais : FIPS 197, NIST 2001), il existe un grand intérêt à mettre en œuvre ce genre d'algorithmes dans une large gamme d'applications.
L'AES est remarquable pour son étroite observation des principes connus de Shannon et de deux notions importantes pour la mise en œuvre des algorithmes cryptographique, à savoir la "confusion" et la "diffusion". De façon simplifiée, la "confusion" correspond à l'idée de "faire des opérations difficiles" tandis que la "diffusion" correspond à l'idée de "faire propager le changement ou la transformation" pendant un calcul cryptographique.
Il est habituellement considéré qu'un des meilleurs moyens pour fournir un effet de confusion consiste à utiliser une boîte de substitution "boîte-S" (S-box Substitution box), et qu'un des meilleurs moyens pour fournir un effet de diffusion consiste à réaliser un certain type de permutation.
En effet, l'algorithme AES prend en entrée un bloc de 16 octets. Chaque octet est remplacé par un autre octet selon une boîte de substitution (boîte-S) de 8-bits vers 8-bits. Ces octets sont ensuite placés dans une matrice où chaque élément de la matrice est décalé cycliquement à gauche d'un certain nombre de colonnes. Ensuite, on effectue un produit matriciel avant d'additionner chaque octet avec un octet correspondant d'une clé d'itération Ç' round ke/ en anglais) obtenue par diversification d'une clé de chiffrement.
Ainsi, la sécurité d'un algorithme du type AES dépend d'une interaction entre la boîte-S et une opération de mélange (ou de diffusion) consistant à permuter des octets et à les combiner structurellement. L'interaction entre ces octets est mise en œuvre de manière précise afin de garantir et de fournir une bonne résistance contre les attaques par cryptanalyse différentielle ou par cryptanalyse linéaire. Actuellement, on essaie d'introduire des fonctionnalités cryptographiques dans des environnements de calcul très restreints comme par exemple dans des puces RFID.
Cependant, des algorithmes pour ce genre d'environnement sont réalisés au coup par coup et utilisent des composants cryptographiques de faible capacité. En effet, il est très difficile de réaliser des composants cryptographiques ayant une qualité comparable à ceux utilisés pour la mise en œuvre d'un algorithme de type AES dans un environnement très restreint.
Objet et résumé de l'invention
La présente invention concerne un procédé cryptographique pour générer des nombres pseudo-aléatoires comportant les étapes suivantes :
- subdiviser des données initiales en une pluralité de mots à b -bits définis dans un corps fini GF(2fc),
- affecter lesdits mots à des cellules d'un tableau d'état pour former un bloc d'état initial,
- regrouper les cellules dudit tableau d'état pour affecter un groupe de cellules à chaque ensemble de d /b mots, où d est un multiple de b strictement supérieur à b , et
- générer de manière itérative à partir dudit bloc d'état initial, une succession de blocs d'états pour former un bloc d'état final, de sorte qu'à chaque itération chaque ensemble de d /b mots d'un bloc d'état courant est remplacé par un autre ensemble de d /b mots, en utilisant, pour former un bloc d'état suivant, au moins une table de référence comportant des éléments de substitution à d -bits.
Le fait d'utiliser une table de référence ayant des éléments de longueur d strictement supérieure à b introduit un effet de diffusion en plus de l'effet de confusion, réalisant ainsi une génération de nombres pseudo-aléatoires de qualité avec un coût de calcul très réduit.
On notera qu'un algorithme de type AES utilise une boîte-S ayant des éléments de la même taille que les mots d'un bloc d'état interne faisant correspondre un mot d'entrée de b -bits à un autre mot de sortie de b -bits, et les mots sont utilisés un par un. Ainsi, le remplacement des mots par substitution selon la boîte-S réalisée par ce genre d'algorithme engendre un effet de confusion mais aucun effet de diffusion.
En revanche, l'opération de substitution selon la table de référence de l'invention n'utilise pas les mots un par un, mais par regroupement. Par ailleurs, on notera que l'utilisation d'une table de référence ou boîte-S ayant des éléments plus grands que les mots de l'état interne est tout à fait contraire aux habitudes de l'homme du métier.
Ainsi, la configuration selon l'invention permet d'assurer à la fois la diffusion et la confusion tout en économisant du temps de calcul pour le même niveau de sécurité. Ceci permet d'améliorer le niveau de sécurité tout en diminuant le nombre de portes logiques ("gâtes équivalent" ou GE en anglais) dans la réalisation d'un circuit électronique mettant en œuvre ce procédé de chiffrement. Ainsi, la technique selon l'invention peut être facilement appliquée pour la mise en œuvre d'un générateur de nombres pseudo-aléatoires de faible coût et dans un environnement très restreint comme une cellule ou puce RFID. En outre, cette technique peut être appliquée à une variété d'algorithmes cryptographiques du type codage par blocs, codage par flux, fonctions de hachage, ou codes d'authentification de messages. De plus, l'utilisation de ce genre de table de référence avec d strictement supérieure à b permet de réaliser un générateur de nombres pseudo-aléatoires plus robuste aux attaques par cryptanalyse de type "square attacks " auxquelles les algorithmes de type AES sont réputées être sensibles. Avantageusement, la génération itérative de ladite succession de blocs d'états comporte en outre une étape pour mélanger les mots dudit bloc d'état courant selon une transformation de mélange prédéterminée.
Cette transformation de mélange garantit une meilleure diffusion ou propagation des bits d'un bloc d'état améliorant ainsi la sécurité du cryptage et la qualité des nombres pseudo-aléatoires générés sans trop alourdir les étapes de calcul.
Cette transformation de mélange prédéterminée peut comporter une multiplication dans le corps fini GF(2fc) d'une colonne dudit bloc d'état courant par une matrice prédéfinie dans ledit corps fini. Cette multiplication matricielle est une transformation linéaire assez simple à mettre en œuvre.
Avantageusement, la génération itérative de ladite succession de blocs d'états comporte en outre une permutation entre des mots sur au moins une partie dudit bloc d'état courant.
Ceci permet d'augmenter encore davantage la propagation des bits, ce qui améliore la sécurité.
Selon une particularité de la présente invention, la génération itérative de ladite succession de blocs d'états comporte en outre une modification d'au moins une partie d'un mot situé dans une cellule prédéterminée du tableau d'état.
Ceci permet de réduire toute symétrie pouvant s'installer lors des itérations successives, ce qui complique toute tentative de prédiction et améliore par conséquent la sécurité du procédé.
Selon une autre particularité de la présente invention, le procédé comporte une combinaison par addition dans le corps fini de chaque mot dudit bloc d'état initial avec un mot correspondant dans une clé de chiffrement améliorant ainsi le niveau de sécurité. Ainsi, une sécurité similaire à celle d'un algorithme de type AES peut être garantie avec un nombre optimal de calculs.
Avantageusement, lesdites données initiales sont générées par un compteur. Ainsi, on peut facilement générer des nombres pseudoaléatoires avec un nombre minimal d'opérations.
L'invention vise aussi un dispositif cryptographique pour générer des nombres pseudo-aléatoires, comportant :
- un moyen de subdivision pour subdiviser des données initiales en une pluralité de mots à b -bits définis dans un corps fini GF(2fc ),
- un moyen d'affectation pour affecter lesdits mots à des cellules d'un tableau d'état pour former un bloc d'état initial,
- un moyen de définition pour définir et mémoriser au moins une table de référence comportant des éléments de substitution à d -bits, où d -est un multiple de b strictement supérieur à b ,
- un moyen de regroupement pour regrouper les cellules dudit tableau d'état pour affecter un groupe de cellules à chaque ensemble de d /b mots, et
- un moyen de génération pour générer de manière itérative à partir dudit bloc d'état initial, une succession de blocs d'états pour former un bloc d'état final, de sorte qu'à chaque itération chaque ensemble de d /b mots d'un bloc d'état courant est remplacé par un autre ensemble de d /b mots en fonction de ladite table de référence pour former un bloc d'état suivant.
L'invention vise également un générateur de nombres pseudoaléatoires comportant un compteur et une pluralité de portes logiques pour la mise en œuvre du procédé décrit succinctement ci-dessus.
L'invention vise aussi un dispositif RFID comportant un générateur tel que décrit succinctement ci-dessus.
Brève description des dessins D'autres particularités et avantages de l'invention ressortiront à la lecture de la description faite, ci-après, à titre indicatif mais non limitatif, en référence aux dessins annexés, sur lesquels :
- la figure 1 est un organigramme illustrant les différentes étapes d'un procédé cryptographique selon l'invention ;
- la figure 2 est un exemple illustrant l'action d'une table de référence selon le procédé de la figure 1 ;
- la figure 3 illustre très schématiquement un dispositif mettant en œuvre le procédé de la figure 1 ;
- la figure 4 est un mode particulier de réalisation du procédé de la figure 1 ; et
- la figure 5 illustre très schématiquement un générateur de nombres pseudo-aléatoires mettant en œuvre le procédé de la figure 4.
Description détaillée de modes de réalisation
Conformément à l'invention, la figure 1 est un organigramme illustrant les différentes étapes d'un procédé cryptographique pour générer des nombres pseudo-aléatoires à partir de données initiales.
L'étape El comporte le découpage ou la subdivision du message ou des données initiales 1 en une pluralité de mots 3 à b -bits définis dans un corps fini GF(2fc), où b peut par exemple être égal à 2, 4, 8, 16, 32, 64 ou 128.
A l'étape E2, ces mots 3 sont affectés à des cellules 5 d'un tableau d'état 7 pour former un bloc d'état initial. On notera qu'on peut ne placer qu'une partie de ces mots 3 dans le tableau d'état 7.
A l'étape E3, on regroupe les cellules 5 du tableau d'état 7 de manière à affecter un groupe 11 de cellules à chaque ensemble de d lb mots, où d est un multiple de b , avec d > b . Chaque ensemble de mots correspond alors à un élément de d -bits. Finalement, à l'étape E4, on génère de manière itérative à partir du bloc d'état initial 13a, une succession de blocs d'états 13b courants pour former un dernier bloc ou un bloc d'état final 13c. Pour ce faire, on utilise au moins une table de référence ou de substitution 9 prédéfinie comportant des éléments de substitution à d -bits. Ainsi, cette table de référence 9 permet de remplacer un élément d'entrée de d -bits par un élément de sortie de d -bits.
A chaque itération, chaque ensemble de d/b mots d'un bloc d'état 13b courant est remplacé par un autre ensemble de d/b mots en fonction de la table de référence 9 pour former un bloc d'état suivant. Ainsi, le dernier bloc d'état 13c représente le nombre pseudo-aléatoire généré.
Le fait d'utiliser une table de référence ayant des éléments de longueur d > b introduit un effet de diffusion en plus de l'effet de confusion et permet de réaliser un bon niveau de sécurité d'une manière plus rapide qu'une table de substitution (boîte-S) de l'état de l'art où d =b .
La figure 2 est un exemple illustrant l'action d'une table de référence 9 sur un tableau d'état 7 comportant quatre colonnes et quatre lignes (4x4). Selon cet exemple le bloc d'état initial 13a comporte les mots Aoo,...,A33 à 4-bits (c'est-à-dire è = 4) et la table de référence 9 comporte des éléments à 8-bits (c'est-à-dire d = 8). Dans ce cas, on peut utiliser une table de référence du type boîte-S d'un algorithme AES.
Ainsi, les cellules 5 du tableau d'état 7 sont regroupées par groupes de deux cellules. Selon cet exemple, les cellules 5 comportant les mots A00 et A01 forment un premier groupe lia, ceux comportant les mots A02 et AQ3 forment un deuxième groupe 11b, et ceux comportant les mots A11 et A12 forment un troisième groupe lie, etc. Dans ce cas, la table de référence 9 substitue les mots deux par deux. Par exemple les mots A00 et A01 sont remplacés par B00 et B01 et les mots A02 et A03 sont remplacés par B02 et B03. Alors un autre bloc d'état 13b est formé comportant les mots B00,...,B33 définis par une fonction " S " déterminée par la table de référence 9 de la manière suivante :
Bool lBoi = S[A00I IA01], B0211 B03 = S[A02I IA03]
B11I |B12 = S[A11I |A12], B13| |B10 = S[A13| |A10]
B20| |B21 = S[A20| IA21], B22| |B23 = S[A22| |A23]
B31| IB32 = S[A31| IA32], B33| |B30 = S[A33| |A30] , où le symbole "| |" entre deux mots représente leur concaténation.
Ainsi, on peut générer de manière itérative une succession de blocs d'état 13b en fonction d'une ou de plusieurs tables de référence 9. On notera que dans un milieu restreint (par exemple RFID), il est préférable (quoique non obligatoire) d'utiliser une seule table de référence 9 pour toutes les opérations.
Afin de garantir une meilleure propagation, les mots 3 d'un bloc d'état 13b courant peuvent être mélangés selon une transformation " MIX " de mélange prédéterminée.
Ainsi, à chaque itération, l'opération de substitution en fonction de la table de référence 9 peut être suivie par un mélange de mots à b - bits, en utilisant par exemple une technique similaire à celle utilisée par l'algorithme AES.
Selon l'exemple de la figure 2, ce mélange MIX peut être réalisé de la manière suivante :
Coo| |C10| |C20| |C30 = MIX [B00I I B10| | B20| | B30] C0II IC11 I IC21I IC31 = MIX [B01I I B11M B21| | B31] C02I IC12I IC22I IC32 = MIX [B02I I B12| | B22| | B32] C03I IC13I IC23I IC33 = MIX [B03I I B13I I B23| | B33] Selon les propriétés de l'opération de mélange MIX qui dépendent des matrices choisies, il peut être avantageux de permuter des mots 3 sur au moins une partie du bloc d'état 13b courant selon une opération de permutation " Echanger" Ç'swapt' en anglais). Selon l'exemple de la figure 2, cette permutation " Echanger " peut être réalisée de la manière suivante :
Echanger C02I IC12 avec C22I IC32 Echanger QBI IC13 avec C231 |C33
En outre, selon les caractéristiques des composants électroniques utilisés pour la fabrication d'un dispositif mettant en œuvre le procédé selon l'invention, un simple compteur d'incrémentation ou un tout autre mécanisme similaire peut être utilisé pour réduire toute symétrie pouvant s'installer lors des itérations successives. A titre d'exemple, ceci peut comporter une simple modification d'au moins une partie d'un mot situé dans une cellule 5 prédéterminée du tableau d'état 7. Par exemple, il suffit de complémenter quelques bits situés dans une seule cellule 5 bien déterminée et à un moment bien déterminé du calcul.
De plus, le procédé selon l'invention peut comporter une combinaison par addition (opération "ou-exclusif") dans le corps fini de chaque mot 3 du bloc d'état initial 13a avec un mot correspondant d'une clé de chiffrement prédéfinie ou avec des suites alternées de mots secrets.
La figure 3 illustre très schématiquement un dispositif 21 mettant en œuvre le procédé selon la figure 1. Ce dispositif 21 comporte un moyen de subdivision 23, un moyen d'affectation 25, un moyen de définition 27, un moyen de regroupement 29 et un moyen de génération 31.
Le moyen de subdivision 23 est destiné à subdiviser le message ou les données initiales en une pluralité de mots 3 à b -bits. Le moyen d'affectation 25 est destiné à affecter ces mots 3 aux cellules 5 du tableau d'état 7 pour former le bloc d'état initial 13a. Le moyen de définition 27 est destiné à définir et mémoriser la ou les tables de référence 9 ou de substitution comportant les éléments de substitution à <i -bits avecd > b . Le moyen de regroupement 29 est destiné à regrouper les cellules 5 du tableau d'état pour affecter un groupe 11 de cellules à chaque ensemble de d lb mots. Le moyen de génération 31 est destiné à générer de manière itérative à partir du bloc d'état initial 13a, une succession de blocs d'états 13b pour former un bloc d'état final 13c représentatif d'un nombre pseudo-aléatoire.
Dans la mise en œuvre d'un générateur de nombres pseudoaléatoires, les données initiales 1 utilisées pour former le bloc d'état initial 13a peuvent être générées par un simple compteur.
En effet, la figure 4 est un organigramme illustrant un mode particulier de réalisation d'un générateur de nombres pseudo-aléatoires PRNG à 64-bits et comportant dix itérations. Ce générateur peut être utilisé dans une puce RFID comportant une clé secrète de 128-bits. La clé secrète peut par exemple être représentée par un couple de données (So, S1) où So et S1 a ont tous deux une longueur de 64 bits.
A chaque séquence d'itérations définie par un compteur q de 16-bits, une valeur de sortie vι de 64-bits est générée par le PRNG en fonction de q, S0 et S1 (c'est-à-dire vι=f (q, S0, S1) pour 1< i<216).
L'étape EIl est l'état initial d'une séquence d'itérations (le compteur q=l). A cette étape, les 64-bits des données initiales 1 sont rangées dans un tableau d'état 7 (4x4) comportant seize mots Aoo,...,A33 à 4-bits comme illustré sur l'exemple de la figure 2.
A l'étape E12, la première ligne du tableau d'état 7 est additionnée (selon un ou-exclusif) avec la valeur courante du compteur ordonnée en quatre fois 4-bits, c'est-à-dire q=[qo| | Cϋ| | Q2I I Q3].
A l'étape E13, on réalise trois itérations d'opérations du type " mixtable". Chaque itération " mixtable" comporte des substitutions selon une fonction S déterminée par une table de référence 9 réalisant des permutations à 8-bits (par exemple une boîte-S de type AES), et/ou un mélange " MIX " à l'intérieur d'une ou plusieurs colonnes, et/ou des permutations "Echanger". A une itération numéro r donnée, le bloc d'état 13b courant est alors défini en fonction du tableau de référence 9 de la manière suivante :
Bool lBoi = S[A00I IA01], B02| |B03 = S[A02I IA03]
B11I |B12 = S[A11I |A12], B13| |B10 = S[Ai3I |A10]
B20| |B21 = S[A20| IA21], B22| |B23 = S[A22| IA23]
B31NB32 = S[A31| |A32θ r], B33I IB30 = S[A33MA30]
On notera qu'à l'itération numéro r, la valeur prise par r est ajoutée à un mot (par exemple le mot A32) afin de réduire tout effet de symétrie pouvant se produire entre les itérations.
L'opération de mélange MIX est un mélange à l'intérieur d'une colonne utilisant une matrice M prédéterminée de dimension 4x4 dans un corps fini GF(24). Cette opération consiste à multiplier chaque colonne du tableau d'état (7) par cette matrice M .
L'opération de mélange MIX peut être suivie par une permutation des mots sur les deux dernières lignes du bloc d'état 13b courant de la manière suivante :
C02| |C12 échangé avec C221 |C32, et C03| |C13 échangé avec C231 |C33.
A l'étape E14, on combine par une addition ou-exclusif, les 64- bits du bloc d'état 13b courant avec les seize demi-octets (16 fois 4-bits) dans S1 de la clé secrète.
A l'étape E15, on réalise encore quatre itérations d'opérations du type "mixtable ".
A l'étape E16, on combine par une addition ou-exclusif, les 64- bits du bloc d'état 13b courant avec les seize demi-octets (16 fois 4-bits) dans S0 de la clé secrète.
A l'étape E17, on réalise encore trois itérations d'opérations du type "mixtable". A l'étape E18, on recombine par une addition ou-exclusif, les 64-bits du bloc d'état 13b courant avec les seize demi-octet (4-bits) dans S1 de la clé secrète.
L'étape E19 donne la valeur de sortie vι à la ième séquence d'itérations de la manière suivante :
Vi = [VOOI I-I IVO3I IV1Ol I-I IV13I I-I IV33].
L'étape E20 est un test pour vérifier si la valeur q du compteur est égale à (216-1). Si oui, la puce est détruite à l'étape E21, sinon, on incrémente q à l'étape E22 avant de recommencer les étapes ci-dessus.
La figure 5 illustre très schématiquement un générateur 41 de nombres pseudo-aléatoires PRNG mettant en œuvre le procédé selon la figure 4. Ce générateur 41 comporte un compteur 43 et une pluralité de portes logiques 45. Ce générateur PRNG peut être facilement utilisé dans une puce RFID.
On notera qu'une implémentation d'un algorithme du type AES est déterminée par une boîte-S et une mémoire RAM nécessitant 395 et 2337 portes logiques (GE) respectivement.
En revanche, en comparaison avec l'algorithme AES, un PRNG 41 selon l'exemple des figures 4 et 5 divise le nombre d'états par deux et ne comporte pas des clés d'itération obtenues par diversification. Par ailleurs, les opérations de mélange à l'intérieur des colonnes nécessitent très peu de portes logiques.
Ainsi, on obtient, grâce à l'invention, un générateur PRNG 41 efficace avec un bon niveau de sécurité et un nombre de portes (GE) réduit par rapport à l'algorithme AES.

Claims

REVENDI CATI ONS
1. Procédé cryptographique pour générer des nombres pseudo-aléatoires (1), caractérisé en ce qu'il comporte les étapes suivantes :
- subdiviser des données initiales (1) en une pluralité de mots (3) à b -bits définis dans un corps fini GF(2fc ),
- affecter lesdits mots à des cellules (5) d'un tableau d'état (7) pour former un bloc d'état initial (13a),
- regrouper les cellules (5) dudit tableau d'état (7) pour affecter un groupe (11) de cellules à chaque ensemble de d lb mots, où d est un multiple de b strictement supérieur à b , et
- générer de manière itérative à partir dudit bloc d'état initial (13a), une succession de blocs d'états (13b) pour former un bloc d'état final (13c), de sorte qu'à chaque itération chaque ensemble de d lb mots d'un bloc d'état (13b) courant est remplacé par un autre ensemble de d lb mots, en utilisant, pour former un bloc d'état suivant, au moins une table de référence (9) comportant des éléments de substitution à d -bits.
2. Procédé selon la revendication 1, caractérisé en ce que la génération itérative de ladite succession de blocs d'états (13b) comporte en outre une étape pour mélanger les mots dudit bloc d'état courant selon une transformation de mélange prédéterminée.
3. Procédé selon la revendication 2, caractérisé en ce que ladite transformation de mélange prédéterminée comporte une multiplication dans le corps fini GF(2fc) d'une colonne dudit bloc d'état courant par une matrice prédéfinie dans ledit corps fini.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la génération itérative de ladite succession de blocs d'états comporte en outre une permutation entre des mots sur au moins une partie dudit bloc d'état courant.
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la génération itérative de ladite succession de blocs d'états comporte en outre une modification d'au moins une partie d'un mot situé dans une cellule (5) prédéterminée du tableau d'état (7).
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte une combinaison par addition dans le corps fini de chaque mot dudit bloc d'état initial (13a) avec un mot correspondant dans une clé de chiffrement.
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdites données initiales (1) sont générés par un compteur.
8. Dispositif cryptographique pour générer des nombres pseudo-aléatoires, caractérisé en ce qu'il comporte :
-un moyen de subdivision (23) pour subdiviser des données initiales (1) en une pluralité de mots (3) à b -bits définis dans un corps fini GF(2fc),
- un moyen d'affectation (25) pour affecter lesdits mots à des cellules (5) d'un tableau d'état (7) pour former un bloc d'état initial (13a),
- un moyen de définition (27) pour définir et mémoriser au moins une table de référence (9) comportant des éléments de substitution à d -bits, où d est un multiple de b strictement supérieur à b ,
- un moyen de regroupement (29) pour regrouper les cellules dudit tableau d'état pour affecter un groupe de cellules à chaque ensemble de d /b mots, et - un moyen de génération (31) pour générer de manière itérative à partir dudit bloc d'état initial (13a), une succession de blocs d'états pour former un bloc d'état final (13c) de sorte qu'à chaque itération chaque ensemble de d lb mots d'un bloc d'état courant est remplacé par un autre ensemble de d lb mots en fonction de ladite table de référence (9) pour former un bloc d'état suivant.
9. Générateur de nombres pseudo-aléatoires caractérisé en ce qu'il comporte un compteur (43) et une pluralité de portes logiques (45) pour la mise en œuvre du procédé selon les revendications 1 à 8.
10. Dispositif RFID caractérisé en ce qu'il comporte un générateur (41) selon la revendication 9.
PCT/FR2007/050725 2006-02-13 2007-02-01 Dispositif et procede de cryptographie pour generer des nombres pseudo-aleatoires WO2007093723A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/278,583 US20090022310A1 (en) 2006-02-13 2007-02-01 Cryptographic device and method for generating pseudo-random numbers
EP07731553A EP1984813A2 (fr) 2006-02-13 2007-02-01 Dispositif et procede de cryptographie pour generer des nombres pseudo-aleatoires

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650506 2006-02-13
FR0650506A FR2897451A1 (fr) 2006-02-13 2006-02-13 Dispositif et procede de cryptographie pour generer des nombres pseudo-aletoires

Publications (3)

Publication Number Publication Date
WO2007093723A2 true WO2007093723A2 (fr) 2007-08-23
WO2007093723A3 WO2007093723A3 (fr) 2007-10-25
WO2007093723B1 WO2007093723B1 (fr) 2007-12-21

Family

ID=36997564

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/050725 WO2007093723A2 (fr) 2006-02-13 2007-02-01 Dispositif et procede de cryptographie pour generer des nombres pseudo-aleatoires

Country Status (4)

Country Link
US (1) US20090022310A1 (fr)
EP (1) EP1984813A2 (fr)
FR (1) FR2897451A1 (fr)
WO (1) WO2007093723A2 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607333B2 (en) * 2008-07-21 2013-12-10 Electronics And Telecommunications Research Institute Radio frequency identification (RFID) security apparatus having security function and method thereof
US8363828B2 (en) * 2009-02-09 2013-01-29 Intel Corporation Diffusion and cryptographic-related operations
SG194203A1 (en) * 2011-05-10 2013-11-29 Univ Nanyang Tech Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods
CN107196760B (zh) * 2017-04-17 2020-04-14 徐智能 具有可调整性的伴随式随机重构密钥的序列加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013218A1 (fr) * 1999-08-18 2001-02-22 Siemens Aktiengesellschaft Procede destine a generer des nombres pseudo-aleatoires et procede de signature electronique
US20020051534A1 (en) * 2000-04-20 2002-05-02 Matchett Noel D. Cryptographic system with enhanced encryption function and cipher key for data encryption standard
JP2006024140A (ja) * 2004-07-09 2006-01-26 Sony Corp 乱数生成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421076B2 (en) * 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation
US7613295B2 (en) * 2004-02-18 2009-11-03 Harris Corporation Cryptographic device and associated methods
EP1820295B1 (fr) * 2004-09-24 2008-07-09 Synaptic Laboratories Limited Boites de substitution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013218A1 (fr) * 1999-08-18 2001-02-22 Siemens Aktiengesellschaft Procede destine a generer des nombres pseudo-aleatoires et procede de signature electronique
US20020051534A1 (en) * 2000-04-20 2002-05-02 Matchett Noel D. Cryptographic system with enhanced encryption function and cipher key for data encryption standard
JP2006024140A (ja) * 2004-07-09 2006-01-26 Sony Corp 乱数生成装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 2003, no. 12, 5 décembre 2003 (2003-12-05) & JP 2006 024140 A (SONY CORP), 26 janvier 2006 (2006-01-26) *
See also references of EP1984813A2 *

Also Published As

Publication number Publication date
EP1984813A2 (fr) 2008-10-29
WO2007093723A3 (fr) 2007-10-25
US20090022310A1 (en) 2009-01-22
WO2007093723B1 (fr) 2007-12-21
FR2897451A1 (fr) 2007-08-17

Similar Documents

Publication Publication Date Title
Wang et al. A color image encryption with heterogeneous bit-permutation and correlated chaos
US4275265A (en) Complete substitution permutation enciphering and deciphering circuit
Barakat et al. Hardware stream cipher with controllable chaos generator for colour image encryption
EP3228043B1 (fr) Méthode de chiffrement à couches de confusion et de diffusion dynamiques
Balajee et al. Evaluation of key dependent S-box based data security algorithm using Hamming distance and balanced output
Yang et al. Spectral analysis of ZUC-256
Hanif et al. A novel and efficient multiple RGB images cipher based on chaotic system and circular shift operations
EP3447963A1 (fr) Procédé de protection de données
WO2007093723A2 (fr) Dispositif et procede de cryptographie pour generer des nombres pseudo-aleatoires
Pisarchik et al. Chaotic map cryptography and security
Soleimany Self‐similarity cryptanalysis of the block cipher ITUbee
Zhao et al. Truncated differential cryptanalysis of PRINCE
Chauhan et al. Enhancing security of AES using key dependent dynamic Sbox
Sam et al. Chaos based image encryption scheme based on enhanced logistic map
Lu Cryptanalysis of block ciphers
EP0935858B1 (fr) Procede de decorrelation de donnees
Scripcariu A study of methods used to improve encryption algorithms robustness
Xu et al. A fast image encryption scheme based on a nonlinear chaotic map
EP2936302B1 (fr) Generateur de sequences chaotiques
Arabnezhad‐Khanoki et al. S‐boxes representation and efficiency of algebraic attack
Nadjia et al. Efficient implementation of AES S-box in LUT-6 FPGAs
Barrera et al. Improved mix column computation of cryptographic AES
EP2530867A1 (fr) Procédé de traitement cryptographique de données
Qassir et al. Modern and Lightweight Component-based Symmetric Cipher Algorithms
Al-Ali et al. Colour image encryption based on hybrid bit-level scrambling, ciphering, and public key cryptography

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2007731553

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12278583

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE