EP1984813A2 - Cryptographic device and method for generating pseudo-random numbers - Google Patents

Cryptographic device and method for generating pseudo-random numbers

Info

Publication number
EP1984813A2
EP1984813A2 EP07731553A EP07731553A EP1984813A2 EP 1984813 A2 EP1984813 A2 EP 1984813A2 EP 07731553 A EP07731553 A EP 07731553A EP 07731553 A EP07731553 A EP 07731553A EP 1984813 A2 EP1984813 A2 EP 1984813A2
Authority
EP
European Patent Office
Prior art keywords
words
state
state block
cells
block
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP07731553A
Other languages
German (de)
French (fr)
Inventor
Matt Robshaw
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
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 SA filed Critical France Telecom SA
Publication of EP1984813A2 publication Critical patent/EP1984813A2/en
Withdrawn legal-status Critical Current

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

The invention concerns a cryptographic device and method for generating pseudo-random numbers (1), including the following steps: subdividing initial data (1) into a plurality of words (3) with definite b- bits in a finite body GF(2<SUP>b</SUP> ), assigning said words to cells (5) of a status board (7) to form an initial status block (13a); assembling the cells (5) of said status board (7) to assign a group (11) of cells to each set of d /b words, wherein d is a multiple of b strictly higher than b; and iteratively generating from said initial status block (13a), a succession of status blocks (13b) to form a final status block (13c), such that upon each iteration each set of d/b words of a current status block (13b) is replaced by at least another set of d/b words, using, to form a next status block, at least one reference table (9) comprising substitution elements with d-bits.

Description

Titre de l'inventionTitle of the invention
Dispositif et procédé de cryptographie pour générer des nombres pseudo-aléatoires.Cryptographic device and method for generating pseudorandom numbers
Domaine technique de l'inventionTechnical field of the 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.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.
Arrière-plan de l'inventionBackground of the invention
D'une manière générale, il existe deux approches pour la conception des algorithmes cryptographiques symétriques.In general, there are two approaches to the design of symmetric cryptographic algorithms.
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.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.
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.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. In this case, the efficiency can be quantified by the speed of calculation or the number of logic gates necessary to produce the electronic circuit.
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.Currently, and after standardization of AES (Advanced Encryption Standard) type cryptographic algorithms (FIPS 197, NIST 2001), There is great interest in implementing this kind of algorithms in a wide range of 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.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". In a simplified way, "confusion" corresponds to the idea of "doing difficult operations" whereas "diffusion" corresponds to the idea of "propagating change or transformation" during a cryptographic calculation.
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.It is usually considered that one of the best ways to provide a confusing effect is to use an "S-box Substitution box", and that one of the best ways to provide a broadcast effect is to to perform some type of 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.Indeed, 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.
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.Thus, 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. Currently, we try to introduce cryptographic features in very limited computing environments such as for example in RFID chips.
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.However, algorithms for this kind of environment are done piecemeal and use low capacity cryptographic components. Indeed, it is very difficult to achieve cryptographic components having a quality comparable to those used for the implementation of an AES type algorithm in a very restricted environment.
Objet et résumé de l'inventionObject and summary of the invention
La présente invention concerne un procédé cryptographique pour générer des nombres pseudo-aléatoires comportant les étapes suivantes :The present invention relates to a cryptographic method for generating pseudo-random numbers comprising the following steps:
- subdiviser des données initiales en une pluralité de mots à b -bits définis dans un corps fini GF(2fc),subdividing initial data into a plurality of b-bit words defined in a finite field GF (2 fc ),
- affecter lesdits mots à des cellules d'un tableau d'état pour former un bloc d'état initial,assigning said words to cells of a state table to form an initial state block,
- 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 , etgrouping the cells of said state array to assign a group of cells to each set of d / b words, where d is a multiple of b strictly greater than b, and
- 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.- iteratively generate 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 of a block of current state is replaced by another set of d / b words, using, to form a next state block, at least one reference table with d-bit substitution elements.
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.Using a reference table with elements of length d strictly greater than b introduces a diffusion effect into more of the confusing effect, thus realizing a generation of pseudo-random numbers of quality with a very low calculation cost.
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.Note that 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. Thus, 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.
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.On the other hand, 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.
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.Thus, 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. Thus, 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. In addition, this technique can be applied to a variety of cryptographic algorithms such as block-based, stream-based, hash, or message authentication codes. Moreover, the use of this kind of reference table with d strictly greater than b makes it possible to produce a pseudo-random number generator that is more robust to "square attack" cryptanalysis attacks to which the AES type algorithms are deemed to be sensitive. Advantageously, 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.
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.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.
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.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.
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.Advantageously, 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.
Ceci permet d'augmenter encore davantage la propagation des bits, ce qui améliore la sécurité.This makes it possible to further increase bit propagation, which improves security.
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.According to a feature of the present invention, 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.
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é.This makes it possible to reduce any symmetry that can be installed during successive iterations, which complicates any prediction attempt and consequently improves the security of the process.
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.According to another feature of the present invention, 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. Thus, a security similar to that of an AES type algorithm can be guaranteed with an optimal number of calculations.
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.Advantageously, said initial data are generated by a counter. Thus, one can easily generate pseudo-random numbers with a minimal number of operations.
L'invention vise aussi un dispositif cryptographique pour générer des nombres pseudo-aléatoires, comportant :The invention also relates to a cryptographic device for generating pseudo-random numbers, comprising:
- 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 ),subdivision means for subdividing initial data into a plurality of b-bit words defined in a finite field GF (2 fc ),
- un moyen d'affectation pour affecter lesdits mots à des cellules d'un tableau d'état pour former un bloc d'état initial,assignment means for assigning said words to cells of a state table to form an initial state block,
- 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 ,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,
- un moyen de regroupement pour regrouper les cellules dudit tableau d'état pour affecter un groupe de cellules à chaque ensemble de d /b mots, etgrouping means for grouping the cells of said state table to assign a group of cells to each set of d / b words, and
- 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.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.
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.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.
L'invention vise aussi un dispositif RFID comportant un générateur tel que décrit succinctement ci-dessus.The invention also relates to an RFID device comprising a generator as briefly described above.
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 :Brief description of the drawings Other features and advantages of the invention will appear on reading the description given below, by way of indication but not limitation, with reference to the accompanying drawings, in which:
- la figure 1 est un organigramme illustrant les différentes étapes d'un procédé cryptographique selon l'invention ;FIG. 1 is a flowchart illustrating the various steps of a cryptographic method according to the 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 ;FIG. 2 is an example illustrating the action of a reference table according to the method of FIG. 1;
- la figure 3 illustre très schématiquement un dispositif mettant en œuvre le procédé de la figure 1 ;FIG. 3 very schematically illustrates a device implementing the method of FIG. 1;
- la figure 4 est un mode particulier de réalisation du procédé de la figure 1 ; etFIG. 4 is a particular embodiment of the method of FIG. 1; and
- 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.FIG. 5 very schematically illustrates a pseudo-random number generator implementing the method of FIG. 4.
Description détaillée de modes de réalisationDetailed description of embodiments
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.According to the invention, FIG. 1 is a flowchart illustrating the various steps of a cryptographic method for generating pseudo-random numbers from initial data.
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.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.
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.In 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.
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.In 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. Finally, in 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.
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é.At each iteration, 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. Thus, the last state block 13c represents the pseudo-random number generated.
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 .The fact of using a reference table having elements of length d> b introduces a diffusion effect in addition to the confounding effect and makes it possible to achieve a good level of security in a more rapid manner than a table of substitution (box-S) of the state of the art where 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.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). According to this example, the initial state block 13a comprises the words Aoo,..., A33 with 4-bits (that is to say è = 4) and the reference table 9 comprises elements with 8-bits ( that is, d = 8). In this case, an S-box reference table of an AES algorithm can be used.
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 :Thus, the cells 5 of the state table 7 are grouped into groups of two cells. According to this example, 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, and those comprising the words A 11 and A 12 form a third group. lie, etc. In this case, the reference table 9 substitutes the words two by two. For example 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 . Then 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:
Bool lBoi = S[A00I IA01], B0211 B03 = S[A02I IA03]Bool lBoi = S [A 00 I IA 01 ], B 02 11 B 03 = S [A 02 I IA 03 ]
B11I |B12 = S[A11I |A12], B13| |B10 = S[A13| |A10]B 11 I | B 12 = S [A 11 I | A 12 ], B 13 | | B 10 = S [A 13 | | A 10 ]
B20| |B21 = S[A20| IA21], B22| |B23 = S[A22| |A23]B 20 | | B 21 = S [A 20 | IA 21 ], B 22 | | B 23 = S [A 22 | | 23 ]
B31| IB32 = S[A31| IA32], B33| |B30 = S[A33| |A30] , où le symbole "| |" entre deux mots représente leur concaténation.B 31 | IB 32 = S [A 31 | IA 32 ], B 33 | | B 30 = S [A 33 | | A 30 ], where the symbol "| |" between two words represents their concatenation.
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.Thus, it is possible to iteratively generate a succession of state blocks 13b as a function of one or more reference tables 9. It will be noted that in a restricted medium (for example RFID), it is preferable (although not mandatory). to use a single reference table 9 for all operations.
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.In order to ensure better propagation, the words 3 of a current state block 13b can be mixed according to a predetermined mix "MIX" transformation.
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.Thus, at each iteration, 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.
Selon l'exemple de la figure 2, ce mélange MIX peut être réalisé de la manière suivante :According to the example of FIG. 2, this MIX mixture can be produced as follows:
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 :C oo | | C 10 | | C 20 | | C 30 = MIX [B 00 IIB 10 | | B 20 | | B 30 ] C 0 II IC 11 I IC 21 IC 31 = MIX [B 01 IIB 11 MB 21 | | B 31 ] C 02 IC 12 IC 22 IC 32 = MIX [B 02 IIB 12 | | B 22 | | B 32 ] C 03 IC 13 IC 23 IC 33 = MIX [B 03 IIB 13 IIB 23 | | B 33 ] Depending on the properties of the mixing operation MIX which depend on the matrices chosen, it may be advantageous to switch words 3 on at least a part of the current state block 13b according to a "swap" swap operation. swapt 'in English). According to the example of Figure 2, this permutation "Exchange" can be performed in the following manner:
Echanger C02I IC12 avec C22I IC32 Echanger QBI IC13 avec C231 |C33 Exchange C02I IC 12 with C22I IC32 Exchange QBI IC 13 with C 23 1 | C 33
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.In addition, according to the characteristics of the electronic components used for the manufacture of a device implementing the method according to the invention, 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.
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.In addition, 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.
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.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.
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.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.
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.In the implementation of a pseudo-random number generator, the initial data 1 used to form the initial state block 13a can be generated by a simple counter.
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.Indeed, 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.
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).At each sequence of iterations defined by a 16-bit counter q, an output value vι of 64-bits is generated by the PRNG as a function of q, S 0 and S 1 (i.e. vι = f (q, S 0 , S 1 ) for 1 <i <2 16 ).
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.Step EI1 is the initial state of a sequence of iterations (the counter q = 1). At this stage, 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.
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].In step E12, the first row of the state table 7 is summed (according to one-or-exclusive) with the current value of the four-bit four-bit counter, that is to say 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 :In 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. At a given iteration number r, the current state block 13b is then defined according to the reference table 9 as follows:
Bool lBoi = S[A00I IA01], B02| |B03 = S[A02I IA03]Bool lBoi = S [A 00 I IA 01 ], B 02 | | B 03 = S [A 02 I IA 03 ]
B11I |B12 = S[A11I |A12], B13| |B10 = S[Ai3I |A10]B 11 I | B 12 = S [A 11 I | A 12 ], B 13 | | B 10 = S [Ai 3 I | A 10 ]
B20| |B21 = S[A20| IA21], B22| |B23 = S[A22| IA23]B 20 | | B 21 = S [A 20 | IA 21 ], B 22 | | B 23 = S [A 22 | IA 23 ]
B31NB32 = S[A31| |A32θ r], B33I IB30 = S[A33MA30]B 31 NB 32 = S [A 31 | | A 32 θ r], B 33 I IB 30 = S [A 33 MA 30 ]
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.It will be noted that at the iteration number r, 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.
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 .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.
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 :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:
C02| |C12 échangé avec C221 |C32, et C03| |C13 échangé avec C231 |C33.C 02 | | C 12 traded with C 22 1 | C 32 , and C 03 | | C 13 traded with C 23 1 | C 33 .
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.In 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.
A l'étape E15, on réalise encore quatre itérations d'opérations du type "mixtable ".In step E15, four more iterations of "mixtable" type operations are performed.
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.In 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.
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.In step E17, three iterations of "mixtable" type operations are performed. In 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.
L'étape E19 donne la valeur de sortie vι à la ième séquence d'itérations de la manière suivante :The step E19 gives the output value vι to the i th sequence of iterations in the following way:
Vi = [VOOI I-I IVO3I IV1Ol I-I IV13I I-I IV33].Vi = [VOOI II IVO 3 I IV 1 Ol II IV 13 I II IV 33 ].
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.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.
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.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.
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.It should be noted that an implementation of an AES type algorithm is determined by an S-box and a RAM requiring 395 and 2337 logic gates (GE) respectively.
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.In contrast, in comparison with the AES algorithm, a PRNG 41 according to the example of Figures 4 and 5 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.
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. Thus, thanks to the invention, 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.

Claims

REVENDI CATI ONS 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 :Cryptographic method for generating pseudorandom numbers (1), characterized in that it comprises the following steps:
- subdiviser des données initiales (1) en une pluralité de mots (3) à b -bits définis dans un corps fini GF(2fc ),subdividing initial data (1) into a plurality of b-bit words (3) defined in a finite field GF (2 fc ),
- affecter lesdits mots à des cellules (5) d'un tableau d'état (7) pour former un bloc d'état initial (13a),assigning said words to cells (5) of a state array (7) to form an initial state block (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 , etgrouping the cells (5) of said state array (7) to assign a group (11) of cells to each set of d 1 bwords, where d is a multiple of b strictly greater than b, and
- 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.generating iteratively from said initial state block (13a) a succession of state blocks (13b) to form a final state block (13c), so that at each iteration each set of d lb words of a current state block (13b) is replaced by another set of d 1 b words, using, to form a next state block, at least one reference table (9) having substitute elements at 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.2. Method according to claim 1, characterized in that the iterative generation of said succession of state blocks (13b) further comprises a step for mixing the words of said current state block according to a predetermined mixing transformation.
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. 3. Method according to claim 2, characterized in that said predetermined mixture transformation comprises a multiplication in the finite field GF (2 fc ) of a column of said current state block by a predefined matrix in said finite body.
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.4. Method according to any one of claims 1 to 3, characterized in that the iterative generation of said succession of state blocks further comprises a permutation between words on at least a portion of said current state block.
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).5. Method according to any one of claims 1 to 4, characterized in that the iterative generation of said succession of state blocks further comprises a modification of at least a part of a word located in a cell (5). ) predetermined from the state table (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.6. Method according to any one of claims 1 to 5, characterized in that it comprises a combination by adding in the finite body of each word of said initial state block (13a) with a corresponding word in an encryption key .
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.7. Method according to any one of claims 1 to 6, characterized in that said initial data (1) are generated by a counter.
8. Dispositif cryptographique pour générer des nombres pseudo-aléatoires, caractérisé en ce qu'il comporte :8. Cryptographic device for generating pseudorandom numbers, characterized in that it comprises:
-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),subdivision means (23) for subdividing initial data (1) into a plurality of b-bit words (3) defined in a finite field GF (2 fc ),
- 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),assignment means (25) for assigning said words to cells (5) of a state array (7) to form an initial state block (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 ,definition means (27) for defining and memorizing at least one reference table (9) comprising substitution elements at d-bits, where d is a multiple of b strictly greater than 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.grouping means (29) for grouping the cells of said state table to assign a group of cells to each set of d / b words, and generation means (31) for iteratively generating from said initial state block (13a) a succession of state blocks to form an end state block (13c) so that at each iteration each set of d 1 words of a current state block is replaced by another set of d 1 b words based on said reference table (9) to form a next state block.
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.9. pseudorandom number generator characterized in that it comprises a counter (43) and a plurality of logic gates (45) for implementing the method according to claims 1 to 8.
10. Dispositif RFID caractérisé en ce qu'il comporte un générateur (41) selon la revendication 9. 10. RFID device characterized in that it comprises a generator (41) according to claim 9.
EP07731553A 2006-02-13 2007-02-01 Cryptographic device and method for generating pseudo-random numbers Withdrawn EP1984813A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650506A FR2897451A1 (en) 2006-02-13 2006-02-13 CRYPTOGRAPHY DEVICE AND METHOD FOR GENERATING PSEUDO-RANDOM NUMBERS
PCT/FR2007/050725 WO2007093723A2 (en) 2006-02-13 2007-02-01 Cryptographic device and method for generating pseudo-random numbers

Publications (1)

Publication Number Publication Date
EP1984813A2 true EP1984813A2 (en) 2008-10-29

Family

ID=36997564

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07731553A Withdrawn EP1984813A2 (en) 2006-02-13 2007-02-01 Cryptographic device and method for generating pseudo-random numbers

Country Status (4)

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

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 (en) * 2017-04-17 2020-04-14 徐智能 Sequence encryption method of adjoint random reconstruction key with adjustability

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1222527A1 (en) * 1999-08-18 2002-07-17 Siemens Aktiengesellschaft Method for generating pseudo random numbers and method for electronic signatures
US7092525B2 (en) * 2000-04-20 2006-08-15 Matchett Noel D Cryptographic system with enhanced encryption function and cipher key for data encryption standard
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
JP2006024140A (en) * 2004-07-09 2006-01-26 Sony Corp Random-number generator
KR20070093963A (en) * 2004-09-24 2007-09-19 시냅틱 래버러토리즈 리미티드 Substitution boxes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
K. FINKENZELLER: "RFID Handbook, Second Edition, pages 221-227, 278-284, 292-298", 2003, J. WILEY & SONS, Chichester, UK, ISBN: 978-0-470-84402-1, 348750 *

Also Published As

Publication number Publication date
WO2007093723A3 (en) 2007-10-25
FR2897451A1 (en) 2007-08-17
WO2007093723B1 (en) 2007-12-21
WO2007093723A2 (en) 2007-08-23
US20090022310A1 (en) 2009-01-22

Similar Documents

Publication Publication Date Title
Diab An efficient chaotic image cryptosystem based on simultaneous permutation and diffusion operations
Wang et al. A color image encryption with heterogeneous bit-permutation and correlated chaos
Etemadi Borujeni et al. Chaotic Image Encryption Design Using Tompkins‐Paige Algorithm
CN109660696B (en) New image encryption method
US4275265A (en) Complete substitution permutation enciphering and deciphering circuit
Yang et al. Spectral analysis of ZUC-256
WO2007093723A2 (en) Cryptographic device and method for generating pseudo-random numbers
Shah et al. A novel efficient image encryption algorithm based on affine transformation combine with linear fractional transformation
Murugan et al. A hybrid image encryption algorithm using chaos and Conway's game‐of‐life cellular automata
Naim et al. New chaotic satellite image encryption by using some or all the rounds of the AES algorithm
Sam et al. Chaos based image encryption scheme based on enhanced logistic map
Lu Cryptanalysis of block ciphers
Chauhan et al. Enhancing security of aes using key dependent dynamic sbox
EP0935858B1 (en) Method for data decorrelation
Scripcariu A study of methods used to improve encryption algorithms robustness
EP2936302B1 (en) Chaotic sequence generator
US7929694B2 (en) Variable length private key generator and method thereof
Qassir et al. Modern and Lightweight Component-based Symmetric Cipher Algorithms
Nadjia et al. Efficient implementation of AES S-box in LUT-6 FPGAs
Farajallah PSEUDO RANDOM NUMBER GENERATOR BASED ON LOOK-UP TABLE AND CHAOTIC MAPS
Al-Ali et al. Colour image encryption based on hybrid bit-level scrambling, ciphering, and public key cryptography
Chuengsatiansup et al. Row, Row, Row your boat: How to not find weak keys in pilsung
Yap et al. Security analysis of M‐DES and key‐based coded permutation ciphers in wireless channels
Mani et al. Modified DES using different keystreams based on primitive pythagorean triples
Zhou et al. Efficient multi‐key fully homomorphic encryption over prime cyclotomic rings with fewer relinearisations

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080711

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20090331

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 7/58 20060101AFI20120607BHEP

Ipc: H04L 9/06 20060101ALI20120607BHEP

Ipc: H04L 9/22 20060101ALI20120607BHEP

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20121220