FR 2737370 A1 19970131 FR 9509179 A 19950727 L'invention concerne un procédé de communication cryptographique asymétrique pour traiter des messages et sécuriser des communications entre des interlocuteurs. Il peut être utilisé pour chiffrer des messages de façon asymétrique, ou pour les signer de façon asymétrique également. Il peut aussi être utilisé en authentification asymétrique. Une première solution bien connue a été élaborée en 1977. Cette solution a fait l'objet du brevet US 4,405,829 déposé par les inventeurs Rivest, Shamir et Adleman le 14 Décembre 1977. Cette solution, communément appelée RSA du nom des inventeurs, fait intervenir deux types de clés. La première clé (Kp) permet le chiffrement des messages et la seconde (Ks), le déchiffrement. Ce procédé, mondialement connu, est à la base de la cryptographie asymétrique, appelée ainsi parce que les clés de chiffrement et de déchiffrement sont différentes. Dans un même réseau, chaque membre (i) possède un couple de clés. La première (Kpi) est publique et peut donc être connue de tous; la seconde (Ksi) est secrète et ne doit jamais être communiquée. Une communication chiffrée entre deux interlocuteurs (1) et (2) d'un même réseau s'effectue de la façon suivante: dans un premier temps, (1) et (2) se communiquent leurs clés publiques (Kpl) et (Kp2) puis, lorsque (1) veut envoyer un message (M) à (2) il chiffre ce message avec la clé (Kp2), ce message une fois reçu par (2) ne peut être déchiffré qu'à l'aide de la clé secrète (Ks2) détenue par (2): Chiffrement: M' = RSA ( M, KP2) Déchiffrement: M = RSA ( M', Ks2) Lorsque (2) veut envoyer un message à (1), il chiffre avec la clé publique de (1): (Kpl), ce dernier déchiffre avec sa propre clé secrète (Ks 1) Le procédé RSA peut également être utilisé en signature: le message est alors chiffré avec la clé secrète propre à un individu, le message chiffré appelé signature est alors transmis avec le message en clair, le récepteur du message demande à une autorité la clé publique de l'individu et se sert de celle- ci pour déchiffrer la signature, si le texte déchiffré correspond au message en clair, la signature est authentique. Ce procédé de communication cryptographique présente quelques inconvénients. Ainsi, les nombres à manipuler sont-ils assez grands (typiquement 512 bits actuellement), ce qui oblige à faire beaucoup de calculs et mène à des signatures assez longues. De plus, la sécurité du RSA serait compromise si de nouveaux progrès en factorisation étaient obtenus. D'autres procédés de communication cryptographiques asymétriques ont été suggérés pour réaliser les fonctions de chiffrement ou de signature asymétrique de message, comme ceux utilisant des algorithmes à base de "sac-à dos", ou l'algorithme de MATSUMOTO-IMAI. Cependant, ces deux exemples se sont révélés avoir un degré de sécurité tout à fait insuffisant. La présente invention propose une solution qui ne comporte pas les inconvénients de ces deux exemples tout en gardant un certain nombre de leurs avantages. La présente invention utilise un nouvel algorithme appelé " Algorithme des Corps Cachés" ou HFA (Hidden Fields Algorithm) qui, comme le RSA, peut être utilisé pour les fonctions d'authentification, de chiffrement et de signature. De plus, alors que le RSA est principalement basé sur le problème de factorisation de grands nombres, l'algorithme HFA est basé sur un problème totalement différent: la résolution d'équations multivariables de petit degré (typiquement de degré 2 ou 3). il faut noter que l'algorithme de MATSUMOTO-IMAI avait aussi cette propriété, mais, comme nous l'avons déjà signalé, il s'est révélé avoir un degré de sécurité tout à fait insuffisant,ce qui le rend impropre à une utilisation dans un procédé de communication cryptographique. Parmi les éléments nouveaux qui peuvent contribuer à la solidité de l'algorithme HFA, il y a le fait que cet algorithme n'est pas nécessairement bijectif, et la fait qu'il puisse utiliser des équations polynomiales très générales. Un autre avantage qui ressort de l'invention est la possibilité pour l'algorithme HFA de pouvoir calculer des signatures ultracourtes (de moins de 200 bits), alors que les signatures asymétriques les plus courtes connues actuellement sont de l'ordre de 320 bits (obtenues à l'aide de l'algorithme DSS qui ne peut être utilisé qu'en signature ou authentification mais pas en chiffrement/déchiffrement). Il est préférable d'utiliser au moins 512 bits si l'on utilise le RSA. L'invention concerne à cet effet un procédé de communication cryptographique transformant un message (X) représenté par (n) éléments d'un corps fini (K) en un message image (Y) représenté par (n') éléments du corps (K), caractérisé en ce que: a) chaque élément (n') du message image (Y) a la forme d'une équation polynômiale publique ayant un petit degré (D) supérieur ou égal à 2 (typiquement D=2 ou 3) en les éléments (n) du message (X); b) le message image (Y) peut également être obtenu à partir du message (X) par une transformation comprenant les étapes suivantes, dont certaines au moins nécessitent la connaissance d'un secret cryptographique: b l) appliquer au message (X) une première transformation polynômiale secrète (s) présentant un degré 1 en les (n) éléments du message (X) pour obtenir une première image (Il) à (n) éléments; b2) former une ou plusieurs branches, chaque branche étant constituée d'éléments de la première image (I 1) (par exemple la première branche comprend les nI premiers éléments de Il, la seconde branche comprend les n2 suivants,etc.... ou bien un même élément pourra aussi être présent dans plusieurs branches) et, e dans au moins l'une (e) des branches (éventuellement toutes), les (ne) éléments de la branche sont considérés comme représentant une variable ou un petit nombre (k) de variables (x, 3 2737370 x', x"....,xk) appartenant à une extension (Lw) de degré W du corps (K) avec W*k=ne, et appliquer à au moins cette branche (e) une transformation définie comme suit fe: LWk_>LWk (x, x', x",....,xk)>(y, y', y., yk) en notant (y, y', y,....,yk) l'image de (x, x, x"..., xk) par la transformation f f vérifiant les deux propriétés suivantes: -b2. 1) dans une base (B) de l'extension de corps (Lw), chaque composante de l'image (y, y', y".....,yk) est exprimée sous la forme d'un polynôme en les composantes de (x, x', x",....,xk) dans cette base, ce polynôme ayant un degré total au plus égal audit degré (D) de l'équation polynômiale publique; -b2.2) exprimée dans l'extension de corps (Lw), la transformation (fe) est telle qu'il est possible (sauf éventuellement pour certaines entrées dont le nombre est négligeable devant le nombre total d'entrées) de calculer des antécédents de (fe) lorsqu'ils existent (ce calcul s'effectue, soit par recherche exhaustive lorsque ne est très petit, soit en utilisant un algorithme mathématique de résolution de ce type d'équations polynômiales dans les corpsfinis); * et à appliquer aux éventuelles autres branches des transformations polynômiales de degré au plus égal audit degré (D) en les composantes à valeur dans le corps (K); b3) En sortie de la branche ainsi transformée ou des autres branches, on ajoute un polynôme (secret ou public) de degré au plus (D) ne dépendant que des variables des branches situées immédiatement avant cette branche (cette étape n'est pas obligatoire: on peut ajouter le polynôme nul). b4) la branche ainsi transformée, ou la pluralité de branches ainsi transformées puis concaténées (c'est-à-dire regroupées), constituant une seconde image (I2); b5) appliquer à la seconde image (I2) une seconde transformation polynômiale (t) secrète, présentant un degré I en les éléments de la seconde image (I2) pour obtenir une troisième image (I3) présentant un nombre déterminé d'éléments; et b6) sélectionner (n') éléments parmi l'ensemble des éléments de la troisième image (I3) pour former ledit message image (Y) (par exemple les I premiers; ou bien, pour certaines variantes, on prend tous les éléments de 13, auquel cas Y=13). L'invention concerne aussi un procédé de vérification d'une signature asymétrique, et un procédé d'authentification asymétrique, qui utilisent le procédé de communication ci-dessus. D'autres détails et avantages de l'invention au cours de la description suivante de quelques formes de réalisation préférées mais non limitatives, en regard des dessins annexés, sur lesquels: La figure I présente l'enchaînement des transformations utilisées pour traiter un message; La figure 2 présente un dispositif de communication utilisé pour effectuer un chiffrement/déchiffrement de message;et La figure 3 présente ce même dispositif, utilisé pour effectuer une signature de message et sa vérification. Avant de présenter l'invention, on effectuera tout d'abord un bref rappel mathématique, concernant notamment les propriétés des corps finis. Description et propriétés des corps finis. 1) Fonction f: Soit K, un corps fini de cardinal q de caractéristique p ( typiquement, mais ce n'est pas une obligation, q = p = 2). Soit LN une extension de degré N de K, soient Sij, cai et io des éléments de Ln, soient 0 ij, p ij et,, i des entiers, soit f l'application suivante f: LN - > LN x) >- Eij ij * xQ+P + Ei i * xiS + t0 o Q = qO i,j, P=q(P ij et, S = q i o f est un polynôme en x et(*) est la fonction de multiplication. De plus, pour tout entier X, x > xqk est une application linéaire de LN LN. Donc f est une fonction quadratique. Soit B une base de LN alors, l'expression de f dans la base B est f(xl,.. , xN) = (P1 (xl,....., xN),.-, PN (xl,....., xN)) o P1,.., PN sont des polynômes de degré total 2 en N variables xl,...., x N. Les polynômes Pi,..., PN sont calculés en utilisant une représentation de LN. Une représentation de LN est typiquement la donnée d'un polynôme irréductible iN (X) sur K, de degré N, ce qui permet d'identifier LN à K[ X] / ( iN (X)). Il est alors facile de calculer les..DTD: polynômes P 1,..., PN. 2) Inversion de f f n'est pas obligatoirement une bijection de LN -> LN; cependant: 1) "a" étant un élément de LN, on connaît des algorithmes qui permettent relativement facilement de trouver toutes les valeurs de x de LN (si elles existent) telles que f(x) = a. 2) Si on note "i" le degré en x du polynôme f, alors pour tout "a" de LN, on a au plus "ix "solutions en x de f(x) = a. 3) Dans certains cas, f peut être bijective. Algorithme HFA de base pour le système de chiffrement/déchiffrement. Nous allons maitenant décrire une première version du nouvel algorithme HFA. Cette version n'est pas limitative, des versions plus générales sont présentées dans les chapitres suivants. Un corps K, comprenant q = pm éléments, est public. Chaque message est composé de n éléments de K. Par exemple, si p = 2, chaque message possède n*m bits. n est également public. n est séparé en d entiers: n = nI +... + nd Pour chacun de ces entiers ne (1 ≤ e ≤ d), on associe une extension Lne du corps K de degré ne (le symbole ≤ signifie "inférieur ou égal". Appelons "mot" une valeur représentée par des composantes de K. Par exemple, un élément de Lne, (1 longueur n. Les objets secrets sont 1) deux transformations affines bijectives s et t de Kn - Kn. Ces bijections affines peuvent être représentées dans une base par des polynômes de degré égal à 1 et à coefficients dans K. 2) la séparation de n en d entiers: n = nl1 +... + nd. 3) La représentation des corps Ln1,...., Lnd. Ces "représentations" sont données par le choix de d polynômes irréductibles. Nous noterons 'ne l'isomorphisme de Kne vers Lne donné par cette représentation, avec e tel que 1 ≤ e ≤ d. 4) Les fonctions f1,...., fd quadratiques, du même type que la fonction f donnée au paragraphe intitulé "fonction f' ( en utilisant N = ne, et 1 ≤e ≤ d). Première remarque: tous ces objets sont a priori secrets, mais en fait les objets des points 2), 3), et 4) ci-dessus peuvent a priori être également publics. La sécurité de l'algorithme réside en effet principalement sur les transformations secrètes s et t. Seconde remarque: s et t sont des applications bijectives, mais elles peuvent être aussi "quasi bijectives", c'est-à-dire que ce serait des applications qui n'ont au plus que peu d'antécédents. Le mécanisme de chiffrement est décrit sur la figure 1. La séquence d'opérations se déroule en commençant par le haut et en se dirigeant vers le bas. Intervient tout d'abord la transformation affine bijective s de Kn > Kn. Les fonctions pl.., gd sont des fonctions projections de Kn > Kne (o I ≤e sorte les n éléments en d "branches". L'isomorphisme Wne s'applique depuis les différents corps Kne vers les différentes représentations de corps Ln1,....., Lnd, puis les fonctions quadratiques fl,., fd s'appliquent respectivement de Ln1......, Lnd dans Lnl, Lnd. Ensuite, l'isomorphisme inverse (Tne)-l s'applique depuis les différentes représentations de corps Ln1l, Lnd vers les différents corps Kne. Puis la fonction de concaténation inverse i s'applique de Kne vers KnEnfin, intervient la transformation affine bijective t de Kn > Kn, de forme générale semblable à la transformation s. F2 est une fonction de degré au plus (D) dépendant des variables du bloc le plus à gauche. Plus généralement, Fi ( 2 ≤ i ≤ d) est une fonction de degré au plus (D) dépendant des variables des blocs 1,2,....i-1. REMARQUE: Ces fonctions F2,..., Fd réalisent un schéma de Feistel par blocs. Souvent on ne les fait pas intervenir dans l'algorithme HFA, c'est-à-dire: F2 =.. . = Fd = 0. Il faut remarquer, et ceci est un point important, que la composition de toutes ces opérations génère une fonction quadratique lorsqu'on exprime cette fonction au moyen de ses composantes dans une base. Donc, cette fonction peut être donnée par n polynômes (P!., Pn) à coefficients dans K, ces polynômes permettant de calculer le texte chiffré (y) en fonction du texte clair x. Les objets publics sont 1) Le corps K de q = pm éléments, et la longueur n des messages. 2) Les n polynômes (P1....., Pn) en n variables de K. Ainsi toute personne peut chiffirer un message (l'algorithme de chiffrement est donc bien public, conformément aux caractéristiques de l'invention revendiquée). De plus, le déchiffrement est possible si les objets secrets sont connus. En effet, il est alors possible d'inverser toutes les opérations décrites dans la figure 1. Ainsi, l'inversion des fonctions fe consiste alors en la résolution d'une équation polynomiale à une inconnue dans le corps Lne, comme ceci est indiqué pour f dans le paragraphe intitulé "inversion de f' ci-dessus. Il faut noter cependant que fe n'est pas obligatoirement bijective. Il est donc possible d'obtenir plusieurs antécédents. Le choix du texte clair sera alors déterminé à l'aide d'une redondance introduite dans le texte clair, le texte déchiffré étant celui qui possédera cette redondance. Si les fonctions ne sont pas bijectives, il faudra songer à introduire cette redondance systématiquement dans le message en clair. Exemple d'utilisation de l'algorithme en signature. Deux cas sont à envisager: e Les fonctions sont bijectives. Si H est le résultat de la fonction de "hachage" (de l'anglais "hash") appliquée à un message à signer (H possède par exemple un format de 128 bits), alors la signature S est S = HFA-1 (H). Ainsi, par le fait que la fonction de chiffrement HFA est publique, n'importe qui peut vérifier la signature en réalisant: H' = HFA (S) et en vérifiant que H'=H. L'émetteur de la signature doit bien évidemment posséder le secret pour calculer S. * Les fonctions ne sont pas bijectives. Dans ce cas, on peut choisir par exemple un nombre de bits en entrée de HFA supérieur au nombre de bits de la sortie, pour être à peu près sûr de pouvoir calculer des antécédents par l'algorithme HFA. Par exemple, H pourrait s'exprimer sur 128 bits et S sur 128+20 = 148 bits. Cas particuliers d'implémentation. Plusieurs façons de réaliser l'algorithme HFA offrent des avantages importants quant à sa réalisation pratique et son implémentation. * Cas de l'algorithme à branche unique (c'est à dire: avec d=l). Cette version ne possède qu'une seule (grande) branche et donc, dans chaque équation, toutes les variables -c'est à dire tous les bits du message- interviennent. Compte tenu de la grande taille de cette branche, cette forme de réalisation ne présente pas les éventuelles faiblesses des branches de petite taille. * Cas des petites branches avec la même fonction f Ce cas particulier fait intervenir des petites branches, par exemple avec des valeurs de 12 bits, et la même fonction f Cette version est particulièrement intéressante car elle pourrait être facilement implémentée dans des petites unités de traitement contenues, par exemple, dans des cartes à puce, l'implémentation est possible à l'aide d'un programme ou d'un coprocesseur mathématique. Première variante de l'algorithme HFA La fonction f utilisée sur chaque branche telle qu'elle a déjà été décrite dans ce document est une équation polynomiale à une seule variable x dans un corps fini. Exprimée dans une base, cette fonction f s'exprime comme une équation de degré total égal à deux. En fait, un autre type de fonction f peut être utilisé qui s'écarte légèrement du modèle général préalablement défini. Ce nouveau type consiste à choisir pour f une fonction dépendante de plusieurs variables de corps fini, par exemple deux variables x1 et x2, de telle sorte que, dans une base, l'expression en fonction de coordonnées reste de degré total égal à deux et que l'on puisse toujours recalculer les antécédents d'une valeur donnée de f lorsqu'ils existent. Cette variante sera mieux comprise par l'exemple numérique ci-après. Considérons une branche de l'algorithme avec des valeurs de 64 bits et avec p=2. Selon la variante, prenons f dépendant de deux variables x et x' de 32 bits chacune, avec fx, x') = (y, y') tels que: y y=x4 + x * x' + x' (1) [y' = x17 + x4 * x' + x'3 (2) (à noter qu'on ne recommande pas particulièrement d'utiliser cette fonction précise, laquelle est donnée seulement à titre d'exemple). Pour déterminer le couple (x, x') à partir de ( y, y'), il est possible de procéder par exemple de cette façon: de l'équation (1), on extrait: x'= (y - x4) / (x + 1) (3) D'o de l'équation (2), on extrait: y'(x + 1)3 = x17(x + 1)3 + x4(y - x4) (x+ 1)2 + (y - x4)3 (4) Or, (4) est une équation polynomiale à une seule variable x. Comme nous l'avons déja signalé, les mathématiciens connaissent déja des méthodes générales pour résoudre ce type d'équations, on peut donc résoudre (4) ce qui permet de définir les valeurs de x qui résolvent l'équation puis, en remplaçant x par ces valeurs dans l'équation (3), on en déduit la valeur de x'. REMARQUE: Les techniques de résolution connues actuellement pour les équations à plusieurs variables dans les corps finis permettent de résoudre bien d'autres types d'équations que celle illustrée par cet exemple. En particulier, des équations o l'on a pas forcément à exprimer une variable en fonction des autres et à la remplacer. Seconde variante de l'algorithme HFA Naturellement, la description de l'algorithme HFA et ses variantes ne limite pas l'invention revendiquée à l'utilisation d'équations polynomiales à un seul degré: le degré 2. Il est parfaitement envisageable d'utiliser le degré 3: on a alors une forme publique de degré 3. De même, le degré 4 ou même 5 est envisageable. Cependant, il faut que le degré reste assez petit pour que les équations publiques qui en résultent restent facilement mémorisables et calculables par un ordinateur. Le choix des paramètres est également important pour assurer un maximum de sécurité et déjouer, autant que possible, les attaques en cryptanalyse. Ainsi, pour des raisons de sécurité, il est préférable que: 1) sur chaque branche, il existe au moins une variable de 8 bits et, de préférence, au moins de 12 bits, 2) il n'existe pas d'équations de la forme: E yij xiYj + E cixi + E 3jyj + o0 = 0 avec au moins un des coefficients yij, cti, Pj ou 80 non nuls et, qui soient toujours vérifiées si les yj sont les composantes du texte chiffré et les xi les composantes du texte en clair. REMARQUE: c'est entre autre parce ce qu'une telle condition n'était pas vérifiée que l'algorithme de Matsumoto- Imai déja cité s'est révélé totalement non sécuritaire. 3) il n'existe pas d'équation de la forme: E Yijk xiYjYk+ 2; aij xiyj + 3ij YjYk + E ti xi + Y- vi Yi + 60 = 0 c'est-à-dire de degré total 3, et de degré I en x, ( mis à part les combinaisons linéaires des produits des équations publiques par des petits polynomes). 4) plus généralement, pour la sécurité, il est préférable qu'il n'existe pas d'équation de "petit" degré, qui soit toujours vérifiée entre les coordonnées des messages clairs et chiffrés, mis à part les combinaisons linéaires des produits des équations publiques par de petits polynômes. Troisième variante de l'algorithme HFA Lorsque la fonction n'est pas bijective, pour utiliser l'algorithme HFA, on a signalé qu'il est alors possible d'introduire de la redondance dans le texte en clair. Il existe une autre possibilité: on peut en effet avoir une taille de la valeur chiffrée Y supérieure à la taille de la valeur en clair X si l'on introduit de nouveaux éléments de K dans la valeur chiffrée. Ces nouveaux éléments étant eux aussi donnés par des équations de degré deux en les composantes de X. Plus généralement, en reprenant les notations de la figure 1, un même élément de s(x) pourra être transmis dans plusieurs branches. Et on peut aussi ajouter une ou plusieurs branches constituées d'équations arbitraires de degré deux dans une base, ces branches supplémentaires serviront alors à distinguer le bon antécédent des autres. OQuatrième variante de l'algorithme HFA Au lieu de rendre publiques toutes les équations donnant la fonction finale de la figure 1, on peut en garder une ou plusieurs secrètes. C'est à dire, qu'au lieu de rendre (P1,....., Pn) publiques, on peut ne rendre publique qu'une partie de ces équations, le chiffrement s'effectue alors en calculant seulement les (P1....... Pn) publics. Pour le dechiffrement, on essaie toutes les valeurs possibles pour les Pi non publics, ce qui donne à priori plusieurs messages déchiffrés possibles, le bon message est repéré comme auparavant: soit grace à l'introduction de redondance dans le message en clair, soit grace à la méthode indiquée dans la troisième variante. REMARQUE: le fait d'enlever ainsi une ou plusieurs équations publiques peut rendre dans certains cas encore plus difficile la découverte de la structure de corps cachés par l'algorithme HFA. Explication de la figure 2 La figure 2 illustre de façon schématique un exemple du système de chiffrement / déchiffrement utilisant l'algorithme cryptographique décrit ci-dessus. Soit deux individus A et B appartenant à un même réseau de communication, chacun possédant un dispositif respectif 1,2 d'émission/réception de messages. Ce dispositif inclut des moyens de calcul, par exemple un ordinateur, agencés pour effectuer un chiffrement / déchiffrement des messages, et des moyens de mémorisation. Au moins une partie de ces moyens de calcul ou de mémorisation peut se trouver dans un objet portatif incorporant un microprocesseur ou des circuits logiques microcablés définissant des zones dont l'accès est contrôlé et peuvent donc renfermer des informations secrètes telles que des clés cryptographiques (voir par exemple l'objet portatif décrit dans le brevet français N 2. 401.459). Chaque dispositif incorpore l'algorithme HFA tel que décrit précédemment, notamment sous la forme d'un programme, ainsi que l'algorithme inverse HFA-1 Les deux dispositifs sont reliés entre eux au moyen d'une ligne de communication 3. Les deux individus A et B possèdent respectivement un couple de clés: une clé publique CpA et CpB et une clé secrète CsA et CsB corrélée à la clé publique correspondante CpA ou CpB. Si A et B n'ont pas les moyens de calculer les couples de clé, le réseau a très bien pu le faire, ce qui lui confère alors une certaine autorité envers chaque membre du réseau. Si ces deux individus veulent dialoguer ensemble de façon sécurisée, c'est à dire sans que personne ne puisse comprendre les données échangées, ils vont alors réaliser la procédure suivante: L'individu A envoie à B sa clé publique CpA et, B envoie à A sa clé publique CpB. Selon une variante, le réseau peut garder en mémoire centrale les clés publiques de tous ces membres et les communiquer à la demande de ceux-ci. Une fois que A a reçu la clé publique CpB, A va l'utiliser pour chiffrer, à l'aide de l'algorithme cryptographique HFA, un message M qu'il désire envoyer à B, en un message M'. Ce message, une fois reçu par B, est déchiffré à l'aide de l'algorithme cryptographique HFA-1 et de la clé secrète CsB. Seul B peut déchiffrer le message, car il est le seul membre du réseau à posséder cette clé. Pour la transmission des messages de B vers A, la procédure est absolument analogue. Explication de la figure 3 La figure 3 illustre de façon schématique un exemple d'utilisation du système de la figure 2 pour la mise en oeuvre d'une procédure de calcul et de vérification de signature qui utilise l'algorithme cryptographique décrit précédemment. On impose ici que la transmission de messages s'effectue avec authentification, c'est à dire que le récepteur du message M puisse être sûr que le message provient d'une certaine personne. Par exemple, supposons que A veut communiquer à B un message authentifié. Les deux interlocuteurs vont réaliser la procédure suivante: L'individu A va tout d'abord envoyer à B sa clé publique CpA ou, en variante, B peut aussi demander au réseau cette clé. Puis, A va chiffrer le message avec sa propre clé secrète CsA et l'algorithme cryptographique HFA-1. Le résultat obtenu est appelé la signature S du message. Puis, le message (qui transite donc en clair) et sa signature sont envoyés à B. Ce dernier déchiffre la signature à l'aide de l'algorithme cryptographique HFA et de la clé publique CpA, qu'il a précedemment reçue. Le résultat obtenu, noté M", doit être égal au message reçu M. Si tel est bien le cas, cela prouve que la signature a bien été calculée à l'aide de la clé secrète CsA et donc que le message provient bien de A, seul membre à posséder cette clé dans le réseau. Un perfectionnement connu en soi de ce système consiste à calculer, non pas la signature du message, mais la signature d'un concentré du message.Ainsi, par une fonction de "hachage", un message relativement important peut être comprimé en une donnée H caractéristique du message. Cette fonction de "hachage" peut être réalisée en utilisant des fonctions de hachages classiques (comme MD4, MD5 ou SHS). REVENDICATIONS 1. Procédé de communication cryptographique transformant un message (X) représenté par (n) éléments d'un corps fini (K) en un message image (Y) représenté par (n') éléments du corps (K), caractérisé en ce que: a) chaque élément (n') du message image (Y) a la forme d'une équation polynômiale publique ayant un petit degré (D) supérieur ou égal à 2 en les éléments (n) du message (X); b) le message image (Y) peut également être obtenu à partir du message (X) par une transformation comprenant les étapes suivantes, dont certaines au moins nécessitent la connaissance d'un secret cryptographique: b l) appliquer au message (X) une première transformation polynômiale secrète (s) présentant un degré 1 en les (n) éléments du message (X) pour obtenir une première image (I1) à (n) éléments; b2) former une ou plusieurs branches, chaque branche étant constituée d'éléments de la première image (I1) et, * dans au moins l'une (e) des branches, les (ne) éléments de la branche sont considérés comme représentant une variable ou un petit nombre (k) de variables (x, x', x",....,xk) appartenant à une extension (Lw) de degré W du corps (K) avec W*k=ne, et appliquer à au moins cette branche (e) une transformation définie comme suit fe: LWk> Lwk (x, x', x",....,xk)_-(y, y y"...... yk) en notant (y, y', y",...., yk) l'image de (x, x', x ",....,xk) par la transformation f f e' e vérifiant les deux propriétés suivantes -b2.1) dans une base (B) de l'extension de corps (Lw), chaque composante de l'image (y, y', y",....., yk) est exprimée sous la forme d'un polynôme en les composantes de (x, x', x"....,xk) dans cette base, ce polynôme ayant un degré total au plus égal audit degré (D) de l'équation polynômiale publique; -b2.2) exprimée dans l'extension de corps (Lw), la transformation (fe) est telle qu'il est possible de calculer des antécédents de (fe) lorsqu'ils existent, sauf éventuellement pour certaines entrées dont le nombre est négligeable devant le nombre total d'entrées. * et à appliquer aux éventuelles autres branches des transformations polynômiales de degré au plus égal audit degré (D) en les composantes à valeur dans le corps (K); b3) En sortie de la branche ainsi transformée ou des autres branches, on ajoute un polynôme de degré au plus (D) ne dépendant que des variables des branches situées immédiatement avant cette branche. b4) la branche ainsi transformée, ou la pluralité de branches ainsi transformées puis concaténées, constituant une seconde image (I2); b5) appliquer à la seconde image (I2) une seconde transformation polynômiale (t) secrète, présentant un degré 1 en les éléments de la seconde image (I2) pour obtenir une troisième image (I3) présentant un nombre déterminé d'éléments; et b6) sélectionner (n') éléments parmi l'ensemble des éléments de la troisième image (I3) pour former ledit message image (Y). 2. Procédé de vérification d'une signature asymétrique (X) d'un message, obtenue en appliquant au message une transformation correspondant à la transformation inverse de celle faisant l'objet du procédé de la revendication 1, caractérisé en ce que la vérification consiste à appliquer la transformation de la revendication 1 à ladite signature (X) et à contrôler que l'on obtient un résultat (Y) obéissant à une relation prédéterminée liée au message à signer. 3. Procédé d'authentification asymétrique, par une première personne appelée vérifieur, d'une autre personne appelée prouveur, caractérisé en ce que: -le vérifieur envoie au prouveur une première valeur (Y); -le prouveur renvoie au vérifieur une seconde valeur (X) obtenue en appliquant à la première valeur (Y) une transformation correspondant à la transformation inverse de celle faisant l'objet du procédé de la revendication 1; -le vérifieur applique à la seconde valeur (X) la transformation de la revendication 1 et vérifie que le résultat obéit à une relation prédéterminée liée à la première valeur (Y). 4. Procédé selon la revendication l, dans lequel ledit petit degré (D) de l'équation polynômiale publique est égal à 2. 5. Procédé selon la revendication 1 ou la revendication 2, dans lequel la première image (Il) comporte plusieurs branches présentant chacune un faible nombre d'éléments (ne), consistant à appliquer sur toutes les branches la même transformation (fe). 6. Procédé selon la revendication 1, dans lequel chaque branche de la première image (Il) présente un nombre d'éléments (ne) qui lui est propre et qui est conservé secret. 7. Procédé selon la revendication 1, dans lequel la première image (Il) comporte plusieurs branches présentant chacune un faible nombre d'éléments (ne) sous la forme de bits, ce nombre d'éléments étant au moins égal à 8. 8. Procédé selon la revendication 1, dans lequel une branche possède une seule variable appartenant à une extension (Lw) du corps (K). 9. Procédé selon la revendication 8, dans lequel ledit petit degré (D) de l'équation polynômiale publique est égal à 2, de sorte que ladite transformation (fe) présente la forme suivante f: LW - > LW x > Eij Pi,j * xQ+P + Si oEi * xiS + pjt0 o: q est le cardinal du corps (K); Q = q0 ij, P = q(P ij, S = q, i ij, cai et go sont des éléments de Lw; ,J, (P i,j et,, i sont des entiers. 10. Procédé selon la revendication I1, tel qu'il n'existe pas d'équations polynômiales de petit degré total en les composantes de (x, x', x",....,xk) et (y, y', y",..... yk) autres que des combinaisons linéaires des produits des équations publiques par des petits polynômes. 11. Procédé selon la revendication I1, tel qu'il n'existe pas d'équations polynômiales de la forme: Z Yij xiYj + E atixi + E Ojyj + o = O, avec au moins un des coefficients yij, (xi, 3j ou 50 non nuls et qui soient toujours vérifiées si les yj sont les composantes du message chiffré, et les xi les composantes du message en clair. 12. Procédé selon la revendication 1, tel qu'il n'existe pas d'équations polynômiales de la forme: E Yijk XiYjYk+ E cij Xiyj + E 3ij YjYk + S Ai xi + E Vi Yi + o50 = 0, c'est-à-dire de degré total 3, et de degré 1 en x, mis à part les combinaisons linéaires des équations publiques.