FR 2925992 A1 20090703 FR 0760381 A 20071227 Procédé et dispositif de génération d'une suite chiffrante Domaine technique de l'invention L'invention se rapporte au domaine du chiffrement, et plus précisément du chiffrement à flot dépendant d'un vecteur d'initialisation. En particulier, l'invention concerne un procédé de chargement d'une clé et d'un vecteur d'initialisation, pour engendrer une suite chiffrante destinée à réaliser ce chiffrement à flot. L'invention trouve une application très avantageuse en ce qu'elle permet un chiffrement/déchiffrement symétrique présentant un grand degré de sécurité et assurant une mise en oeuvre simple et efficace en matériel et en logiciel. Il est bien connu que le chiffrement symétrique est employé couramment dans tous les types de communications, telles que les communications mobiles ou l'Internet. Arrière-plan de l'invention D'une manière générale, il existe deux approches pour la conception des algorithmes de chiffrement symétriques. La première approche concerne le chiffrement par blocs et la deuxième approche concerne le chiffrement à flot. Le chiffrement à flot autorise généralement, à ressources de calcul logicielles ou matérielles égales, des débits de chiffrement supérieurs à ceux des algorithmes de chiffrement par blocs. Le chiffrement par blocs consiste à découper les données en blocs de taille généralement fixe. Les blocs sont ensuite chiffrés les uns après les autres. Ainsi, un algorithme par blocs, où chaque bloc comprend un nombre entier n de symboles, permet de construire un algorithme de chiffrement dépendant d'une valeur initiale et produisant une suite chiffrante comprenant un nombre entier N de symboles. Cependant, aucun de ces modes opératoires n'utilise un nombre d'invocations de l'algorithme par blocs inférieur à (pour tout _ nombre réel positif la notation 1-- désigne le "plafond" de r , c'est-à- dire le plus petit entier supérieur ou égal à r ). De ce fait, les algorithmes par blocs connus sont complexes en termes de calcul. Pour ce qui concerne les algorithmes construits à l'aide de la seconde méthode (chiffrement à flot), certains possèdent des performances en termes de rapidité de chiffrement et de simplicité de mise en oeuvre largement supérieures à celles des algorithmes construits selon la première méthode. Un chiffrement à flot défini dans un alphabet 1 se présente généralement sous la forme d'un générateur pseudo-aléatoire paramétré par une clé ainsi que, éventuellement, un vecteur d'initialisation, avec lequel on opère une loi de composition interne de 1 entre un mot à la sortie du générateur et un mot provenant des données à chiffrer ou à déchiffrer. Plus précisément, un chiffrement à flot permet de chiffrer une donnée en clair représentée par une suite x de longueur M à valeurs dans un alphabet 1 (par exemple {0,1}) au moyen d'une suite chiffrante z produite par un algorithme de chiffrement à flot, pour obtenir une suite chiffrée y, également à valeurs dans L Pour chaque valeur de l'indice ie [LM], le terme yi de la suite y est donné par la relation yi = xi * 4, où xi et zi sont les termes correspondants des suites x et z, et où l'opération � * � est une loi de composition interne de 1 (par exemple le "ou exclusif' à25 dans le cas où 1 est l'alphabet binaire {0,1}). Le déchiffrement s'effectue l'aide de la même suite chiffrante z en appliquant à yi, pour chaque valeur de l'indice 'inverse à droite z' de zi pour la loi de composition interne � * � ; la suite en clair x est donc donnée par xi yi Le chiffrement à flot est notamment mis en oeuvre 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. Golic intitulé "Linear Statistical Weakness of Alleged RC4 Keystream Generatot", 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/.l on a PC', Actes de "FSE 2000", pages 1 à 18, éditeur B. Schneier, Springer-Verlag 2000). Il existe d'autres applications importantes des suites pseudoaléatoires, par exemple dans les calculs stochastiques et dans les protocoles cryptographiques d'authentification à clé publique. Les algorithmes classiques de chiffrement/déchiffrement à flot dépendant à la fois d'une clé secrète et d'un vecteur d'initialisation fonctionnent de la manière suivante : pour fournir une suite chiffrante de M symboles, on effectue un calcul initial appelé � chargement d'IV �, permettant d'associer à une clé k et à un vecteur d'initialisation v un germe u comprenant un nombre entier m de symboles, puis on met en oeuvre un générateur pseudo-a éatoire associant à ce germe u une suite de M symboles. Spécifier un chargement d'IV fiable sur le plan de la sécurité est une tâche ardue, du fait que la présence d'une valeur initiale rend possibles des attaques dites "par resynchronisation", dans lesquelles un adversaire exploite les suites chiffrantes associées à une même clé et à plusieurs vecteurs d'initialisation choisis ou connus, pour trouver la clé. De ce fait, parmi les algorithmes à flot dépendant d'un vecteur d'initialisation proposés au cours des dernières années, beaucoup d'entre eux ont subi des attaques par resynchronisation. Tel est par exemple le cas de l'algorithme de chiffrement WEP, utilisé dans le chiffrement de nombreux réseaux locaux radio WiFi, et dérivé de l'algorithme de chiffrement à flot RC4 en faisant précéder ce dernier d'un chargement d'IV. De plus, aucun des procédés connus de chargement d'IV n'est étayé par un argument de sécurité grâce auquel on puisse avoir une grande confiance en l'impossibilité pratique d'attaques par resynchronisation, sous la forme d'une preuve ramenant cet argument de sécurité à un problème mathématique bien identifié et considéré comme difficile. Afin de se prémunir contre de telles attaques, il a été récemment proposé un procédé de chiffrement à flot dit "algorithme QUAD" (cf. l'article de C. Berbain, H. Gilbert et J. Patarin intitulé "QUAD: A Practical Stream Cipher w/th Pro vable Security', in Advances Crypto/ogy EUROCR YPT 2006, Lecture Notes in Computer Science, Springer-Verlag 2006). Selon ce procédé, l'algorithme de chargement d'IV repose sur une construction permettant de déduire, à partir d'un générateur pseudo- aléatoire de nombres de m bits vers 2m bits, une famille pseudo-aléatoire (Fk)keK de fonctions de n bits vers m bits paramétrée par une clé k appartenant à l'ensemble K = {0,1}m des mots de m bits. Cette construction, qui est due à Q. Goldreich, S. Goldwasser et S. Micali (cf. l'article � How to Construct Random Functions �, de O. Goldreich, S. Goldwasser et S. Micali, Journal of the ACM, vol. 33(4), pages 792 à 807, 1986), est la suivante. Etant donné un générateur pseudo-aléatoire de nombres définissant deux fonctions de m bits vers m bits go et g1 et étant donné un germe x de m bits, le générateur produit un mot de sortie y = (yo, y?) de 2m bits constitué de deux mots de m bits yo = go(x) et y = g ; la fonction Fk résultante est définie de la façon suivante : à une entrée v de n bits constituée des bits elle associe le mot de m bits donné par Fk(v) .. gv pour gi,,, = go si vi = et gi si vi =1. composition successive de la fonction go ou de la fonction gl peut être visualisée comme une arborescence. Le procédé de chiffrement à flot QUAD utilise cette construction arborescente, en prenant comme entrée v la valeur du vecteur d'initialisation (IV). Avantageusement, si l'on dispose d'une preuve formelle de sécurité pour le générateur pseudo-aléatoire utilisé pour le chargement d'IV et pour le générateur pseudo-aléatoire utilisé pour la génération d'une suite chiffrante, alors on peut prouver (sous certaines conditions) que le chiffrement à flot résultant est sûr, et en particulier résistant aux attaques par resynchronisation. Cependant, du fait que le nombre d'itérations de l'appel au générateur de nombres mis en oeuvre lors du chargement d'IV est au moins égal à la longueur n du vecteur d'initialisation, le chargement d'IV de l'algorithme QUAD est relativement lent. Objet et résumé de l'invention La présente invention concerne un procédé de génération d'une suite chiffrante associée à une clé k appartenant à un ensemble K = de m-uplets d'éléments d'un alphabet fini E de symboles et à un vecteur d'initialisation v = (vo,vi,...,vn4), où v est un n-uplet d'éléments d'un alphabet I de cardinal t, ledit procédé comprenant une étape de génération pseudo-aléatoire d'une suite chiffrante z= , m de M symboles à partir d'un germe u de m symboles, ledit germe u étant obtenu en appliquant audit vecteur d'initialisation v une fonction Fk indexée par ladite clé k, soit u = Fk(v), où ladite fonction Fk(v) est obtenue en appliquant à k une composition de fonctions élémentaires sélectionnées parmi une famille (g))) de fonctions à sens unique de l'ensemble K vers lui-même, lesdites fonctions élémentaires étant indexées par la succession des n composantes du vecteur d'initialisation v, soit : FF (v) gvn 0 g, (k). Ce procédé de génération d'une suite chiffrante est remarquable en ce que ledit cardinal t est strictement supérieur à 2, et en ce que lesdites fonctions élémentaires (g))) sont calculées indépendamment l'une de l'autre. On peut par exemple commodément prendre pour succession de nombres entiers I = ...,t}. Grâce à l'invention, on peut engendrer une suite chiffrante de manière plus rapide qu'avec le procédé QUAD, tout en disposant avantageusement des mêmes propriétés de haute sécurité. En effet, la sécurité de ce type de procédés est notamment reliée au nombre de valeurs possibles (degrés de liberté) pour le vecteur d'initialisation. Dans le procédé QUAD, ce nombre est égal à 2nQ' pour un vecteur d'initialisation de n uAD bits. Dans le procédé selon l'invention, ce nombre est égal à tnrti' (où t > 2) pour un vecteur d'initialisation de longueur nINv . A sécurité égale, on obtient donc : nQUAD 10g2 (t Comme la longueur du vecteur d'initialisation est égale au nombre d'invocations du générateur de nombres, on voit que l'invention permet, à sécurité égale, de réduire ce nombre d'invocations d'un facteur log, (t (qui est strictement supérieur à 1) par rapport au procédé QUAD, ce facteur étant d'autant plus élevé que t est plus grand. Mais cela ne suffirait pas en soi pour réduire la complexité de calcul. En effet, le fait d'augmenter le nombre t a pour inconvénient, a priori, d'augmenter d'autant le nombre de mots de m bits requis, en sortie du générateur de nombres, pour pouvoir obtenir ces fonctions élémentaires à chaque invocation du générateur, et donc d'augmenter d'autant la complexité de calcul. Mais les auteurs de la présente invention ont résolu ingénieusement ce problème en réalisant que certains générateurs de nombres connus permettaient d'accéder directement à un bloc de sortie choisi, sans avoir à calculer les blocs de sortie qui précédent normalement ce bloc choisi ; ainsi, pour i = 0,1,...,niNv -1, la fonction élémentaire g.,ä, requise à l'invocation n° (i + 1) du générateur peut être calculée indépendamment des autres fonctions élémentaires. Selon des caractéristiques particulières, lesdites fonctions élémentaires gji(x),..,gi, (x) respectivement associées aux t éléments de I sont déduites d'un générateur pseudo-aléatoire de nombres associant à toute entrée x de K une séquence y(x) = (yi,...,yt) de t 15 éléments de K, en prenant, pour a=1,... comme fonction élémentaire g1 (x) la fonction associant à x l'élément ya de K dans ladite séquence Yt). Si on prend par exemple I = {1, ...,t}, alors on peut simplement définir, pour a = , la fonction élémentaire ga( comme étant la 20 fonction associant à x l'élément ya, de la séquence yt). Grâce à ces caractéristiques, on peut engendrer facilement des fonctions élémentaires possédant les propriétés requises. Plusieurs variantes sont possibles pour obtenir des fonctions élémentaires indépendamment l'une de l'autre. 25 Par exemple, selon une première variante, ledit générateur pseudo-aléatoire de nombres est un générateur à accès direct. Ainsi, un des buts de l'invention est atteint en ce que le coût en temps de calcul est optimisé. En effet, on dispose d'un accès direct à un mot de sortie et il n'est donc pas nécessaire, pour calculer le mot de sortie correspondant à la valeur de v, de calculer tous les mots de sortie précédents. Selon une deuxième variante (d'ailleurs non exclusive de la première variante) donnée à titre d'exemple, ledit générateur pseudoaléatoire de nombres est un générateur itératif à état interne dont la fonction de mise à jour permet à l'aide d'un calcul préalable d'avoir un accès direct à une itération déterminée d'une valeur interne. Ainsi, grâce à un précalcul, on peut accéder de manière directe à un mot de sortie et donc réduire le temps de calcul. Le procédé selon cette deuxième variante peut comporter, selon des caractéristiques particulières, les étapes suivantes : - initialisation de l'état d'un automate à l'aide dudit germe ue lm - itération à partir dudit germe u d'une fonction itérative r de vers Em+st où s est un entier non nul, un nombre positif ou nul prédéterminé de fois sans produire de symboles chiffrants, en remplaçant à chaque itération l'état courant par les m premiers symboles obtenus en sortie de ladite fonction itérative r, - itération de ladite fonction itérative r un nombre de fois, en s remplaçant à chaque itération l'état courant par les m premiers symboles obtenus en sortie de ladite fonction itérative r, et -formation d'une suite chiffrante z en prélevant les M premiers I symboles de la suite des j=` j mots constitués des s derniers symboles produits en sortie de chacune de itérations de la fonction itérative L'invention trouve une application privilégiée dans le chiffrement/déchiffrement à flot. L'invention vise donc un procédé de chiffrement à flot, dans lequel on chiffre une donnée en clair constituée par une suite x = _mi de longueur M à valeurs dans un alphabet de symboles E au moyen d'une suite chiffrante z = (z^),E[I, ,m] également à valeurs dans E, pour obtenir une suite chiffrée y = (yl)l.[I, ,m] telle que, pour chaque valeur de l'indice ie [1...M], y, est donné par la relation y, = x, * z,, où l'opération � * � est une loi de composition interne de L Ce procédé de chiffrement est remarquable en ce que ladite suite chiffrante z est obtenue au moyen de l'un quelconque des procédés de génération d'une suite chiffrante décrits succinctement ci-dessus. De même, l'invention vise un procédé de déchiffrement à flot, dans lequel on déchiffre une donnée chiffrée constituée par une suite y = (Y^)^E[1,. ,m] de longueur M à valeurs dans un alphabet de symboles E pour obtenir une suite en clair x = (x,),E[l, mi telle que, pour chaque valeur de l'indice ie [1...M], x, est donné par la relation x, = y,*z',, où l'opération � * � est une loi de composition interne de E et où z'i est l'inverse à droite d'un élément z, de E pour ladite loi de composition interne. Ce procédé de déchiffrement est remarquable en ce que la suite z = (z,),E[i, ,m] est obtenue au moyen de l'un quelconque des procédés de génération d'une suite chiffrante décrits succinctement ci-dessus. Ainsi, le chiffrement/déchiffrement repose sur une construction permettant de fonder une grande confiance dans l'impossibilité pratique d'attaques par resynchronisation. En outre, il présente d'excellentes performances en termes de rapidité d'exécution lors d'une mise en oeuvre matérielle ou logicielle. Corrélativement, l'invention vise également des dispositifs. L'invention vise ainsi un dispositif de génération d'une suite chiffrante associée à une clé k appartenant à un ensemble K = L" de couplets d'éléments d'un alphabet fini de symboles et à un vecteur d'initialisation v = (vo,vi,...,vn.. ) où v est un n-uplet d'éléments d'un alphabet I de cardinal ledit dispositif de génération d'une suite chiffrante comprenant - des moyens de génération pseudo-aléatoire d'une suite chiffrante z = (zi)i.[1, mi de M symboles à partir d'un germe u de m symboles, et - un générateur de chargement de vecteur d'initialisation (IV) apte à produire ledit germe u en appliquant audit vecteur d'initialisation v une fonction Fk indexée par ladite clé k, soit u = Fk(v), où ladite fonction Fk(v) est obtenue en appliquant à k une composition de fonctions élémentaires sélectionnées parmi une famille (gJ)JE1 de fonctions à sens unique de l'ensemble K vers lui-même, lesdites fonctions élémentaires étant indexées par la succession des n composantes du vecteur d'initialisation v, soit : Fk(v) o 0 g-vo (k) . Ce dispositif de génération d'une suite chiffrante est remarquable en ce que ledit cardinal t est strictement supérieur à 2, et en ce que ledit générateur de chargement d'IV est apte à calculer lesdites fonctions élémentaires (gi)]EI indépendamment l'une de l'autre. Selon des caractéristiques particulières, ledit générateur de chargement d'IV comprend un générateur pseudo-aléatoire de nombres associant à toute entrée x de K une séquence y(x) = (yl,...,yt) de t éléments de K, lesdites fonctions élémentaires gjl (x),..,git(x) respectivement associées aux t éléments de I étant obtenues en prenant, pour a = 1,...,t, comme fonction élémentaire g1 a( ) la fonction associant à l'élément ., a de K dans ladite séquence (yl,..., yt). x Selon une première variante, ledit générateur pseudo-aléatoire de nombres est un générateur à accès direct. Selon une deuxième variante, ledit générateur pseudo-aléatoire de nombres est un générateur itératif à état interne dont la fonction de mise à jour permet à l'aide d'un calcul préalable d'avoir un accès direct à une itération déterminée d'une valeur interne. L'invention vise également un dispositif de chiffrement à flot, comprenant des moyens de formation pour chiffrer une donnée en clair constituée par une suite x = (x,)IE[1, mi de longueur M à valeurs dans un alphabet de symboles au moyen d'une suite chiffrante z = (zi),E[l, ,m également à valeurs dans pour obtenir une suite chiffrée y = (yl),E[1, ,m] telle que, pour chaque valeur de l'indice ie [1...M], le terme y, est donné par la relation y, = x, * z, où l'opération � � est une loi de composition interne de L Ce dispositif de chiffrement à flot est remarquable en ce que, pour engendrer ladite suite chiffrante z, il comprend l'un quelconque des dispositifs de génération d'une suite chiffrante décrits succinctement ci-dessus. De même, l'invention vise un dispositif de déchiffrement à flot, comprenant des moyens de formation pour déchiffrer une donnée chiffrée constituée par une suite y = (YI)IE[l,.,,m] de longueur M à valeurs dans un alphabet de symboles 1 pour obtenir une suite en clair x = (x,),E[l,,,,m] telle que, pour chaque valeur de l'indice ie [1...M], le terme x, est donné par la relation xl = y,*z',, où l'opération � * � est une loi de composition interne de 1 et où z', est l'inverse à droite d'un élément z, de 1 pour ladite loi de composition interne. Ce dispositif de déchiffrement à flot est remarquable en ce que, pour engendrer la suite chiffrante z = (z,),E[I, .,m], il comprend l'un quelconque des dispositifs de génération d'une suite chiffrante décrits succinctement ci-dessus. Ces dispositifs ont essentiellement les mêmes avantages que les procédés corrélatifs. Enfin, l'invention vise aussi : - un circuit électronique comprenant un dispositif de chiffrement à flot e ou un dispositif de déchiffrement à flot tels que décrits succinctement ci-dessus, - un téléphone portable comprenant un circuit électronique tel que décrit succinctement ci-dessus, - un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de codes de programme pour l'exécution des étapes de l'un quelconque des procédés de génération d'une suite chiffrante tels que décrits succinctement ci-dessus, et/ou du procédé de chiffrement à flot tel que décrit succinctement ci-dessus, et/ou du procédé de déchiffrement à flot tel que décrit succinctement ci-dessus, lorsqu'il est exécuté sur un ordinateur, et 0 - un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que décrit succinctement ci-dessus. Brève description des dessins 15 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 de manière schématique un générateur pseudoaléatoire d'une famille de fonctions, selon un mode de réalisation de 20 l'invention, - la figure 2 illustre de manière schématique un exemple de chargement d'IV selon la figure 1, - la figure 3 illustre de manière schématique un dispositif de chiffrement selon un mode de réalisation de l'invention, et 25 - la figure 4 illustre de manière schématique un dispositif de déchiffrement selon un mode de réalisation de l'invention. Description détaillée de modes de réalisation La figure 1 est une figure schématique représentant, selon un 30 mode de réalisation de l'invention, un générateur 1 de chargement de vecteur d'initialisation (que l'on appellera par la suite simplement � générateur 1 de chargement d'IV �), ou, ce qui revient au même, un générateur pseudo-aléatoire d'une famille de fonctions Fk paramétrées par un ensemble K = Em de mots k (appelés "clés") constitués d'un m-uplet (où m est un entier strictement positif) d'éléments d'un alphabet fini de symboles. Un générateur pseudo-aléatoire de fonctions peut être défini de la manière suivante : soit K un ensemble fini de clés, muni d'une loi de probabilité, par exemple la distribution uniforme. Une famille (Fk)kEK de fonctions Fk associant à un mot d'entrée x de p symboles d'un alphabet fini Eln (par exemple, l'alphabet {0,1}) un mot de sortie y = Fk(x) de P symboles d'un alphabet fini Fout (égal ou non à En), est dite � pseudoaléatoire � lorsque l'on peut conjecturer qu'il est informatiquement difficile de distinguer, au moyen d'un test en boîte noire utilisant un nombre limité d'appels à la fonction testée et des ressources de calcul limitées, une instance Fk de la famille (Fk)kEK tirée au sort selon la loi de probabilité de K, d'une fonction F* parfaitement aléatoire de ZInP vers loutP. Le générateur 1 de chargement d'IV utilise un générateur 3 pseudo-aléatoire de nombres et des moyens 5 de traitement de données. De manière générale, un générateur pseudo-aléatoire de nombres comporte une fonction qui associe à un mot d'entrée de q symboles (un germe), un mot de sortie de Q symboles. Les symboles appartiennent à un alphabet fini Z, par exemple l'alphabet binaire {0,1}. On munit l'ensemble de la loi de probabilité uniforme. Le générateur de nombres est considéré comme pseudo-aléatoire lorsque l'on peut conjecturer qu'il est difficile de distinguer au moyen d'un test informatique une valeur de sortie du générateur de nombres correspondant à une entrée aléatoire de q d'une valeur tirée au sort dans l'ensemble EQ selon la loi uniforme. Le générateur 1 de chargement d'IV admet en entrée un 30 vecteur d'initialisation v = (vo,vi,...,vn..1) appartenant à un ensemble V = de n-uplets (n étant un entier strictement positif) d'éléments d'un ensemble I de cardinal t. Selon l'invention, l'entier t est strictement supérieur à 2. Le générateur pseudo-aléatoire de nombres 3 associe à un germe x de m symboles de l'alphabet 1 une sortie y(x) de longueur t.rn symboles du même alphabet 1. On peut par exemple prendre m = 160, valeur couramment utilisée dans les générateurs pseudo-aléatoires de nombres actuels. Si l'on choisit l'ensemble I comme étant, commodément, la 10 simple succession de nombres entiers I = ...,t}, cette sortie y(x) peut être vue comme étant constituée des t mots de m symboles suivants : yl = gl(x), y2 = g2(x),..., yt = gt(x), où, pour a=l,...,t, les fonctions ga(x) sont des fonctions (appelées � fonctions élémentaires �) de Im vers lm. 15 Les moyens de traitement 5 de données comportent des moyens de calcul 7 et des moyens de sélection 9. Les moyens de sélection 9 permettent de sélectionner chaque fonction élémentaire g,/ (où 1 v, t) parmi les t fonctions élémentaires yl = gl(x), y2 = g2(x), yt = gt(x), de manière à ce que 20 l'image d'un mot x composé de m symboles par la fonction élémentaire g,r corresponde à la restriction au vi ème mot de m symboles issu du générateur pseudo-aléatoire de nombres 3. Les moyens de calcul 7 permettent, pour une clé de chiffrement k donnée, d'engendrer une fonction Fk d'indice k de la famille (Fk)kEK de 25 fonctions, et correspondant à la composition de n fonctions élémentaires gv, définie de la manière suivante : Fkv = g, ,,.,-E o gv o g,,, (k) . Ainsi, ces fonctions élémentaires sont indexées selon la succession de n éléments de I constituant le vecteur d'initialisation v. En résumé, les fonctions élémentaires sont dérivées du générateur 3 pseudo-aléatoire de nombres, et leur composition est appliquée à la clé de chiffrement k pour donner la valeur u prise par la fonction Fk pour le vecteur d'initialisation v. La figure 2 illustre, selon une construction arborescente, un exemple de chargement d'IV ou l'on a choisi t = 4 et n = 3. Ainsi, I = {1,2,3,4}, et v E 13 (à savoir, v = (vo,vi,v2), avec vo E vl E {1,2,3,4} et v2 E {1,2,3,4}). Ainsi, à chaque mot x de m symboles (représenté par le petit côté 31 d'un trapèze 33) peuvent correspondre quatre images ou mots de sortie yl, Y2, Y3 et y4, chacun étant composé de m symboles, donnés par : y1 = gi(x), Y2 = g2(X), Y3 = 93(x) et y4 = 94(x). Ces mots de sortie sont représentés par le grand côté 35 du trapèze 33. Selon cet exemple, on choisit vo = 2, vl = 3 et v2 = 4. Ainsi, pour toute valeur k E En', le premier symbole vo du vecteur d'initialisation v permet de sélectionner le mot de sortie g2(k). Le deuxième symbole vl du vecteur d'initialisation v permet de sélectionner le mot de sortie g3(k) et finalement, le troisième symbole v2 du vecteur d'initialisation v permet de sélectionner le mot de sortie g4(k). Ainsi, selon cet exemple, pour toute clé de chiffrement k E Em, la fonction Fk de chargement d'IV résultant de cette clé k associe la valeur u = Fk(v) de En' donnée par : u = g4 o g3 o g2 (k). Conformément à l'invention, le générateur 3 pseudo-aléatoire de nombres utilisé dans la construction précédente est apte à calculer les t fonctions élémentaires de m symboles vers m symboles yl = g1(x), y2 = g2(x),..., yt = gt(x) indépendamment l'une de l'autre. Par exemple, dans le cas où l'alphabet E est un corps fini à deux éléments {0,1}, les fonctions élémentaires peuvent être définies par un système de t fois m équations quadratiques à m variables, à coefficients dans L Avantageusement, le générateur 3 pseudo-aléatoire de 30 nombres peut être un générateur à accès direct. Ce genre de générateurs présente des algorithmes qui se caractérisent par le fait qu'il n'est pas nécessaire, pour calculer un bit de sortie de rang donné, de calculer tous les bits précédents. On dispose en fait d'un accès direct à des blocs entiers de la sortie du générateur. A titre d'exemple, un tel générateur peut être construit selon un algorithme de type "AES-CTR". Grâce à ce genre d'algorithmes, il n'est donc pas nécessaire de calculer à chaque étape les t blocs de m bits, mais on peut, grâce à la propriété d'accès direct, calculer directement le bloc correspondant à la valeur de la composante courante v, du vecteur d'initialisation v. Le fait d'augmenter t n'augmente donc pas le coût d'une étape de la construction, et réduit le coût total puisque le nombre d'étapes diminue. En variante, le générateur pseudo-aléatoire de nombres 3 peut être un "générateur itératif à état interne" dont la fonction de mise à jour permet, à l'aide d'un calcul préalable, d'avoir un accès direct à une itération déterminée d'une valeur interne. Ce genre de générateurs présente des algorithmes qui ne sont pas "à accès direct" proprement dits, mais qui, grâce à un précalcul, peuvent atteindre des performances similaires. Un premier exemple de ce genre de générateurs itératif à état interne concerne les algorithmes dont l'état interne est constitué par un ou plusieurs registres à décalage à rétroaction linéaire (LFSR). En effet, la mise à jour de l'état interne se fait à l'aide d'une matrice décrivant le polynôme de rétroaction du LFSR. Afin d'obtenir une forme d'accès direct, on peut calculer à partir de l'état initial les états internes correspondant au début de la génération de chacun des t mots de m bits. Il est possible de précalculer t matrices à partir de la matrice du LFSR, permettant d'obtenir en un unique calcul matriciel ces états internes. En effet, après un précalcul de t matrices et pour une valeur donnée d'état initial et la composante v, du vecteur initialisation v utilisée à l'étape considérée, on choisit la bonne matrice et on l'applique sur l'état initial. On obtient alors directement l'état initial correspondant à la valeur sélectionnée pour l'étape suivante par la valeur de vi, et on calcule ensuite cette valeur. Ce calcul coûte seulement le temps de génération de m bits. Ainsi, si on utilise t = 16, le temps nécessaire pour la construction totale est, par comparaison avec le procédé QUAD, approximativement divisé par quatre, compte tenu de la diminution du nombre d'étapes de la construction d'un facteur voisin de 4, et de ce que le temps nécessaire aux calculs effectués à chaque étape n'est pas significativement modifié. Un deuxième exemple de générateurs itératif à état interne concerne les algorithmes de type QUAD. Dans le cas d'un algorithme QUAD, on dispose déjà partiellement de la propriété d'accès direct, c'est-à-dire qu'il est possible de calculer les deux blocs de sortie de m bits de manière indépendante, car ces deux blocs s'écrivent So(x) et S1(x), où So et S1 sont deux systèmes de polynômes quadratiques aléatoires. Pour t > 2, on conserve cette propriété. Par exemple, pour t = 4, on peut évaluer sur l'état initial x l'un des quatre blocs So(x), S1(x) S2(x) et S3(x), où So, SI, S3 et S4 sont quatre systèmes quadratiques aléatoires. On minimise ainsi le nombre de valeurs à calculer. La présente invention porte également sur l'application de la méthode de chargement d'IV précédente à la construction d'un procédé et d'un dispositif de chiffrement à flot dépendant d'un vecteur d'initialisation v sélectionné dans l'ensemble fini V et d'une clé de chiffrement k sélectionnée dans l'ensemble fini K. La figure 3 illustre un dispositif 41 de chiffrement à flot d'une suite à chiffrer. Ce dispositif 41 comprend un dispositif 43 de génération d'une suite chiffrante z et des moyens de formation 47. Le dispositif 43 de génération d'une suite chiffrante comprend quant à lui un générateur 1 de chargement d'IV selon la figure et des moyens de génération pseudo-aléatoire 45. Comme précédemment, le générateur 1 de chargement d'IV permet de construire, pour une clé k donnée, une fonction Fk appartenant à la famille de fonctions (Fk)kEK définie ci-dessus. Pour un vecteur d'initialisation v donné, le générateur 1 de chargement d'IV produit en sortie, en appliquant la fonction Fk d'indice k au vecteur d'initialisation v, un germe u = Fk(v) constitué de m symboles de l'alphabet E. Les moyens de génération pseudo-aléatoire 45 (comportant par exemple un générateur pseudo-aléatoire de nombres) permettent de générer une suite chiffrante de M symboles (où M est un entier strictement positif) z = (zi) ^E [1,..M] de l'alphabet E à partir du germe u de m symboles fourni par le générateur 1 de chargement d'IV (ou à partir d'un germe modifié de En' déduit de u par un calcul supplémentaire). On notera que ce générateur pseudo-aléatoire de nombres inclus dans les moyens de génération 45 peut être défini à l'aide de l'itération d'une fonction itérative r de En' vers Em", où s est un entier non nul. Dans ce cas, afin de produire une suite chiffrante z constituée de M symboles, les moyens de génération 45 : - initialisent l'état d'un automate à l'aide du germe Lier, - itèrent à partir du germe u une fonction itérative r de Em vers E s, où s est un entier non nul, un nombre positif ou nul prédéterminé de fois sans produire de symboles chiffrants, en remplaçant à chaque itération l'état courant par les m premiers symboles obtenus en sortie de ladite fonction itérative r, - itèrent ladite fonction itérative r un nombre de fois, en remplaçant à chaque itération l'état courant par les m premiers symboles obtenus en sortie de ladite fonction itérative r, et -obtiennent une suite chiffrante z en prélevant les M premiers symboles de la suite des mots constitués des s derniers symboles produits en sortie de chacune des itérations de Un cas particulier est celui dans lequel la fonction itérative r considérée ci-dessus et le générateur 3 pseudo-aléatoire de nombres sont confondus, ou définis à l'aide de fonctions identiques. Il en résulte alors un avantage supplémentaire tenant au fait qu'aucun composant supplémentaire ne doit être ajouté lors de la mise en oeuvre, ce qui peut être très avantageux dans le cas d'un environnement contraint en ressources matérielles. Finalement, les moyens de formation 47 sont aptes à former une suite chiffrée, en appliquant une loi de composition interne "*" entre chaque terme de la suite chiffrante z et un terme correspondant de la suite à chiffrer x. La figure 4 illustre un dispositif 41 de déchiffrement à flot d'une suite à déchiffrer. Ce dispositif 41 comprend un dispositif 43 de génération d'une suite chiffrante z et des moyens de formation 47'. Ce dispositif 43 de génération d'une suite chiffrante est analogue au dispositif 43 de génération d'une suite chiffrante décrit en référence à la figure 3. Les moyens de formation (47') sont aptes à calculer les inverses à droite z', des éléments zi de la suite chiffrante z pour la loi de composition interne � * � de 1 utilisée pour le chiffrement. De plus, les moyens de formation (47') sont aptes à déchiffrer une donnée chiffrée constituée par une suite y = (yl)^E[1, mi de longueur M à valeurs dans un alphabet de symboles 1 pour obtenir une suite en clair x = (x,),E[1, ,m] telle que, pour chaque valeur de l'indice ie [1...M le terme x, est donné par la relation x, = y,*z',. L'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de codes de programme pour l'exécution des étapes du procédé de génération d'une suite chiffrante décrit ci-dessus, et/ou du procédé de chiffrement à flot décrit ci-dessus, et/ou du procédé de déchiffrement à flot décrit ci-dessus, lorsqu'il est exécuté sur un ordinateur. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur. En résumé, la présente invention porte sur une méthode et un dispositif de chargement d'IV applicable à la construction d'un algorithme à flot dépendant d'un vecteur d'initialisation, et permettant l'existence d'arguments de sécurité sur lesquels on puisse fonder une grande confiance dans l'impossibilité pratique d'attaques par resynchronisation, De plus, la présente invention permet d'atteindre, pour une mise en oeuvre matérielle ou logicielle, des performances en termes de rapidité d'exécution supérieures à celles de l'algorithme QUAD. REVENDICATIONS 1. Procédé cryptographique de génération d'une suite chiffrante associée à une clé k appartenant à un ensemble K = :' de m-uplets d'éléments d'un alphabet fini de symboles et à un vecteur d'initialisation v = (vo,vli...,vn_ 1), où v est un n-uplet d'éléments d'un alphabet I de cardinal t, ledit procédé comprenant une étape de génération pseudo-aléatoire d'une suite chiffrante z=(z;);E[1,.__,M] de M symboles à partir d'un germe u de m symboles, ledit germe u étant obtenu en appliquant audit vecteur d'initialisation v une fonction Fk indexée par ladite clé k, soit u = Fk(v), où ladite fonction Fk(v) est obtenue en appliquant à k une composition de fonctions élémentaires sélectionnées parmi une famille (gj)JE, de fonctions à sens unique de l'ensemble K vers lui-même, lesdites fonctions élémentaires étant indexées par la succession des n composantes du vecteur d'initialisation v, soit : Fk (v) = i ° ... gr, ° g,,0 (k), caractérisé en ce que ledit cardinal t est strictement supérieur à 2, et en ce que lesdites fonctions élémentaires (g])], sont calculées indépendamment l'une de l'autre. 2. Procédé cryptographique de génération d'une suite chiffrante selon la revendication 1, caractérisé en ce que lesdites fonctions élémentaires g1 (x),.., g~ (x) respectivement associées aux t éléments de I sont déduites d'un générateur (3) pseudo-aléatoire de nombres associant à toute entrée x de K une séquence y(x) = (yi,...,yt) de t éléments de K, en prenant, pour a =1,...,t, comme fonction élémentaire g 1 y (x) la fonction associant à x l'élément T de K dans ladite séquence (yl,..., yt). 3. Procédé cryptographique de génération d'une suite chiffrante selon la revendication 2, caractérisé en ce que ledit générateur (3) pseudoaléatoire de nombres est un générateur à accès direct. 4. Procédé cryptographique de génération d'une suite chiffrante selon la revendication 2, caractérisé en ce que ledit générateur (3) pseudoaléatoire est un générateur itératif à état interne dont la fonction de mise à jour permet à l'aide d'un calcul préalable d'avoir un accès direct à une itération déterminée d'une valeur interne. 5. Procédé cryptographique de génération d'une suite chiffrante selon la revendication 4, caractérisé en ce qu'il comporte les étapes suivantes : -initialisation de l'état d'un automate à l'aide dudit germe ue zm, -itération à partir dudit germe u d'une fonction itérative P de Er' vers Em+s, où s est un entier non nul, un nombre positif ou nul prédéterminé de fois sans produire de symboles chiffrants, en remplaçant à chaque itération l'état courant par les m premiers symboles obtenus en sortie de ladite fonction itérative r, - itération de ladite fonction itérative r un nombre de fois, en s remplaçant à chaque itération l'état courant par les m premiers symboles obtenus en sortie de ladite fonction itérative r, et -formation d'une suite chiffrante z en prélevant les M premiers symboles de la suite des ~`I ' mots constitués des s derniers symboles s produits en sortie de chacune des - If . itérations de la fonction itérative s F. 6. Procédé cryptographique de génération d'une suite chiffrante selon la revendication 5, caractérisé en ce que ladite fonction itérative r et ledit générateur (3) pseudo-aléatoire de nombres sont définis à l'aide de fonctions identiques. 7. Procédé de chiffrement à flot, dans lequel on chiffre une donnée en clair constituée par une suite x = (x;);{[l,...,M] de longueur M à valeurs dans un alphabet de symboles E au moyen d'une suite chiffrante z = (z;);E[1,...,M] également à valeurs dans E, pour obtenir une suite chiffrée y = (y;);E[1,...,Mj telle que, pour chaque valeur de l'indice ic [1...M], y; est donné par la relation y; = x; * z;, où l'opération � 8. Procédé de déchiffrement à flot, dans lequel on déchiffre une donnée chiffrée constituée par une suite y = (y;);E[1,...,M] de longueur M à valeurs dans un alphabet de symboles E pour obtenir une suite en clair x = (x;);E[1,...,M] telle que, pour chaque valeur de l'indice ie [1...M], x; est donné par la relation x; = y; *z';, où l'opération � � est une loi de composition interne de et où z'; est l'inverse à droite d'un élément z; de pour ladite loi de composition interne, caractérisé en ce que la suite z = (z;);E[1,...,M] est obtenue au moyen d'un procédé de génération d'une suite chiffrante selon l'une quelconque des revendications 1 à 6. 9. Dispositif cryptographique de génération d'une suite chiffrante associée à une clé k appartenant à un ensemble K = de m-uplets d'éléments d'un alphabet fini 1 de symboles et à un vecteur d'initialisation v = (vo,vi,...,vn_1), où v est un n-uplet d'éléments d'un alphabet I de cardinal t, ledit dispositif (43) de génération d'une suite chiffrante comprenant :- des moyens de génération pseudo-aléatoire (45) d'une suite chiffrante z = (z;);E[l,...,M] de M symboles à partir d'un germe u de m symboles, et - un générateur (1) de chargement de vecteur d'initialisation (IV) apte à produire ledit germe u en appliquant audit vecteur d'initialisation v une fonction Fk indexée par ladite clé k, soit u = Fk(v), où ladite fonction Fk(v) est obtenue en appliquant à k une composition de fonctions élémentaires sélectionnées parmi une famille (gj)i, l de fonctions à sens unique de l'ensemble K vers lui-même, lesdites fonctions élémentaires étant indexées par la succession des n composantes du vecteur d'initialisation v, soit : o caractérisé en ce que ledit cardinal t est strictement supérieur à 2, et en ce que ledit générateur (1) de chargement d'IV est apte à calculer lesdites fonctions élémentaires (g1)i,, indépendamment l'une de l'autre. 10. Dispositif cryptographique de génération d'une suite chiffrante selon la revendication 9, caractérisé en ce que ledit générateur (1) de chargement d'IV comprend un générateur (3) pseudo-aléatoire de nombres associant à toute entrée x de K une séquence y(x) _ (yi,...,yt) de t éléments de K, lesdites fonctions élémentaires g1 (x),.., g , (x) respectivement associées aux t éléments de 1 étant obtenues en prenant, pour a= 1,..., t , comme fonction élémentaire gi (x) la fonction associant à x l'élément va de K dans ladite séquence (y1,..., yt). 11. Dispositif cryptographique de génération d'une suite chiffrante selon la revendication 10, caractérisé en ce que ledit générateur (3) pseudoaléatoire de nombres est un générateur à accès direct. 12. Dispositif cryptographique de génération d'une suite chiffrante selon la revendication 10, caractérisé en ce que ledit générateur (3) pseudoaléatoire de nombres est un générateur itératif à état interne dont la fonction de mise à jour permet à l'aide d'un calcul préalable d'avoir un accès direct à une itération déterminée d'une valeur interne. 13. Dispositif de chiffrement à flot, comprenant des moyens de formation (47) pour chiffrer une donnée en clair constituée par une suite x = (x;);E[l,...,M] de longueur M à valeurs dans un alphabet de symboles E au moyen d'une suite chiffrante z = (z;);E[1,...,M] également à valeurs dans E, pour obtenir une suite chiffrée y = telle que, pour chaque valeur de l'indice iE [1...M], le terme y; est donné par la relation y; = x; z;, où l'opération � * � est une loi de composition interne de ledit dispositif (41) de chiffrement à flot étant caractérisé en ce que, pour engendrer ladite suite chiffrante z, il comprend un dispositif (43) de génération d'une suite chiffrante selon l'une quelconque des revendications 9 à 12. 14. Dispositif (41') de déchiffrement à flot, comprenant des moyens de formation (47') pour déchiffrer une donnée chiffrée constituée par une suite y = (y;);E[1,...,M] de longueur M à valeurs dans un alphabet de symboles 1 pour obtenir une suite en clair x = (x;);E[1,...,M] telle que, pour chaque valeur de l'indice iE [1...M], le terme x; est donné par la relation x; = y;=i,z';, où l'opération � * � est une loi de composition interne des et où z'; est l'inverse à droite d'un élément z; de E pour ladite loi de composition interne, caractérisé en ce que, pour engendrer la suite chiffrante z = (z;);E[l,..,,hl], il comprend un dispositif (43) de génération d'une suite chiffrante selon l'une quelconque des revendications 9 à 12. 15. Circuit électronique, caractérisé en ce qu'il comprend un dispositif de chiffrement à flot selon la revendication 13 et/ou un dispositif de déchiffrement à flot selon la revendication 14. 16. Téléphone portable, caractérisé en ce qu'il comprend un circuit électronique selon la revendication 15. 17. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de codes de programme pour l'exécution des étapes du procédé cryptographique de génération d'une suite chiffrante selon l'une quelconque des revendications 1 à 6, et/ou du procédé de chiffrement à flot selon la revendication 7, et/ou du procédé de déchiffrement à flot selon la revendication 8, lorsqu'il est exécuté sur un ordinateur. 18. Support d'informations lisible par un ordinateur, caractérisé en ce qu'il comporte des instructions d'un programme d'ordinateur selon la revendication 17.20