WO2006134302A2 - Procede et dispositif pour engendrer une suite pseudo-aleatoire - Google Patents
Procede et dispositif pour engendrer une suite pseudo-aleatoire Download PDFInfo
- Publication number
- WO2006134302A2 WO2006134302A2 PCT/FR2006/050553 FR2006050553W WO2006134302A2 WO 2006134302 A2 WO2006134302 A2 WO 2006134302A2 FR 2006050553 W FR2006050553 W FR 2006050553W WO 2006134302 A2 WO2006134302 A2 WO 2006134302A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- function
- components
- pseudo
- tuple
- linear
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Definitions
- the present invention relates to the production of pseudo-random sequences of symbols belonging to a given alphabet. Such sequences are particularly used in certain cryptographic procedures.
- a pseudo-random sequence is called a sequence which, although produced in a deterministic manner, is impossible to distinguish, at least in a "reasonable” time, from a sequence of symbols in which each symbol is chosen perfectly randomly in the alphabet (The meaning of what is meant by a “reasonable” time is obviously related to the intended application and the computing power available).
- a pseudo-random sequence is usually generated by initializing an appropriate algorithm by means of a secret parameter (called, depending on the context, "seed” or “key”), and, if necessary, an additional, secret parameter. or not, called “initialization vector".
- the alphabet mentioned above may, for example, be the binary set ⁇ , l ⁇ , or the set of digits from 0 to 9, or the alphanumeric set comprising the digits and the uppercase and lowercase letters.
- the symbols of the alphabet belong to a finite field (or "Galois field" GF (#)) K of cardinal q ⁇ 2.
- the encryption afloat is notably implemented in the protocol of protection of exchanges on Internet called "TLS" (initials of the words “Transport Layer Security", see the article of T. Dierks, and C. Allen titled “The TLS Protocol, version 1.0, RFC 2246 ", January 1999), of which one of the most commonly used stream cipher algorithms is the” RC4 “algorithm (see the article by JD GoNc entitled” Linear Statistical Weakness ofAlleged RC4 ").
- TLS protocol of protection of exchanges on Internet
- pseudorandom suites for example in stochastic calculations and in cryptographic public key authentication protocols.
- the first condition requires that the robustness of the generator rests as directly as possible on the difficulty of a well-identified and considered difficult mathematical problem.
- algorithms satisfying this first condition for example the "Blum-Micali” algorithm (see the article by M. Blum and S. Micali entitled “How to generate cryptographically strong sequences of pseudo-random bits", J. Computing, Vol 13 No. 4, pages 850 to 863, November 1984), based on the difficulty of the discrete logarithm problem, or the "Blum-Blum-Shub” algorithm (see the article by L. Blum, M. Blum and M. Shub entitled "A simple secure unpredictable pseudorandom number generator", J.
- the present invention thus relates, in a first aspect, to a method for generating a pseudo-random sequence of terms belonging to a finite field K of cardinal q ⁇ 2 for use in a procedure
- each tuple X ( ⁇ ) being obtained at iteration n i in a predetermined manner from at least some components Y ( 'of a mplet 7 of said pseudo-random sequence being extracted in a predetermined manner from the n-tuples X and / or the / n-tuples Y (that is to say that the terms extracted at the iteration n ° i may depend on one or several n-tuples
- the tuple X ( ⁇ ) is obtained from at least the m -uplet Y (1) in various ways that are fairly simple to implement. For example: n first components of Y ( ⁇ ) ,
- N a linear or affine function on K or a subfield of K
- - X ( ⁇ is obtained by applying to the pair (x ( ' ⁇ 1) , Y ( ⁇ ) ) a linear F function or affine on K or a subfield of K.
- Z (() of this outgoing sequence being able to be conveniently extracted from the n-tuples X ( ⁇ ) and / or / n -uplets Y (l) in various ways quite simple to implement
- the invention relates to a pseudo-random sequence generator of terms belonging to a finite field K of cardinal q ⁇ 2 intended to be implemented in a cryptographic procedure, said generator having means for iteratively calculating, at from an initialization tuple e
- each tuple X ( ⁇ ) being obtained at iteration n i in a predetermined way at least from certain components Y ( 'of a mplet 7 of said pseudo-random sequence being extracted in a predetermined manner from the n-tuples X and / or the tuples Y.
- This generator is remarkable in that, for at least one value of i, among the said Y components ( ' ⁇ of the m - tupl y (l) which are used to obtain the multiplet X ( ⁇ ) , at least E ( «/ 2 ) each of which is represented by a predetermined polynomial function of degree 2, with coefficients in K, of the components of the n-tuplet X ( ' ⁇ ⁇ ) .
- this function S can for example be linear or affine over K or a
- the invention also aims at:
- an irremovable data storage means comprising computer program code instructions for the execution of the steps any of the methods for generating a pseudo-random sequence succinctly set forth above
- a computer program containing instructions such that, when said program controls a programmable data processing device, said instructions cause said data processing device to implement any of the methods to generate a pseudo-random sequence briefly outlined above.
- FIG. 1 is a block diagram illustrating an embodiment of the generator according to the invention.
- FIG. 2 is a block diagram illustrating a particular case, particularly simple to implement, of the embodiment illustrated in FIG.
- the present invention relies on the difficulty of the problem of solving m quadratic equations with n unknowns on a finite field K with q elements.
- This problem can be formulated precisely as follows: given a system (G) of m ⁇ 2 quadratic equations with n unknowns X 1 to x n belonging to a finite field K, of the form
- the calculated multiplet 7 (/) has at least E (n / 2) components (among those which will serve to obtain the new current state X 1 , see below) which are each represented by a function of degree 2 of the components of the tuple J (w)
- the parameters q, m and n are preferably chosen so that: - the resolution of a system of m quadratic equations with n unknowns on K can be considered difficult, which requires that the values of m and n be sufficiently large, and that their orders of magnitude are sufficiently close to one another (for example, q n and q m can be taken between 2 80 and 2 400 ), and -
- an n-tuplet X (o) is formed .
- X (o) may depend on either a public seed, a secret key, an initialization vector, or a combination of several of these elements; an initialization vector is an additional parameter, generally non-secret, which makes it possible to use the same secret key several times to generate several distinct pseudorandom suites.
- We then implement iterative steps to produce, from the initial state X (o) and according to the method described below, a pseudo-random sequence Z (() (where i 1,2, ..
- FIG. 1 it has been chosen to represent this method sequentially (two successive iterations), but it could also be represented in a looped manner.
- the important point to note here is that the successive steps of the method according to the invention can be implemented by a single electronic circuit.
- the sequence Z (() consists of tuples of elements of K.
- K proper scaling the sequence composed of elements of K proper (scalar)
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
L'invention concerne un procédé pour engendrer une suite pseudo-aléatoire de termes appartenant à un corps fini K de cardinal q = 2 destinés à être utilisés dans une procédure cryptographique, ledit procédé comprenant le calcul itératif, à partir d'un n -uplet d'initialisation X<SUP>(0)</SUP> = (x<SUP>(0</SUP>)<SUB>1</SUB>,X<SUP>(0</SUP>)<SUB>2</SUB>,...,X<SUP>(0)</SUP> <SUB>n</SUB>)
Description
Procédé et dispositif pour engendrer une suite pseudo-aléatoire
La présente invention concerne la production de suites pseudoaléatoires de symboles appartenant à un alphabet donné. De telles suites sont notamment utilisées dans certaines procédures cryptographiques.
On appelle suite pseudo-aléatoire une suite qui, bien que produite de manière déterministe, soit impossible à distinguer, du moins en un temps "raisonnable", d'une suite de symboles dans laquelle chaque symbole serait choisi parfaitement au hasard dans l'alphabet (la signification de ce qu'on entend par un temps "raisonnable" est évidemment liée à l'application visée et à la puissance de calcul disponible). En pratique, on produit habituellement une suite pseudo-aléatoire en initialisant un algorithme approprié au moyen d'un paramètre secret (appelé, selon le contexte, "graine" ou "clé"), et le cas échéant d'un paramètre additionnel, secret ou non, appelé "vecteur d'initialisation".
L'alphabet mentionné ci-dessus peut, par exemple, être l'ensemble binaire {θ,l}, ou l'ensemble des chiffres de 0 à 9, ou encore l'ensemble alphanumérique comprenant les chiffres et les lettres majuscules et minuscules. Dans le cadre de la présente invention, on supposera que les symboles de l'alphabet appartiennent à un corps fini (ou "corps de Galois" GF(#) ) K de cardinal q ≥ 2.
Une application importante des suites pseudo-aléatoires est le "chiffrement à flot". Cette technique permet de chiffrer (au sens de la cryptographie) une suite de données en clair [X1] (indexées par i ), à valeurs dans l'alphabet, au moyen d'une autre suite {zt} à valeurs dans le même alphabet, où {z } est, justement, la suite produite par un générateur pseudoaléatoire, pour obtenir une suite chiffrée (yj, également à valeurs dans l'alphabet. Autrement dit, on fait le choix d'une loi de composition interne y, = x, *zt dans l'alphabet ; par exemple, cette loi interne peut être le "OU exclusif lorsque l'alphabet est l'alphabet binaire {θ,l}. Le chiffrement à flot est également appelé chiffrement "à la volée" en raison du fait que les données y sont chiffrées une par une - par opposition aux méthodes de chiffrement faisant intervenir des blocs de données. Le chiffrement à flot présente, par rapport au chiffrement par blocs, l'avantage de réduire les problèmes de délai de transmission et de stockage des données, mais il requiert évidemment un débit de symboles pseudo-aléatoires au moins aussi élevé que le débit de données en clair ; l'application au chiffrement à flot est donc réservé aux générateurs de suites pseudo-aléatoires relativement rapides. Le chiffrement à flot est notamment mis en œuvre dans le protocole de protection des échanges sur Internet appelé "TLS" (initiales des mots anglais "Transport Layer Security", cf. l'article de T. Dierks, et C. Allen intitulé "The TLS Protocol, version 1.0, RFC 2246", janvier 1999), dont l'un des algorithmes de chiffrement à flot les plus utilisés est l'algorithme "RC4" (cf. l'article de J. D. GoNc intitulé "Linear Statistical Weakness ofAlleged RC4
Keystream Generator", Actes de "Advances in Cryptology - EUROCRYPT "97", pages 226 à 238, éditeur W. Fumy, Lecture Notes in Computer Science vol. 1233, Springer-Verlag), et dans le chiffrement du trafic et de la signalisation sur la voie radio dans le système "GSM", au moyen d'algorithmes dont le plus répandu est l'algorithme "A5/1" (cf. l'article de A. Biryukov, A. Shamir et D. Wagner intitulé "Real Time Cryptanalysis of A5/1 on a PC", Actes de "FSE 2000", pages 1 à 18, éditeur B. Schneier, Springer Verlag 2000).
Il existe d'autres applications importantes des suites pseudo- aléatoires, par exemple dans les calculs stochastiques et dans les protocoles cryptographiques d'authentification à clé publique.
Beaucoup d'algorithmes à flot actuels, par exemple l'algorithme A5/1 mentionné ci-dessus, utilisent des suites récurrentes linéaires produites par des registres à rétroaction linéaire, éventuellement combinées à l'aide de fonctions non linéaires (cf. l'article de A. Canteaut intitulé "Le chiffrement à la volée", dossier hors-série du magazine "Pour la Science", pages 86 et 87, Paris, juillet-octobre 2002).
Or aucun des procédés de production de suites pseudo-aléatoires connus ne concilie de façon pleinement satisfaisante les deux conditions suivantes :
1 °) l'existence d'arguments de sécurité forts, sur lesquelles on puisse fonder une grande confiance dans l'impossibilité pratique de distinguer les suites pseudo-aléatoires produites de suites parfaitement aléatoires, et
2°) l'efficacité, c'est-à-dire l'utilisation de ressources de calcul (temps, mémoire, et ainsi de suite) minimales par symbole de la suite produite.
En effet, la première condition requiert que la solidité du générateur repose aussi directement que possible sur la difficulté d'un problème mathématique bien identifié et considéré comme difficile. On connaît des algorithmes satisfaisant cette première condition, par exemple l'algorithme de "Blum-Micali" (cf. l'article de M. Blum et S. Micali intitulé "How to generate cryptographically strong séquences of pseudo-random bits", J. Computing, vol. 13 n° 4, pages 850 à 863, novembre 1984), reposant sur la difficulté du problème du logarithme discret, ou l'algorithme de "Blum-Blum-Shub" (cf. l'article de L. Blum, M. Blum et M. Shub intitulé "A simple secure unpredictable pseudorandom number generator", J. Computing, vol. 15, pages 364 à 383, 1986) reposant sur la difficulté du problème de la factorisation, mais ces deux algorithmes (et plus généralement tous les algorithmes de cette catégorie) présentent une efficacité nettement inférieure à celle des algorithmes actuels les plus rapides, comme par exemple l'algorithme RC4 mentionné ci-dessus. C'est pourquoi aucun générateur pseudo-aléatoire connu possédant des arguments de sécurité forts (c'est-à-dire pour lequel on peut démontrer que le succès d'une attaque contre le générateur implique la capacité à résoudre un problème
mathématique réputé difficile) n'est utilisé actuellement à l'échelle industrielle.
A l'inverse, la sécurité des générateurs de suites pseudo-aléatoires les plus rapides connus comme RC4, ou de certains générateurs faisant usage de registres à rétroaction linéaires tels que "Snow 2" (cf. l'article de P. Ekdahl et T. Johansson intitulé "A new version of the stream cipher Snow", Actes de "Selected Areas in Cryptography 2002", pages 47 à 61 , éditeurs K. Nyberg et H. M. Heys, Springer Verlag 2002) ne repose pas sur la difficulté de problèmes mathématiques bien identifiés et considérés comme difficiles. Il en résulte une sécurité potentiellement faible : dans le passé, on a découvert des attaques visant plusieurs générateurs de cette catégorie; ainsi, l'attaque contre l'algorithme de chiffrement "WEP" (une variante de l'algorithme RC4) utilisé dans le système IEEE 802.11 (plus connu sous le nom de "WiFi"), attaque découverte en 2001 par S. Fluhrer, I. Mantin et A. Shamir (cf. l'article intitulé "Weaknesses in the Key Scheduling Algorithm of RC4", Actes de "Selected Areas in Cryptography 2001", Springer Verlag) représente un exemple spectaculaire des conséquences possibles de l'absence d'arguments de sécurité forts.
La présente invention concerne donc, selon un premier aspect, un procédé pour engendrer une suite pseudo-aléatoire de termes appartenant à un corps fini K de cardinal q ≥ 2 destinés à être utilisés dans une procédure
chaque n-uplet X(ι) étant obtenu à l'itération n° i de manière prédéterminée au moins à partir de certaines composantes Y('\ d'un m - uplet 7
de ladite suite pseudo-aléatoire étant extraits de manière prédéterminée des n- uplets X et/ou des /n -uplets Y (c'est-à-dire que les termes extraits à l'itération n° i peuvent dépendre d'un ou plusieurs n-uplets
J(0),J(1),..,JM) et/ou d'un ou plusieurs /n -uplets 7(1),7(2),...,7W ).
Ce procédé est remarquable en ce que, pour au moins une valeur de i , parmi lesdites composantes Y{'\ du /n -uplet 7ω qui sont utilisées pour obtenir le multiplet X(ι) , au moins E(n/2) d'entre elles sont représentées chacune par une fonction polynômiale prédéterminée de degré 2, à coefficients dans K , des composantes du n-uplet X('~λ) (la notation E(α) pour un nombre réel α quelconque désigne sa partie entière).
Il est clair que la sécurité offerte par le procédé de chiffrement à flot selon l'invention sera optimale s'il est appliqué, d'une part, à toutes les itérations, et d'autre part à au moins n composantes Y('\ du m -uplet 7ω parmi celles qui sont utilisées pour obtenir le multiplet X(ι) . Lorsque ces deux conditions ne sont pas réunies, il sera bon de prévoir des moyens de
- A -
sécurité complémentaires (par exemple, la suppression en sortie de certains termes de la suite pseudo-aléatoire ainsi engendrée).
Ainsi, cette sécurité résulte de la difficulté du problème de la résolution d'un système d'équations quadratiques sur un corps fini (par souci de simplicité de langage, on dira qu'on a affaire à un "système d'équations quadratiques", respectivement à un "système de polynômes quadratiques", même dans le cas où certaines de ces équations, respectivement certains de ces polynômes, sont linéaires - étant entendu que la proportion d'équations, respectivement de polynômes, de ce système qui sont effectivement de degré 2 doit être significative). On peut montrer en effet, sous réserve de la vérification d'une conjecture (dite "P ≠ NP"), communément admise, de la "théorie de la complexité", que, quel que soit le corps fini K considéré, la résolution de ce problème requiert un temps plus que polynomial (même si la vérification qu'un candidat donné est, ou n'est pas, solution de ce système d'équations peut, elle, être effectuée en un temps polynomial) (un tel problème est appelé "NP-dur"). D'ailleurs, même pour des tailles assez modestes de m et de « (par exemple dans le cas où K = GV(I) et où les valeurs de m et n sont suffisamment voisines l'une de l'autre et de l'ordre de 100), on ne connaît actuellement aucune méthode de résolution efficace d'instances aléatoires de ce problème.
Mais en outre, la production de symboles pseudo-aléatoires au moyen du procédé selon l'invention est avantageusement rapide, du moins pour des valeurs de paramètres suffisamment petites (mais suffisamment grandes pour que le problème que l'on vient de mentionner puisse toujours être considéré comme difficile).
Selon des caractéristiques particulières, on obtient le n-uplet X(ι) à partir au moins du m -uplet Y(l) de diverses manières assez simples à mettre en œuvre. Par exemple : des n premières composantes de Y(ι) ,
- X{1) =N(Y(ι)) , où N est une fonction linéaire ou affine sur K ou un sous-corps de K ;
- X(ι} est obtenu en appliquant au couple (x('~1} ,Y(ι)) une fonction F linéaire ou affine sur K ou un sous-corps de K . Selon d'autres caractéristiques particulières, on obtient une suite pseudo-aléatoire Z(() en sortie (aux fins d'une utilisation quelconque de l'invention), les termes Z(() de cette suite sortante pouvant être commodément extraits des n-uplets X(ι) et/ou des /n -uplets Y(l) de diverses manières assez simples à mettre en œuvre. Par exemple : - on prend m > n et l'on obtient une valeur de sortie Z(ι) par extraction des (m -n) dernières composantes de 7ω , i.e. Z(ι) = (γi') n+ι,Yi'\+2,...,Yi') m);
- on obtient une valeur de sortie Z('\ constituée d'un t-uplet, où 1 < t < m , de valeurs de K , en appliquant à X('~λ) une fonction M linéaire ou affine sur K ou un sous-corps de K , i.e. Zw = M(X('~ι)) ;
- on déduit du couple (x('~1} ,Y(ι)) une valeur de sortie Z{'\ constituée d'un t-uplet, où l ≤ t ≤ m , de valeurs de K , au moyen d'une fonction de sortie prédéterminée S , i.e. Zw = S(X('~ι\ Y(ι)) ; cette fonction S peut par exemple commodément être linéaire ou affine sur K ou un sous-corps de K , ou encore être quadratique.
Selon un deuxième aspect, l'invention concerne un générateur de suite pseudo-aléatoire de termes appartenant à un corps fini K de cardinal q ≥ 2 destiné à être mis en œuvre dans une procédure cryptographique, ledit générateur ayant des moyens pour calculer itérativement, à partir d'un n-uplet d'initialisation e
K, des n-uplets X(ι)
), chaque n-uplet X(ι) étant obtenu à l'itération n° i de manière prédéterminée au moins à partir de certaines composantes Y('\ d'un m - uplet 7
de ladite suite pseudo-aléatoire étant extraits de manière prédéterminée des n- uplets X et/ou des m -uplets Y . Ce générateur est remarquable en ce que, pour au moins une valeur de i , parmi lesdites composantes Y('\ du m - uplet y(l) qui sont utilisées pour obtenir le multiplet X(ι) , au moins E(«/2) d'entre elles sont représentées chacune par une fonction polynômiale prédéterminée de degré 2, à coefficients dans K , des composantes du n- uplet X('~ι) . Selon des caractéristiques particulières, le générateur de suite pseudo-aléatoire comprend en outre des moyens pour calculer X(ι) en appliquant au couple (x^ ,Y(ι)) une fonction F linéaire ou affine sur K ou un sous-corps de K .
Selon d'autres caractéristiques particulières, le générateur de suite pseudo-aléatoire comprend en outre des moyens pour déduire du couple (x^ ,Y(ι)) une valeur de sortie Z('\ constituée d'un t-uplet, où l ≤ t ≤ m , de valeurs de K , au moyen d'une fonction de sortie prédéterminée S , i.e. Zw = S(X^, Y(ι)) ; cette fonction S peut par exemple être linéaire ou affine sur K ou un sous-corps de K , ou encore être quadratique. Les avantages offerts par ces générateurs sont essentiellement les mêmes que ceux offerts par les procédés correspondants succinctement exposés ci-dessus.
L'invention vise également :
- un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes
de l'un quelconque des procédés pour engendrer une suite pseudo-aléatoire succinctement exposés ci-dessus,
- un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés pour engendrer une suite pseudo-aléatoire succinctement exposés ci-dessus, et
- un programme d'ordinateur contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en œuvre l'un quelconque des procédés pour engendrer une suite pseudo-aléatoire succinctement exposés ci-dessus.
Les avantages offerts par ces moyens de stockage de données et ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par lesdits procédés. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels :
- la figure 1 est un schéma synoptique illustrant un mode de réalisation du générateur selon l'invention, et
- la figure 2 est un schéma synoptique illustrant un cas particulier, particulièrement simple à mettre en œuvre, du mode de réalisation illustré sur la figure 1.
Comme expliqué ci-dessus, la présente invention s'appuie sur la difficulté du problème de la résolution de m équations quadratiques à n inconnues sur un corps fini K à q éléments. Ce problème peut être formulé de manière précise de la façon suivante : étant donné un système (G ) de m ≥ 2 équations quadratiques à n inconnues X1 à xn appartenant à un corps fini K , de la forme
£ < χ,χ } + ∑ β*ω *, +γ* = Λ (i ≤ * ≤ «) . l≤i≤j≤n l≤/≤n où les coefficients α^ , β^ et yk appartiennent à K , et où les quantités yk appartiennent également à K , trouver une solution X = (x1,x2,...,xn).
On notera par la suite "G " la fonction, décrite par le système d'équations (G ), qui à un n -uplet X = (xι,x2,...,xn) de valeurs d'entrée associe le /n -uplet Y = {y1,y2,-,ym) de valeurs de sortie.
Selon l'invention, le générateur pseudo-aléatoire calcule de manière itérative le multiplet de composantes Y('\ (où k = l,2,...,m ), qui sont chacune fonction d'au moins une des n composantes X(( 1), (où j = \,2,...,n ). Lors d'au moins une itération n°/ , le multiplet 7(/) calculé comprend au moins E(n/2) composantes (parmi celles qui vont servir à obtenir le nouvel état courant X1 , voir ci-dessous) qui sont représentées chacune par une fonction de degré 2 des composantes du n-uplet J(w) . Comme expliqué ci-dessus, les paramètres q , m et n sont de préférence choisis de façon à ce que : - la résolution d'un système de m équations quadratiques à n inconnues sur K puisse être considérée comme difficile, ce qui nécessite que les valeurs de m et n soient suffisamment grandes, et que leurs ordres de grandeur soient suffisamment voisins l'un de l'autre (on pourra par exemple prendre qn et qm tous deux entre 280 et 2400 ), et - les calculs puissent être effectués efficacement, ce qui nécessite que les valeurs de q , m et n soient suffisamment petites (on pourra par exemple prendre q inférieur à un millier avec m et n inférieurs à quelques centaines).
On notera en outre que, plus grand sera le nombre de coefficients α^ et β^ nuls dans (G ), et plus rapides seront ces calculs.
On va décrire à présent un mode de réalisation de l'invention, illustré sur la figure 1. Dans ce mode de réalisation, pour chaque valeur de i , toutes les composantes du /n -uplet 7ω sont des fonctions de degré 2 à coefficients dans K des composantes du n-uplet X('~λ) ; de plus, on réutilise respectivement les mêmes fonctions de degré 2 à chaque itération, c'est-à-dire que l'on met en œuvre à chaque itération une même fonction G prédéterminée du type décrit ci-dessus.
En premier lieu, au cours d'une étape d'initialisation, on constitue un n -uplet X(o) . Selon l'utilisation prévue pour le générateur, X(o) pourra dépendre soit d'une graine publique, soit d'une clé secrète, soit d'un vecteur d'initialisation, soit d'une combinaison de plusieurs de ces éléments ; un vecteur d'initialisation est un paramètre additionnel, généralement non secret, qui permet d'utiliser plusieurs fois la même clé secrète pour engendrer plusieurs suites pseudo-aléatoires distinctes. On met ensuite en œuvre des étapes itératives pour produire, à partir de l'état initial X(o) et selon la méthode décrite ci-dessous, une suite pseudo-aléatoire Z(() (où i = 1,2,... ) constituée de t-uplets d'éléments de K , où t est une constante comprise entre 1 et m . Le nombre total d'itérations pourra par exemple être compris entre 1 et 250.
A l'itération n°i , l'état courant précédent X('~λ) constitué d'un n - uplet d'éléments de K est pris comme valeur d'entrée pour mettre en œuvre les sous-étapes suivantes :
1 ) un m -uplet 7ω de valeurs de K est déduit de X{'~1) à l'aide de la fonction quadratique G définie précédemment, i.e. 7W = G(X'~ι)) ,
2) une valeur de sortie Z(() est obtenue en appliquant au couple (x('-ι) ,Y(ι)) une fonction de sortie S choisie, i.e. Zw = S(X('-ι),Y(ι)) , et
3) un nouvel état courant X(ι) , constitué d'un n -uplet de valeurs de K , est obtenu en appliquant au couple (x('~1} ,Y(ι)) une fonction de rétroaction F choisie, i.e. X(ι} = F(X('~ι\Y(')) .
Sur la figure 1 , on a choisi de représenter ce procédé de manière séquentielle (deux itérations successives), mais on pourrait aussi bien le représenter de manière rebouclée. Le point important à noter ici est que les étapes successives du procédé selon l'invention peuvent être mises en œuvre par un seul et même circuit électronique.
Voici quelques choix possibles pour la fonction de rétroaction F mentionnée ci-dessus :
- la fonction F est formellement indépendante de X('~ι) et le nouvel état courant X(ι) est simplement obtenu par extraction des n premières composantes de 7ω , i.e. X(ι) = (7(Oi,7(O 2,...,7(O«) : ce choix est illustré sur la figure 2 ;
- la fonction F est linéaire ou affine sur K ou sur un sous-corps de K ; en particulier, la fonction F peut être formellement indépendante de X('~λ) , de sorte que X(ι} = N(Y(ι}) , où N est une fonction linéaire ou affine sur K ou sur un sous-corps de K .
Voici quelques choix possibles pour la fonction de sortie S mentionnée ci-dessus :
- la fonction S est formellement indépendante de X('~λ) , et la valeur de sortie Z(() est simplement obtenue par extraction des t = m -n dernières composantes de 7ω , i.e. Zw =
(cela suppose évidemment que m est strictement supérieur à n ) : ce choix est illustré sur la figure 2 ;
- la fonction S est linéaire, ou affine (c'est à dire représentée par une matrice), sur K ou sur un sous-corps de K ; en particulier, la fonction S peut être formellement indépendante de 7ω , de sorte que Zw = M(X('~ι)) , où M est une fonction linéaire ou affine sur K ou sur un sous-corps de K ;
- ladite fonction S est quadratique.
Pour terminer, on va mentionner quelques applications possibles de l'invention, dans lesquelles on choisit de ne faire appel en sortie qu'à la suite
Z('\
Comme on l'a vu, la suite Z(() est constituée de t-uplets d'éléments de K . Pour obtenir une suite composée d'éléments de K proprement dits (scalaires), on peut par exemple émettre les t composantes de chaque Z(() séquentiellement.
On peut alors constituer une suite "rétrécie" d'éléments de K , c'est- à-dire une suite dans laquelle chaque terme est supprimé ou conservé selon une règle prédéterminée en fonction des termes précédant et/ou suivant le terme considéré.
On peut aussi constituer une suite dans laquelle chaque symbole résulte de l'addition dans K d'un nombre prédéterminé de symboles issus de la suite Z(() (par exemple, deux par deux). Enfin, si l'alphabet a pour cardinal q = 2p , et si l'on souhaite réaliser une séquence pseudo-aléatoire d'éléments binaires ("bits"), on pourra transformer chacun des éléments pseudo-aléatoires de K ainsi obtenus en une séquence de p bits.
Claims
1. Procédé pour engendrer une suite pseudo-aléatoire de termes appartenant à un corps fini K de cardinal q≥2 destinés à être utilisés dans une procédure cryptographique, ledit procédé comprenant le calcul itératif, à partir d'un n-uplet d'initialisation où n>2, d'éléments de K, de n-uplets X(ι) ents de K (où i = l,2,-). chaque n-uplet X(ι) étant obtenu à l'itération n° i de manière prédéterminée au moins à partir de certaines composantes Y('\ d'un m- de ladite suite pseudo-aléatoire étant extraits de manière prédéterminée des n- uplets X et/ou des m -uplets Y , caractérisé en ce que, pour au moins une valeur de i, parmi lesdites composantes Y{'\ du /n-uplet Y(l) qui sont utilisées pour obtenir le multiplet X(ι) , au moins E(n/2) d'entre elles sont représentées chacune par une fonction polynômiale prédéterminée de degré 2, à coefficients dans K, des composantes du n-uplet X('~λ) .
3. Procédé selon la revendication 1, caractérisé en ce que X® =N(Y(ι)), où N est une fonction linéaire ou affine sur K ou un sous- corps de K .
4. Procédé selon la revendication 1 , caractérisé en ce que X(ι) est obtenu en appliquant au couple (x^ ,Y(ι)) une fonction F linéaire ou affine sur K ou un sous-corps de K .
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que m > n et en ce que l'on obtient une valeur de sortie Z(() par extraction des (m-n) dernières composantes de 7ω, i.e. Zi'}={γi'} n+1,Yi'\+2,...,Yi'} m).
6. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'on obtient une valeur de sortie Z(() , constituée d'un t-uplet, où l≤t≤m, de valeurs de K, en appliquant à X('~λ) une fonction M linéaire ou affine sur K ou un sous-corps de K, i.e. Zw =M(X('~1}) .
7. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'on déduit du couple (x('~1} ,Y(ι)) une valeur de sortie
Z('\ constituée d'un t-uplet, où l≤t≤m, de valeurs de K, au moyen d'une fonction de sortie prédéterminée S , i.e. Zw = S(X^, Y(ι)) .
8. Procédé selon la revendication 7, caractérisé en ce que ladite fonction S est linéaire ou affine sur K ou un sous-corps de K .
9. Procédé selon la revendication 7, caractérisé en ce que ladite fonction S est quadratique.
10. Générateur de suite pseudo-aléatoire de termes appartenant à un corps fini K de cardinal q ≥ 2 destiné à être mis en œuvre dans une procédure cryptographique, ledit générateur ayant des moyens pour calculer itérativement, à partir d'un n-uplet d'initialisation où n > 2 , d'éléments de K , des n-uplets d'éléments de K (où i = l,2,... ), chaque n-uplet X(ι) étant obtenu à l'itération n° i de certaines composantes où m ≥ n , d'éléments de K et les termes de ladite suite pseudo-aléatoire étant extraits de manière prédéterminée des n-uplets X et/ou des /n -uplets Y , caractérisé en ce que, pour au moins une valeur de i , parmi lesdites composantes Y('\ du /n -uplet Y(l) qui sont utilisées pour obtenir le multiplet X(ι) , au moins E(n/2) d'entre elles sont représentées chacune par une fonction polynômiale prédéterminée de degré 2, à coefficients dans K , des composantes du n-uplet X('~1} .
11. Générateur de suite pseudo-aléatoire selon la revendication 10, caractérisé en ce qu'il comprend en outre des moyens pour calculer X(ι) en appliquant au couple (x('~1} ,Y(ι)) une fonction F linéaire ou affine sur K ou un sous-corps de K .
12. Générateur de suite pseudo-aléatoire selon la revendication 10, caractérisé en ce que qu'il comprend en outre des moyens pour déduire du couple (x('~1} ,Y(ι)) une valeur de sortie Z{'\ constituée d'un t-uplet, où 1 < t ≤ m , de valeurs de K , au moyen d'une fonction de sortie prédéterminée S , \.e. Ziι) = S{Xiι~ι) ,Yiι)) .
13. Moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 9.
14. Moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 9.
15. Programme d'ordinateur contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en œuvre un procédé selon l'une quelconque des revendications 1 à 9.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/922,382 US8601041B2 (en) | 2005-06-14 | 2006-06-13 | Method and device for generating a pseudorandom sequence |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0506041 | 2005-06-14 | ||
FR0506041A FR2887048A1 (fr) | 2005-06-14 | 2005-06-14 | Procede et dispositif pour engendrer une suite pseudo-aleatoire |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2006134302A2 true WO2006134302A2 (fr) | 2006-12-21 |
WO2006134302A3 WO2006134302A3 (fr) | 2007-02-15 |
Family
ID=36128287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2006/050553 WO2006134302A2 (fr) | 2005-06-14 | 2006-06-13 | Procede et dispositif pour engendrer une suite pseudo-aleatoire |
Country Status (3)
Country | Link |
---|---|
US (1) | US8601041B2 (fr) |
FR (1) | FR2887048A1 (fr) |
WO (1) | WO2006134302A2 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100183147A1 (en) * | 2007-07-06 | 2010-07-22 | France Telecom | Asymmetrical method of encryption or signature verification |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2887048A1 (fr) * | 2005-06-14 | 2006-12-15 | France Telecom | Procede et dispositif pour engendrer une suite pseudo-aleatoire |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197527B2 (en) * | 2002-10-17 | 2007-03-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient arithmetic in finite fields of odd characteristic on binary hardware |
FR2887048A1 (fr) * | 2005-06-14 | 2006-12-15 | France Telecom | Procede et dispositif pour engendrer une suite pseudo-aleatoire |
US7937427B2 (en) * | 2007-04-19 | 2011-05-03 | Harris Corporation | Digital generation of a chaotic numerical sequence |
US8588412B2 (en) * | 2008-05-23 | 2013-11-19 | Red Hat, Inc. | Mechanism for generating pseudorandom number sequences |
US8145692B2 (en) * | 2008-05-29 | 2012-03-27 | Harris Corporation | Digital generation of an accelerated or decelerated chaotic numerical sequence |
US8244909B1 (en) * | 2009-06-18 | 2012-08-14 | Google Inc. | Method, apparatus and networking equipment for performing flow hashing using quasi cryptographic hash functions |
-
2005
- 2005-06-14 FR FR0506041A patent/FR2887048A1/fr active Pending
-
2006
- 2006-06-13 US US11/922,382 patent/US8601041B2/en active Active
- 2006-06-13 WO PCT/FR2006/050553 patent/WO2006134302A2/fr active Application Filing
Non-Patent Citations (10)
Title |
---|
ALEX BIRYUKOV, ADI SHAMIR, DAVID WAGNER: "Real Time Cryptoanalysis of A5/1 on a PC" SPRINGER VERLAG, 2000, pages 1-18, XP002377093 cité dans la demande * |
ANNE CANTEAUT: "Le chiffrement à la volée" POUR LA SCIENCE, 2002, pages 1-8, XP002377094 cité dans la demande * |
BLUM L ET AL: "A SIMPLE UNPREDICTABLE PSEUDO-RANDOM NUMBER GENERATOR" SIAM JOURNAL ON COMPUTING, SOCIETY FOR INDUSTRIAL AND APPLIED MATHEMATICS, US, vol. 15, no. 2, mai 1986 (1986-05), pages 364-383, XP002037919 ISSN: 0097-5397 cité dans la demande * |
DONALD E. KNUTH: "The Art of Computer Programming" août 2000 (2000-08), ADDISON-WESLEY , UNITES STATES OF AMERICA , XP002409615 page 26 - page 40 chapter 3.2.2 * |
FLUHRER S ET AL: "Weakness in the Key Scheduling Algorithm of RC4" SPRINGER VERLAG, 2001, XP002233415 cité dans la demande * |
JOVANDJ. GOLIC SCHOOL OF ELECTRICAL ENGINEERING, UNIVERSITY OF BELGRADE: "Linear Statistical Weakness of Alleged RC4 Keystream Generator" SPRINGER VERLAG, 1998, pages 226-238, XP002377092 cité dans la demande * |
L'ECUYER P: "A Tutorial On Uniform Variate Generation" PROCEEDINGS OF THE 1989 WINTER SIMULATION CONFERENCE, 4 décembre 1989 (1989-12-04), pages 40-49, XP010305739 * |
MIGUEL SORIANO DEPARTMENT OF APPLIED MATHEMATICS AND TELEMATICS: "Stream Ciphers based on NLFSR" IEEE, 1998, pages 528-533, XP002377091 * |
PATRIK EKDAHL, THOMAS JOHANSSON, DEPT. OF INFORMATION TECHNOLOGY LUND UNIVERSITY: "A new version of the stream cipher SNOW" SPRINGER VERLAG 2002, 2002, pages 47-61, XP002377095 cité dans la demande * |
RUEPPEL R A: "Good stream ciphers are hard to design" ICCST, 3 octobre 1989 (1989-10-03), pages 163-174, XP010324638 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100183147A1 (en) * | 2007-07-06 | 2010-07-22 | France Telecom | Asymmetrical method of encryption or signature verification |
US8331556B2 (en) * | 2007-07-06 | 2012-12-11 | France Telecom | Asymmetrical method of encryption or signature verification |
Also Published As
Publication number | Publication date |
---|---|
US8601041B2 (en) | 2013-12-03 |
US20090319590A1 (en) | 2009-12-24 |
WO2006134302A3 (fr) | 2007-02-15 |
FR2887048A1 (fr) | 2006-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2005290B1 (fr) | Procede et dispositif pour engendrer une suite pseudo-aleatoire | |
EP3211823B1 (fr) | Méthode d'exécution confidentielle d'un programme opérant sur des données chiffrées par un chiffrement homomorphe | |
EP1611709B1 (fr) | Procede et systeme de cryptage | |
EP1358732B1 (fr) | Procede de cryptage securise et composant utilisant un tel procede de cryptage | |
EP3228043B1 (fr) | Méthode de chiffrement à couches de confusion et de diffusion dynamiques | |
EP2415199B1 (fr) | Procede pour effectuer une tache cryptographique dans un composant electronique | |
WO2009109715A2 (fr) | Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature | |
EP2296307B1 (fr) | Procédé de traitement cryptographique de données sécurisé contre les attaques par canaux auxiliaires | |
EP2179535B1 (fr) | Procede asymetrique de chiffrement ou de verification de signature | |
WO2006134302A2 (fr) | Procede et dispositif pour engendrer une suite pseudo-aleatoire | |
US20070233762A1 (en) | Techniques for random bit generation | |
EP2530867B1 (fr) | Procédé de traitement cryptographique de données | |
EP2936302A1 (fr) | Generateur de sequences chaotiques | |
EP3843327A1 (fr) | Procédé de codage d'un motif d'intégrité cryptographique de faible taille et dispositifs associés | |
WO2007096566A1 (fr) | Dispositif et procede de hachage cryptographique | |
EP4270855A1 (fr) | Protection contre les attaques par canal auxiliaire a l aide d'un masquage carre | |
WO2012085214A1 (fr) | Procede de reconstruction d'une mesure de reference d'une donnee confidentielle a partir d'une mesure bruitee de cette donnee | |
FR2815493A1 (fr) | Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables | |
WO2009030857A2 (fr) | Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete | |
WO2008065308A1 (fr) | Fonction de compression de donnees de longueur multiple utilisant des fonctions internes de longueur simple | |
FR2925992A1 (fr) | Procede et dispositif de generation d'une suite chiffrante | |
FR2842968A1 (fr) | Procede d'obtention d'une signature electronique possedant une garantie sur sa securite |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 06778931 Country of ref document: EP Kind code of ref document: A2 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06778931 Country of ref document: EP Kind code of ref document: A2 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11922382 Country of ref document: US |