FR 2811172 A1 20020104 FR 0008307 A 20000628 La présente invention concerne un procédé de cryptographie à clé publique, applicable à des données enregistrées sous forme de bits sur un support exploitable par une entité de calcul, lequel procédé, selon la façon dont il est utilisé peut fournir un procédé de chiffrement, un procédé de preuve d'identité zero-knowledge au sens de Fiat-Shamir, un procédé de signature de signature électronique ou un procédé réalisant une fonction dite à sens unique. Depuis le milieu des années 1970 de nombreux systèmes de cryptographie à clé publique sont apparus, notamment le RSA de Rivest Shamir et Adelman ainsi que le systeme d'échange publique de clé dit de Diffie-Hellmann. D'autres systèmes furent proposés, la grande majorité basée sur le problème de la factorisation. Peu sont basés sur d'autres problèmes mais je citerai ici ceux qui sont basés sur les courbes elliptiques ou hyperelliptiques. Néanmoins, dans tous les cas, les systèmes suggérés n'ont que peu à voir avec la factorisation et leur solidité semble dépendre davantage du fait que l'on ne connaît pas ou peu le domaine concerné (e.g. les courbes elliptiques) que du fait que le problème est réellement difficile à résoudre. On est ainsi en présence d'un phénomène préoccupant. Soit on utilise un système cryptographique à clé publique basé sur la factorisation, soit on en utilise un basé sur un problème peu connu mais peut être pas très difficile. Alors pourquoi ne pas utiliser ceux basés sur la factorisation ? En fait, une personne qui aurait trouvé un algorithme en temps polynômial déterministe pour factoriser les grands nombres aurait-elle intérêt à publier sa découverte? Un pays comme les USA qui cherche à écouter toutes les t communications de la terre via la NSA (National Security Agency) n'aurait-il pas intérêt à laisser croire que le problème de la factorisation est difficile de façcon à, le cas échéant, continuer à écouter, sans être soupcçonné, le monde entier ? Dans ce qui suit, je vais présenter un procédé cryptographique à clé publique qui est, en général, bien plus compliqué à "casser" que de résoudre le problème de la factorisation. t - Cependant, dans certains cas, identifiés, le problème en question sera équivalent à la factorisation. L'utilisateur n'aura qu'à choisir ce qu'il veut. Je montrerai ensuite que selon comment on s'en sert on peut obtenir un procédé de preuve interactive zero-knowledge à 2 2811172 résultat indistingable, un procédé de signature électronique et un procédé de construction d'une fonction à sens unique. Enfin, les procédés présentés ici étant parallélisables, je montrerai comment réaliser des circuits intégrés parallèles qui les réalisent et permettent de faire du chiffrement à clé publique en temps réel, ce que n'arrive à faire aucun autre procédé S de ce type à l'heure actuelle. Les calculs explicités ici sont censés être faits sur des données enregistrées sous la forme de bits, et exécutés par des entités de calcul du type "ordinateur" ou selon le cas, des circuits électroniques spécifiques. Le chiffrement consistera à traiter les données d'entrée x pour fournir une sortie x', li'unité de calcul effectuant un certain nombre d'étapes de traitement /15 de données, ce traitement utilisant un certain nombre de fonctions, notamment matricielles. Pour les preuves d'identité zero-knowledge ou les signatures électroniques, le même procédé sera utilisé, mais il fera intervenir des interactions entre 2 entités de calcul qui traiteront des données enregistrées elles aussi sous forme binaire. * 1. Notations - Rappels d 5,qSoit A un anneau quelconque et E un Amodule de type fini. Soit fun endomorphisme de E. On dira qu'un vecteur x E E* est un vecteur propre de f si 3AsA / f(x)=Rx. Pour plus de simplicité on ne considérera ici que les modules à gauche, mais les résultats décrits sont les mnmes et sont aussi valables pour les modules à droite. De même, A est une valeur propre de l'endomorphisme f si 3x e E/ f(x)=Ax. Dans le cas o A est un anneau commutatif, une façon t de calculer les valeurs propres de f est de résoudre son polynôme caractéristique. Lorsqu'un tirage sera fait au hasard cela voudra dire qu'il est fait avec la distribution uniforme sur l'ensemble considéré. Les valeurs propres seront, en général, tirées dans le centre de l'anneau. Si y et z sont deux vecteurs de E, alors "(y,z) est une fonction à sens unique depuis un sous-ensemble des bits des 2 dernières coordonnées de y et z dans A, ou t 5 bien, selon le cas,:(a) sera une fonction à sens unique de A dans A. Par exemple, dans certains cas, la fonction e(y,z) pourra être l'élévation au carré dans A de la deuxième coordonnée de y. Dans la suite, lorsque l'on dira "Bob" ou "Alice", il faudra entendre la machine de Bob ou Alice. Cette personnalisation des entités de calcul nous paraît permettre une meilleure 3 ocompréhension. * 2. Description en dimension 3 On se place dans un contexte o Bob veut envoyer un message à Alice. E est un A-module de dimension 3, et on suppose que les messages à envoyer sont xl pour le premier jusqu'à xm, pour le dernier. Pour fabriquer sa clé publique Alice tire au hasard 3 valeurs 3 2811172 distinctes non nulles dans A. Soient AI, A2 et;3 ces valeurs. Alice forme alors la matrice AI 0 0 1 0 0 Fo = 0 A2 0,puiselletireauhasardunematricedelaformeh-l= 0 P w qui 0 0 A3 0 w w soit inversible. Elle forme alors la matrice F=h-l F0 h qui est la clé publique. Dans la suite f1 0 0 cette matrice sera écrite F= 0 ct /3. Cette clé publique est enregistrée dans un annuaire O y 6 électronique "hardware" consultable et "importable" depuis l'extérieur par une connexion, par exemple, du type Internet. Algorithme de chiffrement du AP- message x Etant donné xri Bob tire au hasard 2 vecteurs yt et zi tels que {xi, yt, zt} forme une base de E o la première coordonnée de yi et zi est fixée et connue et vaut, par exemple, 1 dans g1ll 1 1 l'anneau A. Soit alors g-l = g2l g22 g23 la matrice formée des coordonnées de ces g31 g32 g33 vecteurs en colonne. Elle est évidemment inversible. Bob calcule alors f = g- l Fg et "yi, zi)xi + yt +z1. Bob envoie alors à Alice le couple (f. "(Yt, zt)xî + yt + z1). Algorithme de déchiffrement du pmc message Comme Alice connaît les valeurs propres de f, Alice cherche 3 vecteurs propres de f associés à chacune des valeurs Ai. Si on considère le vecteur propre ut = ui2 associé à A2 par Ui3 exemple, alors ce dernier est proportionnel à g- [P. On a donc le système d'équations p + (I = kuil Pg22 + wJg23 = kui2. Pg32 + wg33 = kui3 Vil Comme Alice connaît p, w et uil elle peut déterminer k. De même si vi = vi2 est le vecteur vi3 propre associé à A3, on a alors v1 qui est proportionnel à g-1 (. On obtient alors le système W + = k' ui1 suivant:] g22 + Ug23 = k' Ui2. De même que précédemment, Alice connaît e0 et et qg32 + g33 = k' ui3 peut donc déterminer k'. I1 reste alors 2 systèmes de 2 équations à 2 inconnues permettant de 4 2811172 retrouver g22, g23, g32 et g33. A ce stade Alice connaît donc y; et zi elle retranche alors à "(yi, z,)x, + y, +z, le vecteur yi + zi. En divisant le résultat par "(yi, zi) elle obtient enfin xi, * 3. Difficulté de casser le système La difficulté de casser le système précédent vient de la difficulté de trouver les valeurs propres d'une matrice à coefficients dans un anneau quelconque. On peut en particulier démontrer que lorque l'anneau est Z/nZ o n=pq est le produit de 2 grands nombres premiers cornmme dans le RSA, l'algorithme précédent est aussi dur à casser qu'il est difficile de factoriser le nombre n. Dans ce cas particulier, une fonction intéressante pour se est l'élévation au carré de la 2'me coordonnée de y modulo n. 4 * 4. Preuve zero-knowledge Considérons R un anneau non commutatif Supposons que R vérifie la condition dite de Ore à droite. C'est à dire que V a, b E R, 3 a', b' e R / aa' = bb'. On démontre alors que sous cette condition, l'anneau R admet un anneau de fractions, c'est à dire des éléments du type a/b o a E R et b E S o S est une partie de R sur laquelle on peut construire une 4" relation d'équivalence. Dans ce cadre, pour peu que a E S, l'inverse de a/b s'écrit b/a. La construction d'un tel anneau de fraction est unique dès qu'on a choisi S. Cette construction ne sera donc pas décrite ici. Par contre, une même construction existe pour une condition dite de Ore à gauche avec le même résultat, mais une autre structure d'anneau. Le résultat présenté ici est donc valable pour les 2 cas. Ce qui est important, c'est que l'on travaille sur des classes se O d'équivalence et non sur des objets numériques directement. Appelons alors CI le procédé de chiffrement du paragraphe 2 et Di le procédé de déchiffri-ement du paragraphe 2. Dans le scenario présent, Alice veut prouver son identité à Bob. De même que dans les protocoles zero-knowledge classiques, elle va montrer qu'elle connaît une information connue d'elle seule, sans donner davantage d'information que le fait qu'elle connaît cette information. En 2 ' clair, Alice va montrer qu'elle connaît les valeurs propres de F. Le protocole se déroule comme suit: Bob chiffre un message tiré au hasard dans le module sur l'anneau A des fractions de R avec Cl et l'envoie à Alice. A la réception, Alice vérifie qu'il est de la forme (f v) o f est une matrice 3x3 à coefficients dans A et v un vecteur de dimension 3 sur A. Si tel n'est pas le cas, alors Alice arrête le protocole. Sinon Alice déchiffre avec D1. On montre 0 facilement que le message obtenu est x' si le message de Bob est x et que chaque coordonnée de x' est dans la memrne classe d'équivalence que celle correspondante de x. Les deux vecteurs sont donc équivalents et, d'un point de vue théorique on a déchiffré le message. Néanmoins, d'un point de vue pratique, on a, numériquement, 2 vecteurs équivalents potentiellement différents. Il n'y a aucune raison théorique ou pratique pour favoriser une forme plutôt qu'une 3' 5' autre. Par contre, seul le détenteur des valeurs propres peut trouver un équivalent de x. A la réception de x' Bob vérifie l'équivalence des 2 vecteurs. Si tel n'est pas le cas, Bob refuse 2811172 d'identifier Alice, sinon Bob accepte. On démontre qu'un tel protocole est un protocole de preuve interactive Zero-knowledge au sens de Fiat-Shamir à résultat inconditionnelement indistingable. * 5. Signature Nous allons nous inspirer ici d'une technique due à JeanJacques Quisquater et Louis Guillou qui permet, à partir d'un système interactif de preuve zero-knowledge, de déduire un système de signature interactif Comme dans le paragraphe 2, Alice construit sa matrice publique F. On suppose ici que le message à signer est m E E. Comme dans le procédé Cl, Bob tire au hasard 3 vecteurs tels que {x, y, z} forme une base de E et on appelle g-l la matrice formée de ces vecteurs en colonne, ainsi que f=--g-1 Fg. f est envoyée à Alice. A la réception, Alice calcule comme dans le paragraphe 2, x, y et z ainsi que f(m) et le décompose sur la base {x, y, z}. Elle a ainsi f(m)=tl + t2 + t3. Alice tire alors au hasard 3 valeurs a, / et y et envoie à Bob le couple (atl +, it2 + yt3, (a)). Bob décompose f(m) sur la base {x, y, z}, obtient les ti, décompose atl +,/3t2 + yt3sur la base des ti, ce qui lui donne a,/3 et y et calcule "-() pour vérifier que la deuxième partie du couple correspond bien. On remarquera que cet algorithme marche quelque soit l'anneau considéré, commutatif ou non, anneau des fractions ou non. * 6. Le choix de l'anneau Dans les sections précédentes nous avons décrit des procédés qui marchent dans quasiment tous les types d'anneaux. Cependant, on peut ici donner quelques conseils judicieux et apporter des précisions. Tout d'abord, les procédés CI et Dl marchent dans tout anneau. Lorsque l'anneau est commutatif, il faut vérifier que le problème de trouver les valeurs propres est un problème difficile. A priori, mais de manière non exhaustive, un anneau local pourra marcher. Une façon de construire un tel anneau est de choisir dans un anneau R un idéal premier P. Soit S = R - P. Alors A = S-1 R est un anneau local. Pour le cas des preuves zero-knowledge et des signatures, l'anneau quotient d'un anneau non commutatif peut être choisi. Là encore, même si la construction est un peu différente, on pourra choisir un anneau local. Enfin, on n'est pas obligé d'être réellement dans un anneau. En effet, l'associativité de la multiplication n'est pas une condition nécessaire. Ainsi un anneau convenable pourrait être le suivant. Soit R=O, l'ensemble des octonions modulo n o n---pq est le produit de 2 nombres premiers. Soit S l'ensemble des éléments de R dont aucune des composantes n'est divisible par p. Considérons alors l'anneau non associatif des fractions A = S-' R. Les algorithmes précédents marchent dans un tel anneau. 6 2811172 Tout cela n'est donné qu'à titre d'exemple, les procédés décrits marchant dans quasiment toutes les structures à 2 opérations. * 7. Description en dimension 4 Les procédés de la dimension 3 peuvent être adaptés à la dimension 4. Nous A1 00 0 0 reprenons les mêmes notations que précedemment. Soit Fo = 0 0 la clé secrète 0 X 0 0À4 d'Alice o les Ai sont choisies au hasard non nulles et toutes distinctes. Alice tire alors au (î cr 0 0'j hasardune matrice h-l = et publie la matrice F = h-l F0 h. Un message est o0 pC 0 w & toujours un vecteur u E E, E qui est cette fois-ci de dimension 4 sur A. Chiffrement d'un message Bob veut envoyer u. Il tire alors au hasard x et pose y = u - x. I complète en choisissant au hasard z et t tels que {x, y, z, t} forme une base de E. Appelons g-1 = (gi j) la matrice formée des colonnes de ces vecteurs. Pour que les systèmes d'équations non linéaires puissent être résolus par la suite, il faut que certaines valeurs soient fixées connues, par exemple égales à 1. A titre d'exemple prenons gL,3 = gL,4 = 1. Bob envoie alors à Alice f=g-' Fg suivie d'un vecteur du type "(z,tXx + y) + z + t. Déchiffrement du message On raisonne comme au paragraphe 2 pour retrouver les vecteurs z et t en écrivant que le vecteur propre associé à À3 est proportionnel à g-1 0 eten écrivant que celui associé à È A4 est proportionnel à g-1 0. En résolvant les systèmes d'équations on obtient z et t et t O donc ((z, t) et donc u de manière évidente. Propriété particulière A partir de la dimension 4 on peut démontrer que le système résiste à une attaque adaptative à chiffré choisi, alors que dans le cas de la dimension 3 l'attaque ne doit pas être adaptative. 7 2811172 Généralisations Un tel schéma ou celui en dimension 3 peuvent être facilement généralisés à des dimensions supérieures à 4. Cela étant immédiat, nous n'irons pas plus loin dans la description de tels systèmes. Cependant, nous citerons pour mémoire le cas des dimensions supérieures ou égales à 5 pour lesquelles, en plus de la difficulté traditionnelle de trouver des valeurs propres vient s'ajouter, dans le cas d'un anneau commutatif en particulier, l'impossibilite de la résolution par radicaux du polynôme caractéristique. * 8. Variantes Nous présentons ici, de manière non exhaustive, quelques variantes des procédés précédents de façon à prouver la puissance du système. Ces variantes sont toutes en dimension 3 ou 4 mais se généralisent à d'autres dimensions très facilement. Nous ne donnerons ici que des descriptions partielles, le reste étant identique aux paragraphes précédents. De plus, sauf mention du contraire, nous nous intéresserons principalement aux aspects de chiffrement. 4 5 Variante numéro I Dans le procédé C1, au lieu d'envoyer à Alice (ú, ((y, z)x + y + z), Bob envoie directement (f. x+y+z). On démontre qu'aucune sécurité n'est apportée par un tel procédé s'il est sur un anneau commutatif Par contre, dès que l'anneau est non commutatif, la sécurité est assurée (via une conjecture qui est hors du cadre de ce texte). Ainsi le chiffrement et t O déchiffrement sont simplifiés d'autant pour un anneau non commuatif De même, cette variante peut être étendue à la preuve zero-knowledge du paragraphe 4 et à la signature du paragraphe 5. Variante numéro 2 On se place ici en dimension 4. Sous la condition que certains éléments de la matrice t 5 g-l soient connus et par exemple égaux à 1, on peut alors modifier le chiffrement comme suit. Supposons que l'équivalent d'une ligne de g soit connu, par exemple g4,1 = g4,2 = gl,3 = gl,4 = 1, alors il suffit à Bob d'envoyer la matrice f En suivant le même type de raisonnement que pour Dl Alice retrouve les vecteurs x, y, z et t et peut donc calculer x+y et z+t qui forme alors le message en clair. o Variante numéro 3 Nous allons donner ici un système de preuve interactive zero-knowledge en dimension 2; il nous faut pour cela une hypothèse supplémentaire, celle selon laquelle Alice sait trouver le valeurs propres d'une matrice 2x2 en temps polynomial déterministe. Soit F0 = (I 0) 0,k2 tirée au hasard par Bob. Ce dernier tire alors au hasard 2 vecteurs x et y formant une base de 3 5 E et soit g-l la matrice formée de ces vecteurs en colonne. Soit F=g-l F0 g. Bob envoie alors 8 2811172 à Alice le couple (F, x+y). Alice, qui sait retrouver les valeurs propres peut alors retrouver x et y et elle tire au hasard a et,/3, puis envoie à Bob (ax+,/3y,:(a)). A la réception, Bob, qui connaît la base de vecteurs propres {x, y} retrouve a et,/3 et calcule s(a) pour voir la correspondance avec le deuxième élément du couple qu'Alice lui a envoyé. Si tel est le cas, Bob accepte, sinon Bob refuse. Un tel algorithme est particulièrement bien adapté au cas o A=Z/nZ et n=pq comme dans le RSA. En effet, connaissant la factorisation de n, Alice peut facilement résoudre le polynôme caractéristique en utilisant, entre autre, le théorème chinois des restes et dans ce cas on peut par exemple choisir e(a) = ae2 mod n. Variante numéro 4 Nous donnons ici, en dimension 3 une version de preuve interactive zero-knowledge qui marche dans un anneau commutatif De même que dans le paragraphe 2, Bob chiffre un message tiré au hasard, x, à l'aide de Cl. Alice le déchiffre et obtient donc x, y et z. Elle renvoie donc à Bob (ax+,l3y+yz,"a()) et Bob vérifie alors comme dans la variante numéro 3. Des schémas similaires marchent dans toutes les dimensions. Nota Les variantes 3 et 4 donnent bien sûr naissance aux systèmes de signature interactifs du type Guillou-Quisquater. Variante numéro 5 Voici un système de chiffrement base sur la difficulté de trouver les valeurs propres d'un endomorphisme lorsqu'Alice connaît une information qui lui permet elle, de les calculer. C'est le cas typique o on travaille dans l'ensemble des entiers modulo n et ou seule Alice connaît la factorisation de n. Bob, lorsqu'il veut s'adresser à Alice, tire au hasard une matrice À1 0 0 diagonale F= O A2 0 et la garde sans modification tant qu'il correspond avec Alice. 0 0 À.3 Le /me message est un vecteur xi E E et Bob tire au hasard yi et zi pour que les 3 vecteurs forment une base de E. Soit alors gjl la matrice formée de ces vecteurs en colonne. Bob envoie à Alice (fi = gi-1 Fg1, "Yi, zi)xi + Yi + zi). Pour déchiffrer, Alice calcule les valeurs propres de fi (seulement pour le premier message, qui au passage peut être public pour faciliter encore les choses), et cherche une base propre de fi. Elle décompose ensuite (,yi, zi)x + Yi + zi sur cette base, obtient yi et zi donc "xi, y1) et par voie de conséquence xi. Variante numéro 6 Nous présentons ici une généralisation directe de l'algorithme présenté au paragraphe 2. Si n est la dimension de E, on considère une matrice nxn, clé publique d'Alice et de la forme F=( À 0) ou R est une matrice non diagonale comme dans le paragraphe 2 mais de taille (n-1)x(n-l) et qui a pour valeurs propres A2..., Àn. Le message est toujours un vecteur 9 2811172 de E et Bob envoie a Alice le message chiffré (f--g-1 Fg, (y, z, t,...)x+ y+z+t+...). Le déchiffrement est alors évident compte tenu de ce qui précède. a 9. La parallélisation Dans ce paragraphe, nous allons voir deux types de parallélisation. * 9.1. Parallélisation brute Ici, les opérations sont supposées câblées dans du hardware. Nous avons alors plusieurs briques de hardware pour réaliser les opérations. Le but est de diminuer au maximum le nombre de multiplications série que l'on va avoir à faire. Les opérations de base qui sont câblées sont la multiplication, I'addition, la soustraction et l'addition dans l'anneau A_ 81O Elle sont représentées schématiquement sur les figures I à 4. On peut alors définir la multiplication parallèle de 2 matrices. Prenons l'exemple en dimension 3. Si P=(Pij,) et si M=(Mij) alors on a PM = (aj) o u = 3=l MIkj Pi,.k. On remarquera que cette formule est valable que l'anneau soit commutatif ou non. La formule de multiplication des matrices sera indiquée selon le schéma figure 5 et le détail effectué est selon la figure 6. Sur cette A. dernière figure on peut constater que la multiplication de 2 matrices entre elles peut se faire en le temps d'une multiplication série, puisque pour i et j fixés on peut effectuer les 3 multiplications en parallèle. Conformément à la coutume, on néglige le temps de calcul des additions et soustractions. On pourrait continuer ainsi et détailler chaque opération nécessaire à l'exécution de chaque procédé décrit ci-dessus. La chose étant évidente, nous n'irons pas t O plus loin, mais il est aisé de concevoir un circuit électronique spécifique à chaque procédé qui effectue en parallèle le maximum possible d'opérations de façon à diminuer au maximum le temps de calcul vu par l'utilisateur. Ainsi, dans un anneau commutatif, le temps nécessaire, avec un tel circuit, pour calculer Cl est le temps de 5 multiplications séries. Pour cette évaluation, nous avons considéré que le temps d'une division est équivalent à celui d'une 2 5 multiplication, ce qui est courant mais peut être optimiste. A l'inverse, dans un anneau de fraction, le temps d'une division est négligeable. En ce qui concerne Dl, 7 multiplications série sont nécessaires. Dans les anneaux de fractions non commutatifs, ces temps peuvent varier quelque peu selon l'algorithme d'inversion choisi pour une inversion de matrice. Cependant, comme le o O temps d'une division est négligeable, on arrive la encore, à d'excellentes performances. * 9.2. Parallélisaton par microprocesseurs La parallélisation précédente a l'avantage de procurer les meilleurs débits possibles. Elle a cependant l'inconvénient de ne pas utiliser toute la puissance des procédés présentés ici. 2811172 En effet, dans le paragraphe 9.1., une fois l'anneau choisi, on ne peut plus en changer. Comme nous l'avons dit plus haut, en introduction, pour le RSA par exemple, le jour ou le problème de la factorisation est résolu, si c'est possible, tous les circuits intégrés qui effectuent cet algorithme sont bons à jeter à la poubelle. Pire, si l'on doute (c.f ce qui a été dit sur la NSA) on est prisonnier du système et il n'y a guère d'alternative. Nous proposons donc ici une parallélisation d'un type nouveau. Le lecteur est invité à reprendre les figure 1 à 4 précédentes, et à considérer que chaque "boîlte" est un microprocesseur pour lequel on peut programmer une opération dans l'anneau de son choix, et cela dans un langage évolué du type Mathematica. On peut alors créer des macro microprocesseurs comme celui de la figure 5 en parallélisant l'utilisation des premiers dans une structure du type de celui de la figure 6. C'est uniquement le compilateur qui insérera dans chaque partie adéquate le "morceau" d'algorithme convenable. En continuant ainsi, toujours avec le souci de la parallélisation, les procédés de chiffrement et déchiffrement se construisent comme des sortes de superprocesseurs. L'avantage de cette technique réside dans le fait que si on a un doute sur un anneau, on peut en changer immédiatement. Le problème est alors basé sur le cas très général de la recherche des valeurs propres d'un endomorphisme sur un module sur un anneau quelconque, voire, comme nous l'avons dit pour les octonions, sur une algèbre quelconque qui peut ne pas être associative. Ce problème, qui englobe celui de la factorisation, est très large et bien plus complexe que cette dernière. * 10. Une nouvelle fonction à sens unique Les fonctions à sens unique sont d'une importance capitale en tant que primitives cryptographiques. Dans ce cadre, il est toujours interessant d'en avoir de nouvelles à disposition, puisque certains protocoles formels existent et sont bâtis sur la conjecture selon laquelle de telles fonctions existent. Nous reprenons donc le procédé C1 mais dans un anneau de fractions non conmmnutatif o tous les éléments de g sont tirés au hasard et les valeurs propres choisies avec la distribution uniforme sur tout l'anneau et sont distinctes. Un tel procédé, Cil, est alors une fonction à sens unique qui à x associe une image. La difficulté de retrouver x réside dans le fait que dans un tel anneau, en général, la recherche d'un vecteur propre est très difficile (e.g. l'ensemble des vecteurs propres peut ne pas être un sous-module du module E). Bien entendu, cette fonction à sens unique peut se généraliser à n'importe quelle dimension Revendications 1. Procédé de cryptographie à clé publique de données enregistrées sous forme de bits sur un support exploitable par une ou plusieurs unités de calcul aptes à traiter des données d'entrée x pour fournir des données de sortie x', comportant au moins une étape de traitement de données, caractérisé par le fait que la ou les unités de calcul manipulent des matrices carrées à coefficients dans un anneau ou une algèbre, commutatifs ou non, associatifs ou non, les données d'entrée étant considérées commrnres des vecteurs appartenant à des modules sur ces anneaux ou algèbres, la manipulation binaire amenant en sortie éventuellement une matrice carrée ou un vecteur ou un scalaire ou deux options parmni les trois ou les trois à la fois, les coefficients restant toujours sur les mêmes anneaux ou algèbres. 2. Procédé cryptographique selon la revendication I caractérisé en ce que la matrice F constituant la clé publique est carrée et diagonalisable, en ce que la fabrication de la clé publique se fait en tirant une matrice à coéfficients dans l'algèbre sur laquelle on travaille, avec la distribution uniforme, et en ce que cette matrice doit être inversible. 3. Procédé cryptographique selon les revendications I et 2 caractérisé en ce que dans un mode de réalisation, le chiffrement du vecteur qui représente le message en clair constitue en la complétion de distribution uniforme (sur un sous-ensemble du module) de ce vecteur en base dans le module de travail, cette complétion étant "archivée" dans l'unité de calcul sous la forme d'une matrice carrée, chaque colonne de cette matrice étant constituée d'un des vecteurs de la base, le premier étant le message en clair, la continuation du chiffrement se faisant en changeant la matrice constituant la clé publique via un changement de base lié à la matrice de complétion ci-dessus évoquée, le résultat étant accompagné du vecteur "message en clair" multiplié, éventuellement, par le résultat de l'application d'une fonction à sens unique sur les coordonnées des vecteurs complétant la base, additionné de ces vecteurs de complétion. 4. Procédé cryptographique selon l'une quelconque des revendications précédentes, permettant la preuve d'identité zero-knowledge, caractérisé en ce que lors de l'utilisation d'un anneau ou d'une algèbre de fractions non commutative, dans le mode de réalisation de la revendication 3, le prouveur fournit au vérifieur le résultat de son déchiffrement comme preuve de connaissance, à savoir un vecteur égal au message en clair qui aura au préalable été tiré au hasard avec la distribution uniforme, l'égalité étant établie dans l'anneau ou l'algèbre de fractions non commutative concernée, mais en fait potentiellement un vecteur numériquement différent mais équivalent au message en clair, équivalence au sens de celle définie par la condition de Ore. 5. Procédé cryptographique selon les revendication 1, 2 et 3, permettant la signature électronique, caractérisé en ce qu'une fois la matrice f--gFg ayant été envoyée au "fabricant" de la clé publique F, ce dernier calcule le changement de base effectué sur F, décompose le message à signer sur la base du module ainsi obtenue et envoie une combinaison linaire de cette décomposition accompagnée de l'image par une fonction à sens i e2 2811172 unique de l'un des coefficients de la combinaison linéaire. 6. procédé cryptographique selon l'une quelconque des revendications précédentes, caractérisé en ce qu'un mode de réalisation met en oeuvre une parallélisation des calculs dans un circuit spécifique, ce circuit étant programmable ou non et donc, selon le cas, permettant le choix ou non, respectivement, de la structure d'anneau ou d'algèbre, retenue pour travailler. X