FR 2747488 A1 19971017 FR 9604616 A 19960412 DisDositif d'authentification d'un fichier de données L'invention concerne le domaine de la certification, ou authentification, de fichiers de données. Dans certains domaines, il est indispensable de certifier des documents afin que leurs contenus ne puissent être contestés. Lorsque le support du document est du papier, il est particulièrement facile d'apposer une signature sur chacune des pages dudit document, et de le compléter, éventuellement, par un marquage physique approprié comme par exemple un poinçonnage. Cependant, ce type de certification peut être reproduit par une personne mal intentionnée désirant modifier le contenu d'une partie au moins du document concerné. Par ailleurs, l'archivage des documents certifiés sur un support papier requiert un volume de rangement important et rend difficile leur manipulation. Enfin, la réalisation d'une copie certifiée conforme d'un document original certifié, ou d'un extrait de celui-ci, nécessite de nombreuses opérations qui en augmentent le prix et le délai d'obtention. Grâce aux développements récents de l'électronique, et plus précisément de l'électronique informatique, il est désormais possible de mémoriser les données d'un document dans une mémoire de type résidente (disque dur) ou amovible (disquette de type 3 1/2 pouces ou 5 1/4 pouces). Cependant, s'il est possible de mémoriser les informations d'un document sur un support de type mémoire, en revanche, il n'est pas possible de mémoriser un marquage physique, comme par exemple un poinçon ou un tampon en relief. En d'autres termes, il est possible pour une personne mal intentionnée de modifier, sans que l'on puisse s'en apercevoir, les données mémorisées d'un document, puis de détruire l'original. Pour remédier à cet inconvénient majeur, l'homme de l'art a développé des algorithmes complexes, comme par exemple celui de Bosset. Ces algorithmes sont détaillés notamment dans les ouvrages suivants - B.Schneier, Applied Cryptography, 1996, John Wiley & Sons, et - J.Bosset, "Contre les risques d'altération, un système de certification des informations", 01 Informatique de février 1977. L'algorithme de Bosset fonctionne sur le principe de la non commutativité des produits de matrices, qui permet d'effectuer une transformation des bits de données, d'un fichier stocké dans une mémoire source, qui ne peut être que difficilement inversée. Knuth a par ailleurs développé une méthode visant à améliorer la qualité d'un générateur de code pseudo-aléatoire. Cette méthode consiste à implanter des mots dans une mémoire source, et à chaque fois que l'on tire de façon aléatoire un bit de la mémoire, on le remplace par son transformé qui est calculé par de nombreuses opérations. Cette méthode est détaillée dans les ouvrages suivants - D.E.Knuth, "The art of computer programming", vol. 2, p.3233, 1981, Addison-Wesley, et - Carter Bays et S.D.Durham, ACM Trans. Math. Software, chapitre 2, p.59-64, 1976. On a, par ailleurs, développé des algorithmes dérivés de la technique dite du "sac à dos", consistant à additionner des entiers prédéterminés appelés "incréments", tirés pseudoaléatoirement d'une mémoire d'incréments, dans des registres d'une mémoire appelée "sac à dos". Ces algorithmes nécessitent, en outre, une mémoire source dont le contenu prédéterminé et fixe, sert à placer, à chaque traitement d'un fichier, une clé secrète destinée à paramétrer la fonction de cryptage. Les bits de données du fichier ne sont pas traités en continu, mais par blocs, ce qui autorise plusieurs combinaisons possibles pour un même résultat final. Malgré la complexité des opérations de traitement effectuées, il est toujours possible de décrypter le fichier et d'accéder à la clé secrète. Dans ces conditions, il devient possible de modifier les données puis de les crypter de nouveau. Par ailleurs, quelle que soit l'efficacité d'un algorithme de cryptographie, celui-ci ne fournit qu'un transformé crypté du fichier original, et non pas une signature de ce dernier. L'un des buts de la présente invention est de proposer des dispositifs qui permettent tous, sans exception, de produire par un traitement en continu une et une seule signature (ou une séquence d'authentification) pour un fichier donné, et non pas une cryptographie de ce dernier. Un autre but de l'invention est de proposer un dispositif d'authentification, simple, qui assure que toute modification, même d'un unique bit d'un fichier de données, aboutit à une signature (ou séquence d'authentification) totalement différente de la signature du fichier avant modification. Encore un autre but de l'invention est d'assurer qu'étant donné une séquence d'authentification donnée, il est humainement impossible de trouver un fichier de données dont l'encodage donne précisément la séquence d'authentification en question. L'invention propose à cet effet un dispositif d'authentification d'un fichier de données, du type comprenant une entrée pour recevoir les données du fichier à traiter, une mémoire tampon pour recueillir de façon temporaire les données du fichier, un module pseudo-aléatoire, muni d'une mémoire de travail dont trois segments sont accessibles, et des moyens de traitement, agencés pour coopérer avec le module pseudoaléatoire afin d'authentifier le fichier. Selon une caractéristique principale de l'invention, le dispositif comporte - une mémoire dite source, du type mémoire vive, et propre à stocker des mots accompagnés chacun d'un état d'extraction, - une mémoire tampon agencée pour arranger les données du fichier dans ses espaces libres, sous forme de blocs, et - des moyens de traitement comprenant * un moyen pour initialiser le module pseudo-aléatoire, * un moyen de transfert, propre à placer dans le second segment, le transformé, par une première transformation, d'un mot extrait de la mémoire source à une adresse tirée du premier segment, et enfin à placer dans l'emplacement ainsi libéré de la mémoire source le transformé par une seconde transformation du troisième segment et d'un opérande qui est soit un bloc de données stocké dans la mémoire tampon à une adresse prédéterminée, soit, sil n'y en a plus, le mot extrait de la mémoire source, dont l'état d'extraction est lors modifié, * une logique de cycle pour actionner le module pseudoaléatoire, puis faire travailler ce moyen de transfert jusqu'à ce que tous les mots de la mémoire source aient été extraits une fois et une seule, et * un générateur de séquence d'authentification, propre à actionner le module pseudo-aléatoire, et extraire un bit d'aléa de l'un des premier et second segments à une adresse tirée du troisième segment, répétitivement jusqu'à obtenir un nombre choisi de bits d'aléa formant séquence d'authentification du fichier. De la sorte, sans qu'il soit nécessaire de faire appel à un algorithme de chiffrement, ou de cryptographie, très complexe, on utilise une fonction dont le calcul de l'inverse prendrait un temps astronomique, ou nécessiterait l'utilisation de moyens de calcul très importants, et par conséquent dissuasifs, et qui fournit une signature unique pour un fichier donné, par traitement continu et dans leur ordre d'arrivée des données qu'il contient. La mémoire source sert désormais à stocker les octets (ou bits de données) du fichier à traiter une fois lus dans la mémoire tampon. Ces octets ainsi mémorisés sont ensuite extraits de la mémoire source, les uns après les autres, dans un ordre aléatoire. Toute modification d'au moins un bit du fichier, ou toute inversion d'octets aboutit inéluctablement à une signature totalement différente de la signature originelle. Cette signature est obtenue par l'application de trois phases, une première phase d'implantation de blocs de données du fichier dans la mémoire source, après transformation desdits blocs, une seconde phase de traitement en continu de chaque bloc transformé et implanté dans la mémoire source, et une troisième phase de génération d'une signature à partir des blocs transformés, implantés et traités. Selon une autre caractéristique de l'invention, les moyens de traitement sont agencés pour ordonner au moyen d'initialisation, l'initialisation du module pseudo-aléatoire et de la mémoire source à réception d'une information de début de fichier à traiter, et le module pseudo-aléatoire est agencé pour désigner, après ladite initialisation, une zone parmi une pluralité de zones que comprend l'un au moins des premier et second segments. De préférence, cette zone est toujours la même. Ce peut être par exemple la première. Ainsi, dès réception d'un signal de début de fichier, la génération de la certification du fichier peut débuter. Avantageusement, le module pseudo-aléatoire est agencé pour incrémenter d'une unité, modulo le nombre total de zones de chaque premier et/ou second segment(s), le numéro de la zone désignée en cours, après chaque extraction d'un mot de la mémoire source puis placement dans cette mémoire source d'un transformé d'un mot ou d'un bloc ayant subit une première et/ou une seconde transformation(s). Cela permet de faire évoluer petit à petit les contenus respectifs des zones des premier et second segments. Selon encore une autre caractéristique de l'invention, le dispositif comprend une mémoire morte dite d'incréments, formant table pour P incréments entiers prédéterminés. Ces incréments sont extraits de la mémoire d'incréments à des adresses tirées, de façon pseudo-aléatoire, des contenus des segments, afin de réaliser les premières et secondes transformations. Préférentiellement, le module de transfert est agencé pour effectuer une quatrième opération de type permutation circulaire, d'au moins un bit, sur une partie au moins des bits du troisième segment de la mémoire de travail, après chaque première transformation, le résultat de cette permutation constituant le nouveau contenu dudit troisième segment. L'évolution pseudo-aléatoire du troisième segment est ainsi renforcée. On peut également renforcer le caractère pseudo-aléatoire de l'évolution du premier segment. Pour ce faire, l'invention prévoit qu'après un nombre choisi de placements dans la mémoire source de transformés de mots et/ou de blocs, les moyens de traitement effectuent une permutation circulaire, d'au moins un bit, sur une partie au moins des bits du premier segment, le résultat de cette permutation constituant le nouveau contenu dudit premier segment. De même, il est préférable que le générateur de séquence d'authentification soit agencé pour actionner le module pseudo-aléatoire, puis faire travailler au moins partiellement le moyen de transfert de sorte que chaque bit soit extrait du segment concerné après placement, dans le second segment, du transformé, par la première transformation, du mot extrait de la mémoire source à l'adresse tirée du premier segment. De la sorte, les trois phases présentent une structure sensiblement identique, à l'exception d'une étape qui les caractérise, ce qui permet une simplification du mode de réalisation du dispositif. Dans un mode de réalisation préférentiel, d'une première part, la mémoire tampon est du type registre à décalage dans lequel les blocs de données sont empilés, selon leur ordre d'arrivée, les uns au dessous des autres dans les espaces libres compris entre un premier espace et un dernier espace, d'une seconde part, le moyen de transfert est agencé pour extraire le bloc qui se trouve dans le premier espace, et d'une troisième part, la mémoire tampon est agencée pour provoquer, après chaque extraction du bloc stocké dans le premier espace, le décalage d'une position de l'ensemble des blocs situés après le premier espace de sorte que le bloc qui se trouvait dans le second espace se retrouve stocké dans le premier espace. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels - la figure 1 est un schéma illustrant un dispositif d'authentification selon l'invention; - la figure 2 schématise l'organisation des mémoires et registres du dispositif, selon l'invention, dans un mode de réalisation particulier; - les figures 3A et 3B illustrent un algorithme général qui regroupe l'ensemble des trois phases effectuées par le dispositif illustré sur les figures 1 et 2, la séparation en deux figures ayant été effectuée pour des raisons de place; - la figure 4 illustre la seule phase 1 de l'algorithme général des figures 3A et 3B; - la figure 5 illustre la seule phase 2 de l'algorithme général des figures 3A et 3B; et - la figure 6 illustre la seule phase 3 de l'algorithme général des figures 3A et 3B. Les dessins annexés sont, pour l'essentiel, de caractère certain. En conséquence, ils pourront non seulement servir à compléter la description, mais aussi contribuer à la définition de l'invention, le cas échéant. On se réfère tout d'abord à la figure 1 pour décrire un dispositif d'authentification selon l'invention dans un mode de réalisation préférentiel, mais non limitatif. Dans ce qui suit, on considère que le dispositif est réalisé sous forme d'un composant électronique, de type tout intégré, par exemple en technologie silicium, que l'on peut installer notamment dans un micro-ordinateur. Le dispositif 1 selon l'invention comprend une entrée/sortie 2 propre à être connectée, par exemple, à un micro-ordinateur (non représenté) capable de lui adresser un fichier de données en vue de la certification de celui-ci. Bien entendu, un tel dispositif d'authentification peut comprendre ses propres moyens de lecture de fichier de données. L'entrée/sortie 2 du dispositif 1 est connectée à une mémoire tampon 3 propre à accueillir les données du fichier, dans leur ordre d'arrivée, puis à les mémoriser sous forme d'octets. Préférentiellement, cette mémoire tampon est de type FIFO. Elle permet ainsi de générer une file d'attente entre deux procédés asynchrones, l'un étant un procédé dit "producteur" qui fournit des données d'un fichier à traiter, l'autre étant un procédé dit "consommateur" qui traite les données stockées dans la file d'attente. A mesure que les données du fichier arrivent, celles-ci sont découpées en blocs de bits, par exemple 8 bits (un octet) accompagnés d'un bit d'état de fin de fichier qui est dans un premier état, par exemple "1", lorsque le bloc est le dernier du fichier, et dans un second état, par exemple "0" dans le cas contraire. Le procédé consommateur extrait, au cours d'une première boucle, le bloc qui se trouve en tête du FIFO, et qui par conséquent comprend les premières données du fichier. Puis, le bloc qui se trouvait en seconde position avance d'un cran pour prendre la première position en vue de son extraction lors de la boucle suivante. Chaque bloc est ainsi décalé d'un cran à chaque extraction. Par ailleurs, dans le but de permettre aux deux procédés de fonctionner selon des rythmes différents, le FIFO comprend un bit d'état de remplissage qui est décorrélé du bit d'état de fin de fichier. Ce bit d'état de remplissage(ou signal de synchronisation) peut être lu par le procédé producteur qui peut ralentir son rythme d'envoi des données du fichier lorsque le FIFO est plein (cas où le procédé consommateur est plus lent que le procédé producteur), ou bien accélérer son rythme d'envoi des données du fichier lorsque le FIFO n'est pas plein (cas où le procédé consommateur est plus rapide que le procédé producteur). La mémoire tampon 3 est connectée à un module pseudo-aléatoire 4 destiné à effectuer un traitement de type pseudoaléatoire sur le contenu d'une mémoire de travail MT décomposable en trois segments au moins, pas nécessairement contigus, en utilisant une mémoire d'incréments MI dans laquelle se trouve mémorisée une table de 256 incréments entiers, par exemple. Dans l'exemple illustré, cette mémoire de travail MT comprend un premier registre SS, un second registre RI, et un accumulateur d'incréments AI destiné à effectuer des sommes partielles portant notamment sur des incréments de la mémoire d'incréments MI. Le module pseudo-aléatoire 4 est connecté à un module de traitement 5, propre à le commander, ainsi qu'à une mémoire source MS de type mémoire vive destinée à mémoriser les octets du fichier après transformation de ceux-ci par l'intermédiaire du module pseudo-aléatoire 4. Le module de traitement 5 comprend un module d'initialisation 6 du module pseudo-aléatoire 4 et de la mémoire source MS, et un module de transfert 7 destiné notamment à extraire les blocs de données de FIFO 3 pour les implanter, après traitement, tout d'abord dans la mémoire source MS puis dans le second registre RI. I1 comprend en outre une logique de cycle 8 pour actionner de façon répétitive le module pseudoaléatoire 4, ainsi qu'un générateur de séquence d'authentification 9 agencé pour, notamment, actionner le module pseudoaléatoire 4 afin de fabriquer une séquence de bits d'aléa formant signature unique du fichier à traiter. Le fonctionnement général d'un tel dispositif est donné ciaprès. Lorsque de premières données d'un fichier arrivent au niveau de l'entrée/sortie 2, le module de traitement 5 déclenche l'initialisation du module pseudo-aléatoire 4 grâce à son module d'initialisation 6, puis il déclenche trois phases - une première phase dite "d'implantation" au cours de laquelle les données du fichier sont mémorisées sous forme de blocs dans le FIFO 3, dans leur ordre d'arrivée, et dans le même temps le module de transfert 7 extrait de FIFO 3 les blocs, les uns après les autres et toujours dans leur ordre d'arrivée, pour les implanter dans un premier temps dans la mémoire source MS après une transformation (appelée par commodité seconde transformation), et commencer leur extraction pseudo-aléatoire en vue de leur implantation dans le second registre RI, après une autre transformation (appelée par commodité première transformation). Cette phase 1 dure tant qu'il reste, dans le FIFO 3, des blocs de données à implanter dans la mémoire source MS, c'est à dire, tant que le module de transfert 7 ne détecte pas un bit d'état de fin de fichier à "1" accompagnant un bloc de données stocké dans le FIFO 3; - une seconde phase dite de "parcours exhaustif" dans laquelle le module de transfert 7 extrait une et une seule fois, de façon pseudo-aléatoire, chacun des blocs de données implantés dans la mémoire source MS (appelés désormais mots) et qui n'ont subit que la seconde transformation, pour les implanter dans le second registre RI après leur avoir fait subir la première transformation; - une troisième phase dite "d'élaboration de la séquence d'authentification" dans laquelle on élabore les 160 bits d'aléa constituant la séquence d'authentification formant signature du fichier à traiter. Bien entendu, le nombre de bits d'aléa formant la séquence peut être plus petit ou plus grand que 160. Cette séquence d'authentification, est envoyée, par le module de traitement 5, à l'entrée/sortie 2 qui l'adresse ensuite à l'élément concerné, par exemple le micro-ordinateur en vue d'une fusion entre les données du fichier et la séquence d'authentification. Bien entendu, dans un dispositif tout intégré, la fusion du fichier et de sa signature peut être effectuée par les moyens de traitement, lesquels peuvent comprendre à cet effet une mémoire additionnelle destinée à stocker l'ensemble des données du fichier lorsque celles-ci sont extraites du FIFO 3 pour être implantées dans la mémoire source MS pendant la phase 1. On se réfère maintenant à la figure 2 pour décrire plus en détail un mode de réalisation, non limitatif, des mémoires et registres du dispositif selon l'invention. La mémoire tampon ou FIFO 3, de type mémoire vive, est, par exemple, capable d'accueillir 512 blocs de bits de données, de par exemple 9 bits (8 bits de données du fichier et le bit d'état de fin de fichier). Le premier bloc est stocké dans un premier espace (ou case) B1, le second bloc est mémorisé dans un second espace B2, etc, et le bloc 512 est mémorisé dans un dernier (512ième) espace B512. Bien entendu, on peut envisager que le FIFO 3 stocke les données sous forme de blocs de taille différente de 9 bits, par exemple 18 bits (deux octets de données plus deux bits d'état). La mémoire d'incréments MI comprend, par exemple, 256 incréments entiers I1 à I256, chaque incrément occupant 16 bits. Cette mémoire d'incréments est de type mémoire morte (ROM) et forme une table de 4096 bits dans cet exemple. Chaque incrément de la table MI peut être désigné par une valeur de 8 bits. Dans l'exemple décrit, la mémoire de travail MT comprend trois segments indépendants : deux registres SS et RI, et un accumulateur d'incréments AI. L'accumulateur d'incréments AI (ou troisième segment) est une mémoire d'accumulation de, par exemple, 32 bits. Il permet d'effectuer des opérations modulo 232. AI peut être divisé en quatre parties dont une première partie AIFT comprenant les bits 0 à 7, une seconde partie AIFL comprenant les bits 24 à 31, et une troisième partie AIA comprenant les bits 21 à 23. Par convention pour chacune des mémoires, on considère que le bit dont le numéro est le plus petit, par exemple 0, est le bit de poids le plus fort, tandis que le bit dont le numéro est le plus grand, par exemple 31, est le bit de poids le plus faible. En conséquence, dans cet exemple de réalisation, la première partie AIFT comporte les bits de poids fort tandis que la seconde partie AIFL comporte les bits de poids faible. Le premier registre SS est une mémoire vive subdivisée en dix zones i (i=0 à 9), chaque zone pouvant mémoriser 16 bits et pouvant être adressée respectivement par un nombre de 8 bits. Le second registre RI est une mémoire vive également subdivisée en dix zones i Bien entendu, les premier et second registres SS et RI peuvent ne constituer qu'un unique registre subdivisé en deux parties, chaque partie comprenant dix zones. La mémoire source MS est une mémoire de type mémoire vive, capable, par exemple, de mémoriser 512 blocs M1 à M512 de 9 bits chacun et pouvant être adressés par un nombre de 9 bits. Parmi ces 9 bits, 8 sont des bits de données, tandis que le neuvième bit est un bit d'état qui permet de savoir si le mot auquel il est associé a déjà été extrait, ou non, de la mémoire source. Il est clair que la mémoire source MS peut être intégrée dans le module pseudo-aléatoire 4. On se réfère maintenant aux figures 3 à 6 pour décrire un mode de fonctionnement du dispositif selon l'invention, dans le mode de réalisation illustré sur les figures 1 et 2. Dans ce qui suit, on fait appel à des indices dont les définitions sont les suivantes - l'indice i (i = 0 à 9) désignant l'une des dix zones des premier SS et second RI registres du module pseudo-aléatoire 4; - l'indice 1 (1 = 0 à T-1) indique la position d'un octet du fichier par rapport à son ordre d'arrivée au niveau de l'entrée 2, l'octet n"O étant le premier arrivé, tandis que l'octet n T-1 est le dernier arrivé; - l'indice k (k = 0 à N-1) indique le numéro du bit d'aléa de la séquence d'authentification, dont le nombre de bits total est N, par exemple N=160 bits; et - l'indice j (j = 0 à 511) sert à compter, lors de la seconde phase, le nombre de cases utilisées une et une seule fois dans la mémoire source MS. Quel que soit son mode de réalisation, le dispositif selon l'invention comprend les trois phases énoncées précédemment, lesquelles comportent, de préférence, des opérations qui sont sensiblement identiques de par leur structure et leur enchaînement, à l'exception de lune au moins d'entre elles qui caractérise la phase concernée. Les trois phases et leurs principales opérations sont regroupées dans un algorithme général illustré sur les figures 3A et 3B. Les principales opérations propres à chaque phase sont illustrées respectivement sur les figures 4 à 6. On se réfère tout d'abord aux figures 3A, 3B et 4 pour décrire la phase 1. Cette phase débute lorsque le module de traitement détecte les premières données d'un fichier à traiter, lesquelles sont arrivées sur l'entrée/sortie 2. Cela déclenche, d'une part, l'initialisation du module pseudo-aléatoire 4 (étape 10 notée "début"), laquelle est effectuée par le module d'initialisation 6, et d'autre part, la mémorisation des données du fichier dans le FIFO 3, sous forme de blocs Bl comprenant un octet accompagné d'un bit d'état de fin de fichier. Si la transmission des données du fichier est plus rapide que le traitement des blocs, ceux-ci s'empilent les uns au dessous des autres dans le FIFO 3, lequel, lorsqu'il est plein de 512 blocs avertit le transmetteur en positionnant son bit de synchronisation à la valeur "1", par exemple. Cela est alors compris par l'émetteur comme une demande de cessation provisoire de la transmission. Le premier bloc est stocké dans une première case (bits 0 à 8), le second bloc arrivé est stocké dans une seconde case (bits 9 à 17), etc. L'initialisation consiste à mettre à zéro les indices i, j, k et 1, et les contenus des premier SS et second RI registres, de la mémoire source MS, y compris les bits d'état d'extraction associés à chacun des mots susceptibles d'être stockés dans cette mémoire, ainsi que l'accumulateur d'incréments AI. Bien entendu, la phase d'initialisation peut comporter, après la mise à zéro des contenus des mémoires et registres AI, SS, RI et MS, une implantation, dans ces mémoires et/ou registres, d'incrément(s) choisis. L'implantation des octets du fichier dans la mémoire source MS débute par l'actionnement du module pseudo-aléatoire 4 par le module de traitement 5, ce qui désigne les zones i=0 des premier et second registres SS et RI, ou respectivement leurs bits 0 à 15 et 0 à 7. Bien entendu, on pourrait décider, au début de la phase 1, de désigner n'importe quelle autre zone i. Le module pseudo-aléatoire calcule ensuite, en coopération avec le module de transfert 7, les contenus respectifs des premier SS et second RI registres, et de l'accumulateur d'incréments AI. Cela s'effectue comme suit. On extrait les 8 bits contenus dans la zone i=0 du second registre RI. Le contenu de cette zone RI(0) est combiné, par exemple, par une opération logique de type OU EXCLUSIF avec les bits 24 à 31 de l'accumulateur d'incréments AI, ce qui fournit un résultat de 8 bits noté DIFBL. Cette valeur DIFBL désigne un incrément de la mémoire d'incréments MI que l'on appelle IFBL. Le calcul de IFBL constitue l'étape 20. Cet incrément IFBL, de 16 bits, est ensuite additionné, modulo 65536, aux 16 bits de la zone i=O du premier registre SS. Cela constitue l'étape 30. On effectue alors un test 35 pour déterminer si le numéro de la phase est égal à 2. Si ce n'est pas le cas, on passe à l'étape 40, dans laquelle on se sert du nouveau contenu de la zone i=0 du premier registre SS pour désigner une adresse de la mémoire source MS dont on extrait l'octet d'information, parmi les 9 bits qu'elle contient, le neuvième bit concernant l'état d'extraction de ce mot, lequel est ignoré durant toute la phase 1. Ce contenu, noté MS8W, est combiné, par exemple, par une opération logique de type Ou EXCLUSIF avec les 8 bits de poids faible (bits 8 à 15) de la zone i+l=l du premier registre SS. Le résultat de cette combinaison est ensuite combiné, par exemple, par une autre opération logique de type OU EXCLUSIF avec le contenu de la zone i+4=4 du second registre RI, et le résultat de cette nouvelle combinaison remplace le précédent contenu de cette zone i+4=4 du premier registre RI. Le traitement effectué sur l'octet (ou mot) extrait de MS en vue de son implantation dans RI(i+4) est appelé première transformation. Bien entendu, on peut réaliser de nombreuses autres opérations sur les autres zones des premier SS et second RI registres afin de faire évoluer leurs contenus respectifs. On effectue ensuite un nouveau test 45 sur le numéro de la phase en cours. Si celui-ci est différent de 2, alors on effectue, préférentiellement (étape 50), une permutation circulaire d'au moins une position vers la droite des bits de l'accumulateur d'incréments AI. On procède alors à un nouveau test 55 sur le numéro de la phase en cours. Si celui-ci est égal à 1, alors dans une étape 60, le module de transfert 7 extrait le bloc qui se trouve mémorisé dans la première case du FIFO 3. Le bloc qui se trouvait en seconde position dans FIFO 3 passe alors en première position, ce qui décale en fait d'une unité tous les autres blocs mémorisés. L'octet du bloc extrait , va alors subir un traitement appelé seconde transformation, consistant à le combiner par une opération logique, par exemple de type OU EXCLUSIF, avec les 8 premiers bits de poids fort de l'accumulateur d'incréments AI, contenus dans la partie AIFT (bits 0 à 7). Le résultat de cette combinaison, qui représente le transformé de l'octet du bloc extrait de FIFO 3, est noté DIFORT. Cela constitue l'étape 70. S'ensuit alors une étap le module pseudo-aléatoire 4 incrémente d'une unité le numéro i de la zone visée des premier et second registres. Dans cet exemple, les zones désignées portent désormais le numéro 1. Préférentiellement, après cette incrémentation à l'étape 110, on effectue un nouveau test 120 sur le nombre de zones i visées depuis le début de la phase 1. Si ce nombre est inférieur au nombre 10, par exemple, on retourne à l'étape 20. En revanche, si ce nombre est égal à 10, le module pseudo-aléatoire 4 effectue, dans une étape 130, une permutation circulaire d'au moins une position, vers la droite, ou vers la gauche, des bits de toutes les zones du premier registre SS. Puis, après avoir remis l'indice i désignant les zones de SS et RI à la valeur i=o , on retourne à l'étape 20 afin d'extraire un nouvel octet de FIFO 3. Pour ce faire, on reproduit l'intégralité des étapes 20 à 100, puis 105, 106, 108, 110, et éventuellement les étapes 120 et 130, en utilisant l'indice i en cours. Tant qu'il reste un octet à extraire de FIFO 3, on reproduit les étapes ci-dessus. Après extraction, dans FIFO 3, du dernier octet (l=T-1) du fichier, et une fois arrivé à l'étape 106, on procède à l'étape 107 à l'incrémentation d'une unité du numéro de la phase. Puis, on effectue de nouveau les étapes 110 et éventuellement 120 et 130, ce qui ramène à l'étape 20. La phase 2 peut alors commencer, avec l'indice i en cours. Tous les octets du fichier ont alors été implantés dans la mémoire source MS, et certains d'entre eux ont déjà été, éventuellement, implantés dans le second registre RI (après avoir reçu les première et seconde transformations) si l'adresse à laquelle ils avaient été implantés dans MS avait été tirée du premier registre SS (zone i) lors des étapes 30 successives. On se réfère maintenant aux figures 3A, 3B et 5 pour décrire cette phase 2 de parcours exhaustif. La logique de cycle 8 actionne le module pseudo-aléatoire 4 et fait travailler le module de transfert 7 afin d'effectuer les étapes 20 et 30. Cela permet d'obtenir IFBL et de faire évoluer le contenu du premier registre SS, et notamment celui de sa zone visée i. On effectue ensuite le test 35, lequel indique que le numéro de la phase est égal à 2. On passe alors à une étape 36 dans laquelle on procède à l'extraction de l'octet formant mot M, qui n'a reçu jusqu'à présent qu'une seconde transformation lors de la phase 1, et qui est contenu dans la mémoire source MS à l'adresse désignée par le contenu des bits de poids faible de la zone visée i du premier registre SS, lequel contenu a été modifié lors de l'étape 30. L'octet (ou mot) M est extrait en compagnie du bit d'état d'extraction associé, dont la valeur permet d'indiquer au module pseudo-aléatoire 4 si ledit octet M a déjà été extrait. Si ce bit est dans un état "haut", par exemple si sa valeur vaut "1", alors cela veut dire que l'octet transformé M a déjà été extrait, et qu'il faut passer à un autre octet transformé non traité. En revanche, si ce bit est dans un état "bas", par exemple si sa valeur vaut "0", cela veut dire que l'octet ou mot n'a pas encore été extrait de la mémoire source MS, et par conséquent, on peut lui faire subir la première transformation en vue de l'implanter dans le second registre RI (zone visée en cours i+4), laquelle est accompagnée d'une modification de l'état du bit d'état d'extraction dont le détail est donné ci-dessous. Chacun des 512 bits d'état d'extraction de chacun des 512 mots mémorisés dans la mémoire source MS forme une table de 512 bits subdivisée en 32 mots de 16 bits, par exemple. Comme indiqué précédemment, chaque bit de valeur 1 est associé à un mot M déjà extrait lors d'une boucle précédente de la seconde phase. On décompose alors les 9 bits de l'adresse de la zone visée i du premier registre SS en 5 bits de poids fort notés MSFORT et 4 bits de poids faible notés MSFBL. On associe alors, aux 5 bits de poids fort MSFORT une seconde table TFORT de 32 bits. Chaque bit de cette table TFORT est associé à une valeur possible de MSFORT, ainsi qu'à un mot de 16 bits de la table de 32 mots TB. Lorsqu'un bit de la table TFORT vaut 1, alors tous les bits du mot de 16 bits de la table TB sont à 1. Au début de la seconde phase, tous les bits de la table TB et de la table TBFORT sont par conséquent à zéro. On revient maintenant au mot ou octet M extrait à l'étape 36. Deux cas se présentent - si le bit associé au mot M vaut 1, alors on incrémente d'une unité la valeur de MSFORT autant de fois que l'on tombe sur un bit de TBFORT dont la valeur vaut 1. Quand on arrive sur un bit de TBFORT dont la valeur vaut 0, alors on peut examiner le mot de 16 bits associé audit bit dont la valeur vaut 0, dans la table TB; - si le bit vaut 0, alors, on examine le mot de 16 bits associé dans la table TB. La valeur de MSFBL fournit alors l'adresse d'un bit du mot en cours d'examen de la table TB. Si la valeur de ce bit vaut 0, alors l'octet ou mot M à extraire de la mémoire source MS se trouve à l'adresse donnée par le contenu en cours de la concaténation de MSFORT et MSFBL. En revanche, si la valeur de ce bit vaut 1, alors on incrémente d'une unité le contenu de MSFBL tant que le bit du mot examiné vaut 1. Quand cette valeur du bit du mot examiné vaut 0, alors on extrait le mot transformé M de la mémoire source MS à l'adresse en cours donnée par la concaténation de MSFORT et MSFBL. On met alors à 1 le bit sélectionné par le contenu de MSFBL dans le mot de la table TB sélectionné par le contenu de MSFORT. Si le mot de la table TB ne contient que des bits dont la valeur vaut 1, on met également à la valeur 1 le bit de la table TBFORT sélectionné par le contenu de MSFORT. Lorsque les bits de la table TBFORT deviennent tous égaux à 1 par l'opération précédente, on passe alors à la troisième phase. On revient maintenant au déroulement de la phase 2. Après modification de l'état du bit d'état d'extraction du mot M extrait à l'étape 36, on incrémente d'une unité la valeur de l'indice j qui indique le nombre de cases utilisées une unique fois dans la mémoire source MS depuis le début de la phase 2 (lequel nombre est égal à O jusqu'à présent), puis on reprend les étapes détaillées lors de la phase 1. Tout d'abord, dans l'étape 40, on implante le mot extrait de MS, dans la zone visée i+4, en cours, du second registre RI. On effectue alors les étapes 45 et 50, puis le test 55, dont le résultat indique que le numéro de la phase est différent de 1. On procède alors, dans une étape 70' sensiblement identique à l'étape 70 de la phase 1, au calcul de DIFORT, lequel est le résultat de la combinaison par un OU EXCLUSIF de l'octet transformé de MS extrait à l'étape 36 et du contenu des bits de poids fort 0 à 7 de l'accumulateur d'incréments AI. On effectue ensuite les étapes 80 et 90, puis à l'étape 100 on place DIFORT dans la mémoire source MS à l'adresse de l'octet transformé extrait lors de l'étape 36. Désormais, cet octet réimplanté dans MS possède un bit d'état d'extraction dont la valeur interdit une nouvelle extraction. Puis, on reprend toutes les étapes détaillées dans la phase 1 jusqu'au retour à l'étape 20 afin de procéder à une nouvelle extraction d'un mot de MS, non encore extrait. On reproduit alors toutes les étapes décrites ci-dessus, tant que l'un des bits d'état d'extraction de MS est dans un état bas indiquant que le mot associé na pas été extrait de MS. En conséquence, cette phase 2 est reproduite tant qu'il reste une case de la mémoire source MS non utilisée, ce qui est le cas tant que j est différent de la valeur 511. Lorsque tous les bits d'état d'extraction sont dans l'état haut (=1), le test 108 indique que l'indice j vaut 511. On effectue alors, à l'étape 107, l'incrémentation d'une unité du numéro de la phase, puis l'on retourne à l'étape 20 après avoir effectué les étapes 110, et éventuellement 120 et 130. La dernière phase (ne3) peut alors débuter. On se réfère maintenant aux figures 3A, 3B et 6 pour décrire cette phase 2 d'élaboration de la signature du fichier en cours de traitement. Le générateur de séquence d'authentification 9 actionne le module pseudo-aléatoire 4 et fait, de préférence, travailler le module de transfert 7 afin d'effectuer les étapes 20, 30 et 40. Cela permet d'obtenir IFBL, de faire évoluer le contenu du premier registre SS, et notamment celui de sa zone visée i en cours, d'extraire un mot de MS et de l'implanter dans la zone visée i+4 en cours du second registre RI. Puis, le test 45 indiquant que le numéro de la phase est égal à 3, on procède, dans une étape 46, à l'élaboration d'un bit d'aléa de la séquence d'authentification. Pour ce faire, on extrait un bit de la zone i+4 (i étant la valeur du numéro de la zone visée en cours) du second registre RI dont le contenu a été modifié lors de l'étape 40. Ce bit est désigné par le contenu de la troisième partie AIA (bits 21 à 23) de l'accumulateur d'incréments AI. On incrémente alors d'une unité l'indice k qui passe de la valeur 0 à la valeur 1. On effectue ensuite les étapes 50, 55, et 70' à 110, et éventuellement 120 et 130, tout comme dans la phase 2. On retourne alors à l'étape 20 afin de procéder à l'élaboration du bit d'aléa suivant. Ces étapes sont reproduites par le générateur 9 tant que le test effectué à l'étape 105, après l'étape 100, indique que la valeur de l'indice k est inférieur au nombre total de bits d'aléa de la séquence d'authentification (lequel vaut 160 dans cet exemple). Lorsque k=160, la signature du fichier est prête. On termine le traitement en effectuant les étapes 106 à 110, et éventuellement 120 et 130, ou bien, en variante, le module de traitement 5 adresse directement la séquence d'authentification formant signature du fichier à l'entree/sortie 2, laquelle la communique au micro-ordinateur qui en avait fait la demande. Bien entendu, le fonctionnement d'un dispositif selon l'invention peut connaître de très nombreuses variantes au niveau des opérations et des calculs effectués sur l'ensemble des bits contenus dans les différentes mémoires. Il est clair que, dans un tel dispositif, le nombre d'octets contenus dans le fichier à traiter peut être très largement supérieur au nombre d'octets susceptibles d'être mémorisés dans la mémoire source, ainsi que dans la mémoire tampon, lesquelles mémoires ne présentent pas forcément des capacités de mémorisation identiques. Comme cela a été exposé précédemment, cela est du au fait qu'en phase 1, à chaque boucle de traitement, un octet (mais cela peut être un nombre quelconque de bits) est extrait de la mémoire source, et remplacé par un octet extrait de la mémoire tampon. Il en résulte qu'il existe toujours au moins une place disponible dans la mémoire source pour accueillir des données du fichier à traiter. Cette caractéristique permet donc avantageusement de traiter en continu n'importe quelle taille de fichier indépendamment des capacités de traitement du dispositif. Il est clair par ailleurs que les capacités des différentes mémoires et registres ne sont pas limitées aux capacités employées ci-avant, à titre d'exemple. Ainsi, le nombre de blocs de bits, que peuvent contenir respectivement les mémoires tampon et source pourra être bien supérieur ou inférieur à 512. Il en va de même des tailles respectives de leurs blocs. De même, le nombre de bits de chaque zone des premier et second registres pourra varier notablement du nombre décrit dans l'exemple, tout comme le nombre d'incréments et le nombre de bits qui composent chacun d'entre eux pourront être notablement différents de ceux décrits. Il en va de même du nombre de bits de l'accumulateur d'incréments qui pourra être supérieur à 32, ou inférieur, selon les besoins, ainsi que du nombre de bits d'aléa formant la séquence d'authentification, lequel n'est pas limité à 160. Par ailleurs, il est clair que le traitement effectué dans chaque boucle aux étapes 120 et 130 n'est pas obligatoire, tout comme celui (permutation circulaire) effectué à l'étape 50. Enfin, on pourrait également envisager des transformations plus compliquées portant sur l'implantation des mots du fichier dans la mémoire source. Ainsi, on pourrait envisager une mémoire source divisée en deux parties, dans laquelle, à chaque boucle d'une phase, un bloc de bits (dont le nombre peut être quelconque) extrait de la mémoire tampon serait implanté dans l'une des deux mémoires, puis subirait une ou plusieurs transformations afin d'être implanté dans la seconde partie de la mémoire source. Ces deux parties de la mémoire source se rempliraient ainsi petit à petit d'octets transformés qui seraient utilisés chacun une unique fois pour servir ensuite à l'élaboration de la séquence d'authentification formant signature. Revendications 1. Dispositif d'authentification d'un fichier de données, du type comportant une entrée (2) propre à recevoir des données d'un fichier à traiter, une mémoire tampon (3), un module pseudo-aléatoire (4), muni d'une mémoire de travail (MT) dont trois segments (SS,RI,AI) sont accessibles, et des moyens de traitement (5), agencés pour coopérer avec le module pseudo-aléatoire (4) afin d'authentifier le fichier, caractérisé en ce qu'il comprend une mémoire dite source (MS), du type mémoire vive, et propre à stocker des mots accompagnés chacun d'un état d'extraction, en ce que la mémoire tampon (3) est agencée pour arranger les données du fichier dans ses espaces libres, sous forme de blocs, et en ce que les moyens de traitement (5) comprennent: - un moyen (6) pour initialiser le module pseudo-aléatoire, - un moyen de transfert (7), propre à placer dans le second segment (RI(i+4)), le transformé, par une première transformation, d'un mot extrait de la mémoire source (MS) à une adresse tirée du premier segment (SS(i)), et enfin à placer dans l'emplacement ainsi libéré de la mémoire source le transformé par une seconde transformation du troisième segment (AI) et d'un opérande qui est soit un bloc de données stocké dans la mémoire tampon (3) à une adresse prédéterminée, soit, s'il n'y en a plus, le mot extrait de la mémoire source (MS), dont l'état d'extraction est lors modifié, - une logique de cycle (8) pour actionner le module pseudoaléatoire (4), puis faire travailler ce moyen de transfert (7) jusqu'à ce que tous les mots de la mémoire source (MS) aient été extraits une fois et une seule, et - un générateur de séquence d'authentification (9), propre à actionner le module pseudo-aléatoire (4), et extraire un bit d'aléa de l'un des premier (SS) et second (RI) segments à une adresse tirée du troisième segment (AI), répétitivement jusqu'à obtenir un nombre choisi de bits d'aléa formant séquence d'authentification du fichier. 2. Dispositif selon la revendication 1, caractérisé en ce que les moyens de traitement (5) sont agencés pour ordonner au moyen d'initialisation (6), l'initialisation du module pseudo-aléatoire (4) et de la mémoire source MS à réception d'une information de début de fichier à traiter, et en ce que le module pseudo-aléatoire (4) est agencé pour désigner, après ladite initialisation, une zone (i) parmi une pluralité de zones que comprend l'un au moins des premier (SS) et second (RI) segments. 3. Dispositif selon l'une des revendications 1 et 2, caractérisé en ce que le module pseudo-aléatoire (4) est agencé pour incrémenter d'une unité, modulo le nombre total de zones de chaque premier (SS) et/ou second (RI) segment(s), le numéro (i) de la zone désignée en cours, après chaque extraction d'un mot de la mémoire source (MS) puis placement dans cette mémoire source d'un transformé d'un mot ou d'un bloc ayant subit une première et/ou une seconde transformation(s). 4. Dispositif selon l'une des revendications 1 à 3, caractérisé en ce qu'il comprend une mémoire morte dite d'incréments (MI), formant table pour P incréments entiers prédéterminés. 5. Dispositif selon la revendication 4, caractérisé en ce que le module pseudo-aléatoire (4) est agencé pour, d'une part, extraire, avant la première transformation, un incrément de la mémoire d'incréments (MI), à une adresse tirée du résultat d'une première opération entre une partie au moins, prédéterminée, du troisième segment (AI) et une partie au moins, prédéterminée, du contenu de l'un des premier (ss) et second (RI) segments, et d'autre part, effectuer une seconde opération entre une partie au moins, prédéterminée, du contenu en cours du premier segment (SS) et au moins le résultat de la première opération, le résultat de cette seconde opération remplaçant ledit contenu en cours du premier segment (SS). 6. Dispositif selon l'une des revendications 2 à 5, caractérisé en ce que le module pseudo-aléatoire (4) est agencé pour effectuer une troisième opération entre le mot extrait de la mémoire source, et les contenus respectifs, en cours, d'une partie au moins d'une zone (i+1) du premier segment (SS) et d'une partie au moins d'une zone (i+4) du second segment (RI), le résultat de cette troisième opération formant le transformé, par la première transformation, du mot extrait de la mémoire source et constituant le nouveau contenu de la zone (i+4) du second segment (RI). 7. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le module de transfert (7) est agencé pour effectuer une quatrième opération de type permutation circulaire (50), d'au moins un bit, sur une partie au moins des bits du troisième segment (AI) de la mémoire de travail, après chaque première transformation, le résultat de cette permutation constituant le nouveau contenu dudit troisième segment (AI). 8. Dispositif selon l'une des revendications 3 à 7, caractérisé en ce que le moyen de transfert (7) est agencé, d'une part, pour extraire, après chaque seconde transformation, un incrément de la mémoire d'incrément (MI) à une adresse tirée soit du transformé du mot extrait de la mémoire source, soit du transformé du bloc extrait de la mémoire tampon (3), selon l'origine du bloc ou du mot ayant subit ladite seconde transformation, et d'autre part, pour effectuer une cinquième opération entre ledit incrément ainsi extrait de la mémoire d'incréments (MI) et le contenu en cours du troisième segment (AI), le résultat de cette cinquième opération constituant le nouveau contenu du troisième segment (AI). 9. Dispositif selon la revendication 8, caractérisé en ce que le moyen de transfert (7) est agencée pour prendre également en compte, lors de la cinquième opération, l'incrément extrait de la mémoire d'incréments (MI) à l'adresse tirée du résultat de la première opération. 10. Dispositif selon l'une des revendications 2 à 9, caractérisé en ce que le générateur de séquence d'authentification (9) est agencé pour actionner le module pseudoaléatoire (4), puis faire travailler au moins partiellement le moyen de transfert (7) de sorte que chaque bit soit extrait du segment concerné (RI) après placement, dans le second segment (RI(ì+4)), du transformé, par la première transformation, du mot extrait de la mémoire source (MS) à l'adresse tirée du premier segment (SS(i)). 11. Dispositif selon l'une des revendications 2 à 10, caractérisé en ce que le générateur de séquence d'authentification (9) extrait chaque bit de la zone (i) en cours du second segment (RI). 12. Dispositif selon l'une des revendications 1 à 11, caractérisé en ce qu'après un nombre choisi de placements dans la mémoire source (MS) de transformés de mots et/ou de blocs, les moyens de traitement (5) sont agencés pour effectuer une permutation circulaire (120,130), d'au moins un bit, sur une partie au moins des bits du premier segment (SS), le résultat de cette permutation constituant le nouveau contenu dudit premier segment (SS). 13. Dispositif selon l'une des revendications 1 à 12, caractérisé en ce que la mémoire tampon (3) est du type registre à décalage dans lequel les blocs de données sont empilés, selon leur ordre d'arrivée, les uns au dessous des autres dans les espaces libres compris entre un premier espace (B1) et un dernier espace (B512), en ce que le moyen de transfert (7) est agencé pour extraire le bloc qui se trouve dans le premier espace (B1), et en ce que ladite mémoire tampon (3) est agencée pour provoquer, après chaque extraction du bloc stocké dans le premier espace (B1), le décalage d'une position de l'ensemble des blocs situés après le premier espace (B1) de sorte que le bloc qui se trouvait dans le second espace (B2) se retrouve stocké dans le premier espace (B1). 14. Dispositif selon l'une des revendications 1 à 13, caractérisé en ce que les premier (SS), second (RI) et troisième (AI) segments de la mémoire de travail (MT) sont respectivement réalisés sous forme d'un premier registre (SS), d'un second registre (RI), et d'un accumulateur d'incréments (AI).