Rapport de Stage de Magistère sous la direction de Patrick Dehornoy Laboratoire de Mathématiques Nicolas Oresme Université de Caen Groupe de tresses et Cryptographie Juillet 2003 Cédric Milliet Table des matières Introduction 1 1 Le groupe de tresses 1.1 Tresses géométriques . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Présentation du groupe de tresses . . . . . . . . . . . . . . . . . . 1.3 Le monoı̈de des tresses positives Bn+ . . . . . . . . . . . . . . . . 3 3 4 6 2 Le problème de mot 2.1 Forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Une forme réduite : la réduction des poignées . . . . . . . . . . . 8 8 10 3 Un problème difficile du groupe de tresse 11 3.1 Construction d’un élément ã de SSS(a) . . . . . . . . . . . . . . 11 3.2 Construction de SSS(a) . . . . . . . . . . . . . . . . . . . . . . . 12 4 Application à la cryptographie 4.1 Cryptographie à clef secrète . . . . . . . . . . . . . . 4.2 Cryptographie à clef publique . . . . . . . . . . . . . 4.3 Pertinence du groupe de tresse . . . . . . . . . . . . 4.4 Cryptosystème à clef publique utilisant le groupe Bn Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 14 15 15 17 1 Introduction Ceci est le rapport d’un stage de première année de magistère, effectué à Caen au Laboratoire de Mathématiques Nicolas Oresme, sous la direction de Patrick Dehornoy. Outre le stage en lui-même, j’ai assisté au laboratoire de Caen à plusieurs conférences sur le paradoxe de Banach-Tarski et sur la cryptographie. J’ai également passé une semaine à Marseille au centre de Luminy à l’occasion des Journées tresses. Ce rapport a pour but d’introduire le groupe de tresses, d’expliquer en quoi il est un cadre priviligié à la cryptographie, et de présenter un cryptosystème à clef publique basé sur ce groupe. Le premier chapitre détaille la construction du groupe de tresses en partant de la notion géométrique de tresse, et en exhibe quelques propriétés, notamment la présentation du groupe en terme de générateurs et de relations. La présentation du groupe en terme de générateurs et de relations amène naturellement la question du problème de mots que l’on résout au chapitre 2. Le chapitre 3 expose un problème difficile du groupe de tresse, c’est-à-dire un problème dont il n’existe pas encore de solution efficace. C’est cette combinaison de la facilité du problème de mot et de la difficulté d’un autre problème, qui fait du groupe de tresses un cadre propice à la cryptographie. Tel est l’objet du dernier chapitre, où l’on présente un cryptosystème basé sur le groupe de tresses, après avoir expliqué le principe des cryptographies à clefs secrètes et publiques. 2 1 1.1 Le groupe de tresses Tresses géométriques Définition — Soit f une permutation de Sn . Une tresse géométrique à n brins associée à f est l’union de n arcs continus disjoints de R2 × [0, 1] joignant chaque point (i, 0) au point (f (i), 1), et telle que chaque plan horizontal R2 × {z} coupe chaque arc exactement une fois. Figure 1 — Une tresse géométrique à quatre brins On choisit pour l’axe des z la verticale orientée vers le bas. Chaque arc est appelé brin. On munit l’ensemble des tresses géométriques d’un produit : le produit de deux tresses géométriques a × b est obtenu en contractant a et b dans R2 × [0, 21 ] et R2 × [ 12 , 1] respectivement, puis en concaténant le tout. Figure 2 — Produit de deux tresses géométriques Le produit ainsi obtenu n’est en général pas associatif, puisque dans le produit (ab)c, la tresse c est contractée dans R2 × [ 12 , 1] au lieu de R2 × [ 43 , 1] dans le produit a(bc). Mais ce produit serait associatif si on permettait aux tresses d’être contractées ou dilatées. Ce qui nous suggère d’introduire la relation d’équivalence suivante sur les tresses géométriques à n brins : Définition — Deux tresses géométriques α et β sont dites isotopes s’il existe une application g de [0, 1] dans l’ensemble des tresses géométriques, continue pour la topologie usuelle sur R3 , et vérifiant g(0) = α et g(1) = β. — On appelle tresse à n brins une classe d’équivalence de tresses géométriques à n brins pour la relation d’isotopie. On note Bn l’ensemble 3 quotient correspondant. Géométriquement, la notion d’isotopie s’exprime comme suit : deux tresses sont isotopes si l’une peut être déformée continuement en l’autre, en laissant les extrémités {1, .., n} × {0, 1} fixes. Figure 3 — Deux tresses géométriques à 4 brins isotopes Le produit passe au quotient et confère à Bn une structure de groupe : l’inverse d’une tresse est la classe d’isotopie de image d’un de ses représentants dans le miroir de cote 12 , l’élément neutre est la classe de la tresse triviale, définie comme la tresse géométrique dont les brins ne se croisent pas. Remarque — On a défini une tresse géométrique comme étant une union d’arcs continus. Mais on aurait tout aussi bien pu considérer des arcs polygonaux, C 1 ou C ∞ . On obtiendrait alors le même groupe, toute tresse géométrique étant isotope à une tresse C ∞ , C 1 , ou polygonale. Remarque — On a un homomorphisme canonique de Bn sur Sn qui à une tresse associe la permutation f −1 . 1.2 Présentation du groupe de tresses On voudrait à présent trouver un alphabet pour coder les tresses. Pour ce faire, on considère les tresses géométriques projetées sur le plan y = 0. L’idée est que les projections de tresses isotopes sont entièrement caractérisées par les croisements de leurs brins (qui forment un alphabet fini). Définition — Une tresse géométrique est dit régulière si sa projection sur le plan y = 0 n’a aucun point triple et un nombre fini de points doubles, de cotes dans ]0, 1[ deux à deux distinctes. Lemme — Toute tresse géométrique α est isotope à une tresse régulière. 4 Démonstration — On peut supposer que α a deux brins. Soit p la projection de α selon l’axe y. On peut toujours supposer les brins de α rectifiables (car on peut les supposer C 1 ). Si p a un nombre dénombrable de points doubles (dn ), montrons que l’un des deux brins passe toujours devant l’autre pour n assez grand. Sinon, l’un des deux brins ferait une infinité de fois le demi tour de l’autre, parcourant à chaque demi-tour une longueur supérieure à πr (où r est la distance strictement positive entre les deux brins, compacts). Ceci contredirait le caractère rectifiable des brins. Il est alors facile de trouver une tresse α0 isotope à α dont la projection suivant y n’ait qu’un nombre fini de points doubles. Définition — On appelle diagramme de la tresse régulière α sa projection suivant l’axe y, avec la spécification du brin supérieur pour chaque point double. Figure 4 — Diagramme d’une tresse Lemme — Deux tresses géométriques régulières qui ont le même diagramme sont isotopes. En d’autres termes, on peut établir une bijection entre tresses à n brins et classes de diagrammes, et résonner à partir de maintenant en terme de diagrammes. Proposition — Le groupe de tresses à n brins admet la présentation suivante : hσ1 , ..., σn−1 ; σi σj = σj σi pour | i−j |≥ 2, σi σj σi = σj σi σj pour | i−j |= 1i (1) On définit σi comme étant le croisement des brins i et i + 1 dans le sens des aiguilles d’une montre, comme sur la figure 5. On peut alors décomposer un diagramme en un produit de σi±1 . Lemme — Des tresses géométriques α et β régulières dont les diagrammes ont le même code sont isotopes. Démonstration — On procède par récurrence sur le nombre de croisements n : Pour n = 1, c’est-à dire pour des tresses géométriques à deux S brins codées par σ1 , on prend pour g(t) la tresse géométrique tα1 +(1−t)β1 tα2 +(1−t)β2 où les indices 1 et 2 désignent respectivement les brins supérieurs et inférieurs. Pour n ≥ 1, on décompose α et β en produit de deux tresses dont les croisements sont strictement inférieurs à n et on applique la récurrence. 5 Figure 5 — Générateurs σi , σi−1 et relations Les relations de la présentation correspondent géométriquement au fait que σi σj et σj σi pour | i − j |≥ 2 codent des diagrammes de tresses isotopes, de même que σi σi+1 σi et σi+1 σi σi+1 , comme le montre la figure 5. Esquissons une démontration de la proposition 1. Soit Bn0 le groupe définit par la relation (1). Les relations d’isotopies illustrées par la figure 5 et le lemme précédent entraı̂nent l’existence d’un homomorphisme de Bn0 sur Bn . Le fait que cet homomorphisme soit injectif, c’est-à-dire le fait que les seules relations du groupe Bn soient les relations (1) et leurs conséquences, a été montré par Artin. 1.3 Le monoı̈de des tresses positives Bn+ Considérons la présentation de Bn , non pas comme celle d’un groupe, mais en tant que monoı̈de, c’est-à-dire que les mots ne comportent que les générateurs positifs. Définition — On note Bn+ le monoı̈de défini par la présentation hσ1 , ..., σn−1 ; σi σj = σj σi pour | i−j |≥ 2, σi σj σi = σj σi σj pour | i−j |= 1i On dit d’une tresse qu’elle est positive si elle appartient au monoı̈de Bn+ . Garside a montré que ce point de vue est fructueux pour deux raisons : Lemme — [Garside] L’application canonique de Bn+ dans Bn est injective. D’autre part, on peut remonter de Bn+ dans Bn : 6 Proposition 1 — Pour toute tresse β de Bn , il existe des tresses positives β1 et β2 dans Bn+ vérifiant β = β1−1 β2 Démonstration — On définit la tresse positive demi tour ∆n = (σ1 ...σn−1 )(σ1 ...σn−2 )...(σ1 σ2 )(σ1 ) Figure 6 — Le demi tour ∆4 Il est trivial que le tour complet ∆2n appartient au centre de Bn , lorsqu’on remarque l’égalité x∆n = ∆n φ(x) pour toute tresse x, où φ est le morphisme involutif défini par φ(σi ) = σn−i (on peut en fait montrer que ∆2n engendre le centre). On observe ensuite que, pour tout i, la tresse σi−1 ∆2n possède un représentant positif à n(n − 1) − 1 croisements. Il est alors facile, étant donné un mot w de trouver un mot équivalent du type w1−1 w2 en remplaçant chaque σi−1 par σi−1 ∆2n ∆−2 n et en décalant tous les tours complets inversés à gauche par exemple. Il n’y a pas unicité de cette décomposition (considérer par exemple σ1−1 σ2−1 σ2 σ3 et σ1−1 σ3 ). On remarque que, les relations de tresse ne changeant pas le nombre de lettres d’un mot positif, le monoı̈de est muni d’une longueur additive, que l’on notera `. 7 2 Le problème de mot On vient de voir que les tresses peuvent être codées par des mots en les σi±1 . Le codage n’est pas unique : plusieurs mots peuvent représenter la même tresse. Se pose donc la question : comment reconnaı̂tre si deux mots codent une seule et même tresse ? Pour résoudre ce problème, il suffit de trouver une manière de distinguer, parmi tous les mots représentant la même tresse, un mot unique. Une solution plus générale consiste à trouver une application red que l’on appellera réduction qui prenne comme entrée un mot de tresse w et en retourne un autre, sa f orme réduite, et qui satisfasse la propriété suivante : w représente la tressse triviale si et seulement si red(w) est le mot vide. D’où le résultat que w et w0 sont deux mots équivalents si est seulement si le mot red(ww0 ) est vide. 2.1 Forme normale Nous allons voir comment choisir un unique représentant pour chaque tresse. Restreignons-nous tout d’abord au monoı̈de Bn+ . Définition — Soient x et y dans Bn+ . On dit que x divise y à gauche s’il existe z dans Bn+ vérifiant y = xz. On dit également que y est un multiple à droite de x, et on note x y. La relation est une relation d’ordre sur Bn+ . Proposition — Dans Bn+ , deux éléments x et y admettent, pour la relation d’ordre , un pgcd, c’est-à-dire un diviseur à gauche commun qui soit un multiple à droite de tout diviseur à gauche commun, ainsi qu’un ppcm, c’est-à-dire un multiple à droite commun qui divise à gauche tout multiple à droite commun. Définition — On notera respectivement x ∧ y et x ∨ y le pgcd et le ppcm de x et y. Nous aurons besoin du lemme suivant, analogue au lemme de Gauss et que nous admettrons. Lemme — Soit a élément de Bn+ et i, j deux entiers distincts compris entre 1 et n − 1. Si σi et σj divisent a, alors σi σj également. Démonstration — pgcd. Notons D l’ensemble des diviseurs à gauche de x et y. D est non vide puisqu’il contient la tresse triviale. On prend δ un élément de D de longeur maximale. Montrons par l’absurde que tout élément de D divise δ. Sinon, il existerait d divisant δ et un σi vérifiant dσi ∈ D (∗) et dσi δ (∗∗). On peut toujours supposer que d est de longueur maximale. Construisons un d0 plus grand. Comme d divise δ et puique `(d) est strictement plus petit que `(δ), on peut trouver un j tel que dσj divise δ (avec i 6= j). Alors, dσi et dσj sont dans 8 D, et, d’après le Lemme, dσj σi aussi. d0 = dσj et σi vérifient (∗) et (∗∗) (grâce aux relations de tresse), ce qui contredit la maximalité de d. L’unicité du pgcd est évidente car il est nécessairement de longueur maximale parmi les diviseurs communs. ppcm. Considérons x−1 y. On peut l’écrire sous la forme uv −1 avec u et v dans Bn+ , d’après un équivalent à droite de la proposition 1. Alors xu est un multiple commun de x et y. L’ensemble M des multiples communs est donc non vide. Soit µ de longeur minimale et m dans M . L’élément µ ∧ m est un multiple de x et de y donc est dans M . Comme `(µ ∧ m) ≤ `(µ), on a nécessairement égalité des longueurs, et donc µ ∧ m = µ. D’où l’existence. L’unicité est immédiate, le ppcm étant de longeur minimale dans M . Notons la place de l’élément de Garside ∆n (le ”demi tour”), centrale à plus d’un titre puisque d’une part, ∆2n engendre le centre de Bn , et que d’autre part, l’ensemble des diviseurs de ∆n , est en bijection avec Sn . Définition — Les diviseurs de ∆n sont appelés les tresses simples. On note Sn l’ensemble des tresses simples. On aimerait représenter une tresse positive β par un suite de permutations, ce qui est possible puisque tous les générateurs d’Artin sont simples. Mais on voudrait choisir une suite unique pour chaque tresse. Il suffit pour cela de définir s1 le pgcd de ∆n et de la tresse β et d’itérer le procédé aux restes successifs. Ce processus est fini puisque la longueur du reste diminue strictement à chaque itération (tous les générateurs d’Artin divisent ∆n ). On obtient donc une suite finie d’éléments simples (si )i , unique par unicité du pgcd, en posant β = s1 ...sp avec ∀i ≤ p si = ∆n ∧ si ...sp (2). On obtient ainsi un unique représentant pour chaque tresse positive sous forme d’une suite de tresses simples, donc, de façon équivalente, de permutations (π1 , ..., πp ). Remarque — On a défini les tresses simples comme étant les diviseurs de ∆n , mais il existe d’autres définitions équivalentes : ce sont les tresses positives les plus courtes associées à une permutation, ou les classes des tresses géométriques dont deux brins se croisent au plus une fois (positivement). Revenons au groupe Bn . Pour y étendre la forme normale précédente, on ne peut utiliser la proposition 1 car il n’y a pas unicité de la décomposition comme fraction. On peut cependant s’inspirer de la démonstration de la proposition pour étendre la forme normale de Bn+ à Bn : Lemme — Pour β élément de Bn , il existe un unique entier r et une unique tresse positive α vérifiant β = ∆−r n α et ∆n α. Toute tresse β s’écrit donc de façon unique sous la forme β = ∆−r n s1 ...sp , où les si sont des tresses simples vérifiant (2), ce qui permet de représenter une tresse par sa forme dite normale, à savoir une suite finie formée d’un entier et de permutations (r, π1 , ..., πp ). 9 2.2 Une forme réduite : la réduction des poignées La réduction des poignées est une méthode permettant d’exhiber un représentant σ-positif ou σ-négatif, d’un mot de tresse w non équivalent au mot vide. Elle est donc une solution efficace au problème de mot. L’idée en est simple : si w n’est ni σ-positif ni σ-négatif et si i est le plus petit indice apparaissant dans w, alors σi et σi−1 apparaissent tous deux. w contient donc nécessairement des éléments du type σi±1 uσi∓1 où u ne contient aucun indice inférieur ou égal à i. Définition — On appelle σi -poignée tout mot de tresse du type σi±1 uσi∓1 où −1 u ne contient aucun indice inférieur ou égal à i, et telle que soit σi+1 soit σi+1 n’apparaisse pas dans u. fig Définition — Soit v = σie uσi−e une σi -poignée. Soit red(v) le mot obtenu à ±1 −e ±1 e partir de u en remplaçant chaque σi+1 par σi+1 σi σi+1 . On dit d’un mot de tresse w0 qu’il est obtenu par réduction des poignées à partir de w s’il on peut transfromer w en w0 en remplaçant itérativement des poignées du type v par red(v). fig La poignée σi σi−1 est un cas particulier de poignée : la réduction des poignées est une généralisation de la réduction libre (qui suffit à résoudre le problème de mot dans les groupes libres). Cependant, il n’est pas clair que la réductin des poignées soit un processus fini. On admettra la proposition suivante [...] : Proposition — Soit w un mot de tresse de longuer l. Alors w est équivalent au mot vide si et seulement si toute suite de réduction de w se termine au mot vide. De plus, toute suite de réduction de w se termine en un temps au plus exponentiel en l. 10 3 Un problème difficile du groupe de tresse Le groupe de tresse possède plusieurs problèmes réputés difficiles, c’està-dire n’ayant pas à ce jour de solutions efficaces. Nous nous intéressons à certains problèmes de conjugaison. Deux éléments x et y d’un groupes sont dits conjugués s’il existe un g dans le groupe vérifiant x = gyg −1 . La relation de conjugaison est une relation d’équivalence. Problème de conjugaison — Etant donnés deux éléments de Bn , déterminer s’ils sont conjugués. Problème de recherche du conjugant — Etant données deux tresses x et y conjugués dans Bn , trouver un élément a de Bn vérifiant x = aya−1 . Les deux problèmes ci-dessus sont réputés difficiles, non pas qu’ils soient insolubles, mais car il est n’existe pas à l’heure actuelle d’algorithme en temps polynomial permettant de les résoudre. On présente ici l’algorithme de Elrifai et Morton (1994) permettant de résoudre le problème de conjugaison. Le principe est le suivant : étant donnée une tresse a, on construit un sous-ensemble fini SSS(a) de la classe de conjugaison de a. L’ensemble SSS(a) ne dépendant que de la classe de conjugaison de a, a et b sont conjugués si et seuleument si SSS(a) = SSS(b). Définition — Soit a dans Bn et ∆−r n a1 ...ap la forme normale de a. On définit l’infimum, le supremum et la longueur canonique de a respectivement par inf (a) = −r, sup(a) = −r + l et k a k= p. Définition — On note C(a) la classe de conjugaison de a. On définit le grand infimum, le grand supremum et la grande longueur de a respectivement par max{inf (x) : x ∈ C(a)}, min{sup(x) : x ∈ C(a)} et min{k x k: x ∈ C(a)}. Définition — On définit le Super Summit Set SSS(a) de a comme l’ensemble des éléments C(a) de grande longueur minimale. On admet que SSS(a) est un ensemble fini. 3.1 Construction d’un élément ã de SSS(a) Définition — Soit a dans Bn et ∆−r n a1 ...ap la forme normale de a. On appelle cylage et décyclage les fonctions c et d définie par r c(a) = ∆−r n a2 ...ap τ (a1 ) −r d(a) = ∆−r (ap )a1 ...ap−1 n τ 11 où τ est l’automorphisme de Bn dans Bn définit par τ (a) = ∆−1 n a∆n . Proposition — Les tresses c(a) et d(a) sont conjugués à a. On a les inégalités suivantes : inf (a) ≤ inf (c(a)) et sup(a) ≥ sup(d(a)). Démonstration — On a l’égalité τ r (a1 )c(a) = ∆−r a1 a2 ...ap τ r (a1 ) = aτ r (a1 ) montrant que a et c(a) sont conjugués. Il en va de même pour d(a). — De plus, c(a) s’écrit sous la forme ∆−r y avec y dans Bn , d’où l’inégalité inf (a) ≤ inf (c(a)). — Enfin d(a) s’écrit sous la forme ∆−r z avec z dans Bn . Puisque p z divise ∆n , on a k z k≤ p. D’où l’inégalité sup(a) ≥ sup(d(a)). Pour trouver un élément ã de grande longeur minimale, on cherche un élément d’infimum maximal dont on va, par décyclage, diminuer le supremum jusqu’à atteindre le grand supremum (tout en conservant l’infimum maximal). Soit a dans Bn tel que inf (a) ne soit pas égal au grand infimum de a. On peut essayer d’augmenter l’infimum en répétant l’opération de cyclage à a. On admet qu’il existe k, entier positif borné par `(∆n ) vérifiant inf (ck (a)) > inf (a). En itérant le cyclage de a, on trouve donc un élément â conjugué à a, d’infimum maximal. Après avoir calculé â, on essaie de diminuer le supremum en itérant le décyclage de â. L’opération aboutit nécessairement, en admettant le résultat suivant : si le supremum de a n’est pas le grand supremum, il existe un entier positif k borné par `(∆n ) vérifiant sup(dk (a)) < sup(a). En appliquant un nombre fini de fois à a les opérations de cyclage et de décyclage, on obtient donc un élément ã d’infimum maximal et de supremum minimale : ã est donc de longeur canonique minimale, c’est-à-dire qu’il appartient au Super Summit Set de a. 3.2 Construction de SSS(a) A partir d’un élément ã, on construit tout le SSS(a) grâce à la proposition suivante : Lemme — Pour toute paire de tresse x et y, on a xy ∧ ∆n = (x(y ∧ ∆n )) ∧ ∆n Démonstration — Il suffit de montrer que pour toute tresse simple s, s 4 xy équivaut à s 4 x(y ∧ ∆n ). Puisque s est simple, s divise ∆n . L’égalité s∆n = ∆n φ(x) entraı̂ne que s divise x∆n . De s 4 xy, on déduit donc la relation s 4 x(y ∧ ∆n ). L’autre implication est claire. Proposition — Soit u et v deux éléments conjugués de Bn . Il existe une suite u1 , u2 , ..., uk vérifiant u1 = u et uk = v, telle que pour tout i entre 1 et k − 1, 12 ui et ui+1 soient conjugués par un simple. Démonstration — Posons u = cvc−1 et soit s1 ...sp la forme normale de c. On −1 + va montrer par récurrence sur k que s−1 k ...s1 us1 ...sk est dans le monoı̈de Bn pour tout entier k compris entre 1 et p. Pour k = 1, on a, d’après le corollaire s1 ...sp v ∧ ∆n = us1 ...sp ∧ ∆n = (u(s1 ...sp ∧ ∆n )) ∧ ∆n = us1 ∧ ∆n Puisque s1 est simple, s1 divise s1 ...sp v ∧ ∆n , donc us1 ∧ ∆n , et également us1 . s−1 us1 est donc dans le monoı̈de Bn+ . −1 + Pour k > 1, supposons que s−1 k−1 ...s1 us1 ...sk−1 soit dans Bn . Toujours d’après le corollaire, on a −1 −1 −1 sk ...sp v ∧ ∆n = s−1 k−1 ...s1 us1 ...sk−1 sk ...sp ∧ ∆n = sk−1 ...s1 us1 ...sk−1 sk ∧ ∆n . −1 −1 −1 sk divise donc s−1 k−1 ...s1 us1 ...sk−1 sk , donc sk ...s1 us1 ...sk est dans le monoı̈de + Bn . On construit alors tout le SSS(a) en définissant V1 = {ã} et en calculant par récurrence Vi = {s−1 vs : s ∈ S, v ∈ Vi−1 } ∩ SSS(a) Comme la tresse triviale est simple, la suite Vi est croissante. D’après la proposition précédente, la suite Vi stationne à partir d’un certain rang k, et on a SSS(a) = Vk . Alors, a et b sont conjugués si et seulement si b̃ appratient à SSS(a). La difficulté du problème vient entre autre du cardinal de l’ensemble des éléments simples S, qui est n!. 13 4 Application à la cryptographie Nous nous intéressons dorénavant à la confidentialité des transmissions entre deux individus que l’on nommera Bob et Alice. 4.1 Cryptographie à clef secrète Une manière naı̈ve de crypter un message consiste à en échanger les lettres, ou à les permuter. C’est l’un des premiers exemples de cryptographie à clef secrète : la clef est la technique utilisée par l’expéditeur pour crypter le message et nécessaire au récipiendaire pour le décrypter. Mais on peut casser les codes fondés sur une combinaison de permutations et de substitutions par une analyse statistique, les lettres de l’alphabet ne se rencontrant pas toutes avec la même fréquence dans une langue donnée. En français par exemple, les lettres les plus utilisées sont le e, suivi du s, du a, puis du n... En 1917, Gilbert Vernam élabore un chiffre dit à usage unique, qui, correctement utilisé, est incassable : le message de Bob est tout d’abord converti en une suite M de 0 et de 1 (grâce au code ASII par exemple). Bob choisit ensuite une clef K, suite aléatoire de 0 et de 1 qui constitue la clef secrète, de même taille que le message à crypter. Bob calcule le message crypté C défini par l’égalité C = M ⊕ K où ⊕ est l’addition dans Z/2Z. Bob transmet enfin à Alice le message crypté C, par une voix non nécessairement sécurisée, et Alice calcule le message M qui n’est autre que C ⊕ K (car K ⊕ K est nul). On utilise généralement l’opération ⊕ par tradition et simplicité, mais tout autre loi de groupe conviendrait. Problème majeur posé par un tel chiffre : la transmission de la clef secrète K, secret commun entre l’expéditeur et le récipiendaire. 4.2 Cryptographie à clef publique En 1976, Whitfield Diffie et Martin Helman proposent une solution au problème des clefs secrètes, en montrant qu’il est possible d’acheminer un message secret sans avoir à échanger de clefs : Bob et Alice disposent chacun d’une clef secrète. Bob crypte le message avec sa clef, l’envoie à Alice qui le recrypte avec la sienne, avant de le renvoyer à Bob. Bob recoit un message doublement crypté, supprime son cryptage et le renvoie à Alice. Alice n’a plus qu’à le décrypter avec sa clef pour retrouver le message initial, pourvu que les deux opérations de cryptage commutent. La cryptographie à clef publique s’inspire de cette idée : Alice et Bob possèdent chacun une clef secrète a et b, et publient tout deux une clef publique pa et pb , dont la connaissance leur permet de calculer une clef secrète K partagée, qui permet de chiffrer le messsage suivant la cryptologie à clef secrète. 14 La contrainte principale est que la connaissance des clefs publiques ne doit pas permettre de retrouver les clefs secrètes : on doit pouvoir calculer aisément K à partir de a et pb , mais retrouver K, c’est-à-dire a ou b à partir de pa et pb doit être impossible. En d’autres termes, on cherche à construire une fonction f dite à sens unique, c’est-à-dire dont les images soient simples à calculer, mais impossible à inverser. 4.3 Pertinence du groupe de tresse Le groupe de tresse Bn fournit un cadre adapté à la cryptographie à clef publique pour plusieurs raisons : (o) Une tresse est facilement manipulée par un ordinateur en terme de mot, sans aucune ambiguité puisque le problème de mot est résolu par un algorithme efficace. On suppose désormais toutes les tresses sous formes normales. (i) Bien que non commutatif, le groupe de tresses Bn possède des sous-groupes commutant entre eux : notons DB r le sous groupe de Bl+r engendré par σl+1 ,...,σl+r−1 . C’est le sous-groupe de Bl+r où sont tressés les r brins de droite. Bl et DB r commutent entre eux. (ii) Le produit de deux tresses se calcule de manière facile et efficace, puisqu’il correspond à la concaténation de deux mots. Le produit ab de deux tresses a et b est en fait la forme normale du produit, de sorte qu’il est impossible de reconnaı̂tre a ou b connaissant leur produit. (iii) Le groupe de tresses possède des problèmes difficiles, propices à la construction d’une fonction à sens unique, comme le problème de conjugaison. 4.4 Cryptosystème à clef publique utilisant le groupe Bn Bob a un message M , élément de {0, 1}k , à envoyer à Alice. Alice et Bob choisissent publiquement une tresse x à l + r brins, puis suivent le protocole : 1. Génération des clefs a) Bob choisit une tresse b dans Bl et envoie à Alice la tresse bxb−1 notée pb . b) Alice choisit une tresse a dans RBr et envoie à Bob la tresse axa−1 notée pa . c) Alice recoit pb et calule la clef secrète K définie par apb a−1 . d) Bob recoit pa et calule la clef secrète K définie par bpa b−1 . a et b sont les clefs secrètes, (x, pa ) et (x, pb ) les clefs publiques. Puisque a et b commutent, on a bien l’égalité apb a−1 = bpa b−1 . 2. Cryptage du message M a) Bob calcule le message crypté C défini par H(K) ⊕ M , H étant une fonction de hachage, de Bl+r dans {0, 1}k . 15 b) Bob envoie le message C à Alice. 3. Déryptage du message C Alice calcule M qui n’est autre que H(K) ⊕ C. La sécurité du cryptosystème présenté repose sur la difficulté du problème de recherche du conjugant, puisque casser le cryptosystème revient à résoudre ce problème. 16 Références [1] P. Dehornoy., I. Dynnikov, D. Rolfsen, B. Wiest, Why are braids orderable ?, Panoramas et synthèse, Société Mathématique de France, 2003 . [2] P. Dehornoy, Braids and self-distributivity, Progress in Math. vol. 192, Birkhäuser 2000. [3] P. Dehornoy, L’art de tresser, Pour la Science. [4] N. Franco, J. Gonzales-Meneses, Conjugacy problem for braid groups and Garside groups, arXiv : math.GT\0112310 v2 28 Aug 2002. [5] K. H. Ko, S. J. Lee, J. H. Cheon, J. W. Han, J. S. Kang, C. Park, New public-key cryptosystem using braid groups, Crypto 2000, 166-184. [6] J. Michel, A note on words in braid groups, Journal of Algebra 215, 366-377, 1999. [7] Pour la Science, L’art du secret, Dossier hors-série juillet/octobre 2002. [8] H. Sibert, Algorithmique des tresses, Thèse de Doctorat, Université de Caen, 2003. 17