Brevet FR2860892A1 — publié le 20050415

GÉNÉRATEUR DE NOMBRES PSEUDO-ALÉATOIRES POUR UN DISPOSITIF DE CHIFFREMENT CONTINU La présente invention concerne des générateurs de nombres pseudoaléatoires et plus précisément, des générateurs de nombres pseudoaléatoires qui sont appropriés pour des dispositifs dits de chiffrement continu, c'est-à-dire des dispositifs cryptographiques séquentiels. En particulier, les générateurs de nombres pseudo-aléatoires de l'invention sont utilisables comme générateurs de séquences clés pour ces dispositifs de chiffrage. Un générateur de nombres pseudo-aléatoires bien connu de ce type est illustré sur la figure 12. Le générateur de nombres pseudo-aléatoires de la figure 12, qui est également appelé registre à décalage à contreréaction linéaire, comporte une pluralité d'éléments de mémoire 51, 52, 53, 54 qui, sur la figure 12, sont numérotés de 0 à n. Les cellules de mémoire peuvent être initialisées à une valeur initiale par des moyens d'initialisation 55. Les cellules de mémoire 51 à 54 forment ensemble des moyens à action anticipée, alors que le registre à décalage linéaire formé par les cellules de mémoire 51 à 54, est réalimenté par des moyens de contre- réaction reliés entre une sortie 56 du circuit et la cellule de mémoire n. En particulier, les moyens de contre- réaction comportent 1 ou plusieurs moyens de combinaison 57, 58 qui sont alimentés par des dérivations de contre-réaction respectives 59a, 59b, 59c, comme illustré à titre d'exemple sur la figure 12. La valeur initiale du dernier moyen de combinaison 58 est injectée dans la cellule de mémoire n qui, sur la figure 12, est indiquée en 54. Le registre à décalage à contre-réaction linéaire représenté sur la figure 12 est attaqué par une horloge de façon à ce que la position d'occupation des cellules de mémoire soit décalée d'un pas vers la gauche, comme illustré sur la figure 12, au cours de chaque cycle d'horloge, de sorte que lors de chaque cycle d'horloge, l'état stocké dans le moyen à mémoire 51 est délivré en tant que nombre, tandis qu'en même temps, la valeur est injectée dans le premier élément de mémoire n de la séquence d'éléments de mémoire à la sortie du dernier moyen de combinaison 58. Le registre à décalage à contre-réaction linéaire illustré sur la figure 12 fournit donc une séquence de nombres en réponse à une séquence de cycles d'horloge. La séquence de nombres obtenue à la sortie 56 dépend de l'état initial défini par le moyen d'initialisation 55 avant la mise en fonctionnement du registre à décalage. La valeur initiale fournie en entrée par le moyen d'initialisation 55 est également appelée germe, raison pour laquelle les dispositifs de ce type, illustrés sur la figure 12, sont également appelés générateurs à germe. La séquence de nombres obtenus à la sortie 56 est appelée séquence pseudoaléatoire de nombres étant donné que les nombres semblent se suivre les uns les autres d'une façon en apparence aléatoire, mais elle est périodique pour tous les nombres, malgré le fait que la durée de la période soit grande. En outre, la séquence de nombres peut être répétée de façon non ambiguë et présente donc un caractère pseudo-aléatoire lorsque la valeur d'initialisation injectée dans les éléments de mémoire par le moyen d'initialisation 55 est connue. Ces registres à décalage sont par exemple utilisés comme générateurs de trains de clés pour fournir un train de clés de codage/décodage dépendant d'une valeur d'initialisation spéciale (germe). Ces registres à décalage illustrés sur la figure 12 ont l'inconvénient de présenter une faible complexité linéaire. Par conséquent, 2n bits de la séquence de sortie sont suffisants dans un registre LFSR à n bits (LFSR = registre à décalage à contre-réaction linéaire) pour calculer la totalité de la séquence. L'avantage de ces registres LFSR bien connus illustrés sur la figure 12 est cependant qu'ils conduisent à des coûts très faibles en matériel. En outre, il existe des registres LFSR cadencés de façon irrégulière. Ils impliquent des coûts matériels légèrement supérieurs avec une période généralement plus courte. Cependant, la complexité linéaire peut être considérablement accrue. Cependant, un inconvénient de ces dispositifs cadencés de façon irrégulière est que la séquence de sortie peut en principe être établie en mesurant le courant par une analyse de puissance simple (SPA) du fait du cadencement irrégulier. Lorsqu'on utilise les dispositifs à registre à décalage en tant que parties de générateurs de clés qui produisent des données devant être intrinsèquement maintenues secrètes, c'est-à-dire des données de clés, il est crucial que ceux-ci soient sécurisés vis-à-vis de tous types d'attaques cryptographiques. Par ailleurs, il existe une exigence selon laquelle ces dispositifs, notamment lorsqu'ils sont implantés sur des cartes à puces, conduisent à de faibles coûts matériels. En d'autres termes, la superficie de puce de ces dispositifs doit avoir un taux d'occupation aussi faible que possible. La raison en est que dans la fabrication des semi-conducteurs, la superficie des puces 2860892 3 de la totalité d'un dispositif final détermine le prix et donc la marge de profit du fabricant de puces. En outre, notamment dans le domaine des cartes à puces, le cahier des charges est généralement tel qu'un client impose la superficie maximale d'une puce de traitement, en millimètres carrés, sur lesquels différentes fonctionnalités doivent être implantées. Le fabricant de circuits doit donc répartir cette superficie précieuse entre les composants individuels. En ce qui concerne les algorithmes cryptographiques qui deviennent toujours plus complexes, les efforts déployés par le fabricant de puces visent à obtenir une puce ayant la plus grande quantité de mémoire possible pour pouvoir calculer des algorithmes pouvant même nécessiter une très grande mémoire de travail en un temps acceptable. La superficie de puce destinée à des générateurs de clés et à d'autres composants de ce genre doit donc être maintenue aussi petite que possible pour pouvoir implanter une plus grande quantité de mémoire sur une superficie de puce donnée. L'exigence générale concernant les générateurs de clés ou les dispositifs destinés à générer des séquences de nombres pseudo-aléatoires est donc d'une part qu'ils soient sécurisés et d'autre part, qu'ils exigent un espace aussi petit que possible, c'est-à-dire qu'ils conduisent à des coûts matériels aussi bas que possible. En principe, les registres à décalage linéaires ont des applications différentes dans la théorie du codage, la cryptographie et d'autres domaines des techniques électroniques. Les séquences de sortie de registres à décalage linéaires ont des caractéristiques structurelles utiles qui peuvent être classées en caractéristiques algébriques et en caractéristiques de distribution. On sait que la séquence de sortie d'un registre à décalage linéaire à n étages, comme cela a été expliqué, est périodique. La longueur de la période peut être assez grande et est souvent exponentielle en n, c'est-àdire en nombre d'éléments de mémoire. En particulier, la longueur de la période est égale à 2"-1 lorsque le registre à décalage a pour base un polynôme de contre-réaction primitif. Cependant, la complexité linéaire de cette séquence est au plus égale à n. La complexité linéaire d'une séquence périodique, par définition, est égale au nombre de cellules du registre à décalage le plus petit possible que la séquence considérée peut produire. De ce fait, on peut montrer que, comme expliqué ci-dessus, 2n expressions successives de la séquence sont suffisantes pour prédire toutes les expressions restantes de la séquence. En outre, il existe un algorithme efficace, l'algorithme dit de Berlekamp Massey, pour calculer les paramètres exigés pour obtenir la totalité de la séquence. Par conséquent, des séquences de registres à décalage linéaires, malgré leurs périodes potentiellement grandes, et leurs caractéristiques de distribution statistiquement satisfaites, ne sont pas directement utilisables comme séquences clés dans des dispositifs dits de chiffrement continu. En outre, il 1 o existe d'autres applications dans lesquelles la complexité linéaire relativement faible d'une séquence produite par un registre à décalage linéaire peut être considérée comme un inconvénient. Les registres à décalage linéaires sont classiquement décrits par leurs polynômes caractéristiques. Le degré du polynôme caractéristique est égal au nombre d'éléments à retard qui sont généralement mis en oeuvre sous forme de bascules, du registre à décalage considéré. Les exposants des termes de f(x), excepté le premier terme, correspondent aux éléments à retard du registre à décalage contribuant à la contre-réaction. Le registre à décalage linéaire illustré sur la figure 12 aurait donc un polynôme caractéristique du type suivant: f(x)=xn+1 +xn+...+x+ 1. Si on charge dans des registres à décalage linaire de ce type, comme illustré par exemple sur la figure 12, un état d'initialisation à l'aide du moyen d'initialisation 55, cet état étant également appelé vecteur d'état initial, ils fournissent typiquement une séquence périodique qui, selon la forme de réalisation, présente une certaine période préalable et une période suivante. Les registres à décalage linéaires sont toujours périodiques. II est fait en sorte, dans les applications technologiques, que la séquence de sortie ait à la fois une grande longueur de période et une forte complexité linéaire. En principe, des générateurs de nombres pseudo-aléatoires tels que ceux qui ont par exemple été illustrés en référence à la figure 12, sont exigés dans différents buts, à savoir dans des buts de simulation, pour créer des échantillons aléatoires dans des applications statistiques, pour tester des programmes informatiques, pour effectuer un chiffrement séquentiel 2860892 5 permettant de produire une séquence clé, pour des algorithmes probabilistes, en mathématique numérique, notamment pour l'intégration numérique, pour produire des clés en cryptologie ou pour des procédés de type Monte Carlo. En particulier, des générateurs de nombres pseudoaléatoires sont utilisés dans le commerce dans des circuits intégrés de sécurité, dans des générateurs de nombres aléatoires habituellement intégrés, dans des cryptomodules ou pour des applications de télévision payante, ou même dans des cartes à puce pour téléphones cellulaires, etc. Fondamentalement, des nombres aléatoires peuvent être produits sur la base d'un processus physiquement aléatoire ou bien au moyen de certaines manipulations mathématiques. Ce n'est que dans ce dernier cas que l'on parle de nombres pseudo-aléatoires, alors que dans le premier cas, on parle de nombres aléatoires véritables. Dans un générateur de nombres pseudo-aléatoires, des nombres sont produits à partir de certaines valeurs initiales, dites germes, qui sont produites par le moyen d'initialisation 55 de la figure 12, généralement à vitesse très élevée, le nombre devant être accepté lorsqu'il est soumis à un certain nombre de tests auxquels les nombres véritablement aléatoires seraient également acceptés. Cependant, le germe est produit par un processus aléatoire physique véritable. Comme cela a été illustré en référence à la figure 12, des registres à décalage à contre-réaction linéaire (LFSR) sont utilisés pour produire des générateurs de nombres pseudo-aléatoires. Les registres à décalage à contre-réaction linéaire offrent l'avantage qu'ils correspondent à des théories mathématiques indiquant que certaines caractéristiques des nombres pseudo-aléatoires produits peuvent être prédites théoriquement. Les caractéristiques les plus importantes sont la longueur de la période et la complexité linéaire de la séquence de sortie. II s'agit donc de théories concernant les registres à décalage linéaires qui permettent soit de prédire exactement la séquence de sortie, soit d'établir au moins certaines déclarations quant à la longueur minimum de la période et la valeur maximum de la complexité linéaire. En d'autres termes, des seuils inférieurs de la longueur de période et de la complexité linéaire peuvent être indiqués et prouvés par des processus mathématiques. L'inconvénient lié à l'utilisation de registres à décalage à contreréaction linéaire en tant que blocs constitutifs de base dans des générateurs de nombres pseudo-aléatoires est que les séquences de sortie ont une complexité linéaire relativement faible par comparaison à la longueur de période. La raison en est que les séquences de sortie d'un registre à décalage à contre-réaction linéaire individuel ont une longueur de période disproportionnée par rapport à la complexité linéaire. Lorsqu'un registre à décalage à contre-réaction linéaire comporte par exemple N cellules de mémoire, comme par exemple des bascules, la longueur de période de la séquence de sortie peut au plus prendre la valeur de 2"-1. Si le polynôme de contre-réaction est bien sélectionné, cela sera réellement le cas. La complexité linéaire de la séquence de sortie n'est cependant au plus égale qu'à N. Pour augmenter la longueur de période et en même temps la complexité linéaire, il serait donc nécessaire d'utiliser un registre à décalage ayant une contre-réaction linéaire permettant de conserver un nombre croissant de cellules de mémoire, ce qui, en revanche, pose des problèmes concernant le volume et ce qui pose d'autre part des problèmes électriques étant donné que toutes les cellules de mémoire d'un registre à décalage doivent être adressées par bloc, de sorte que les problèmes de synchronisation sont d'autant plus prononcés que le nombre de cellules de mémoire est grand. En outre, un nombre toujours plus grand de cellules de mémoire dans un registre à décalage unique a pour résultat que le générateur de nombres pseudo-aléatoires peut être localisé toujours plus facilement par un attaquant et devient donc la cible d'une attaque cryptographique encore plus facile. Cela est particulièrement gênant lorsque le générateur de nombres pseudoaléatoires contient des informations secrètes ou fonctionne sur la base d'informations secrètes, ce qui sera typiquement le cas d'un générateur de nombres pseudo-aléatoires utilisé dans le domaine cryptographique. Des générateurs de nombres pseudo-aléatoires du type décrit ici sont généralement utilisés dans des dispositifs de chiffrement continu qui sont par exemple utilisés dans des circuits intégrés de sécurité, des générateurs de nombres aléatoires, des crypto-modules, des applications de télévision payante, des téléphones cellulaires ou des cartes à puce. En principe, les exigences concernant les générateurs de nombres pseudoaléatoires varient selon le domaine dans lequel les générateurs de nombres pseudo-aléatoires sont utilisés. Si un générateur de nombres pseudo-aléatoires doit par exemple pouvoir commander une simulation sur la base de nombres pseudo-aléatoires, comme par exemple une simulation de Monte Carlo, un certain caractère aléatoire sera exigé des nombres pseudoaléatoires pour que la simulation fonctionne de manière optimale. Cependant, les aspects de sécurité ne jouent pas un rôle important. Cependant, si un générateur de nombres pseudo-aléatoires doit être utilisé dans un dispositif de chiffrement continu, il devra pouvoir traiter des informations secrètes. Typiquement, l'initialisation du générateur de nombres pseudo-aléatoires, c'est-à-dire ce que l'on désigne sous le nom de germe, constituera la clé secrète ou de session devant être connue à la fois de celui qui envoie les données cryptées, et d'un récepteur des données cryptées, pour effectuer un cryptage du côté émetteur et pour effectuer un décryptage du côté récepteur. Contrairement au générateur de nombres pseudo-aléatoires de base, des exigences supplémentaires sont imposées à des générateurs de séquence clé utilisés dans un dispositif de chiffrement continu. II n'est donc pas suffisant que des applications optimales pour la séquence clé présentent de bonnes caractéristiques statistiques (ce qui, pour une simulation de Monte Carlo sera suffisant), et la séquence de sortie ou la séquence clé que fournit le générateur de nombres pseudo-aléatoires ne doit pas permettre de tirer des conclusions concernant l'état instantané du générateur de séquence clé lui-même et plus particulièrement, de l'initialisation qui constitue en fait le secret, qui constitue la base de la séquence clé. En d'autres termes, une immunité dite de corrélation est exigée d'un générateur de nombres pseudoaléatoires devant être utilisé dans un dispositif de chiffrement continu. Une immunité complète à la corrélation signifie que la séquence de sortie (= séquence clé) ne contient aucune information concernant la ou les multiples séquences d'entrée individuelles (qui sont ici les séquences utilisées de façon préférentielle des registres à décalage individuels). La séquence de sortie doit être non corrélée par rapport à chacune des séquences de registres à décalage individuelles (séquence d'entrée). En outre, les dispositifs de chiffrement continu de haute qualité ont pour caractéristique le "critère d'avalanche strict". On décrit ci-après ce que signifie ce critère. Un bit de la séquence de sortie (séquence clé) doit toujours changer avec une probabilité de 0,5 lorsque le complément d'exactement un bit d'entrée est déterminé, c'est-à-dire lorsqu'un 1 devient un 0, ou lorsqu'un 0 devient un 1, alors que les autres bits d'entrée restent cependant inchangés. De ce point de vue, il n'est pas important de savoir quel bit d'entrée sera soumis à la détermination d'un complément. L'immunité à la corrélation et le critère d'avalanche strict sont tous deux des exigences de qualité qui déterminent finalement si oui ou non un générateur de nombres pseudo-aléatoires sera utilisé non seulement pour des simulations statistiques mais également à des fins cryptographiques, car les exigences de sécurité toujours plus contraignantes imposées aux générateurs de nombres pseudo-aléatoires peuvent être satisfaites avec une immunité à la corrélation et/ou un critère d'avalanche toujours meilleurs. La présente invention a pour objectif de fournir un générateur de nombres pseudo-aléatoires ou un dispositif de chiffrement/déchiffrement comportant un générateur de nombres pseudo-aléatoires de ce type qui, d'une part est sécurisé et d'autre part, est efficace. Cet objectif est atteint par un générateur de nombres pseudoaléatoires, caractérisé en ce qu'il comprend: des moyens pour fournir un nombre de 2n séquences de nombres, n étant supérieur ou égal à 2; des moyens pour combiner les séquences de nombres afin d'obtenir une séquence de sortie, les moyens de combinaison comprenant: un étage de traitement intermédiaire pour combiner les séquences de nombres afin de produire une séquence de traitement intermédiaire; et un étage de traitement final pour combiner un sous- groupe de k séquences des séquences de nombres à la séquence de traitement intermédiaire pour obtenir la séquence de sortie, k étant supérieur ou égal à 1 et inférieur à n, par un procédé de production de nombres pseudo-aléatoires caractérisé en ce qu'il comprend: la fourniture d'un nombre de 2n séquences de nombres, n étant supérieur ou égal à 2; et la combinaison des séquences de nombres afin d'obtenir une séquence de sortie, dans lequel les séquences de nombres sont tout d'abord combinées lors d'une étape de traitement intermédiaire pour obtenir une séquence de traitement intermédiaire, et dans lequel la séquence de traitement intermédiaire est ensuite combinée à un sous-groupe de k séquences des séquences de nombres lors d'une étape de traitement finale afin d'obtenir la séquence de sortie, k étant supérieur ou égal à 1 et inférieur à n, par un dispositif de chiffrement ou de déchiffrement caractérisé en ce qu'il comprend: un moyen pour fournir une séquence de texte brute devant être chiffrée ou une séquence de texte secrète devant être déchiffrée; un générateur de nombres pseudo-aléatoires suivant l'invention pour fournir une séquence de sortie; et un moyen pour lier la séquence de texte brute à la séquence de sortie ou pour lier la séquence de texte secrète à la séquence de sortie afin d'obtenir une séquence chiffrée ou une séquence déchiffrée. par un procédé de chiffrement ou de déchiffrement, caractérisé en ce qu'il comprend: la fourniture d'une séquence de texte brute devant être chiffrée ou 15 d'une séquence de texte secrète devant être déchiffrée; la fourniture d'une séquence de sortie pseudo-aléatoire suivant le procédé suivant l'invention, et la liaison entre la séquence de texte brute et la séquence de sortie ou entre la séquence de texte secrète et la séquence de sortie afin d'obtenir une 20 séquence chiffrée ou une séquence déchiffrée, ou par programme informatique contenant un code de programme destiné à mettre en oeuvre le procédé suivant l'invention lorsque le programme s'exécute sur un ordinateur. La présente invention se fonde sur la découverte qu'une forte immunité à la corrélation peut être obtenue en combinant 2n séquences de nombres, c'est-à-dire plusieurs séquences de nombres, dans un traitement de combinaison en deux stades lors duquel, en premier lieu, un stade de traitement intermédiaire destiné à combiner les séquences de nombres est utilisé pour obtenir une séquence de traitement intermédiaire, et dans lequel, un stade de traitement final est également utilisé pour combiner la séquence de traitement intermédiaire à un sous-groupe de k séquences de nombres afin d'obtenir la séquence de sortie, la valeur de k étant supérieure ou égale à 1 et étant inférieure ou égale à n. En d'autres, termes, il est apparu qu'une forte immunité à la corrélation pouvait être obtenue en appliquant un nombre k de séquences de nombres à la fois au stade de traitement intermédiaire et au stade de lo traitement final, c'est-à-dire en l'utilisant de façon multiple par le fait de la combiner dans un résultat de combinaison global de toutes les séquences de nombres. En outre, il est apparu que ce concept de combinaison en deux stades dans lequel la totalité des séquences partielles est fournie au stade de traitement intermédiaire et seules certaines des séquences partielles sont fournies au stade de traitement final, sont aussi favorables en ce qui concerne le critère d'avalanche strict. Dans un mode de réalisation préféré, le stade de traitement intermédiaire est symétrique en ce sens qu'il combine les n premières lo séquences de nombres pour obtenir un premier résultat de sous-combinaison, en ce qu'il combine également les n deuxièmes séquences de nombres pour obtenir un deuxième résultat de sous-traitement, et en ce qu'il multiplie en outre les deux résultats du sous-traitement pour obtenir la séquence de traitement intermédiaire qui est elle-même fournie au stade de traitement final, en association avec k séquences partielles des n séquences de nombres mentionnées ci-dessus, et en même temps, avec un nombre de k séquences partielles des n séquences partielles inférieures, où comme expliqué précédemment, k est supérieur ou égal à 1 et inférieur ou égal à n-1. Cette symétrie assure d'une part de pouvoir obtenir une immunité avantageusement élevée à la corrélation, et permet en même temps d'autre part de satisfaire au critère d'avalanche strict de façon encore plus satisfaisante. Les résultats les plus favorables sont notamment obtenus par le fait que les séquences de nombres individuelles sont déterminées à partir de registres à décalage à contre-réaction non linéaire, ce qui a pour conséquence directe que la périodicité et la complexité linéaire deviennent également maximales. Le fait de diviser la combinaison des séquences de nombres des registres à décalage élémentaires en un concept de combinaison en deux stades dans lequel toutes les séquences d'éléments sont combinées lors du premier stade de traitement intermédiaire et dans lequel un résultat de combinaison de toutes les séquences est combiné lors d'un deuxième stade de combinaison à seulement une partie des séquences originales, est en outre avantageux en raison du fait que des prédictions satisfaisantes concernant le comportement et les caractéristiques de la séquence de sortie finale peuvent être établies, cela étant également le cas lorsque les registres 2860892 11 à décalage élémentaires sont des registres à décalage ayant une caractéristique de contre-réaction non linéaire. En outre, il est préférable, pour obtenir des complexités linéaires élevées, de grandes longueurs de période et une utilisation souple de s ressources matérielles déjà présentes, que le générateur de nombres pseudo-aléatoires soit constitué d'une pluralité de registres à décalage élémentaires ayant des caractéristiques de contre-réaction non linéaires et que les signaux soient combinés les uns aux autres aux sorties des registres à décalage élémentaires pour obtenir un signal combiné qui est par exemple un chiffre binaire d'un nombre pseudo-aléatoire. II est à noter à ce stade que dans le cas binaire, un chiffre binaire de sortie est déjà en soi un nombre aléatoire. En général, un nombre pseudoaléatoire comprenant par exemple 8, 16 bits, etc., est cependant nécessaire. Dans ce cas, 8, 16 bits successifs, à la sortie du générateur de nombres pseudo-aléatoires, peuvent par exemple être sélectionnés. Les bits peuvent être successifs ou non, bien qu'il soit préférable d'effectuer une "extraction" de bits successifs à la sortie. Selon la règle de combinaison utilisée et mise en oeuvre par le moyen de combinaison, une augmentation en souplesse de la complexité linéaire peut être obtenue. Lorsqu'une règle de combinaison non linéaire est utilisée comme moyen de combinaison, comme par exemple la multiplication, c'est-àdire dans le cas binaire, une porte ET, la complexité linéaire d'une séquence de nombres pseudo-aléatoires produite par le générateur de nombres pseudo-aléatoires, dans des conditions préalables appropriées, est égale au produit des complexités linéaires des séquences de nombres pseudo-aléatoires produites par le registre à décalage élémentaire individuel ayant des caractéristiques de contre-réaction non linéaires. Cependant, lorsqu'on utilise une combinaison linéaire, comme par exemple dans une addition (modulo 2), c'est-à-dire une opération OU-X dans le cas binaire, la complexité linéaire de la séquence de sortie du générateur de nombres pseudo-aléatoires est égale à la somme des complexités linéaires des séquences de nombres pseudo-aléatoires produites par les registres à décalage élémentaires ayant une caractéristique de contre-réaction non linéaire. L'utilisation de registres à décalage élémentaires ayant des caractéristiques de contre-réaction non linéaires au lieu de caractéristiques de contre-réaction linéaires permet d'obtenir les relations illustrées ci-dessus 2860892 12 en ce qui concerne la complexité linéaire. En outre, la longueur de période de la séquence du générateur de nombres pseudo-aléatoires sera toujours égale au produit des longueurs des périodes individuelles des registres à décalage élémentaires. Le concept de générateur de nombres pseudo-aléatoires est particulièrementavantageux en ce sens qu'un nombre quelconque des registres à décalage élémentaires ayant des caractéristiques de contre- réaction non linéaires peut être utilisé et que leurs sorties peuvent être combinées par des moyens de combinaison, les moyens de combinaison 1 o pouvant être réalisés très simplement, en effectuant par exemple simplement une opération ET et/ou une opération OU-X (OU exclusif), c'est- à-dire une addition modulo 2. En utilisant un nombre quelconque de registres à décalage élémentaires dans le générateur de nombres pseudo-aléatoires, on dispose d'une grande souplesse dans la production d'une complexité linéaire ou d'une longueur de période spéciale pour chaque application particulière. Il n'est donc pas nécessaire de faire intervenir un registre à décalage élémentaire individuel ayant une contre-réaction non linéaire lorsqu'un générateur de nombres pseudo-aléatoires destiné à une application différente est exigé. En effet, le concept préférable permet à chaque application différente d'utiliser un nombre différent de registres à décalage élémentaires à contre-réaction non linéaire et de les relier par des moyens de combinaison. Cependant, le développeur dispose d'un grand degré de liberté pour créer, pour chaque application, un produit dimensionné de façon précise qui, par ailleurs, n'est pas surdimensionné (et qui est donc peu coûteux) et qui, d'autre part, n'est pas sous-dimensionné et présente donc la longueur de période et la complexité linéaire nécessaires à une application particulière. En outre, le concept préférable est avantageux en ce qui concerne la sécurité et la souplesse d'utilisation lors de la conception du circuit, étant donné que divers registres à décalage élémentaires peuvent être agencés en tant qu'unités spéciales à des positions dans un circuit intégré qui sont souhaitées par le développeur du circuit. Cependant, si le nombre de cellules de mémoire devait augmenter lors de l'utilisation d'un registre à décalage unique afin d'augmenter la complexité linéaire, cette configuration d'un registre à décalage ayant un grand nombre de cellules de mémoire pourrait être décelée encore plus clairement par comparaison à différents registres à 2860892 13 décalage élémentaires considérablement plus petits qui, en principe, peuvent être disposés de la façon voulue sur un circuit intégré et peuvent donc être difficilement localisés par un attaquant ou qui ne pourraient pas être localisés du tout. Dans le générateur de nombres pseudo-aléatoires, il suffit de connecter les registres à décalage élémentaires au moyen de combinaison, qui comporte également habituellement une ou plusieurs portes par l'intermédiaire d'une seule ligne de sortie de registre à décalage élémentaire, le moyen de combinaison pouvant être facilement dissimulé sur un circuit intégré et sans beaucoup d'efforts. En résumé, le générateur de nombres pseudo-aléatoires est avantageux en ce sens qu'il peut d'une part être créé efficacement et d'une façon permettant un changement d'échelle pour les exigences correspondantes, et d'autre part, qu'il offre à la possibilité d'être mis en place sur un circuit intégré de façon répartie afin qu'il ne puisse pas être facilement localisé pour des applications sensibles à la sécurité. Dans des modes de réalisation préférés de l'invention, les registres à décalage élémentaires utilisés sont des registres à décalage binaires ayant une fonction de contre-réaction non linéaire, qui produisent des séquences de périodicité maximale chaque fois que toutes les cellules du registre à décalage ne contiennent pas le bit 0. Ce registre à décalage de périodicité maximale à N cellules de mémoire produit des séquences de sortie ayant une longueur de période de 2"-1. En outre, il est préférable que les nombres de cellules de mémoire des registres à décalage élémentaires ayant des caractéristiques de contreréaction non linéaires utilisés par paires dans un générateur de nombres pseudo-aléatoires, n'aient pas de diviseur commun. Cela signifie que les registres à décalage élémentaires qui contiennent chacun un certain nombre de cellules de mémoire, contiennent des nombres de cellules de mémoire dont le plus grand diviseur commun est égal à 1. En outre, il est préférable que les registres à décalage élémentaires utilisés présentent la caractéristique supplémentaire de produire des séquences ayant une complexité linéaire maximale chaque fois que toutes les cellules du registre à décalage ne contiennent pas un 0. Un registre à décalage de ce type ayant N cellules de mémoire produit des séquences de sortie ayant une complexité linéaire de 2"-2. Si cette caractéristique est vérifiée pour tous les registres à décalage utilisés, la complexité linéaire de la 2860892 14 séquence de sortie du générateur de nombres pseudo-aléatoires a une valeur maximale correspondante pour la complexité linéaire. En outre, il est préférable que les séquences de sortie de certains registres à décalage soient multipliées les unes par les autres et segment par segment (multiplication modulo 2). Les séquences de produits ainsi déterminées sont appliquées à un additionneur total. En outre, il est préférable que la séquence de sortie d'au moins un registre à décalage soit directement appliquée à l'additionneur total. Enfin, il est préférable que la séquence de sortie de l'additionneur total, qui fait partie du moyen de combinaison, représente la séquence de sortie de la totalité du générateur de nombres pseudo-aléatoires. Dans ce contexte, une opération OU-X de plusieurs séquences d'entrée, c'est-àdire terme par terme, ou autrement dit, dans l'état binaire, bit par bit, représente l'additionneur total. Il est particulièrement préférable d'utiliser des combinaisons simples de registres à décalage à contre-réaction non linéaire existants étant donné que les relations théoriques concernant la longueur de période et la complexité linéaire des séquences de sortie peuvent être prouvées mathématiquement de façon exacte au moyen de ces combinaisons simples. Cela permet d'utiliser de façon commandée le registre à décalage de l'invention ayant une caractéristique de contre-réaction non linéaire dans les générateurs de nombres pseudo-aléatoires. De plus, il est préférable que les registres à décalage élémentaires individuels, comme cela a été expliqué, soient des registres à décalage ayant une caractéristique de contre-réaction non linéaire de périodicité maximale (registres MP-NLFSR). Un registre à décalage à caractéristique de contre-réaction non linéaire de périodicité maximale est un registre NLFSR ayant pour caractéristique de pouvoir générer des séquences ayant une longueur de période maximale. On supposera que le registre à décalage comporte N cellules de mémoire. La longueur de période maximale sera alors de 2"-1. Lorsque les cellules de mémoire d'un registre MP-NLFSR sont occupées par un état initial (la seule exception étant que toutes les cellules ne puissent pas contenir le bit 0), ce registre MP-NLFSR produit toujours une séquence ayant une longueur de période maximale. Selon la forme de réalisation, des registres MP-NLFSR peuvent être produits de manière expérimentale par une étude sur ordinateur. Il est apparu 2860892 15 que des registres MP-NLFSR réalisés de cette manière avaient presque toujours une complexité linéaire très élevée. Cela signifie que la séquence de sortie produite par le registre MP-NLFSR présente donc non seulement une longueur de période maximale de 2N-1, mais de façon générale une complexité linéaire également élevée. En particulier, la valeur maximale possible pour la complexité linéaire est de 2N-2, cette valeur étant recherchée conformément à l'invention. Cette observation résulte d'une part d'expériences effectuées sur ordinateur, mais respecte également la règle prouvée mathématiquement par Meidl et Niederreiter, qui est illustrée dans "IEEE Transactions on Informations Theory 48", No. 11, pp. 2817 - 2825, Novembre 2002. Comme expliqué ci-dessus, il est préférable que les nombres de cellules de mémoire des registres MP-NLSFR utilisés par paires, n'aient pas de diviseur commun les uns par rapport aux autres. Les valeurs exactes de la longueur de période et de la complexité linéaire de la séquence de sortie peuvent alors être prouvées mathématiquement pour certaines combinaisons des registres MP-NLFSR au moyen d'une formule contenant les grandeurs R, S, T, ..., où R est le nombre de cellules de mémoire du premier registre à décalage à contre-réaction non linéaire de périodicité maximale, S est le nombre de cellules de mémoire du deuxième registre à décalage à contreréaction linéaire de périodicité maximale, T est le nombre correspondant pour le troisième registre à décalage élémentaire, etc. En outre, on peut utiliser des registres à décalage à contre-réaction non linéaire de périodicité maximale dont les séquences de sortie ne présentent pas la complexité linéaire maximale mais des valeurs "légèrement" inférieures, comme par exemple L1, L2, L3. Lorsque de tels registres à décalage élémentaires sont combinés, en utilisant de préférence une règle de combinaison simple qui ne comprend par exemple qu'une seule opération ET ou OU-X, c'est-à-dire une opération logique simple, on peut également prouver une formule donnant la longueur de période et la complexité linéaire de façon mathématiquement exacte pour la séquence de sortie du dispositif générateur de nombres pseudo-aléatoires ainsi réalisé. Cette formule de la complexité linéaire de la séquence de sortie, au lieu des grandeurs R, S, T, ..., contient maintenant les grandeurs L1, L2, L3, .... Des modes de réalisation préférés de l'invention vont être décrits ciaprès en référence aux dessins annexés, dans lesquels: 2860892 16 la figure 1 représente un schéma fonctionnel d'un générateur de nombres pseudo-aléatoires de l'invention; la figure 2 représente un schéma fonctionnel d'un générateur de nombres pseudo-aléatoires d'un mode de réalisation préféré de l'invention; la figure 3 représente un schéma fonctionnel généralisé d'un générateur de nombres pseudo-aléatoires d'un mode de réalisation de l'invention; la figure 4 représente une illustration fondamentale servant à expliquer le chiffrement séquentiel; la figure 5 est une illustration fondamentale d'un dispositif de l'invention destiné à effectuer respectivement un chiffrement et un déchiffrement; la figure 6 représente une configuration préférée d'un registre à décalage élémentaire à contre-réaction non linéaire; la figure 7 représente une variante de configuration d'un registre à décalage élémentaire à contre-réaction non linéaire; la figure 8 représente une variante de configuration d'un registre à décalage élémentaire à contreréaction non linéaire; la figure 9 représente une variante de configuration d'un registre à décalage élémentaire ayant une caractéristique de contre-réaction non linéaire la figure 10 représente un exemple de configuration d'un registre à décalage élémentaire à contreréaction non linéaire; la figure 11 est une illustration générale d'un registre à décalage 25 élémentaire ayant des cellules de mémoire dans les moyens à action anticipée et dans la fonction de contre-réaction F; et la figure 12 représente un registre à décalage linéaire bien connu destiné à produire une séquence de nombres pseudo-aléatoires. La figure 1 représente un générateur de nombres pseudo-aléatoires de l'invention ayant un moyen 100 destiné à fournir un nombre de 2n séquences de nombres, où n est supérieur ou égal à 2. Le moyen 100 est réalisé de façon à fournir les séquences de nombres SNI, SN2, SN3, ... SN(2n-2), SN(2n-1) et SN(2n). En aval du moyen de fourniture, se trouve un moyen 102 de combinaison qui, sur la figure 1, est indiqué par une ligne en pointillés. Le moye 102 de combinaison est divisé en des étages 102a et 102b de traitement intermédiaire. L'étage 102a de traitement intermédiaire 2860892 17 est réalisé de façon à combiner les unes aux autres la totalité des 2n séquences de nombres fournies par le moyen 100 pour obtenir une séquence de traitement intermédiaire sur une ligne 104 de séquence de traitement intermédiaire. L'étage 102b de traitement final, quant à lui, est réalisé de façon à combiner la séquence de traitement intermédiaire sur la ligne 104 à un nombre de k séquences de nombres, c'est-à-dire à un sous-groupe comportant k séquences de nombres parmi les 2n séquences initiales de nombres. Il est préférable que l'étage 102b de traitement final soit réalisé de façon à combiner non seulement un premier sous-groupe (supérieur) de k io séquences de nombres 106a, mais également un deuxième sous-groupe (inférieur) de séquences clés de nombres 106b, avec la séquence de traitement intermédiaire sur la ligne 104 pour obtenir, sur une sortie 108 de l'étage de traitement final qui constitue en même temps la sortie du générateur de nombres pseudo- aléatoires, une séquence de sortie représentant la séquence pseudo- aléatoire de nombres au cours du temps. En ce qui concerne la séquence de sortie sur la sortie 108, on peut considérer soit le bit individuel comme constituant des nombres pseudoaléatoires, prenant l'une ou l'autre de la valeur 0 et de la valeur 1. En variante, la séquence de sortie peut également être considérée comme étant une séquence pseudo-aléatoire de nombres dans lesquels le nombre pseudo-aléatoire comporte un certain nombre de bits, comme par exemple un nombre aléatoire à 32 bits, un nombre aléatoire à 64 bits, etc. Si le générateur de nombres pseudo-aléatoires représenté sur la figure 1 est respectivement utilisé conformément à l'invention dans un dispositif de chiffrement et de déchiffrement qui fonctionne en tant que dispositif de chiffrement continu, la séquence de sortie est combinée segment par segment, c'est-à-dire par exemple bit par bit, à un message de texte brut ou secret sous forme binaire, dans lequel une opération OU-X ou NON-OU-X est généralement effectuée à cet effet. Le générateur de nombres pseudo-aléatoires de l'invention, comme illustré sur la figure 1, peut cependant également être utilisé dans tous les autres domaines d'application des générateurs de nombres pseudoaléatoires, comme par exemple dans des simulations statistiques, etc. Un générateur de nombres pseudo-aléatoires de l'invention, conformément à un mode de réalisation préféré, est décrit ci-après en référence à la figure 2. Celui-ci comprend également un moyen 100 destiné à 2860892 18 fournir 2n séquences de nombres et un moyen 102a de traitement intermédiaire et un moyen 102b de traitement final. Le moyen 100 fournissant 2n séquences de nombres comporte de préférence un nombre égal à 2n de registres à décalage élémentaires ayant un certain nombre de cellules de mémoire, ce nombre de cellules de mémoire, outre le registre à décalage élémentaire correspondant, par exemple 100a, 100b, 100c et 100d, étant respectivement désigné R, S, T et U. Les registres à décalage 100a - 100d élémentaires individuels qui ont de préférence tous une caractéristique de contreréaction non linéaire, sont reliés à un moyen 110 d'initialisation qui est réalisé de façon à fournir un "germe" faisant passer les registres à décalage 100a - 100d élémentaires individuels dans un état initial défini afin qu'ils produisent une séquence pseudo-aléatoire définie reproductible de nombres s'écartant de cet état initial. Il est également à noter que tous les registres à décalage 100a-100d non linéaires peuvent être initialisés à la même valeur ou à des valeurs différentes. Cependant, de façon typique, les registres à décalage élémentaires auront des nombres différents de cellules de mémoire, de sorte qu'ils seront typiquement initialisés à des valeurs différentes. En un certain sens, la figure 2 représente une version minimale étant donné que le moyen 100 ne comporte que quatre registres à décalage 100a 100d élémentaires, de sorte que le paramètre n est égal à 2. Du fait de la définition du paramètre k qui indique le nombre de séquences de nombres qui peuvent non seulement être fournies à l'étage intermédiaire, mais également à l'étage de traitement final, ce paramètre, dans le mode de réalisation représenté sur la figure 2, ne peut être égal qu'à la valeur "1" de sorte que le sous-groupe supérieur de k séquences de nombres qui, sur la figure 2, est désigné 106a, ne contient qu'une seule séquence de nombres et de sorte que le sous-groupe inférieur de séquences de nombres qui, sur la figure 2, est indiqué en 106b, ne contient qu'une seule séquence de nombres qui est fournie par le moyen 100. Dans le mode de réalisation préféré de l'invention représenté sur la figure 2, le moyen de traitement intermédiaire est réalisé de façon à comporter un premier additionneur 120a initial et un deuxième additionneur 120b initial permettant d'obtenir en premier lieu un premier résultat de sous- traitement sur une ligne 122a de sortie d'additionneur supérieure et un deuxième résultat de sous-traitement correspondant sur une ligne 122b de 2860892 19 sortie d'additionneur inférieure. Les signaux sur les lignes 122a et 122b sont finalement multipliés l'un par l'autre dans un multiplexeur 124 fournissant en sortie la séquence de traitement intermédiaire sur la ligne 104. La séquence de traitement intermédiaire est ensuite appliquée à l'étage 102b de traitement final qui, dans un mode de réalisation préféré de l'invention, ne comporte qu'un seul additionneur 126 pour additionner la séquence de traitement intermédiaire sur la ligne 104 au premier sous-groupe 106a de k séquences de nombres et au deuxième sous-groupe 106b contenant k séquences de nombres, afin d'obtenir la séquence de sortie. lo En particulier, le registre à décalage 100a est constitué de R cellules de mémoire. Le registre à décalage 100b est constitué de S cellules de mémoire. Le registre à décalage 100c est constitué de T cellules de mémoire et le registre à décalage 100d contient U cellules de mémoire. En principe, les registres à décalage sont assemblés de la façon illustrée ci-après en référence à la figure 11 ou aux figures 6 et 7. Dans un mode de réalisation préféré, les registres à décalage sont assemblés de façon à ce que les nombres R, S, T et U, par paires, n'aient pas de diviseur commun. Dans un mode de réalisation préféré de l'invention, les valeurs suivantes sont choisies: R = 23, S = 19, T = 22 et U = 21. Une valeur approximative est donc obtenue, dans un contexte donné qui sera décrit plus loin, pour la longueur de période de la séquence clé, de la façon suivante: longueur de période z, 285. Pour la complexité linéaire de la séquence clé, on obtient une valeur approximative qui, dans un contexte qui sera expliqué plus loin, est tel qu'indiqué ci-après: complexité linéaire 245 Dans un autre exemple d'application, on peut utiliser les valeurs suivantes: R = 31, S = 29, T = 30 et U = 25. Dans ce cas, la valeur approximative suivante est obtenue pour la longueur de période: longueur de période 2115 La valeur suivante est obtenue pour la complexité linéaire: complexité linéaire 261. On va à nouveau illustrer ci-après plus clairement les caractéristiques préférées du générateur de nombres pseudo-aléatoires illustré sur la figure 2. En particulier, des conditions préalables sont établies pour obtenir d'une part une prédictibilité maximale, et d'autre part, une périodicité maximale, une io complexité linéaire maximale, la meilleure immunité à la corrélation et le meilleur critère d'avalanche, ce qui conduit à ce qui suit: le registre NLSFR No 1 contient R cellules de mémoire le registre NLSFR No 2 contient S cellules de mémoire le registre NLSFR No 3 contient T cellules de mémoire le registre NLSFR No 4 contient U cellules de mémoire La relation suivante doit être vérifiée pour les nombres R, S, T et U: 20 pgcd(R,S)=pgcd(R,T)=pgcd(R,U)=pgcd(S,T)=pgcd(S,U) =pgcd(T,U)=1 (r;) _ (ro,r1,r2, ...) comme séquence de sortie du NLFSR No 1, (s;) _ (so,s1,s2, ...) comme séquence de sortie du NLFSR No 2, (t;) = (to,tl,t2, ...) comme séquence de sortie du NLFSR No 3, (u;) = (uo,ul,u2, ...) comme séquence de sortie du NLFSR No 4. On suppose que tous les registres à décalage ont une périodicité maximale et peuvent produire des séquences de sortie ayant des complexités linéaires maximales. Par conséquent, on peut écrire: Per((r;)) = 2R-1 et compl. lin. ((r;)) = 2R-2, Per((s;)) = 2S-1 et compl. lin. ((si)) = 25-2, Per((t;)) = 2T-1 et compl. lin. ((t;)) = 2T-2 Per((u;)) = 2u-1 et compl. lin. ((u;)) = 2u-2. Les caractéristiques de la séquence clé (z;) sont les suivantes: É longueur de période maximale: Per((z;)) = (2R-1) (2S-1) (2T-1) (2u-1) É complexité linéaire élevée: compl. lin. ((zi)) = (2R-2)(2T-2)+(2R-2)(2U1)+(2S-2)(2T-2)+(25-2)(2U-2)+2R+2u-4 É immunité à la corrélation: P(r;=z;)=P(s;=z;)=P(t;=z;)=P(u;=z;)= 2 La figure 3 représente une version généralisée du générateur de nombres pseudo-aléatoires de la figure 2. Plus précisément, la symétrie préférée conformément à l'invention se traduit par le fait que 2n séquences de nombres sont fournies en premier lieu et que les n premières séquences de nombres, c'est-à-dire les sorties des n premiers registres à décalage RI, R2, R3, ..., Rn, sont en principe traitées comme les n deuxièmes signaux de sortie (inférieurs) des registres à décalage élémentaires correspondants TI, T2, T3 Tn. Le moyen de combinaison comportant l'étage de traitement intermédiaire, d'une part, et l'étage de traitement final, d'autre part, est ici encore réalisé de la façon illustrée sur la figure 2. Contrairement à la figure 2, les additionneurs individuels 120a, 120b et 126 ont un plus grand nombre d'entrées que dans le premier cas, car le nombre de séquences de nombres, par comparaison au cas de la figure 2, peut maintenant être arbitrairement grand. En, outre, on a illustré sur la figure 3 le cas où le nombre k = 3 (ou plus). Le dispositif général de la figure 3 contient donc 2 x n registres NLFSR de périodicité maximale. Le nombre de cellules de mémoire des 2n registres NLFSR ne présente de préférence pas de diviseur commun, lorsqu'elles sont prises par paires. En outre, le dispositif comporte deux additionneurs supplémentaires 120a, 120b, un multiplieur 124 et un additionneur final 126. Il est à noter que l'addition et la multiplication dans le cas binaire sont toutes deux de type "modulo 2", ce qui signifie que l'addition revient à une opération OU-X. En outre, la multiplication, dans le cas binaire, revient également à une multiplication de type modulo et correspond donc à une opération ET. Le moyen de combinaison est réalisé de façon à fournir les séquences de sortie des n premiers registres à décalage au premier additionneur initial et à appliquer les séquences de sortie des n deuxièmes registres à décalage au deuxième additionneur initial. Les séquences de sortie des deux additionneurs initiaux sont appliquées au multiplieur. La séquence de sortie du multiplieur sera finalement fournie à l'additionneur final. En outre,le nombre k est sélectionné de façon à être compris entre 1 et n- 1. On sélectionne ensuite k registres NLFSR dans le groupe des n premiers registres NLFSR. En outre, k registres NLFSR sont également sélectionnés dans le deuxième groupe de registres NLFSR. Les séquences de sortie de la totalité des 2k registres à décalage sélectionnés sont directement fournies à l'additionneur final et sont plus particulièrement indiquées sur les figures 1 à 3. Après cela, pour le cas représenté sur la figure 3, un certain nombre de réglages préférés pour les registres à décalage et le moyen de combinaison sont présentés de façon à obtenir un générateur de nombres pseudoaléatoires optimal ayant toutes les caractéristiques correspondantes mentionnées précédemment pour le cas optimal. RI, R2, ..., TI, T2, ...sont les nombres de cellules de mémoire des registres NLFSR apparaissant. La condition préalable préférée de ne pas avoir de diviseur commun s'écrit de la façon suivante: pgcd(R;,Rj) = 1, pgcd(T;,Ti) = 1 pour i j et pgcd(R;,Ti) = 1 pour tout i, j E {1,2,..., n}. Les grandeurs contenues dans tous les registres à décalage sont des nombres qui, lorsqu'ils sont considérés par paires, n'ont pas de diviseur 3o commun. Tous les registres à décalage apparaissant sont non linéaires et de périodicité maximale. Le premier registre à décalage contient par exemple RI cellules de mémoire et produit une séquence de bits ayant une longueur de période de 2R1-1 Pour le nombre k, on a 1 k n-1. 2860892 23 La séquence de sortie (Z;), i = 1, 2, 3, ..., de la totalité du dispositif présente les caractéristiques suivantes: 1. (Z;) présente une immunité à la corrélation en ce qui concerne la séquence de sortie de chaque registre à décalage individuel. 2. (Z;) respecte le critère d'avalanche strict. 3. La longueur de période de (Z;) est: n n période = n(2R' -1)fl(2T -1) i=1 i=l lo La complexité linéaire L de (Z;) est: rr n 11/ n k L=1 -2n+ 2R'J -2n+E2T +E(2R' +2T) 4k i=l i 1 i I Les générateurs de nombres pseudoaléatoires décrits ci-dessus sont particulièrement adaptés à un chiffrement séquentiel. II est préférable que les générateurs de nombres pseudo-aléatoires illustrés sur les figures 1 à 3 soient réalisés sous la forme de dispositifs matériels simples devant être utilisés dans un dispositif de chiffrement continu. Cependant, le concept de l'invention peut également être mis en oeuvre sous forme logicielle. Par ailleurs, la réalisation matérielle garantit une vitesse de chiffrement considérablement plus élevée, étant donné que les registres à décalage élémentaires individuels peuvent être assemblés plus efficacement à partir de cellules de mémoire, comme par exemple des bascules. Néanmoins, il peut être préférable, pour certaines applications dans lesquelles la vitesse de traitement ne pose pas de problème crucial, de se dispenser d'un assemblage matériel qui peut être trop complexe par comparaison à une forme de réalisation logicielle et d'utiliser au lieu de cela une forme de réalisation logicielle. Cette variante peut être particulièrement avantageuse lorsque seul un très petit nombre d'éléments sont prévus. Dans le cas d'une forme de réalisation logicielle, les séquences de nombres individuelles peuvent soit être produites par une simulation correspondante de registres à décalage élémentaires, soit d'une autre manière permettant de produire des nombres pseudo-aléatoires créés de façon logicielle. On détaille ci-après le principe fondamental du chiffrement (déchiffrement) séquentiel et de l'utilisation du générateur de nombres pseudo-aléatoires de l'invention pour le chiffrement séquentiel en se référant 2860892 24 aux figures 4 et 5. Le composant essentiel d'un dispositif de chiffrement continu est le générateur de séquence clé 130 illustré sur la figure 5, qui peut être initialisé par la clé (le germe) 110. Le générateur de séquence clé 130 de la figure 5 est configuré de la façon illustrée en référence aux figures 1 à 3. Le générateur de séquence clé produit une séquence de z; bits de séquence clé à la sortie 108 du générateur de séquence clé. En outre, un moyen 132 destiné à fournir une séquence de bits de texte brut, qui sont liés parune unité 134 de liaison aux bits de séquence clé est réalisé. Comme illustré sur la figure 4, la liaison entre le texte brut et la clé s'effectue au moyen d'une addition modulo 2, c'est-à-dire d'une addition segment par segment modulo 2. Cette opération correspond à une opération OU-X. L'opération NON-OU-X peut également être utilisée avec le même avantage que l'opération OU-X. Les deux types d'opérations ont pour caractéristique qu'une exécution en cascade double d'une même opération renvoie le résultat initial, de sorte que, comme cela est illustré plus particulièrement en référence à la figure 5, un texte brut a peut être remplacé par un texte secret c et inversement. Le générateur de séquence clé 130 produit ensuite une séquence de bits pseudo-aléatoire longue en fonction d'une séquence de bits relativement courte, qui constitue la clé cryptographique avec laquelle les registres à décalage élémentaires individuel sont initialisés. L'émetteur et le récepteur ont des conceptions identiques en ce qui concerne le générateur de séquence clé et utilisent la même clé cryptographique. Ils sont donc capables de générer des séquences clés identiques. L'émetteur utilise cette séquence clé pour crypter son message. Le message est ici considéré comme étant traduit en une séquence de bits. Celle-ci est désignée sous le nom de séquence de texte brute. La séquence clé et la séquence de texte brute sont ensuite additionnées modulo 2 bit par bit. Le résultat est la séquence de texte secrète (séquence de texte chiffrée). Le récepteur lie de la même manière la séquence de texte secrète reçue à la séquence clé et obtient à nouveau la séquence de texte brute. Le générateur 130 de séquence clé de l'invention, notamment sous sa forme matérielle représentée sur les figures 1 à 3, est capable de fonctionner en tant que générateur 130 de séquence clé pour un dispositif de chiffrement continu, étant donné qu'une séquence clé longue peut être produite à grande vitesse avec de faibles coûts matériels, la séquence clé satisfaisant en outre aux 2860892 25 "exigences de secret" pour l'obtention d'une forte immunité à la corrélation et d'un critère d'avalanche strict. En se référant aux figures 6 à 10, on va ensuite décrire plusieurs modes de réalisation différents permettant de mettre en oeuvre les registres à décalage élémentaires individuels 101-111 des figures 6 à 9. On notera également que tous les registres à décalage, comme par exemple les registres à décalage 101-111 de la figure 5, ne doivent pas avoir la même configuration mais qu'ils peuvent avoir des configurations différentes pour autant qu'au moins l'un et de préférence, la totalité des registres à décalage lo ait/aient une caractéristique de contre-réaction non linéaire. La figure 6 représente un registre à décalage élémentaire à contreréaction non linéaire destiné à produire une séquence pseudo-aléatoire de nombres à l'aide d'un moyen 1 à action anticipée comprenant une séquence d'unités de mémoire 2 à 5 et comportant en outre une entrée 6 et une sortie 7 qui correspond à la sortie du dispositif fournissant en sortie la séquence de nombres pseudo-aléatoires. II est à noter que la séquence de nombres pseudo-aléatoires peut être complétée par des moyens supplémentaires non représentés sur la figure 6 pour mettre en tampon des séquences de nombres aléatoires pour les combiner d'une autre manière, etc. Le dispositif représenté sur la figure 6 comprend en outre un moyen 8 à contre-réaction ayant une caractéristique de contre-réaction variable et relié entre l'entrée 6 et la sortie 7 du moyen 1 à action anticipée. La caractéristique de contre-réaction variable du moyen 8 à contre- réaction est illustrée sur la figure 6 qui montre que le moyen 8 à contre- réaction peut utiliser une première caractéristique 9 de contre-réaction ou une deuxième caractéristique 10 de contre-réaction, la commutation entre la première caractéristique 9 de contre-réaction et la deuxième caractéristique 10 de contre-réaction pouvant par exemple être effectuée à l'aide d'un moyen 11 de commutation. Le signal de commande destiné au moyen 11 de commutation est fourni à titre non limitatif d'exemple par le quatrième moyen à mémoire SE2, qui est illustré symboliquement par un trajet de signal. La première caractéristique 9 de contre-réaction et la deuxième caractéristique 10 de contre-réaction diffèrent, dans le mode de réalisation représenté sur la figure 6, par le fait que dans le cas de la première caractéristique de contre- réaction, l'état du moyen à mémoire 1 (No. 3) se transforme en un état de contre-réaction, alors que dans le cas de la deuxième caractéristique de contre-réaction, l'état du moyen 5 à mémoire (SEn) contribue à la contre- réaction. En variante ou de façon supplémentaire, le moyen 8 de contre-réaction peut être réalisé de telle façon que dans la caractéristique de contreréaction, lorsqu'on combine la valeur de la sortie 7 du moyen à action anticipée à un état interne du moyen à action anticipée, on utilise une règle de combinaison différente dépendant des caractéristiques de contreréaction sélectionnées. Ainsi, une combinaison ET pourrait être utilisée par exemple dans la première caractéristique de contre-réaction pour combiner la valeur obtenue à la sortie 7 et la valeur de la cellule 3 du registre, alors que la deuxième caractéristique de contre-réaction diffère de la première caractéristique de contre-réaction par le fait qu'il ne s'agit pas d'un ET mais d'une combinaison OU utilisée pour combiner les deux valeurs mentionnées. Il apparaîtra clairement aux spécialistes de la technique que différents types de règles de combinaison différentes peuvent être utilisés. En outre, il n'est pas nécessaire que les valeurs des moyens à mémoire SE1 et SEn, respectivement, soient directement appliquées au moyen de combinaison dans le moyen de contre-réaction, ces valeurs pouvant également par exemple être inversées, combinées l'une à l'autre, ou traitées de façon non linéaire d'une manière quelconque avant que les valeurs traitées soient fournies au moyen de combinaison. En outre, il n'est pas essentiel que le moyen 11 de commutation soit commandé directement par l'état de l'unité SE2 à mémoire. En effet, l'état du moyen à mémoire SE2 pourrait être inversé, traité logiquement ou de façon arithmétique d'une autre manière quelconque ou même combiné à l'état d'un ou plusieurs autres moyens à mémoire, pour autant qu'un dispositif générateur d'une séquence de nombres pseudo-aléatoires comportant un moyen de contre-réaction soit obtenu et que sa caractéristique de contre-réaction ne soit pas statique mais puisse être amenée à varier de façon dynamique en fonction du moyen à action anticipée et notamment d'un ou plusieurs états d'unités à mémoire du moyen à action anticipée. Dans le moyen 1 à action anticipée de la figure 6, un moyen 13 de commande supplémentaire est prévu entre deux éléments de mémoire, notamment dans l'exemple représenté sur la figure 6 entre les éléments de mémoire 4 et 5. Comme les signaux vont de l'élément de mémoire 0 vers l'élément de mémoire n de la figure 6, l'élément de mémoire 4 est l'élément 2860892 27 de mémoire disposé en face du moyen de commande, par rapport au sens des signaux, tandis que l'élément de mémoire 5 est le signal disposé en aval du moyen de commande, par rapport au sens des signaux. Le moyen 13 de commande comporte une entrée 13a de commande à laquelle peut être fourni un signal de commande qui, en principe, peut être un signal de commande quelconque. Par exemple, le signal de commande peut être une séquence de nombres pseudo-aléatoires véritable, de telle sorte que la séquence de sortie du dispositif à registre à décalage est une séquence de nombres pseudoaléatoires. Le signal de commande peut également être un signal de commande déterministe, de sorte que la séquence de nombres pseudoaléatoires est obtenue du côté de la sortie. Cependant, il est préférable que l'entrée 13a de commande soit connectée au moyen 8 de contre-réaction, comme illustré sur la figure 6 par la ligne en traits discontinus correspondante, par exemple un signal présent dans le moyen de contre-réaction qui constitue le signal de commande destiné au moyen 13 de commande, ce qui signifie que le signal de commande est également un signal déterministe. Malgré le fait que le moyen 8 de contre-réaction du mode de réalisation représenté sur la figure 6 soit conçu pour être un moyen de contreréaction variable, le moyen de contre-réaction peut également être un moyen de contre-réaction ayant une caractéristique de contre-réaction constante, comme représenté par une ligne discontinue 14. Dans ce cas, le signal de commande destiné à l'entrée 13a de commande peut être prélevé en un point 14a de dérivation, comme illustré schématiquement sur la figure 6 par la ligne discontinue allant du point 14a à l'entrée 13a de commande du moyen 13 de commande. En outre, le générateur de séquence de nombres élémentaires représenté sur la figure 6 est utilisé, pour plus d'efficacité, afin de produire par exemple non seulement une séquence à la sortie 7, mais également une deuxième séquence de nombres de préférence pseudo-aléatoires à une autre entrée 15, les deux séquences ou seulement l'une des deux séquences étant fournie(s) au moyen de combinaison. Le fait d'intégrer le moyen 13 de commande a pour effet que la séquence fournie en sortie sur la sortie 7 est réellement différente de la séquence fournie en sortie sur la sortie 15, les deux séquences n'étant pas décalées l'une vers l'autre, comme cela a été 2860892 28 expliqué, et étant réellement différentes étant donné qu'elles sont respectivement "extraites" avant et après le moyen 13 de commande, par rapport au sens des signaux. La figure 7 représente un registre à décalage à 8 bits, dans lequel un multiplexeur 20 est commandé via une entrée 20a de commande en fonction de l'état du moyen à mémoire No. 4. Si l'entrée 20a de commande est dans un état zéro, c'est-à-dire s'il y a un état zéro dans la cellule de mémoire No. 4, le multiplexeur est commandé de telle façon qu'il connecte l'état du moyen à mémoire No. 7 sur une première ligne 20b d'entrée de celui-ci, à une ligne l0 20d de sortie. Cela correspondrait à l'effet d'un registre à décalage linéaire ayant le polynôme de contre-réaction suivant: Cependant, si l'entrée 20a de commande est dans un état 1, l'état du moyen à mémoire No. 6 est connecté à la ligne 20d de sortie du multiplexeur 20 sur une deuxième entrée 20c. La ligne 20d de sortie est connectée à un moyen 21 de combinaison qui, dans le mode de réalisation représenté sur la figure 7, reçoit également la valeur provenant de la sortie 7 du moyen à action anticipée qui forme en même temps la sortie du dispositif destiné à produire une séquence de nombres pseudo-aléatoires. Le résultat calculé par le moyen 21 de combinaison est quant à lui fourni au premier moyen à mémoire No. 7 de la figure 7. Si le contenu de la cellule de mémoire No. 4 est égal à 1, on aura le 25 polynôme de contre-réaction suivant: Il devient évident, d'après la description qui précède, que la commutation entre les deux polynômes de contre-réaction mentionnés ci-dessus s'effectue en fonction du contenu de la cellule de mémoire No. 4 du moyen 1 à action anticipée. Il est apparu que les complexités linéaires des séquences obtenues conformément à l'invention étaient élevées, à savoir comprises entre 234 et 254 lorsque le registre à décalage comporte 8 bascules. Il est à noter que la longueur de période d'une séquence produite par un registre à décalage à 8 2860892 29 étages peut au maximum être de 255. La valeur maximale de la complexité linéaire de cette séquence est de 254. Le plus simple de tous les registres à décalage élémentaires à 8 étages qui peut produire une séquence est le registre à décalage illustré sur la figure 7, celui-ci comportant les deux polynômes de contre-réaction illustrés sur la figure 7. En ce qui concerne la théorie des registres à décalage linéaires, à titre d'exemple comparatif, on peut noter qu'il y a 16 polynômes primitifs de degré 8. Chacun de ces polynômes décrit un registre à décalage linéaire qui peut produire une séquence ayant la longueur de période de 255 et une complexité linéaire de 8. Contrairement à cela, lorsqu'il y a un beaucoup plus grand nombre de registres à décalage, par exemple 2020, conformément à la présente invention, celuici peut produire les séquences ayant une longueur de période de 255 conformément à l'invention. En outre, les séquences qui sont produites par les registres à décalage de l'invention ont des complexités linéaires beaucoup plus grandes que leurs formes de réalisation analogiques de l'art antérieur. Comme décrit précédemment, le mode de réalisation représenté sur la figure 7 est préféré parmi toutes les possibilités analysées pour un registre à décalage à 8 bits ayant un moyen de contre-réaction étant donné que cela implique des coûts matériels plus faibles et qu'en même temps, ce dispositif a une durée de période maximale et présente en outre une complexité linéaire maximale. Le moyen 13 de commande est en outre disposé entre deux éléments de mémoire de la figure 7, ceux-ci étant les éléments de mémoire 1 et 2. Le moyen 13 de commande reçoit un signal de commande qui est extrait du moyen 8 de contre-réaction présentant une caractéristique de contre- réaction variable. II est clair que le signal destiné au moyen de commande peut également être "extrait" après la porte OU-X 21 par rapport au sens des signaux. En outre, le moyen 13 de commande peut bien sûr être réalisé entre deux autres cellules de mémoire quelconques, par exemple entre les cellules de mémoire 5 et 6 ou entre les cellules de mémoire 0 et 7, c'est-à-dire, par rapport au sens des signaux, soit après la cellule de mémoire 0, afin que le signal à la sortie du moyen à mémoire soit directement fourni en sortie sur la sortie 7, soit directement en sortie en amont de la cellule de mémoire 7. Il est cependant préférable, pour des raisons de traitement du signal, que tous les signaux, comme par exemple les séquences de sortie, les signaux de commande et les signaux de données destinés au démultiplexeur, 2860892 30 etc., soient extraits à la sortie des registres à décalage afin que le registre à décalage, à l'exception de sa fonctionnalité de production de la séquence de nombres, serve également à fournir des signaux stables destinés à des portes logiques. Par conséquent, il n'est pas nécessaire de produire des étages de sortie pour des portes logiques lorsque des signaux de commande ou des signaux de sortie sont extraits des sorties des portes logiques elles-mêmes. On se référera ensuite à la figure 8 qui illustre une forme de réalisation spéciale du moyen 20 multiplexeur de la figure 7. Le multiplexeur 20 peut être facilement mis en oeuvre sous la forme de deux portes ET 40a, 40b qui sont toutes deux connectées à des portes OU (ou à des portes OU- X) 41a, 41b, reliées en série, comme illustré sur la figure 8. En particulier, l'état de la cellule de mémoire 4 est fourni à la première porte ET 40a, tandis que l'état inversé de la cellule de mémoire 4 est fourni à la deuxième porte ET 40b. Pour déterminer le polynôme de contre-réaction correspondant, le contenu de la cellule de mémoire 6 est fourni à la première porte ET 40a en tant que deuxième entrée, tandis que le contenu de la cellule de mémoire 7 est fourni à la deuxième porte ET 40b en tant que deuxième entrée. En outre, on peut noter que les deux portes OU 41a, 41b connectées en série pourraient être mises en oeuvre d'une autre manière. Cependant, lorsqu'il est nécessaire de disposer de certaines formes de réalisation dans lesquelles chaque porte logique a deux entrées et une sortie, l'exemple fourni à titre d'illustration sur la figure 8 est avantageux. Dans un procédé de production d'une séquence de nombres pseudo- aléatoires à partir d'un registre à décalage élémentaire utilisant un moyen 1 à action anticipée ayant une pluralité de moyens à mémoire comportant une entrée et une sortie pour fournir en sortie la séquence de nombres, et un moyen de contre-réaction ayant une caractéristique de contre-réaction variable, qui est connecté entre l'entrée et la sortie, une étape d'initialisation du moyen à mémoire que comporte le moyen à action anticipée à une valeur initiale déterminée à l'avance, sera tout d'abord exécutée. En réponse à l'état d'un moyen à mémoire de la pluralité de moyens à mémoire du moyen à action anticipée, le moyen de commande est ensuite commandé lors d'une autre étape en fonction du signal de contre-réaction. Après cela, l'état d'un moyen à mémoire connecté à la sortie du moyen 1 à action anticipée est fourni de façon à obtenir un certain nombre de 2860892 31 séquences de nombres aléatoires. Un bloc de décision est ensuite exécuté pour examiner si d'autres nombres aléatoires sont nécessaires. Si cette question a pour réponse non, le processus se termine à ce stade. Cependant, s'il est déterminé que d'autres nombres sont nécessaires, le bloc de décision reçoit une réponse "oui", cela étant suivi d'une autre étape lors de laquelle la pluralité de moyens à mémoire est à nouveau occupée sur la base d'un état précédent du moyen à mémoire et d'une sortie du moyen de contre-réaction. Les étapes de commande effectuées par le moyen de commande, de fourniture en sortie et de réoccupation, sont répétées aussi souvent que nécessaire dans une boucle afin d'obtenir finalement une séquence de nombres pseudo- aléatoires. II est à noter que ce procédé peut être mis en oeuvre en utilisant une horloge régulière ou même en utilisant une horloge irrégulière malgré le fait que la version utilisant l'horloge régulière soit de loin préférée pour améliorer la sécurité vis-à-vis d'attaques affectant la puissance ou le temps. Dans le cas du registre à décalage linéaire illustré sur la figure 7, on peut noter que la réoccupation de la pluralité de moyens à mémoire s'effectue en série, sur la base de l'état précédent du moyen à mémoire qui, considéré dans son ensemble, est décalé d'un pas vers la gauche, de sorte qu'un état du moyen à mémoire 0 "disparaît" du côté de la sortie. Cette valeur "ayant disparu" est le nombre qui sera fourni en sortie. Le moyen à mémoire numéro 7 de la figure 7 se trouvant le plus à droite peut être réoccupé par décalage vers la gauche de la totalité de l'état de tous les moyens à mémoire considérés. La pluralité de moyens à mémoire et plus particulièrement, le moyen à mémoire 7, sont donc réoccupés en conformité avec une sortie du moyen de contre-réaction à l'instant précis dans le temps. La figure 9 représente une variante de réalisation dans laquelle l'autre forme de réalisation du moyen de contre-réaction désignée par la référence numérique 14 de la figure 6 est illustrée. En particulier, le moyen de contre- réaction 14 de la figure 9 est réalisé de telle façon qu'il ne présente pas de caractéristique de contre-réaction variable mais qu'il ait une caractéristique de contre-réaction constante. Les avantages de l'invention sont obtenus en faisant en sorte qu'au moins un moyen de commande 13 et de préférence, qu'un autre moyen 60 de commande soient présents dans le moyen à action anticipée. 2860892 32 Dans le mode de réalisation représenté sur la figure 9, le moyen 13 de commande est commandé par un signal de commande qui provient directement du moyen 14 de contre-réaction. Dans le moyen à action anticipée représenté sur la figure 9, seuls deux moyens à mémoire 2 et 3 sont prévus, le premier moyen 13 de commande étant connecté entre les cellules de mémoire 2 et 3, et le deuxième moyen 60 de commande étant connecté entre la cellule de mémoire 3 et la cellule de mémoire 2 (via le moyen 14 de contre-réaction). En outre, un flux de signaux est marqué par une erreur 61 sur la figure 9, qui représente le sens des signaux se produisant dans le io moyen à action anticipée, celui-ci étant orienté de la droite vers la gauche dans le mode de réalisation illustré sur la figure 9. Un bit atteint tout d'abord le moyen à mémoire D2. Le bit mémorisé dans D2 est délivré en sortie et constitue un bit de la première séquence. Simultanément, le bit fourni en sortie par le moyen à mémoire 2 est soumis à un OU-X dans le mode de réalisation représenté sur la figure 9 avec le bit venant d'être appliqué par le moyen 14 de contre-réaction afin d'obtenir un bit de résultat qui sera ensuite cadencé en entrée dans l'élément de mémoire 3 lors du cycle suivant, à une sortie de l'opération OU-X. Par conséquent, le bit venant d'apparaître dans l'élément à mémoire 3 sera cadencé en sortie de l'élément à mémoire 3 et représentera donc un bit de la deuxième séquence de nombres pseudoaléatoires. Le bit obtenu sur la sortie de la cellule de mémoire 3 est ensuite soumis à un OU-X avec un signal de commande destiné au deuxième moyen 60 de commande, dans lequel le signal de commande est produit à partir du signal sur le moyen 14 de contre-réaction et du signal de sortie du premier moyen 13 de commande à l'aide du moyen de combinaison. Il est préférable que le moyen 62 de combinaison soit une porte logique et plus précisément, dans le mode de réalisation représenté sur la figure 9, une porte ET. La première séquence est fournie en sortie par l'intermédiaire d'une sortie 7, alors que la deuxième séquence est fournie en sortie par l'intermédiaire d'une sortie 15. Les deux séquences fournies en sortie par les sorties 7 et 15 sont réellement différentes et ne sont pas seulement déphasées l'une par rapport à l'autre. Pour simplifier la forme de réalisation de la porte OU-X 60, un autre élément de mémoire est prévu dans un autre mode de réalisation préféré en aval de la porte OU-X 60 dans la direction du flux de signaux, dans lequel, à la sortie de cet élément de mémoire, une séquence qui est seulement 2860892 33 déphasée par rapport à la première séquence sur la sortie 7, qui est cependant en principe différente de la deuxième séquence sur la sortie 15 est délivrée. La figure 10 représente un registre à décalage élémentaire à 8 bits avec des bascules DO - D7 qui sont connectées en série, le deuxième moyen 60 de commande étant en outre disposé entre les quatrième et troisième bascules, alors que le premier moyen 13 de commande est disposé entre les septième et sixième bascules. Le premier moyen 13 de commande reçoit à nouveau directement le signal de contre-réaction sur le moyen 14 de contre- 1 o réaction, alors que le deuxième moyen 60 de commande reçoit le signal de sortie de la porte ET 62 qui elle-même est d'une part alimentée par le moyen 14 de contre-réaction et d'autre part, par le signal de sortie de la cinquième cellule D5. Par analogie au mode de réalisation représenté sur la figure 9, la séquence de sortie de la quatrième cellule D4 représente la deuxième séquence de nombres pseudo-aléatoires, alors que la séquence de sortie de la septième cellule D7 représente la première séquence de nombres pseudoaléatoires. Les modes de réalisation représentés sur les figures 9 et 10 pour un registre à décalage élémentaire diffèrent en raison du fait que deux cellules de registres supplémentaires D5 et D6 sont connectées entre les deux moyens de commande et que des cellules de mémoire DO à D3 sont en outre formées à la sortie du moyen 60 de commande OU-X, de sorte qu'un registre à décalage à 8 bits est réalisé. Dans un mode de réalisation, une séquence de nombres pseudo-aléatoires est extraite à la sortie de chaque cellule de mémoire D0-D7 et est appliquée à un moyen de combinaison pour obtenir un générateur de nombres pseudo-aléatoires particulièrement efficace. En particulier, les deux séquences fournies en sortie par les cellules D4 et D5 sont des versions décalées de la séquence fournie en sortie par la cellule D6. En outre, les quatre séquences fournies en sortie par les cellules D2, Dl, DO et D7 sont des versions décalées de la séquence fournie en sortie par la cellule D3. Par conséquent, chaque séquence des cellules D7, DO, Dl, D2, D3 est fondamentalement différente d'une séquence constituée des cellules D4, D5 et D6. Il est à noter que l'état initial dans lequel est initialisé le registre à 35 décalage, c'est-à-dire le germe expliqué en référence à la figure 7, dans l'élément 55, est conçu de telle façon qu'il contienne au moins une valeur 2860892 34 correspondant à l'élément de mémoire qui n'est pas égale à zéro pour que le registre à décalage puisse en quelque sorte "démarrer" et ne pas fournir des séquences constituées de huit zéros sur les huit sorties. Lorsque cette condition est respectée, la totalité des huit séquences a alors une périodicité maximale, c'est-à-dire qu'elle a une longueur de période de 255. En outre, chacune des huit séquences fournies en sortie dans le mode de réalisation représenté sur la figure 10 présente une complexité linéaire maximale de 254. De plus, comme cela a déjà été expliqué, les deux séquences fournies en sortie par les cellules D3 et D6 sont sensiblement différentes. Comme le montre également la figure 10, la cellule de mémoire D5 est ici la cellule de commande. Si la cellule D5 contient un 0, l'effet du moyen 60 de commande entre les cellules D3 et D4 est éliminé. Seul le OU-X entre les cellules D6 et D7 devra alors être appliqué. Cependant, si la cellule D5 contient un 1, les deux moyens OU-X 13 et 60 sont utilisés. La figure 11 représente un registre à décalage à contre-réaction général comportant des cellules de mémoire Do, ..., Dn-1 avec des moyens à action anticipée et des moyens à contre-réaction qui sont désignés par F(xo, x1, ., xn-1)É Un registre à décalage à contre-réaction à n étages général (ou à n cellules) sur l'élément de base GF(2) = {0,1} est pris comme hypothèse dans le cas présent. Le registre à décalage comporte n cellules de mémoire (bascules) Do, D1, ..., Dn_1 et la réalisation (électronique) d'une fonction de contre-réaction F(xo, x1, ..., xn_1). La fonction de contre-réaction associe une valeur non ambiguë provenant de GF(2) qui est une valeur de 0 ou de 1, à chaque n-uplet à n bits. En terminologie mathématique, F est une fonction ayant un domaine de définition de GF(2)n et un domaine cible de GF(2)...DTD: Le registre à décalage est commandé par une horloge externe. Le contenu de la cellule de mémoire Di est décalé vers la gauche au voisinage de la cellule Di_1 lors de chaque impulsion d'horloge, avec 1 j n-1. Le contenu de la cellule de mémoire Do est fourni en sortie. Si les contenus des cellules de mémoire Do, D1, ..., Dn_2, Dn_1 à l'instant t sont donnés par: St, St+1, ..., St+n-2, St+n-1 les cellules de mémoire, une impulsion d'horloge plus tard, c'est-à-dire à un instant t+1, contiendront les bits: 2860892 35 St+1, St+2, ..., St+n-1, St+n, où la valeur St+n atteignant la cellule Dn_1 est donnée par: St+n = F(st, St+1, ..., St+n-1) É Le n-uplet (st, St+1, ..., st+n-1) décrit l'état du registre à décalage à un instant t. Le n-uplet (5o, s1, ..., sn_1) est appelé état initial. L'abréviation FSR(F) est utilisée pour désigner le registre à décalage à contre-réaction général ayant une fonction decontre-réaction F (l'abréviation FSR désigne un registre à décalage à contre-réaction). La figure 12 représente un registre à décalage à contre-réaction général. Le registre à décalage fournit en sortie un bit lors de chaque impulsion d'horloge de l'horloge externe. Ainsi, le registre à décalage peut produire une séquence de bits périodique so, si, s2, c'est-à-dire une séquence dite de registre à décalage. Les éléments so, si, ..., 5n_1 doivent être considérés comme étant des valeurs initiales de la séquence de registre à décalage. La fonction de contre-réaction F(xo, x1, ..., xn_1) et les valeurs initiales so, si, ..., Sn_1 déterminent entièrement la séquence du registre à décalage. Comme il n'y a que 2" états différents pour le registre à décalage, la longueur de période de la séquence de registre à décalage so, s1, s2, ..., est au plus de 2". Le registre à décalage à contre-réaction général FSR(F) est dit homogène si sa fonction de contre-réaction F est homogène, c'est-à-dire si F(0, 0, ., 0) = O. Un registre à décalage homogène mis dans l'état initial so = si = ... = sn_1 = 0 produit la séquence O. II s'ensuit que la longueur de période de la séquence de sortie d'un registre à décalage homogène à n étages peut au plus être de 2n-1. Lorsque la longueur de période a une valeur maximum de 2"-1, la séquence de registre à décalage est appelée une séquence M et le registre à décalage atteint un maximum. Il est important de pouvoir trouver des registres à décalage maximaux...DTD: Deux cas spéciaux du registre à décalage à contre-réaction général FSR(F) revêtent un intérêt particulier. Dans un cas, la fonction de contre- réaction F présente la forme suivante: F(xo, X1, ..., Xn 1) = aijxixj 0 L'autre cas spécial est observé lorsque la fonction de contre-réaction F est linéaire. Dans ce cas, F présente la forme suivante: F(xo,x1,...,xn_1) =a0x0+a1x1+...+anlxn1, où les coefficients a; qui apparaissent sont ici encore égaux à 0 ou 1, c'est-à-dire qu'ils sont des éléments de GF(2). Dans ce cas, ce registre est appelé registre à décalage linéaire ou à contre-réaction linéaire et l'abréviation LFSR (registre à décalage à contre-réaction linéaire) est utilisée pour le désigner. II est à noter que les registres qu'ils soient à contre- réaction linéaire ou à contre-réaction quadratique sont homogènes. Un registre à décalage à contre-réaction linéaire à n étages est généralement caractérisé par un polynôme f(x) binaire de degré n dépendant d'une variable x. Ce polynôme f est appelé polynôme caractéristique du registre à décalage à contre-réaction linéaire. Le registre à décalage est alors désigné par LFSR(f). La fonction de contre-réaction F(xo, x1, ..., xn_1) d'un registre à décalage à contre-réaction linéaire est un polynôme dépendant de n variables xo, x1, ..., xn_1 et de degré 1. En revanche, le polynôme caractéristique f(x) de ce même registre à décalage linéaire est un polynôme d'une seule variable, à savoir la variable x, mais de degré n. L'expression suivante peut être écrite: f(x) = xn + F(1, x, x2, ..., xn-1) . La non-linéarité de la fonction de contre-réaction peut donc être mise en oeuvre par des conceptions relativement quelconques de la fonction de contre-réaction F. A cet effet, il suffirait en principe de multiplier les signaux de sortie de deux cellules de mémoire D; et D;+1, alors qu'un registre à décalage quadratique peut donner ce résultat. II est clair que plus de deux sorties de cellules de mémoire peuvent être multipliées l'une par l'autre ou 2860892 37 être soumises à une certaine fonction non linéaire. En principe, une contre-réaction avec un seul signal de sortie d'une mémoire unique pourrait cependant également être appliquée par exemple par le fait de n'appliquer que le signal de sortie de la cellule de mémoire Do, de l'appliquer à la fonction F(xo), et de fournir le signal de sortie de cette fonction, par exemple à l'entrée de la cellule de mémoire Dn_1. Cette fonction non linéaire à une seule valeur pourrait par exemple être une inversion, c'est-à-dire une fonction logique NON. Cependant, la fonction non linéaire pourrait également être une autre fonction quelconque, comme par exemple une fonction d'association non linéaire ou une fonction cryptographique. Selon les circonstances, le procédé de l'invention destiné à produire des nombres pseudo-aléatoires et le procédé de chiffrement et de déchiffrement peuvent être mis en oeuvre soit sous forme matérielle, soit sous forme logicielle. La forme de réalisation peut être stockée sur un support de stockage numérique, comme par exemple une disquette souple ou un CD avec des signaux de commande qui peuvent être lus électroniquement et qui peuvent coopérer avec un système informatique programmable afin que le procédé correspondant soit exécuté. En général, l'invention comprend également un produit à base de programme informatique ayant un code de programme stocké sur un support lisible par ordinateur pour mettre en oeuvre le procédé de l'invention lorsque le produit à base de programme informatique s'exécute sur un ordinateur. En d'autres termes, l'invention peut donc être réalisée sous la forme d'un programme informatique ayant un code de programme destiné à mettre en oeuvre le procédé lorsque le programme informatique s'exécute sur un ordinateur. 2860892 38 REVENDICATIONS 1. Générateur de nombres pseudo-aléatoires caractérisé en ce qu'il comprend: des moyens (100) pour fournir un nombre de 2n séquences de nombres, n étant supérieur ou égal à 2; des moyens (102) pour combiner les séquences de nombres afin d'obtenir une séquence de sortie, les moyens (102) de combinaison comprenant: un étage de traitement intermédiaire (102a) pour combiner les 10 séquences de nombres afin de produire une séquence (104) de traitement intermédiaire; et un étage (102b) de traitement final pour combiner un sous-groupe (106a, 106b) de k séquences des séquences de nombres à la séquence (104) de traitement intermédiaire pour obtenir la séquence de sortie, k étant supérieur ou égal à 1 et inférieur à n. 2. Générateur de nombres pseudo-aléatoires suivant la revendication 1, caractérisé en ce que l'étage (102b) de traitement final comprend un additionneur (126). 3. Générateur de nombres pseudo-aléatoires suivant la revendication 2, caractérisé en ce que les séquences de nombres sont des séquences binaires et l'additionneur est conçu sous la forme d'une porte OU-X (126). 4. Générateur de nombres pseudo-aléatoires suivant l'une des revendications précédentes, caractérisé en ce que l'étage (102a) de traitement intermédiaire comprend des premiers moyens (120a) de combinaison pour combiner un premier groupe de n séquences de nombres afin d'obtenir une première séquence de groupe de nombres, dans lequel l'étage de traitement intermédiaire comprend un deuxième moyen (122b) de combinaison pour combiner un deuxième groupe de n séquences de groupe de nombres afin d'obtenir une deuxième séquence de groupe de nombres, et dans lequel l'étage de traitement intermédiaire comprend en outre un troisième moyen (124) de combinaison pour combiner la première séquence de groupe à la deuxième séquence de groupe de nombres afin d'obtenir la séquence de traitement intermédiaire. 2860892 39 5. Générateur de nombres pseudo-aléatoires suivant la revendication 4, caractérisé en ce que le premier moyen (120a) de traitement intermédiaire et le deuxième moyen (120b) de traitement intermédiaire utilisent la même règle de combinaison, cette règle de combinaison étant différente d'une règle de combinaison exécutable par le troisième moyen (124) de combinaison. 6. Générateur de nombres pseudo-aléatoires suivant la revendication 4 ou 5, caractérisé en ce que le premier moyen de combinaison comprend un additionneur, le deuxième moyen (120b) de combinaison comprend un additionneur et le troisième moyen (124) de combinaison comprend un multiplieur. 7. Générateur de nombres pseudo-aléatoires suivant la revendication 6, caractérisé en ce que les séquences de nombres sont des séquences binaires, caractérisé en ce que le premier moyen (120a) de combinaison comprend une porte OU-X, le deuxième moyen (120b) de combinaison comprend également une porte OU-X, et le troisième moyen (124) de combinaison comprend une porte ET. 8. Générateur de nombres pseudo-aléatoires suivant l'une des revendication précédentes, caractérisé en ce que l'étage de traitement intermédiaire comprend exactement un additionneur (120a) pour additionner n séquences de nombres, exactement un additionneur (120b) pour additionner n séquences de nombres restantes et exactement un multiplieur (124) pour multiplier des résultats des premier et deuxième additionneurs, et dans lequel l'étage (102b) de traitement final comprend exactement un additionneur (126) pour additionner la séquence de traitement intermédiaire à un premier sous-groupe (106a) de k séquences de nombres et à un deuxième sous-groupe (106b) de k séquences de nombres différentes. 9. Générateur de nombres pseudo-aléatoires suivant l'une des 30 revendication précédentes, caractérisé en ce que le moyen (100) de fourniture comprend un registre à décalage (100a, 100b, 1000, 100d) élémentaire à contre-réaction individuel pour chaque séquence de nombres. 10. Générateur de nombres pseudo-aléatoires suivant la 35 revendication 9, caractérisé en ce que au moins l'un des registres à décalage 2860892 40 élémentaires à contre-réaction est un registre à décalage ayant une caractéristique de contre-réaction non linéaire. 11. Générateur de nombres pseudo-aléatoires suivant l'une des revendication précédentes, caractérisé en ce que un registre à décalage (101, 102, 103) élémentaire comprend: une pluralité de cellules de mémoire (Do, DI, D2) connectées en série, dans lequel la sortie du registre à décalage élémentaire est reliée à une sortie d'une cellule de mémoire, un moyen de contre-réaction ayant une entrée de contre-réaction et io une sortie de contre-réaction, dans lequel l'entrée de contre- réaction est connectée à une sortie d'une cellule de mémoire, et dans lequel le moyen de contre-réaction est formé de façon à combiner les uns aux autres de manière non linéaire des signaux aux sorties d'au moins deux cellules de mémoire. 12. Générateur de nombres pseudo-aléatoires suivant l'une des revendications 9, 10, et 11, caractérisé en ce que chaque registre à décalage à contre-réaction comprend un certain nombre de cellules de mémoire, dans lequel les nombres de cellules de mémoire des registres à décalage élémentaires diffèrent les uns des autres. 13. Générateur de nombres pseudo-aléatoires suivant l'une des revendications 9 à 12, caractérisé en ce que chaque registre à décalage à contre-réaction comprend un certain nombre de cellules de mémoire, et le nombre de cellules de mémoire des registres à décalage, pris par paires, n'ont pas de diviseur commun. 14. Générateur de nombres pseudo-aléatoires suivant l'une des revendications 9 à 13, caractérisé en ce que chaque registre à décalage à contre-réaction comprend un certain nombre de cellules de mémoire, et les registres à décalage élémentaires sont conçus de façon que le plus grand diviseur commun des nombres de cellules de mémoire parmi tous les registres à décalage soit égal à 1. 15. Générateur de nombres pseudo-aléatoires suivant l'une des revendications précédentes, caractérisé en ce que le moyen (100) de fourniture est réalisé de façon à produire 2n séquences de nombres de façon à ce qu'elles aient une périodicité maximale. 16. Générateur de nombres pseudo-aléatoires suivant l'une des revendications précédentes, caractérisé en ce que le moyen (100) de 2860892 41 fourniture est réalisé de façon à produire les 2n séquences de nombres de façon à ce qu'elles aient une complexité linéaire qui est égale à la complexité linéaire maximale ou qui est inférieure à la complexité maximale d'au plus une quantité déterminée à l'avance. 17. Générateur de nombres pseudo-aléatoires suivant la revendication 16, caractérisé en ce que la quantité prédéterminée est de 75 % de la complexité linéaire maximale. 18. Générateur de nombres pseudo-aléatoires suivant l'une des revendications précédentes, caractérisé en ce que le moyen (102) de combinaison est réalisé de façon à ne comporter que des portes qui sont sélectionnées dans le groupe suivant: des portes ET, des portes NON-ET, des portes OU, des portes NON-OU, des portes OU-X, des portes NON-OU-X. 19. Procédé de fourniture de nombres pseudo-aléatoires, caractérisé en ce qu'il comprend: la fourniture (100) d'un nombre de 2n séquences de nombres, n étant supérieur ou égal à 2; et la combinaison des séquences de nombres afin d'obtenir une séquence de sortie, dans lequel les séquences de nombres sont tout d'abord combinées lors d'une étape de traitement intermédiaire pour obtenir une séquence de traitement intermédiaire, et la séquence de traitement intermédiaire est ensuite combinée à un sous-groupe de k séquences des séquences de nombres lors d'une étape de traitement finale afin d'obtenir la séquence de sortie, k étant supérieur ou égal à 1 et inférieur à n. 20. Dispositif de chiffrement ou de déchiffrement caractérisé en ce qu'il comprend: un moyen (132) pour fournir une séquence de texte brute devant être chiffrée ou une séquence de texte secrète devant être déchiffrée; un générateur (130) de nombres pseudo-aléatoires suivant l'une des revendications 1 à 17 pour fournir une séquence de sortie; et un moyen (134) pour lier la séquence de texte brute à la séquence de sortie ou pour lier la séquence de texte secrète à la séquence de sortie afin d'obtenir une séquence chiffrée ou une séquence déchiffrée. 21. Dispositif suivant la revendication 20, caractérisé en ce que la 35 séquence de texte brute ou la séquence de texte secrète comprend des segments de séquences, 2860892 42 la séquence de sortie comprend des segments de sortie, et le moyen (134) de liaison est réalisé de façon à exécuter la liaison segment par segment. 22. Dispositif suivant la revendication 19 ou 20, caractérisé en ce que s le générateur de nombres pseudo-aléatoires peut être initialisé à une valeur initiale par un germe (110), le germe représentant un secret de chiffrement. 23. Procédé de chiffrement ou de déchiffrement, caractérisé en ce qu'il comprend: la fourniture (132) d'une séquence de texte brute devant être chiffrée lo ou d'une séquence de texte secrète devant être déchiffrée; la fourniture d'une séquence de sortie pseudo-aléatoire suivant le procédé de la revendication 18; et la liaison (134) entre la séquence de texte brute et la séquence de sortie ou entre la séquence de texte secrète et la séquence de sortie afin 15 d'obtenir une séquence chiffrée ou une séquence déchiffrée. 24. Programme informatique contenant un code de programme destiné à mettre en oeuvre le procédé suivant la revendication 18 ou suivant la revendication 23 lorsque le programme s'exécute sur un ordinateur