WO2006134302A2 - Procede et dispositif pour engendrer une suite pseudo-aleatoire - Google Patents

Procede et dispositif pour engendrer une suite pseudo-aleatoire Download PDF

Info

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
Application number
PCT/FR2006/050553
Other languages
English (en)
Other versions
WO2006134302A3 (fr
Inventor
Henri Gilbert
Jacques Patarin
Côme BERBAIN
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to US11/922,382 priority Critical patent/US8601041B2/en
Publication of WO2006134302A2 publication Critical patent/WO2006134302A2/fr
Publication of WO2006134302A3 publication Critical patent/WO2006134302A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

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
Figure imgf000004_0001
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
Figure imgf000004_0002
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(ι) ,
Figure imgf000005_0001
- 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(ι)
Figure imgf000006_0001
), 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
Figure imgf000006_0002
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 =
Figure imgf000009_0001
(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

REVENDICATIONS
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(ι)
Figure imgf000011_0001
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-
Figure imgf000011_0002
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('~λ) .
2. Procédé selon la revendication 1 , caractérisé en ce que X(ι) est des n premières composantes de 7ω, i.e.
Figure imgf000011_0003
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
Figure imgf000012_0001
d'éléments de K (où i = l,2,... ), chaque n-uplet X(ι) étant obtenu à l'itération n° i de certaines composantes
Figure imgf000012_0002
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.
PCT/FR2006/050553 2005-06-14 2006-06-13 Procede et dispositif pour engendrer une suite pseudo-aleatoire WO2006134302A2 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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&#39;exécution confidentielle d&#39;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&#39;un motif d&#39;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&#39;un masquage carre
WO2012085214A1 (fr) Procede de reconstruction d&#39;une mesure de reference d&#39;une donnee confidentielle a partir d&#39;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&#39;une suite chiffrante
FR2842968A1 (fr) Procede d&#39;obtention d&#39;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