EP1886436A2 - Procede, systeme et dispositif de generation d'une sequence de donnees pseudo aleatoire - Google Patents
Procede, systeme et dispositif de generation d'une sequence de donnees pseudo aleatoireInfo
- Publication number
- EP1886436A2 EP1886436A2 EP06794454A EP06794454A EP1886436A2 EP 1886436 A2 EP1886436 A2 EP 1886436A2 EP 06794454 A EP06794454 A EP 06794454A EP 06794454 A EP06794454 A EP 06794454A EP 1886436 A2 EP1886436 A2 EP 1886436A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- words
- word
- code
- output
- sequence
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000006870 function Effects 0.000 claims description 47
- 230000001419 dependent effect Effects 0.000 claims description 6
- 230000000295 complement effect Effects 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims 1
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 101100536354 Drosophila melanogaster tant gene Proteins 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
Definitions
- the invention relates to the field of encryption / decryption and relates to a system and method for generating a pseudo-random data sequence.
- the invention finds a very advantageous application in that it makes it possible to create sequences of bits for symmetric encryption, for which encryption and decryption use the same secret key.
- the invention is part of a flow encryption method which consists in adding bit by bit a message with a pseudo-random data sequence of the same length.
- it is part of a process in which the encryption operation and the decryption operation are identical.
- symmetric encryption is widely used in all types of communications, such as mobile communications (GSM, UMTS ...), internet (SSL %), smart cards (bank cards), etc.
- the most basic symmetric ciphering technique is stream ciphering, which consists in adding the clear message bitwise with a random sequence of the same length. This technique poses the essential and difficult problem of generating long pseudo-random sequences.
- linear feedback shift registers The most common method of stream encryption is to use a pseudorandom sequence generated independently of the message to be encrypted by using, for the sake of economy, linear feedback shift registers.
- the major disadvantage of linear feedback shift registers is their linearity. Indeed, the knowledge of a number of output bits of the register equal to the length of the register as well as the feedback polynomial associated with the register makes it possible to know the output bits as well as all the subsequent states of the register.
- FIG. 5 shows such a generator 121 called "shrinking generator” described in the European patent application EP 0 619 659 comprising a first linear feedback shift register 123a, a second linear feedback shift register 123b, and a means 125 for select the output of the generator 121.
- the two registers 123a and 123b are shifted simultaneously, and the output of the device 121 is equal to the output of the second register 123b if the output of the first register 123a is "1", otherwise none bit is out.
- the shrinking generator makes it possible to combine not only the outputs of two linear feedback shift registers but also, more generally, any pair of bit sequences.
- the shrinking generator is part of a class of stream ciphering methods in which a linear feedback shift register controls another. The idea is to vary the number of offsets, on the one hand, between the different registers used and, on the other hand, between two consecutive bits, in order to break the linearity of the registers.
- a variant of the shrinking generator is based on the same principle, but starting from a single register.
- the output bits of the register are read in pairs, and Ie first bit controls the output of the second so that the output of the system is the second bit if the first is "1", and no bit is output otherwise.
- the use of complete prefix codes allows a unique decomposition of the initial data stream and can be easily performed by a finite state machine.
- this method is simple to implement, and it uses a function to desynchronize the initial data stream to generate a pseudo-random data sequence.
- the use of a complete prefix code and a "desynchronization component" makes it possible to prevent or render the algebraic attacks practically ineffective while producing a guaranteed minimum number of bits.
- a shrinking generator is used as a desynchronization component in a pseudorandom sequence generator, the minimum assured bit rate is practically nil.
- said desynchronization function is a parameterized function dependent on a predetermined parameter whose value is modifiable during the generation of the pseudo-random data sequence.
- said desynchronization depends on an editable initialization parameter makes it possible to improve the complexity of the relationship between the initial data flow and the pseudo-random data sequence, increasing the difficulty of predicting the pseudo-random data sequence.
- said set of output words comprises for each output word a complementary output word. This makes it possible to balance, for a given output word length, for example the number of "0" and "1" in the set of output words.
- the code words of said complete prefix code have a length limited by an upper bound h, and said code is such that if any output word x is of the same length as another output word y, then the number of antecedents by said function of desynchronization of the output word x is the same as the number of antecedents by said desynchronization function of the output word y.
- the words of said complete prefix code have a length limited by a lower bound m, and there exists a greater length / of words of said complete prefix code such that for any length k less than or equal to the greater length f, the complete prefix code contains 2 '" TM 1 words of length k.
- the method is characterized in that:
- the complete prefix code is defined by a set C 1 of code words having the following form;
- f u U n for 0 ⁇ n ⁇ h-2
- f u (l (Tl) Un® 1 for 0 ⁇ n ⁇ h -2
- C 2 ⁇ associates with any word of the form W 1 W 2 :
- This other embodiment can be advantageously used for software-type encryption.
- the ratio between the number of bytes output and the number of input bytes is strictly greater than 1/3 and the guaranteed minimum number of bytes output on an input of length h bytes is 1.
- the invention also relates to a generator of a pseudo-random data sequence from an initial data stream, characterized in that it comprises a memory and a processing unit, said memory storing a set of code words forming a complete prefix code and a set of output words, said processing unit being able to read and to decompose the initial data stream into a sequence of words coded according to said complete prefix code and to associate the words of said sequence of coded words corresponding output words in accordance with a desynchronization function for generating said pseudo-random data sequence.
- this generator makes it possible to generate a pseudo-random data sequence having a minimum bit rate that does not depend on the particular properties of the initial data stream.
- this generator is easy to implement while being efficient and inexpensive.
- the generator further comprises a parameterization means intended to make said desynchronization function dependent on a predetermined parameter and to modify the value of said predetermined parameter during the generation of the pseudo-random data sequence.
- the invention also provides an encryption / decryption device comprising an "exclusive-or" logic gate and a generator according to the above characteristics.
- This device makes it possible to easily combine each bit of the pseudo-random data sequence with a corresponding bit of a data sequence of a message to be encrypted by a modulo 2 addition to form an encrypted data sequence having a great linear complexity. .
- the invention also relates to a secure system comprising at least two entities connected via a network, each of said at least two entities comprises an encryption / decryption device according to the above characteristics.
- the secure system has a simple structure to achieve while having an intrinsically complex mechanism.
- FIG. 1 very schematically illustrates a method of generating a pseudo-random data sequence, according to the invention
- FIGS. 2A and 2B schematically show two examples of finite automata for decomposing an initial data stream into a sequence of words coded according to the invention
- FIGS. 3A and 3B illustrate schematic examples of a generator of a pseudo-random data sequence, according to the invention
- FIG. 4 shows a secure system comprising generators according to FIG. 3A or 3B;
- FIG 5 is a schematic view of a generator according to the prior art.
- FIG. 1 illustrates a schematic example of a method for generating a pseudo-random data sequence 1 from an initial data stream 3.
- a "word” (or a pattern) / any finite sequence of letters of any alphabet, for example the alphabet of the binary set consisting only of 0 and 1.
- Each word then has a given length. For example, 0, 11, 000, 1010, 00111 are words of respective lengths 1, 2, 3, 4 and 5.
- an "empty" word denoted by ⁇ is a word of zero length (ie ie, containing no letter).
- the initial data stream 3 corresponds to a data sequence having a high "linear complexity".
- the initial data stream 3 can be generated by an initial production means 23
- any periodic sequence can be generated by an infinity of linear feedback shift registers.
- these registers there is one which is shorter than all the others.
- the length of this shorter register is called the "linear complexity" of the stream. If the linear complexity of the initial data sequence is L 1 then it is possible by a Berlekamp-Massey algorithm to reconstruct the initial state of the register (and in fact the whole sequence) from a subset of the initial data sequence of length 2L
- the initial data stream 3 has a high linear complexity. Indeed, currently, the best known algorithm, can reconstruct the initial data stream 3 in less than 2 80 operations if the linear complexity L of this initial data stream is less than 160. Therefore, it is advantageous to take a flow initial data 3 having a linear complexity L greater than or equal to 160.
- a set of codewords 5a forming a "complete prefix code” 5 is defined.
- code refers to any set of words on a given alphabet. The properties of this code are then considered relative to the alphabet in question.
- the code C is complete if, and only if, for every word w, there exists a word w 'and a code word u belonging to Ctel that / y is prefix of the word ww', that is to say say that there exists a word w ⁇ a code word u belonging to this a word u 'such that ww' is equal to uu '.
- C is a complete prefix code if C is both a prefix code and a complete code.
- a set 7 of output words 7a denoted by £ is defined, such that £ is contained in the union of ⁇ 0, l ⁇ k and ⁇ , and a desynchronization function / associating with any codeword.
- 5a of the complete prefix code 5 an output word 7a of the set 7 of output words.
- the desynchronization function / is a basic operation (for example a bit-to-bit modulo 2 addition) whose evaluation is inexpensive to perform.
- the method of the present invention takes as input a complete prefix C code 5, a set E of output words 7, and a desynchronization function /.
- the method according to the invention comprises a decomposition operation decomposing the initial data stream 3 into a sequence of words coded as 11 according to said complete prefix code 5.
- a complete prefix code allows to decompose the initial data stream 3 in a unique manner.
- the complete prefix code 5 is recognizable by a finite automaton which, given a word W 1, determines whether w is or is not in the complete prefix code 5.
- FIGS. 2A and 2B schematically show two examples of finite automata 13a and 13b for decomposing an initial data stream 3 into a sequence of words coded 11.
- a finite automaton comprises a set of nodes or states 15 connected by paths or arrows 17 so that any word of a complete prefix code 5 can be defined by a set of paths 17 between an initial state noted / and a final state noted F.
- a bit is read, we follow the path 17 corresponding to the value of the bit and when we arrive in the final state F 1 we know that we have just finished reading a word of the prefix code complete 5 and we can reposition in the initial state / to read the next word.
- the method according to the invention comprises an association operation 20 associating the words of the coded word sequence 11 with the corresponding output words 7a according to the desynchronization function / in order to form the pseudo-random data sequence 1.
- the application of the mechanism of the present invention relates to the decomposition of an input sequence (i.e., the initial data stream 3) on the fly into a sequence 11 of code words. complete prefix 5. Whenever a word of the complete prefix code 5 is recognized, the image of this word by the desynchronization function / produces a word out. This mechanism is repeated until the last bit of the input stream of the initial data stream 3 is reached or when a user-determined stop condition is satisfied.
- the desynchronization function / is a parameterized function dependent on a predetermined parameter whose value can be modified during the generation of the pseudo-random data sequence 1.
- This parameterized function is then of the form v, x ⁇ > / v (x) which associates with any binary vector v of length m, that is to say, any element v of ⁇ , l ⁇ "', and any word x of the complete prefix C code 5 an element of l set of output words 7.
- the method according to the invention takes as input the initial data stream 3 and a binary vector v.
- the choice of this vector v may result from an operation (non-linear
- the vector v can take a predetermined value (for example, v is the null vector).
- vector v can be modified during the course of the process and thus depend on the generation of the pseudo-random data sequence 1.
- this parameter makes it possible to improve the complexity of the relationship between the initial data stream 3 and the pseudo-random data sequence 1, increasing the difficulty of predicting this pseudo-random data sequence 1.
- the code words of the complete prefix code 5 have a length limited by an upper bound h and such that if a any output word If is of the same length as another output word s 2 / then the number of antecedents by the desynchronization function / output word S 1 is the same as the number of antecedents by the same function / of the output word s ,? .
- the complete prefix code 5 includes the following advantageous properties:
- the words of the complete prefix code 5 have a length limited by a lower bound m and there exists a greater length / of words of said complete prefix code such that for any length k less than or equal to this upper length /, the complete prefix code contains 2 flM words of length k.
- the association function f v satisfies the following property: there is an integer
- the average rate is of the order V,.
- the probability that the code word that generated this bit is of length k and inversely proportional to k, and that regardless of the given bit (0 or 1). This choice of probability distribution is optimal with regard to the statistical properties that the pseudo-random data sequence 1 must satisfy.
- w ( « 0 , ..., w A _,) whose components belong to the set ⁇ 0,1 ⁇ .
- the initial data stream 3 bit by bit is read and for every word x of the code Q 1 the value f u (x) is calculated with the knowledge of the first bit of the word x and the value n ( for words of the form bb "b) or the fixed value h-1 (for words of the form
- f u (b, n) f u ⁇ b
- b b®u n with 0 ⁇ n ⁇ h ⁇ 2
- f ⁇ ag which is initialized with the value 0 and takes the value 1 only after the recognition of a word of the code Q. The flag value is reset after each word recognition, for each word recognition, the first bit of the current word is stored temporarily in the variable c and the word length is updated in the variable "lengtH" ⁇ The value of the output bit is stored in the s variable.
- this first embodiment comprises the repetition of the following mechanism:
- This embodiment is inexpensive to produce and can be advantageously used to implement encryption with hardware type electronic circuits.
- the average flow that is, say the ratio between the number of bits output (the number of bits of the pseudo-random data sequence 1) and the number of input bits (the number of bits of the initial data stream 3) is strictly greater than 1/3 .
- the guaranteed minimum number of bits output on an input of length h is 1.
- v (v o , ..., v 8 , v 9 ) whose components belong to the set ⁇ , l ⁇ , the values of the first eight components v o , ..., v 8 being invariant and the value of the last component v 9 being variable.
- the parameterized function f v C 2 ⁇ ⁇ u ⁇ , lf associates with any word of the form WiW 2 :
- this second embodiment comprises the repetition of the following mechanism:
- This second embodiment can be advantageously used for software-type encryption.
- the average bit rate that is the ratio between the number of bytes outputted and the number of bytes input is strictly greater than 1/3 and the guaranteed minimum number of bytes output on an input of length h bytes is 1.
- FIG. 3A illustrates a very schematic example of a generator 21 of a pseudo-random data sequence 1.
- the generator 21 comprises an initial production means 23 comprising at least one linear feedback shift register of maximum period generating the flow of data. initial data 3.
- T ⁇ - I
- a linear feedback shift register is a finite length bitmap (the register) with a linear combination represented by a polynomial called a feedback polynomial. At each offset, the highest index bit is output, all other bits are shifted by one index, and the lowest index bit takes the value of the linear combination before shifting.
- the generator 21 comprises a memory 25 and a processing unit 27.
- the memory 25 is intended to store a set of codewords forming a complete prefix code 5 and a set of output words 7.
- the processing unit 27 is intended to read and to decompose the initial data stream 3 into a sequence of words coded 11 according to the complete prefix code 5 and to associate the words of this sequence of words coded with the corresponding output words in accordance with to a desynchronization function / to generate the pseudo-random data sequence.
- the desynchronization function associates with any code word of the complete prefix code an output word of the set of output words 7. It should be noted that the decomposition and association operations 20 can be performed simultaneously by the processing unit 27.
- the processing unit 27 reads the initial data stream 3 bit by bit and whenever a word of the complete prefix code 5 is found, it calculates the image of this word by the desynchronization function 9.
- this generator is easy to implement and comprises decomposition means (memory 25 and processing unit 27) which break down the initial data input stream 3 in a unique manner and desynchronization means (memory 25 and storage unit). processing 27) for generating a pseudo-random data sequence having a minimum rate that does not depend on the particular properties of the initial data stream 3.
- FIG. 3B illustrates another example of a generator 21 of a pseudo-random data sequence 1 which differs from that of FIG. 3A in that it furthermore comprises a parameterization means 29.
- This parameterization means 29 is intended to make the desynchronization function f dependent on a predetermined parameter and to modify the value of this parameter during the generation of the pseudo-random data sequence 1.
- FIG. 4 shows a secure system 30 comprising at least two entities connected together via a communication network 35 of the Internet type, GSM, UMTS, WiFi, UltraWideBand, etc.
- the example of this figure shows a first entity 33a connected via the communication network 35 to a second entity 33b.
- the first entity 33a (respectively the second entity 33b) comprises a first terminal 37a (respectively a second terminal
- the modems 41a and 41b can be any device for interfacing with the communication network 35.
- Each of the first and second encryption / decryption devices 39a, 39b comprises a generator 21 of a pseudo-random data sequence 1 as previously described and an "exclusive-or" logic gate 43.
- Each encryption / decryption device 39a, 39b is intended to perform encryption or decryption afloat which consists of encrypting or decrypting a message bit by bit.
- the first encryption / decryption device 39a performs an encryption operation.
- the pseudo-random data sequence 1 called the ciphering sequence is combined by the exclusive-or-gate 43 with each corresponding position bit of a plaintext message 45 sent by the first terminal 37a to obtain a ciphertext 47 which is then sent by the first modem 41a to the second entity 33b.
- the encryption operation consists in adding bit by bit an encrypting sequence 1 to the clear text of the message
- the second encryption / decryption device 39b performs a decryption operation which consists in adding bit by bit this same encrypting sequence 1 to the encrypted text 47 sent by the first entity 33a to reform the message to the plaintext 45.
- a decryption operation which consists in adding bit by bit this same encrypting sequence 1 to the encrypted text 47 sent by the first entity 33a to reform the message to the plaintext 45.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
L'invention concerne un dispositif et un procédé de génération d'une séquence de données pseudo aléatoire (1) à partir d'un flux de données initial (3) caractérisé en ce qu'il comporte les étapes suivantes : -définir un ensemble de mots de code formant un code préfixe complet (5), -définir un ensemble de mots de sortie (7), -définir une fonction de désynchronisation ( ) associant à tout mot de code dudit code préfixe complet (5) un mot de sortie dudit ensemble de mots de sortie (7), -décomposer le flux de données initial (3) en une suite de mots codée (11) conformément audit code préfixe complet (5), -associer les mots de ladite suite de mots codée (11) aux mots de sortie correspondants conformément à ladite fonction de désynchronisation ( ) pour former ladite séquence de données pseudo aléatoire (1).
Description
Procédé, système et dispositif de génération d'une séquence de données pseudo aléatoire.
Domaine technique de l'invention L'invention se rapporte au domaine du chiffrement/déchiffrement et concerne un système et un procédé de génération d'une séquence de données pseudo aléatoire.
L'invention trouve une application très avantageuse en ce qu'elle permet de créer des suites de bits destinées au chiffrement symétrique, pour lequel les chiffrement et déchiffrement utilisent une même clé secrète. D'une part, l'invention s'inscrit dans le cadre d'un procédé de chiffrement à flot qui consiste à additionner bit à bit un message avec une séquence de données pseudo aléatoire de même longueur. D'autre part, elle s'inscrit dans le cadre d'un procédé dans lequel l'opération de chiffrement et l'opération de déchiffrement sont identiques. On notera que, le chiffrement symétrique est employé couramment dans tous les types de communications, telles que les communications mobiles (GSM, UMTS...), l'internet (SSL...), les cartes à puce (cartes bancaires), etc.
Arrière-plan de l'invention
La technique de chiffrement symétrique la plus élémentaire est le chiffrement à flot consistant à additionner bit à bit le message clair avec une suite aléatoire de même longueur. Cette technique pose le problème essentiel et difficile de la génération de longues suites pseudo-aléatoires.
La méthode la plus répandue de chiffrement à flot consiste à utiliser une suite pseudo-aléatoire générée de manière indépendante du message à chiffrer en faisant appel, dans un but d'économie matérielle, à des registres à décalage à rétroaction linéaire.
L'inconvénient majeur des registres à décalage à rétroaction linéaire est leur linéarité. En effet, la connaissance d'un nombre de bits de sortie du registre égal à la longueur du registre ainsi que du polynôme de rétroaction associé au registre permet de connaître les bits de sortie ainsi que tous les états ultérieurs du registre.
Aussi, afin de "casser" la linéarité des registres à décalage à rétroaction linéaire, il est d'usage de combiner la sortie de plusieurs registres, ainsi, éventuellement, que leur état interne, à l'aide par exemple d'une fonction booléenne non linéaire. La figure 5 montre un tel générateur 121 appelé « shrinking generator » décrit dans la demande de brevet européen EP 0 619 659 comportant un premier registre à décalage à rétroaction linéaire 123a, un second registre à décalage à rétroaction linéaire 123b, et un moyen 125 pour sélectionner la sortie du générateur 121. A chaque décalage, les deux registres 123a et 123b sont décalés simultanément, et la sortie du dispositif 121 est égale à la sortie du deuxième registre 123b si la sortie du premier registre 123a est « 1 », sinon aucun bit n'est sorti.
Le shrinking generator permet de combiner non seulement les sorties de deux registres à décalage à rétroaction linéaire mais aussi, plus généralement, tout couple de suites de bits. Le shrinking generator fait partie d'une classe de procédés de chiffrement à flot, dans lesquels un registre à décalage à rétroaction linéaire en contrôle un autre. L'idée est de faire varier le nombre de décalages, d'une part, entre les différents registres employés et, d'autre part, entre deux bits consécutifs, afin de casser la linéarité des registres.
Une variante du shrinking generator, appelée « self-shrinking generator », repose sur le même principe, mais à partir, cette fois d'un seul registre. Les bits de sortie du registre sont lus deux à deux, et Ie
premier bit contrôle la sortie du second de sorte que la sortie du système est le second bit si le premier est « 1 », et aucun bit n'est sorti sinon.
Les inconvénients de l'emploi de registres à décalage à rétroaction linéaire seuls sont nombreux. Le principal est la faiblesse due à la linéarité du dispositif. Lorsque des registres sont combinés par une fonction booléenne, là aussi des inconvénients apparaissent. Au niveau matériel, ils proviennent de la complexité de l'implémentation de la fonction. De plus, cette fonction est fixée, et il est possible de l'attaquer.
Par ailleurs, lorsque la rétroaction des registres à décalages intervenant dans un générateur de suites pseudo-aléatoires est régulière ou facilement prédictible, le générateur est alors vulnérable aux attaques algébriques.
D'autre part, des méthodes statistiques ont mis en évidence certaines faiblesses du « shrinking generator». En particulier, dans le shrinking generator, le nombre de décalages effectués par les deux registres entre deux bits de sortie varie, mais a la même valeur pour les deux registres.
Objet et résumé de l'invention L'invention concerne un procédé de génération d'une séquence de données pseudo aléatoire à partir d'un flux de données initial comportant les étapes suivantes :
-définir un ensemble de mots de code formant un code préfixe complet,
-définir un ensemble de mots de sortie, -définir une fonction de désynchronisation associant à tout mot de code dudit code préfixe complet un mot de sortie dudit ensemble de mots de sortie,
-décomposer le flux de données initial en une suite de mots codée conformément audit code préfixe complet,
-associer les mots de ladite suite de mots codée aux mots de sortie correspondants conformément à ladite fonction de désynchronisation pour former ladite séquence de données pseudo aléatoire.
Ainsi, l'utilisation de codes préfixes complets permet une décomposition unique du flux de données initial et peut être facilement effectuée par un automate fini. De plus, ce procédé est simple à réaliser, et il utilise une fonction permettant de désynchroniser le flux de données initial pour générer une séquence de données pseudo aléatoire. En effet, l'utilisation d'un code préfixe complet et d'un "composant de désynchronisation" permet d'empêcher ou de rendre pratiquement inefficace les attaques algébriques tout en produisant un nombre minimum garanti de bits. En revanche, on notera que même si un shrinking generator est utilisé comme composant de désynchronisation dans un générateur de suites pseudo-aléatoires, le débit minimum assuré est pratiquement nul.
Avantageusement, ladite fonction de désynchronisation est une fonction paramétrée dépendant d'un paramètre prédéterminé dont la valeur est modifiable au cours de la génération de la séquence de données pseudo aléatoire. Le fait que la désynchronisation dépende d'un paramètre d'initialisation modifiable permet d'améliorer la complexité de la relation entre le flux de données initial et la séquence de données pseudo aléatoire augmentant la difficulté de prédiction de la séquence de données pseudo aléatoire. Selon une particularité de l'invention, ledit ensemble de mots de sortie comporte pour tout mot de sortie un mot de sortie complémentaire. Ceci permet d'équilibrer, pour une longueur de mot de sortie donnée, par exemple le nombre de « 0 » et de « 1 » dans l'ensemble de mots de sortie.
De préférence, les mots de code dudit code préfixe complet ont une longueur limitée par une borne supérieure h, et ledit code est tel que si un mot de sortie quelconque x est de même longueur qu'un autre mot de sortie y, alors le nombre d'antécédents par ladite fonction de désynchronisation du mot de sortie x est le même que le nombre d'antécédents par ladite fonction de désynchronisation du mot de sortie y.
Ceci garantit un débit minimum qui ne dépende pas des propriétés particulières du flux de données initial tout en permettant à la séquence de données pseudo aléatoire de présenter des bonnes propriétés statistiques. En particulier, ceci permet d'assurer que le poids de Hamming de la séquence de données pseudo aléatoire générée en sortie ne fournisse aucune information sur la séquence de données initiale. Autrement dit les bits ayant la valeur « 0 » et les bits ayant la valeur « 1 » dans la séquence de sortie contiennent la même quantité d'informations sur la séquence de données initiale.
Avantageusement, les mots dudit code préfixe complet ont une longueur limitée par une borne inférieure m, et il existe une longueur supérieure / de mots dudit code préfixe complet telle que pour toute longueur k inférieure ou égale à la longueur supérieure /, le code préfixe complet contient 2'"™1 mots de longueur k.
Ceci améliore encore davantage les propriétés statistiques en permettant à la séquence de données pseudo aléatoire d'avoir une distribution de probabilité optimale.
Selon un premier mode de réalisation, le procédé est caractérisé en ce que :
-le code préfixe complet est défini par un ensemble C1 de mots de code ayant la forme suivante ;
C ={θl"O;O ≤ w < /ι-2}u{lO"l;O < « < /î-2}u{θl""I}u{lO'M} , avec h ≥ 2 ; -l'ensemble de mots de sortie est défini par des mots de l'ensemble binaire £, = {0,1} ;
-le paramètre prédéterminé u de la fonction de désynchronisation paramétrée est un vecteur u = (uo,...,uh_]) dont les composantes appartiennent à l'ensemble {0,1} ; et
-la fonction de désynchronisation paramétrée fu est définie de la manière suivante : fu(0f O)=Un pour 0 < n ≤ h-2, fu (l(Tl)≈Un® 1 pour 0 < n ≤ h-2,
fu (Id1'1)= Uh-i (B l. Ce mode de réalisation est peu coûteux à réaliser et peut être avantageusement utilisé pour implémenter un chiffrement de type matériel. De plus, le rapport entre le nombre de bits sortis (c'est-à-dire le nombre de bits de la séquence de données pseudo aléatoire) et le nombre de bits d'entrée (c'est-à-dire le nombre de bits du flux de données initial) est strictement supérieur à 1/3 et le nombre minimum garanti de bits sortis sur une entrée de longueur h est 1.
Selon un autre mode de réalisation, le procédé est caractérisé en ce que : -le code préfixe complet est défini par un ensemble G de mots de code composés de deux octets de la forme suivante C2 = {w,w2;w, e {θ,lf,i = 1,2/; -l'ensemble de mots de sortie est défini par des mots de l'ensemble
-le paramètre prédéterminé v de la fonction de désynchronisation paramétrée est un vecteur v = (vo,...,vg,v9) dont les composantes appartiennent à l'ensemble {θ,l}, les valeurs des huit premières composantes vG,...,vg étant invariantes et Ia valeur de la dernière composante % étant variable ; et
-la fonction de désynchronisation paramétrée fv -. C2 →
associe à tout mot de la forme W1W2 :
- le mot Wi si l'une des conditions suivantes est vérifiée : o 4 < wt(w, Θ w2) < 8 et vwl(u,ιΦwj) = b , wt étant le poids de Hamming, b étant un élément prédéterminé de {θ,l}, o 0 ≤ Wt(W1 Φ w2 ) < 4 et vM,{H.iθH.2 ) ≠ b , o wt{wx θ w, ) = 4 , V9 = 1 , 4 < Wt(W1 Φ W2 Φ e) ≤ 8 et V4 = b , e étant un mot de {θ,l}8 de poids de Hamming impair, o wt(wx ® W2 ) = 4 , V9 = 1 , 0 ≤ wt(wx Φ w2 Φ e) < 4 et v4 ≠ h , - le mot W2 si l'une des conditions suivantes est vérifiée : o 4 < wt(wx Φ w2 ) ≤ 8 et vw/(Wiθtf2) ≠ b , o 0 < Wt(W1 θ W2 ) < 4 et vw/(Wi φM,2 , = b , o wt(w, θ W2 ) = 4 , V9 = 1 , 4 < wt(wx Φ W2 ® e) ≤ 8 et V4 ≠ ô , o Wt(M^1 θ w2 ) = 4 , v9 = 1 , 0 < Wt(Vt^1 θ w2 θ e) < 4 et v4 = è , et - le mot vide f si Wt(W1 Θ w2 ) = 4 et v9 = 0 .
Cet autre mode de réalisation peut être avantageusement utilisé pour un chiffrement de type logiciel. De plus, le rapport entre le nombre d'octets sortis et le nombre d'octets d'entrée est strictement supérieur à 1/3 et le nombre minimum garanti d'octets sortis sur une entrée de longueur h octets est 1.
L'invention vise aussi un générateur d'une séquence de données pseudo aléatoire à partir d'un flux de données initial, caractérisé en ce qu'il comporte une mémoire et une unité de traitement, ladite mémoire stockant un ensemble de mots de code formant un code préfixe complet et un ensemble de mots de sortie, ladite unité de traitement étant apte à lire et à décomposer le flux de données initial en une suite de mots codée conformément audit code préfixe complet et à associer les mots de ladite suite de mots codée aux mots de sortie correspondants
conformément à une fonction de désynchronisation pour générer ladite séquence de données pseudo aléatoire.
Ainsi, ce générateur permet de générer une séquence de données pseudo aléatoire ayant un débit minimum qui ne dépende pas des propriétés particulières du flux de données initial. De plus, ce générateur est facile à implémenter tout en étant efficace et peu coûteux.
Avantageusement, le générateur comporte en outre un moyen de paramétrage destiné à rendre ladite fonction de désynchronisation dépendante d'un paramètre prédéterminé et à modifier la valeur dudit paramètre prédéterminé au cours de la génération de la séquence de données pseudo aléatoire.
Ainsi, le fait de ne pas connaître la valeur du paramètre d'initialisation ni à quel instant elle a été modifiée augmente la difficulté de prédiction de la séquence de données pseudo aléatoire. L'invention vise aussi un dispositif de chiffrement/déchiffrement comportant une porte logique «ou-exclusif » et un générateur selon les caractéristiques ci-dessus.
Ce dispositif permet de combiner de manière simple chaque bit de la séquence de données pseudo aléatoire avec un bit correspondant d'une séquence de données d'un message à chiffrer par une addition modulo 2 pour former une séquence de données chiffrée présentant une grande complexité linéaire.
L'invention vise aussi un système sécurisé comportant au moins deux entités connectées via un réseau, chacune desdites au moins deux entités comporte un dispositif de chiffrement/déchiffrement selon les caractéristiques ci-dessus.
Ainsi, Ie système sécurisé comporte une structure simple à réaliser tout en ayant un mécanisme intrinsèquement complexe.
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 illustre très schématiquement un procédé de génération d'une séquence de données pseudo aléatoire, selon l'invention ;
-les figures 2A et 2B montrent de manière schématique deux exemples d'automates finis permettant de décomposer un flux de données initial en une suite de mots codée selon l'invention ;
-les figures 3A et 3B illustrent des exemples schématiques d'un générateur d'une séquence de données pseudo aléatoire, selon l'invention ;
-la figure 4 montre un système sécurisé comportant des générateurs selon les figures 3A ou 3B ; et
-la figure 5 est une vue schématique d'un générateur selon l'art antérieur.
Description détaillée de modes de réalisation Conformément à l'invention, la figure 1 illustre un exemple schématique d'un procédé de génération d'une séquence de données pseudo aléatoire 1 à partir d'un flux de données initial 3.
On appelle, dans tout ce qui suit, un "mot" (ou un motif)/ toute suite finie de lettres d'un alphabet quelconque, par exemple l'alphabet de l'ensemble binaire composé uniquement de 0 et de 1. Chaque mot comporte alors une longueur donnée. Par exemple, 0, 11, 000, 1010, 00111 sont des mots de longueurs respectives 1, 2, 3, 4 et 5. Par ailleurs, un mot "vide" noté ε est un mot de longueur nulle (c'est-à-dire, ne contenant aucune lettre).
Le flux de données initial 3 correspond à une séquence de données ayant une forte "complexité linéaire". A titre d'exemple, le flux de données initial 3 peut être engendré par un moyen de production initial 23
(voir figure 3A) comportant un registre à décalage à rétroaction linéaire de période maximale.
En effet, toute suite périodique peut être générée par une infinité de registres à décalage à rétroaction linéaire. Parmi ces registres, il en existe un qui est plus court que tous les autres. La longueur de ce plus court registre est appelé "complexité linéaire" du flux. Si la complexité linéaire de la séquence de données initiale est L1 alors il est possible par un algorithme de Berlekamp-Massey de reconstruire l'état initial du registre (et en fait toute la séquence) à partir d'une sous-suite de la séquence de données initiale de longueur 2L
Ainsi, afin de générer une séquence de données pseudo aléatoire en toute sécurité, il est recommandé que le flux de données initial 3 présente une forte complexité linéaire. En effet, actuellement, le meilleur algorithme connu, peut reconstituer le flux de données initial 3 en moins de 280 opérations si la complexité linéaire L de ce flux de données initial est inférieure à 160. Par conséquent, il est avantageux de prendre un flux de données initial 3 ayant une complexité linéaire L supérieure ou égale à 160.
Conformément à l'invention, on définit un ensemble de mots de code 5a formant un "code préfixe complet" 5.
On désigne par le terme générique "code" tout ensemble de mots sur un alphabet déterminé. On considère alors les propriétés de ce code relativement à l'alphabet en question.
Soit A un alphabet quelconque fixé. On considère à présent les mots composés de lettres de A, et on désigne par C un code sur A. Alors: 1) un mot x est dit "préfixe" du mot w s'il existe / tel que w=xy, cette notation signifiant que x est concaténé avec /. Si dans le code C1 aucun
mot du code n'est préfixe d'un autre mot du code, alors on dit que C est un "code préfixe";
2) on dit qu'un mot w esï codé par C si le mot w est la concaténation de mots de C, autrement dit, si on peut écrire
avec les mots W1, W2,..., wn dans C ; alors, si pour tout mot w, il existe un mot w'tel que ww' soit codé par C1 on dit que C est "complet". On peut montrer que le code C est complet si, et seulement si, pour tout mot w, il existe un mot w' et un mot de code u appartenant à Ctel que /y est préfixe du mot ww', c'est-à-dire qu'il existe un mot w\ un mot de code u appartenant à Cet un mot u' tels que ww' est égal à uu'.
On dit que C est un code préfixe complet si C est à la fois un code préfixe et un code complet.
En outre, on définit un ensemble 7 de mots de sortie 7a désigné par £, tel que £est contenu dans l'union de {O,l}k et {ε}, et une fonction de désynchronisation / associant à tout mot de code 5a du code préfixe complet 5 un mot de sortie 7a de l'ensemble 7 de mots de sortie.
A titre d'exemple, l'ensemble 7 des mots de sortie est l'ensemble £={ε,0,l} ou £={0,1} ou E= l'union ûe{ε}et{0,l}8k {dNez k ≥ \ c'est-à-dire, des multiples d'octets). En particulier, afin d'équilibrer, pour une longueur de mots de sortie donnée, le nombre de « 0 » et de « 1 » dans l'ensemble de mots de sortie, il est avantageux de choisir un ensemble 7 de mots de sortie qui comporte pour tout mot de sortie 7a noté s un mot de sortie 7a complémentaire noté s .
Par ailleurs, la fonction de désynchronisation / est une opération de base (par exemple une addition bit à bit modulo 2) dont l'évaluation est peu coûteuse à réaliser.
Ainsi, Ie procédé de Ia présente invention prend en entrée un code C préfixe complet 5, un ensemble E de mots de sortie 7, et une fonction de désynchronisation / .
En outre, le procédé selon l'invention comporte une opération de décomposition 10 décomposant le flux de données initial 3 en une suite de mots codée 11 conformément audit code préfixe complet 5. En effet, l'utilisation d'un code préfixe complet 5 permet de décomposer le flux de données initial 3 de manière unique.
Avantageusement, le code préfixe complet 5 est reconnaissable par un automate fini qui, étant donné un mot W1 détermine si w est ou non dans le code préfixe complet 5.
En effet, les figures 2A et 2B montrent de manière schématique deux exemples d'automates finis 13a et 13b permettant de décomposer un flux de données initial 3 en une suite de mots codée 11. Un automate fini comporte un ensemble de nœuds ou d'états 15 reliés par des chemins ou flèches 17 de sorte que tout mot d'un code préfixe complet 5 peut être défini par un ensemble de chemins 17 entre un état 15 initial noté /et un état 15 final noté F. Ainsi, lorsqu'un bit est lu, on suit le chemin 17 correspondant à la valeur du bit et quand on arrive dans l'état final F1 on sait que l'on vient de terminer la lecture d'un mot du code préfixe complet 5 et on peut se repositionner dans l'état initial /pour lire le mot suivant.
L'exemple de la figure 2A permet de reconnaître les mots de code d'un code préfixe complet 5 défini par £={10*1, 01*0}, où 10*1 (respectivement 01*0) désigne l'ensemble des mots de la forme 10*1 (respectivement 01*0) avec k un nombre entier. On notera que 100I correspond au mot 11 et 010O correspond au mot 00. Ainsi, cet automate fini 13a permet de décomposer le flux de données initial 3 en une suite de mots codée 11 comportant des mots de la forme 10...01, 01...10, 11, et 00.
Par ailleurs, l'exemple de la figure 2B permet de reconnaître des mots de code ayant une longueur limitée par une borne supérieure h d'un code préfixe complet 5 défini par le code C=(IO^1, Ql^lO*!, 01*0, k≤h}.
En outre, le procédé selon l'invention comporte une opération d'association 20 associant les mots de la suite de mots codée 11 aux mots de sortie 7a correspondants conformément à la fonction de désynchronisation / afin de former la séquence de données pseudo aléatoire 1.
Ainsi, la mise en application du mécanisme de la présente invention concerne la décomposition 10 d'une suite d'entrée (c'est-à-dire, le flux de données initial 3) à la volée en une suite 11 de mots du code préfixe complet 5. A chaque fois qu'un mot du code préfixe complet 5 est reconnu, l'image de ce mot par la fonction de désynchronisation / produit un mot en sortie. Ce mécanisme est répété jusqu'à ce que le dernier bit de la suite d'entrée du flux de données initial 3 soit atteint ou lorsqu'une condition d'arrêt déterminée par l'utilisateur est vérifiée.
On notera que dans le cadre d'applications cryptographiques, on peut avantageusement conserver tout ou partie des données du mécanisme (code 5, fonction / ) comme données secrètes du système cryptographique.
Avantageusement, la fonction de désynchronisation / est une fonction paramétrée dépendant d'un paramètre prédéterminé dont la valeur peut être modifiée au cours de la génération de la séquence de données pseudo aléatoire 1. Cette fonction paramétrée est alors de la forme v,x κ> /v(x) qui associe à tout vecteur binaire v de longueur m, c'est-à-dire, tout élément v de {θ,l}"' , et tout mot x du code C préfixe complet 5 un élément de l'ensemble £ de mots de sortie 7. Dans ce cas, le procédé selon l'Invention prend en entrée le flux de données initial 3 et un vecteur binaire v. Le choix de ce vecteur v peut résulter d'une opération (non-linéaire) appliquée à un vecteur d'initialisation. Bien entendu, Ie vecteur v peut prendre une valeur prédéterminée (par exemple v est le vecteur nul). Avantageusement, le
vecteur v peut être modifié au cours du déroulement du procédé et ainsi dépendre de la génération de la séquence de données pseudo aléatoire 1.
Ainsi, ce paramètre permet d'améliorer la complexité de la relation entre le flux de données initial 3 et la séquence de données pseudo aléatoire 1 augmentant la difficulté de prédiction de cette séquence de données pseudo aléatoire 1.
En outre, afin de garantir un débit minimum qui ne dépende pas des propriétés particulières du flux de données initial 3, il est avantageux que les mots de code du code préfixe complet 5 présentent une longueur limitée par une borne supérieure h et tel que si un mot de sortie quelconque Si est de même longueur qu'un autre mot de sortie s2/ alors le nombre d'antécédents par la fonction de désynchronïsation / du mot de sortie S1 est le même que le nombre d'antécédents par la même fonction / du mot de sortie s,?. Autrement dit, le code préfixe complet 5 comprend les propriétés avantageuses suivantes :
- il existe un entier /? tel que tous les mots du code C préfixe complet 5 ont une longueur inférieure ou égale à h ; et
- pour tout entier k, pour toute paire (Sj1Sj) de l'ensemble E\{ε}, les nombres d'éléments de longueur k respectivement dans les ensembles f;1 { si} et /;' { s2} sont égaux.
De plus, ceci permet d'assurer que le poids de Hamming (c'est- à-dire le nombre de bits de valeur « 1 ») de la séquence de données pseudo aléatoire 1 générée en sortie ne fournisse aucune information sur la séquence de données initiale 3. Autrement dit les bits ayant la valeur
« 0 » et les bits ayant la valeur « i » dans la séquence pseudo aléatoire 1 de sortie contiennent la même quantité d'informations sur la séquence de données initiale 3.
Avantageusement, les mots du code préfixe complet 5 ont une longueur limitée par une borne inférieure m et il existe une longueur supérieure / de mots dudit code préfixe complet telle que pour toute longueur k inférieure ou égale à cette longueur supérieure /, le code préfixe complet contient 2flM mots de longueur k. Autrement dit, la fonction d'association fv vérifie la propriété suivante : il existe un entier
/77 tel que tous les mots du code C* considéré ont une longueur supérieure ou égale à m, et de plus, il existe un entier / ≥ m tel que pour tout entier k supérieur ou égal à m et inférieur ou égal à /, le code C\{f~\ε)} contient exactement 2nM mots de longueur k.
Ainsi, avec une distribution uniforme sur le flux de données initial 3, le débit moyen est de l'ordre V , . En particulier, pour un bit donné de la séquence de données pseudo aléatoire, la probabilité que le mot de code ayant généré ce bit soit de longueur k et inversement proportionnel à k, et cela quel que soit le bit donné (0 ou 1). Ce choix de distribution de probabilité est optimal au regard des propriétés statistiques que doit satisfaire la séquence de données pseudo aléatoire 1.
A titre d'exemple et selon un premier mode de réalisation particulier de l'invention, on considère un code préfixe complet défini par un ensemble C1 = {orθ;θ ≤ « ≤ λ- 2}u{ioΛi;θ < « < Λ -
JUIIO'"1 }(OÙ u désigne l'union), h étant un nombre entier fixé (h ≥ 2), et un ensemble de mots de sortie défini par des mots de l'ensemble binaire E1 ={θ,l}.
Par ailleurs, on définit un vecteur w = («0,...,wA_,) dont les composantes appartiennent à l'ensemble {0,1} . La fonction paramétrée fu est définie de Ia manière suivante ; fu(0f O)=Un pour 0 < n ≤ h~2, fu (1(Tl)=Un θ 1 pour 0 < n < h-2, (φ désigne une addition modulû 2)
Selon ce mode de réalisation, on lit le flux de données initial 3 bit par bit et pour tout mot x du code Q1 la valeur fu(x) est calculée avec la connaissance du premier bit du mot x et de la valeur n (pour les mots de la forme bb"b ) ou de la valeur fixée h-1 (pour les mots de la forme
U^ ).
Afin de décrire le mécanisme de ce premier mode de réalisation, on note fu(b,n) = fuφb "b) = b®un avec 0 < n ≤ h~2 et fu(b,h~\) = fuφb h'x) = b®uh^ . Par ailleurs, on dispose d'un drapeau "fïag" qui est initialisé avec la valeur 0 et prend la valeur 1 uniquement après la reconnaissance d'un mot du code Q. La valeur du drapeau est réinitialisée après chaque reconnaissance de mot. Pour chaque reconnaissance de mot, le premier bit du mot en cours est stocké de manière temporaire dans la variable c et la longueur du mot est mise à jour dans la variable "lengtH\ La valeur du bit de sortie est stockée dans la variable s.
Ainsi, ce premier mode de réalisation comporte la répétition du mécanisme suivant :
- flag±-O ; length <-0 - Lire le bit suivant b dans la suite Sdu flux de données initial 3
- c<-b
- Faire : o Lire le bit suivant b dans la suite S o Si b = c alors flagt- 1, sinon length=length+\ Tant qye {flag = 0) et length< h - 1
-
. f/cΦukιψiπ = fu (cJength)
Ce mode de réalisation est peu coûteux à réaliser et peut être avantageusement utilisé pour ïmplémβnter un chiffrement avec des circuits électroniques de type matériel. De plus, le débit moyen, c'est-à-
dire le rapport entre le nombre de bits sortis (le nombre de bits de la séquence de données pseudo aléatoire 1) et le nombre de bits d'entrée (le nombre de bits du flux de données initial 3) est strictement supérieur à 1/3. De plus, le nombre minimum garanti de bits sortis sur une entrée de longueur h est 1.
Selon un deuxième mode de réalisation particulier de l'invention, le code préfixe complet 5 est défini par un ensemble C2 de mots de code composés de deux octets de la forme suivante C2
et l'ensemble de mots de sortie est défini par des mots de l'ensemble E2 = {θ,l}8 u{ε}.
Par ailleurs, on définit un vecteur v = (vo,...,v8,v9) dont les composantes appartiennent à l'ensemble {θ,l}, les valeurs des huit premières composantes vo,...,v8 étant invariantes et la valeur de la dernière composante v9 étant variable. En outre, la fonction paramétrée fv : C2 → {ε}u{θ,lf associe à tout mot de la forme WiW2 :
- le mot W1 si l'une des conditions suivantes est vérifiée : o 4 < Wt(W1 Θ w2) < 8 et vM/(M|θMθ = è , fr étant le poids de
Hamming, Jetant un élément prédéterminé de {θ,l}, o 0 ≤ Wi(W1 Φ w2 ) < 4 et vM,(H Φ^ ≠ b , o Wt(W1 Φ W2 ) = 4 , V9 = 1 , 4 < Wt(W) Φ w, θ e) ≤ 8 et v4 = b , e étant un mot de {θ,l}8 de poids de Hamming impair, o Wt(W1 θ W2 ) = 4 , V9 = 1 , 0 < wt(w\ Φ w2 Φ e) < 4 et v4 ≠ b ,
- Ie mot W2 si l'une des conditions suivantes est vérifiée : o 4 < Wf(W1 θ w2 ) < 8 et vu liι@Kj : ≠ b ,
G O ≤ Wt(W1 Q w2) K 4 et vv ^e^ ≈ b , o Wi(M-, l w, ) = 4 , vv = 1 , 4 < wt(W) Φ W2 Φ e) ≤ 8 et v4 ≠ b ,
o Wt(W1 θ W2 ) = 4 , V9 = 1 , 0 < Wl(Wx θ W2 Φ e) < 4 et V4 = 6 , et
- le mot vide £si w?(w, θ w2 ) = 4 et v9 = O .
Pour décrire le mécanisme de ce deuxième mode de réalisation, on fixe un entier /7 tel que h > \ et on dispose d'un drapeau "flag" qui est initialisé avec la valeur 0 et prend la valeur 1 uniquement après la reconnaissance d'un mot du code Q. Pour chaque reconnaissance de mot, le dernier octet lu est stocké de manière temporaire dans la variable c et la longueur du mot est mise à jour dans la variable "length". La valeur de l'octet de sortie est stockée dans la variable 5. La concaténation de deux octets wx et w2 est notée wx \ w2 .
Ainsi, ce deuxième mode de réalisation comporte la répétition du mécanisme suivant :
- flag <r- O ; length ^- O
- v9 <- 0 - Lire l'octet suivant octôans la suite 5
- Faire : o Lire l'octet suivant oct dans la suite 5
o S) s ≠ ε alors flag<r- 1, sinon :
• c<- oct
« length = length +1
* Si length=h-3 , alors v9 <- 1
Tant que (flag = 0) - Sortir s .
Ce deuxième mode de réalisation peut être avantageusement utilisé pour un chiffrement de type logiciel. De plus, le débit moyen c'est- à-dire le rapport entre Ie nombre d'octets sortis et Ie nombre d'octets
d'entrée est strictement supérieur à 1/3 et le nombre minimum garanti d'octets sortis sur une entrée de longueur h octets est 1.
La figure 3A illustre un exemple très schématique d'un générateur 21 d'une séquence de données pseudo aléatoire 1. Le générateur 21 comporte un moyen de production initial 23 comprenant au moins un registre à décalage à rétroaction linéaire de période maximale engendrant le flux de données initial 3. Dans une suite de période maximale T, on sait que tous les mots ou motifs de longueur k (où T=^-I) apparaissent au moins une fois. Un registre à décalage à rétroaction linéaire est un tableau de bits de longueur finie (le registre) muni d'une combinaison linéaire, représentée par un polynôme appelé polynôme de rétroaction. A chaque décalage, le bit d'indice le plus élevé est sorti, tous les autres bits sont décalés d'un indice, et le bit d'indice le plus faible prend la valeur de la combinaison linéaire avant le décalage. Avantageusement, le polynôme de rétroaction peut par exemple être un polynôme primitif correspondant à un registre à décalage à rétroaction linéaire produisant une suite de période maximale, ou bien un polynôme de la forme Q = (χ2 + l)P , avec P un polynôme primitif.
En outre, le générateur 21 comporte une mémoire 25 et une unité de traitement 27. La mémoire 25 est destinée à stocker un ensemble de mots de code formant un code préfixe complet 5 et un ensemble de mots de sortie 7.
L'unité de traitement 27 est destinée à lire et à décomposer le flux de données initial 3 en une suite de mots codée 11 conformément au code préfixe complet 5 et à associer les mots de cette suite de mots codée il aux mots de sortie correspondants conformément à une fonction de désynchronisation / pour générer Ia séquence de données pseudo aléatoire. La fonction de désynchronïsation / associe à tout mot de code du code préfixe complet 5 un mot de sortie de l'ensemble de mots de sortie 7.
On notera que les opérations de décomposition 10 et d'association 20 peuvent être réalisées de manière simultanée par l'unité de traitement 27. Ainsi, l'unité de traitement 27 lit le flux de données initial 3 bit par bit et chaque fois qu'un mot du code préfixe complet 5 est trouvé, il calcul l'image de ce mot par la fonction de désynchronisation 9.
Ainsi, ce générateur est facile à mettre en œuvre et comporte des moyens de décomposition (mémoire 25 et unité de traitement 27) qui décomposent le flux d'entrée de données initial 3 de manière unique et des moyens de désynchronisation (mémoire 25 et unité de traitement 27) permettant d'engendrer une séquence de données pseudo aléatoire ayant un débit minimum qui ne dépende pas des propriétés particulières du flux de données initial 3.
La figure 3B illustre un autre exemple d'un générateur 21 d'une séquence de données pseudo aléatoire 1 qui se distingue de celui de la figure 3A par le fait qu'il comporte en outre un moyen de paramétrage 29. Ce moyen de paramétrage 29 est destiné à rendre la fonction de désynchronisation f dépendante d'un paramètre prédéterminé et à modifier la valeur de ce paramètre au cours de la génération de la séquence de données pseudo aléatoire 1. La figure 4 montre un système sécurisé 30 comportant aux moins deux entités connectées entre elles via un réseau de communication 35 de type Internet, GSM, UMTS, WiFi, UltraWideBand, etc.
L'exemple de cette figure montre une première entité 33a connectée via le réseau de communication 35 à une seconde entité 33b.
La première entité 33a (respectivement la seconde entité 33b) comporte un premier terminal 37a (respectivement un second terminal
37b), un premier dispositif de chiffrement/déchiffrement 39a
(respectivement un second dispositif de chiffrement/déchiffrement 39b) et un premier modem 41a (respectivement un second modem 41b), les
modems 41a et 41b pouvant être tout dispositif permettant de s'interfacer au réseau de communication 35.
Chacun des premier et second dispositifs de chiffrement/déchiffrement 39a, 39b comporte un générateur 21 d'une séquence de données pseudo aléatoire 1 tel que décrit précédemment et une porte logique «ou-exclusif » 43.
Chaque dispositif de chiffrement/déchiffrement 39a, 39b est destiné à faire un chiffrement ou un déchiffrement à flot qui consiste à chiffrer ou déchiffrer un message bit après bit. Selon cet exemple, le premier dispositif de chiffrement/déchiffrement 39a fait une opération de chiffrement. Ainsi, la séquence de données pseudo aléatoire 1 appelée suite chiffrante, est combinée par la porte ou-exclusif 43 avec chaque bit de position correspondante d'un message en clair 45 envoyé par le premier terminal 37a pour obtenir un texte chiffré 47 qui est ensuite envoyé par le premier modem 41a à la seconde entité 33b. Ainsi, l'opération de chiffrement consiste à ajouter bit à bit une suite chiffrante 1 au texte clair du message
45 pour obtenir le texte chiffré 47.
Le second dispositif de chiffrement/déchiffrement 39b fait une opération de déchiffrement qui consiste à ajouter bit à bit cette même suite chiffrante 1 au texte chiffré 47 envoyé par la première entité 33a pour reformer le message au texte clair 45. Ainsi, les opérations de chiffrement et de déchiffrement sont identiques.
Claims
1. Procédé de génération d'une séquence de données pseudo aléatoire (1) à partir d'un flux de données initial (3) caractérisé en ce qu'il comporte les étapes suivantes :
-définir un ensemble de mots de code formant un code préfixe complet
(5),
-définir un ensemble de mots de sortie (7),
-définir une fonction de désynchronisation (/) associant à tout mot de code dudit code préfixe complet (5) un mot de sortie dudit ensemble de mots de sortie (7),
-décomposer le flux de données initial (3) en une suite de mots codée
(11) conformément audit code préfixe complet (5),
-associer les mots de ladite suite de mots codée (11) aux mots de sortie correspondants conformément à ladite fonction de désynchronisation (/) pour former ladite séquence de données pseudo aléatoire (1).
2. Procédé selon la revendication 1, caractérisé en ce que ladite fonction de désynchronisation (/) est une fonction paramétrée dépendant d'un paramètre prédéterminé dont la valeur est modifiable au cours de la génération de la séquence de données pseudo aléatoire (1).
3. Procédé selon la revendication 1, caractérisé en ce que ledit ensemble de mots de sortie (7) comporte pour tout mot de sortie un mot de sortie complémentaire.
4.Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les mots de code dudit code préfixe complet (5) ont une longueur limitée par une borne supérieure h, et en ce que si un mot de sortie quelconque x est de même longueur qu'un autre mot de sortie y, alors le nombre d'antécédents par ladite fonction du mot de sortie x est le même que le nombre d'antécédents par ladite fonction du mot de sortie y.
5. Procédé selon la revendication 4, caractérisé en ce que les mots dudit code préfixe complet (5) ont une longueur limitée par une borne inférieure m, et en ce qu'il existe une longueur supérieure / de mots dudit code préfixe complet (5) telle que pour toute longueur £ inférieure ou égale à la longueur supérieure /, le code préfixe complet contient 2"M mots de longueur k.
6. Procédé selon l'une quelconque des revendications 4 et 5, caractérisé en ce que
-le code préfixe complet (5) est défini par un ensemble Ci de mots de code ayant la forme suivante : C, = {θl"O;O < « < /?-2}u{lO"l;O < « < /z-2}u{θlM }u{lOM} / avec h ≥ 2 ;
-l'ensemble de mots de sortie (7) est défini par des mots de l'ensemble binaire E1 ={o,l} ;
-le paramètre prédéterminé u de la fonction de désynchronisation (/) paramétrée est un vecteur « = («0,...,«Λ_,) dont les composantes appartiennent à l'ensemble {o,l} ; et
-la fonction de désynchronisation paramétrée fu est définie de la manière suivante : fu(OÏ 1O)=Un pour 0 < n ≤ h-2, fu (ICPl)=UnQ 1 pour 0 < n ≤ h-2, fu (01^)=Uh-!,
7. Procédé selon la revendication 4, caractérisé en ce que -le code préfixe complet (5) est défini par un ensemble O de mots de code composés de deux octets de la forme suivante C2 = {w, w2 ; w, e {θ,l}8 , i = 1,2/;
-l'ensemble de mots de sortie (7) est défini par des mots de l'ensemble
-le paramètre prédéterminé v de la fonction de désynchronisation (/) paramétrée est un vecteur v = (vo,...,vg.v9) dont les composantes appartiennent à l'ensemble {θ,l}, les valeurs des huit premières composantes vo,...,vg étant invariantes et la valeur de la dernière composante v9 étant variable ; et
-la fonction de désynchronisation paramétrée fv -.C2 →{ε}u{θ,lf associe à tout mot de la forme wiw2 ~ . "
- le mot W1 si l'une des conditions suivantes est vérifiée : o 4<w/(w,θw,)<8 et vwl(Wιθ^} =b, wt étant le poids de Hamming, tétant un élément prédéterminé de {0,1} , o 0 < Wt(W1 Φ w2 ) < 4 et vwl(^Wi) ≠ h ,
o Wt(W1 θ W2 ) = 4 , V9 = 1 , 4 < wt(wx θ w2 ® e) ≤ 8 et V4 = b , e étant un mot de {θ,l}8de poids de Hamming impair, o Wt(W1 Φw3) = 4, v9 = 1 , 0 < Wt(W1 Φ w2 Φe)<4 et v4 ≠b, - le mot W2 si l'une des conditions suivantes est vérifiée : o 4 < Wt(W1 θ W2 ) < 8 et v,Λt{ΛιΦwz } ≠bf o 0 < Wt(W1 Φ W1 ) < 4 et vM/(H|@M2) = b ,
o Wt(W1 Θw,) = 4, v9 =l, 4< wt(w, Φ W2 Φ e) ≤ 8 et V4 ≠ b , o wt(w, © w, ) = 4 , v9 = 1 , 0 < Wt(W1 Φ W2 Φ e) < 4 et V4 = b , et - le mot vide ε si wt(wt Φ w, ) = 4 et % = 0.
8. Générateur d'une séquence de données pseudo aléatoire (1) à partir d'un flux de données initial (3), caractérisé en ce qu'il comporte une mémoire (25) et une unité de traitement (27), ladite mémoire stockant un ensemble de mots de code formant un code préfixe complet (5) et un ensemble de mots de sortie (7), ladite unité de traitement (27) étant apte à lire et à décomposer le flux de données initial (3) en une suite de mots codée (11) conformément audit code préfixe complet (5) et à associer les mots de ladite suite de mots codée (11) aux mots de sortie correspondants conformément à une fonction de désynchronisation (/ ) pour générer ladite séquence de données pseudo aléatoire (1).
9. Générateur selon la revendication 8, caractérisé en ce qu'il comporte en outre un moyen de paramétrage (29) destiné à rendre ladite fonction de désynchronisation (9) dépendante d'un paramètre prédéterminé et à modifier la valeur dudit paramètre prédéterminé au cours de la génération de la séquence de données pseudo aléatoire (1).
10. Dispositif de chiffrement/déchiffrement comportant une porte logique (43) ou-exclusif, caractérisé en ce qu'il comporte en outre un générateur (21) selon l'une quelconque des revendications 9 et 10.
11. Système sécurisé comportant au moins deux entités (37a, 37b) connectées via un réseau (35), caractérisé en ce que chacune desdites au moins deux entités comporte un dispositif de chiffrement/déchiffrement (39a, 39b) selon la revendication 10,
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0505296 | 2005-05-26 | ||
| PCT/FR2006/050472 WO2007000549A2 (fr) | 2005-05-26 | 2006-05-23 | Procede, systeme et dispositif de generation d'une sequence de donnees pseudo aleatoire |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1886436A2 true EP1886436A2 (fr) | 2008-02-13 |
Family
ID=35241190
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP06794454A Withdrawn EP1886436A2 (fr) | 2005-05-26 | 2006-05-23 | Procede, systeme et dispositif de generation d'une sequence de donnees pseudo aleatoire |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP1886436A2 (fr) |
| JP (1) | JP2008542805A (fr) |
| KR (1) | KR20080019631A (fr) |
| CN (1) | CN101208902A (fr) |
| BR (1) | BRPI0610323A2 (fr) |
| WO (1) | WO2007000549A2 (fr) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8731124B2 (en) * | 2012-03-28 | 2014-05-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Signaling of sequence generator initialization parameters for uplink reference signal generation |
| DE102013205168A1 (de) * | 2013-03-22 | 2014-09-25 | Robert Bosch Gmbh | Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3866029A (en) * | 1973-09-18 | 1975-02-11 | Prayfel Inc | Two level random number generator having a controllable expected value |
| US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
-
2006
- 2006-05-23 JP JP2008512889A patent/JP2008542805A/ja active Pending
- 2006-05-23 EP EP06794454A patent/EP1886436A2/fr not_active Withdrawn
- 2006-05-23 KR KR1020077029543A patent/KR20080019631A/ko not_active Withdrawn
- 2006-05-23 CN CN 200680023071 patent/CN101208902A/zh active Pending
- 2006-05-23 BR BRPI0610323A patent/BRPI0610323A2/pt not_active IP Right Cessation
- 2006-05-23 WO PCT/FR2006/050472 patent/WO2007000549A2/fr not_active Ceased
Non-Patent Citations (1)
| Title |
|---|
| See references of WO2007000549A3 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2007000549A2 (fr) | 2007-01-04 |
| KR20080019631A (ko) | 2008-03-04 |
| JP2008542805A (ja) | 2008-11-27 |
| BRPI0610323A2 (pt) | 2016-11-29 |
| CN101208902A (zh) | 2008-06-25 |
| WO2007000549A3 (fr) | 2007-04-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2232765B1 (fr) | Procede et entite de chiffrement symetrique probabiliste | |
| EP2005290B1 (fr) | Procede et dispositif pour engendrer une suite pseudo-aleatoire | |
| FR3029719A1 (fr) | Methode de chiffrement a couches de confusion et de diffusion dynamiques | |
| EP0763913B1 (fr) | Procédé de mise en gage de données pour un protocole d'échange de données sécurisé | |
| EP3493458B1 (fr) | Procédé et système de chiffrement/déchiffrement de données à ultra faible latence à des fins de stockage et/ou de communication de données sécurisés | |
| EP0346180B1 (fr) | Dispositif de communication sécurisée de données | |
| EP1455478B1 (fr) | Procédé de cryptage d'un mot comportant N digits | |
| FR2785741A1 (fr) | Dispositif et procede de codage et d'entrelacement pour des turbocodes series ou hybrides | |
| FR2703483A1 (fr) | Dispositif de mise à jour de la valeur de code dans la méthode du codage arithmétique. | |
| EP2296307A1 (fr) | Procédé de traitement cryptographique de données sécurisé contre les attaques par fautes | |
| US7317795B2 (en) | Pipelined deciphering round keys generation | |
| EP1886436A2 (fr) | Procede, systeme et dispositif de generation d'une sequence de donnees pseudo aleatoire | |
| WO1992022159A1 (fr) | Dispositif cryptographique de chiffrage par bloc sans usage de cle | |
| EP1784718B1 (fr) | Generation d'une sequence de donnees pseudo aleatoire | |
| EP1851899A1 (fr) | Procede systeme et dispositif de generation d'une sequence de donnees pseudo aleatoire | |
| EP2374240B1 (fr) | Procede de mise en oeuvre d'un algorithme de chiffrement par blocs | |
| WO2009068658A1 (fr) | Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire | |
| EP1721246B1 (fr) | Procede et dispositif pour accomplir une operation cryptographique | |
| CN105897396B (zh) | 针对snow 3g加密算法的密码分析方法 | |
| FR2786050A1 (fr) | Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication | |
| WO2009030857A2 (fr) | Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete | |
| EP3785411B1 (fr) | Procédé et système pour assurer l'intégrité de données confidentielles diffusées | |
| EP4270855A1 (fr) | Protection contre les attaques par canal auxiliaire a l aide d'un masquage carre | |
| EP4560969A1 (fr) | Procédé de déchiffrement d'un secret chiffré et dispositifs associés | |
| FR2887715A1 (fr) | Procede de codage de messages |
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: 20071205 |
|
| 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 |
|
| DAX | Request for extension of the european patent (deleted) | ||
| 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: 20091201 |