Des verrous et des clés

par Florent Jobard

 

 


« Sésame, ouvre-toi ! »

Transmettre ce qui doit rester secret. S’entendre, sur le codage et sur la clef à utiliser, pour d’un côté, brouiller le message, et de l’autre, le décrypter. Le tout dans le plus grand secret, afin que l’ennemi ne se doute de rien. Mais aussi percer son propre mode de communication et déjouer ainsi ses stratégies. Lire sans être lu. C’est là tout l’enjeu de la cryptographie : la science du chiffre. Une science faite, en somme, de verrous et de clefs. C’est aussi un affrontement perpétuel, qui n’a jamais cessé depuis plus de deux mille ans, et qui oppose les concepteurs et les briseurs de code. Armées de l’ombre, héros discrets, ce sont eux pourtant qui, en amont des décisions, dictent la guerre. La Troisième Guerre mondiale sera-t-elle celle du renseignement ? C’est ce que pensent certains… mais rendons à César ce qui lui appartient…

I. De César au monde contemporain

1. Les cryptosystèmes de César

On connaît de César bien des astuces pour communiquer avec ses acolytes. L’un de ses procédés consistait à raser la tête d’un esclave, d’inscrire le message sur le sommet de son crâne, puis d’attendre patiemment la repousse des cheveux – on n’avait pas à l’époque la même notion de l’urgence ! Un autre consistait à remplacer l’alphabet latin par le grec. Les Germains n’avaient ainsi aucune chance de le lire. Un autre encore, connu sous le nom de système de César, consistait à décaler toutes les lettres du texte clair un certain nombre de fois vers la droite. Apprenant, par exemple, que d’irréductibles gaulois tenaient tête à son armée dans une région reculée de l’empire, il aurait écrit au malheureux centurion : « Yhqldp, ylgher, ylqfdp ». Après décalage de trois crans, cette fois-ci vers la gauche, le dit centurion aurait découvert avec soulagement : « Veniam, videbo, vincam », promesse (vaine) d’une victoire prochaine.

Message caché, message brouillé, il n’en reste pas moins que le mode de transmission n’est pas exempt de tout risque. Dans le premier cas, l’esclave pouvait trahir, offrir ses bons et loyaux services à l’ennemi en échange d’une forte somme. La substitution des deux alphabets, quant à elle, n’offrait qu’un codage éphémère, nos barbares finiraient bien par apprendre les rudiments de la langue grecque ; pire encore, l’armée romaine abritait peut-être en ses rangs quelques traîtres grecophones. Le système de César, enfin, semble bien meilleur que les deux autres : le message tombant dans les mains de l’ennemi ne trahirait rien de son contenu. Mais un esprit avisé et patient du camp ennemi saura peut-être le déchiffrer, puisque ce système de cryptage ne dispose que d’un nombre limité de clefs : l’alphabet ne comportant que 26 lettres, il n’offre que 25 possibilités de codage.

2. La cryptanalyse des Arabes

Les concepteurs de code ont alors travaillé à découvrir un système de cryptage dont le nombre de clefs serait tel que les briseurs de code ne pourraient en venir à bout. L’un d’eux est le codage par substitution : chacune des lettres de l’alphabet est remplacée par une autre. Le a est remplacé par le x, le b par le t, etc. Le nombre de clefs est énorme : 26 possibilités pour le a, qui peut être remplacé par le a, le b, …, ou le z ; 25 possibilités pour le b, qui peut être remplacé par toutes les lettres de l’alphabet, exceptée celle qui remplace le a. Pour la substitution de ces deux premières lettres, il y a donc 26x25, soit 650 possibilités. On réitère le processus jusqu’à la dernière lettre de l’alphabet, z, et le nombre de clefs s’élève à 26x25x24x…x3x2x1, soit plus de 400 millions de milliards de milliards de clefs. Oups ! Impossible dans ces conditions de toutes les essayer… Aussi ce mode de cryptage était réputé inviolable.

Pourtant, dès le IXe siècle, les cryptographes arabes savaient briser ce code. Comment ? Chaque lettre étant remplacée par une autre et une seule, ce procédé cachait en fait un terrible défaut, celui de la conservation des fréquences. Si, dans le texte clair, la lettre e apparaît 24 fois, alors la lettre qui a pris sa place dans le texte chiffré apparaîtra également 24 fois, ni plus, ni moins. Ainsi, si l’on sait que le message est écrit en langue française, comme la lettre e en est la plus fréquente, il suffira de repérer la lettre la plus fréquente du texte chiffré, qui aura toutes les chances de correspondre à la lettre e. La seule analyse de la fréquence des lettres ne permet pas, évidemment, un déchiffrement complet du texte : il se peut qu’une lettre, bien qu’elle soit peu fréquente dans la langue utilisée, apparaisse de nombreuses fois dans le texte clair. Néanmoins, à force de tâtonnements, basés non seulement sur l’analyse de la fréquence des lettres mais aussi sur celle de groupements de deux lettres ou plus, le texte pourra avec un peu de bon sens être déchiffré. Intuition, conjecture, astuce et une dose certaine de patience font voler en éclat tout codage par substitution.

3. DES : un système sûr

Dans cette guerre secrète que se livrent depuis des siècles les cryptographes (les concepteurs de code) et les cryptanalystes (ceux qui tentent de les briser), il est clair que ces derniers avaient pris le dessus. Chaque message expédié était susceptible de tomber dans des mains ennemies et d’être lu par un expert en déchiffrement. Le 8 février 1587, la reine d’Ecosse Marie Stuart en fit d’ailleurs les frais, puisque le décryptage de ses lettres par l’analyse des fréquences mit au jour sa participation au complot contre la reine d’Angleterre Elizabeth, contrainte alors à la condamner à mort par décapitation.

Aussi, avec la multiplication des échanges, les cours européennes devaient se munir d’un code fiable. Un nouveau chiffre vit le jour dans la première moitié du XVIe siècle, dû à un diplomate français, Blaise de Vigenère. La grande avancée résidait dans le fait que plusieurs lettres pouvaient remplacer une seule et même lettre. Ainsi, la lettre e pouvait être remplacée, au sein d’un même message, tantôt par un t, un c, un s, etc. L’analyse directe des fréquences n’était donc plus possible. Le remplacement des lettres répondait à une procédure bien précise que l’expéditeur et le destinataire devaient suivre pour parvenir, l’un, à chiffrer le texte, l’autre, à le déchiffrer. Or, cette procédure, quoique construite autour d’un mot-clef secret échangé au préalable par nos deux protagonistes, faisait malheureusement apparaître quelques régularités. C’est ce que perçut un certain Charles Babbage, au milieu du XVIIIe siècle, soit deux siècles plus tard. La faille étant décelée, il ne fit alors qu’une bouchée du système de Vigénère. Les cryptanalystes prenaient à nouveau le dessus sur les cryptographes.

Cependant, plus d’un siècle plus tard, fut inventé un système standardisé de chiffrement, le DES[1], répondant aux besoins nouveaux de l’information et de la communication. Il ne souffrait d’aucune régularité, d’aucune faille donc, et son nombre de clefs, qui s’élevait à 100 millions de milliards, assurait enfin la confidentialité des échanges. Ce système est toujours d’actualité.

4. Atouts et limites du DES

Pour que l’expéditeur du message puisse utiliser le système DES, il lui faut choisir une clef, autrement dit un nombre, qu’il entre dans son ordinateur, qui fera le reste, à savoir crypter le message – rappelons que tout texte tapé sur le clavier d’un ordinateur est immédiatement converti par celui-ci en un nombre composé de 0 et de 1. Véritable clef de voûte du système, ce nombre, sur lequel repose tout l’édifice et vers lequel convergent tous les regards, le destinataire l’entrera à son tour dans son propre ordinateur, qui décryptera le message. Plusieurs bonds ont été franchis depuis l’Antiquité. A l’inverse du système de César, le système DES est connu de tous : de l’expéditeur, du destinataire, mais aussi de l’ennemi. La force du DES ne réside plus dans le secret du mode de cryptage – ce qui était la force du système de César – mais dans son grand nombre de clefs qui est passé de 25 à un nombre qui dépasse l’entendement – on pourrait dire en quelque sorte que la force de la clef s’est substituée à celle du verrou. De plus, le système DES ne dépend plus de la fiabilité de l’intermédiaire, si ce n’est celle de l’ordinateur.

Mais ce système DES, comme tous les systèmes de cryptage qui l’ont précédé, repose sur l’échange d’une clef, d’un secret : tondre la tête d’un esclave, décaler les lettres de trois crans vers la droite, ou encore entrer un nombre dans son ordinateur. Or, ce secret, il a bien fallu que les principaux intéressés, l’expéditeur et le destinataire du message, se le communiquent. Avec la multiplication exponentielle des échanges, on se doute aisément que ce fut là un véritable problème. Comment transmettre la clef ?

II. Ne plus transmettre la clef

L’idée est la suivante : et s’il suffisait, non plus de se transmettre la clef, mais de la construire à partir d’une série de calculs élémentaires ? La première partie de cette série s’effectuerait au grand jour, afin que l’expéditeur et le destinataire partent sur les mêmes bases de calcul, et la seconde s’effectuerait secrètement, sans même que les deux protagonistes ne s’échangent quoi que ce soit. L’ennemi n’assisterait ainsi qu’à une partie de ces échanges, la première, et ne pourrait donc connaître la clef commune. C’est cette idée que poursuivirent dans les années 70 trois chercheurs acharnés, Diffie, Hellmann et Merkle. Mais avant de pénétrer leur système, il nous faut nous attarder sur une notion arithmétique : le modulo.

1. Modulo

Pour comprendre cette notion, prenons l’exemple le plus parlant : le modulo 12. Si l’aiguille de ma montre est positionnée sur le 7, et que je lui fais faire un tour de cadran, elle sera à nouveau positionnée sur le 7. Comme un cadran est composé de 12 positions, cela signifie qu’en modulo 12, le nombre 7 + 12 qui correspond à un tour de cadran à partir du 7, soit 19, équivaut au nombre 7. Ce résultat se note 19 = 7 mod 12, ou encore 19 = 7 [12]. Dire qu’il est 19h revient à dire qu’il est 7h de l’après-midi. Et si je recommence l’expérience, comme 19 + 12 = 31, j’obtiens une nouvelle égalité : 31 = 19 = 7 [12]. De 7 à 31, j’ai effectué deux tours de cadran. Que vaudrait alors 135, par exemple, en modulo 12 ? Pour le savoir, il me faut tout d’abord trouver le multiple de 12 se rapprochant le plus de 135. Ce multiple est 11, puisque 12x11 = 132. Dans ce cas, j’ai fait faire 11 tours de cadran à l’aiguille de ma montre. Ensuite, comme il manque 3 pour obtenir 135 (qui est donc égal à 12x11 + 3), j’obtiens : 135 = 3 [12]. Le résultat du modulo n’est autre que le reste de la division de 135 par 12.

Prenons garde au fait que les égalités obtenues en modulo 12 ne sont plus valables en d’autres modulos. Notre 135 n’est plus égal à 3 si l’on passe en modulo 10. En effet, 135 qui se décompose en 10x13 + 5, est égal à 5 modulo 10.

2. Fonction non réversible

Ce petit détour effectué, nous sommes maintenant en mesure de comprendre une notion clef – c’est le cas de le dire – de la cryptographie, celle de fonction à sens unique.

Commençons par les fonctions les plus simples, celles qui sont réversibles. Prenons pour comprendre l’exemple de la fonction 3x.

Dans le sens direct, il est très simple de calculer 3x pour x = 2 ou x = 4.

32 = 3x3 = 9. La fonction 3x transforme 2 en 9.

34 = 3x3x3x3 = 9x9 = 81. La fonction 3x transforme 4 en 81.

Le sens inverse n’est pas foncièrement plus compliqué. Il consiste à retrouver le nombre initial à partir du résultat. Imaginons que ce résultat soit 27. On sait que 32 = 9 et que 34 = 81. Le résultat 27 étant compris entre 9 et 81, il ne fait aucun doute que le nombre initial est 3, seul nombre compris entre 2 et 4. Vérifions : 33 = 3x3x3 = 27.

La fonction 3x est aisément réversible.

Le raisonnement que nous avons utilisé repose sur le fait que plus x est grand, plus le résultat 3x l’est également. Remarque de bon sens mais qui a son importance, car en arithmétique modulo, ce n’est plus le cas. De manière générale, les fonctions ne sont plus aussi simples à inverser.

Pour s’en convaincre, essayons, à partir du résultat 7, de retrouver le nombre initial par la fonction 3x en modulo 10. Essayons, autrement dit, de retrouver ce que vaut x.

34 = 81 = 1 [10]. Le nombre 4 n’est donc pas le nombre initial, puisque le résultat ne doit pas être 1, mais 7. Si nous raisonnions comme en arithmétique classique, puisque le résultat est 7 et que nous n’avons obtenu que 1, nous serions tentés d’essayer un nombre plus grand que 4. Pourtant le nombre initial est 3 puisque 33 = 27 = 7 [10]. Et pour compliquer le tout, 3 n’est même pas la seule réponse puisque 37 = 3x3x3x3x3x3x3 = 2187 = 7 [10].

Conclusion, nous avons là une fonction difficilement réversible, ce qui est capital, comme nous allons le comprendre, pour l’affaire qui nous occupe ici : la transmission de la clef.

3. Alice, Bernard et … Estelle

a- Situation

Imaginons que Bernard veuille envoyer un message secret à Alice : l’heure et le lieu pour des amours illicites, qui sait… Bernard et Alice utiliseront sans doute le système DES pour assurer la confidentialité de leurs échanges. Reste qu’ils doivent, au préalable, s’entendre sur la clef, ce fameux nombre qu’ils devront entrer dans leurs ordinateurs pour, du côté de Bernard, crypter le message, et du côté d’Alice, le décrypter.

Sage précaution, car Estelle, la femme de Bernard, est d’une jalousie maladive – non sans raison d’ailleurs. Aussi, curieuse de connaître le contenu des messages envoyés par son mari, elle ira fouiller dans son ordinateur et parviendra à s’introduire dans sa boîte mail – l’histoire ne nous dit pas comment. Certes, Bernard aura bien du mal à justifier à sa femme l’envoi d’un message codé – de surcroît  à une autre femme –, mais elle n’aura aucun moyen, scientifique du moins, pour lire son contenu : trop de clefs. Comment s’y sont-ils pris pour communiquer ?

Par un message clair, Bernard informe Alice de son intention de lui envoyer un message, tout cela sur un ton neutre, comme s’il s’agissait d’une collègue de bureau, prévoyant ainsi le cas où sa femme aurait les oreilles baladeuses… En outre, notre Bernard précise à sa « collègue de bureau » qu’il veut utiliser le système DES et choisit pour cela un nombre quelconque N et un nombre premier p qui lui est supérieur et qui sera le modulo (par exemple N = 3 et p = 13). Estelle (l’ennemi) dispose à ce stade d’autant d’informations qu’Alice (le destinataire) : le système et les nombres choisis par Bernard (l’expéditeur). Or, comme nous allons le voir, cela n’altère en rien la sécurité de leurs échanges.

b- Procédé

Bernard choisit un nombre e (e comme expéditeur) qu’il garde secret. Par exemple le nombre 2.

Alice choisit un nombre d (d comme destinataire) qu’elle garde secret. Par exemple le nombre 4.

Publiquement, aux yeux de tous donc, Bernard envoie à Alice par ordinateur le nombre Ne [p], soit, dans notre exemple, 32 [13], c’est-à-dire 9 (32 = 3x3 = 9 [13])[2].

De même, Alice envoie à Bernard le nombre Nd [p], soit 34, c’est-à-dire 3 (34 = 3x3x3x3 = 81 = 13x6 + 3 = 3 [13]).

Estelle voit ainsi passer sous ses yeux – on imagine qu’elle peut sans peine s’introduire dans leurs boîtes mail – les nombres envoyés par Bernard et Alice, soit 9 et 3, et avec un peu de patience, elle pourra sans difficulté deviner que leurs nombres secrets sont 2 et 4 : ici, les nombres sont tout petits. Dans la réalité en revanche, les nombres utilisés sont très grands[3], et le temps de calcul pour trouver e ou d est de l’ordre de plusieurs décennies, même sur de puissants ordinateurs ; il en est ainsi grâce à l’utilisation de l’arithmétique modulo qui rend difficile l’inversion de la fonction puissance. Aussi, le risque pris par nos amants est infime.

Reprenons. Alice reçoit donc Ne, soit 9, et calcule, à l’abri des regards, (Ne)d, soit 94, grâce au nombre d qu’elle a choisi secrètement : 94 = 9x9x9x9 = 6561 = 13x504 + 9 = 9 [13].

De son côté, Bernard reçoit Nd, soit 3, et calcule, à l’abri des regards, (Nd)e, soit 32, grâce au nombre e qu’il a choisi secrètement : 32 = 3x3 = 9 [13].

On constate alors que le résultat de Bernard est le même que celui d’Alice : 9 [13]. Nos amants ont ainsi en main un nombre qu’ils sont les seuls à connaître, puisqu’il est obtenu à partir de leurs nombres secrets e et d. Ce fameux nombre[4] devient alors la clef secrète du système qu’ils n’auront plus qu’à insérer dans leurs ordinateurs.

c- Epilogue

Nos trois chercheurs américains qui mirent au point ce procédé exposèrent leur découverte en 1976 devant un auditoire médusé. Un des axiomes de la cryptographie venait de tomber : deux personnes, désormais, peuvent communiquer en toute confidentialité sans partager le moindre secret. Sans doute, il faut bien que quelque part dans le procédé, il y ait secret : un échange entièrement public serait, par définition, lisible par tout le monde, mais le secret ne réside pas là où on l’attend habituellement. Il n’est ni dans la communication du système utilisé : l’utilisation du système DES est clairement annoncée ; ni dans celle de la clef. L’astuce, profondément géniale, est que la clef n’est pas transmise, mais construite, en deux temps. Le premier se fait publiquement : Estelle voit passer sous ses yeux Ne et Nd, mais elle ne peut trouver ni e, ni d. Le second voit la construction définitive de la clef commune, mais Estelle, elle, ne voit rien du tout : c’est Alice et Bernard qui, chacun dans leur coin et grâce à leurs nombres secrets respectifs, effectuent le dernier calcul de puissance.

Conclusion

Le procédé Diffie-Hellmann-Merkle élimine une bonne fois pour toutes le problème réputé insurmontable de la transmission de la clef. Associé au système DES dont le nombre colossal de clefs assure la confidentialité des échanges, il semble même donner un avantage définitif aux cryptographes. Mais cet avantage n’est que théorique, car surgit une nouvelle difficulté, a priori tout aussi insurmontable que celle de la transmission de la clef : la communication basée sur un tel procédé nécessite des échanges préalables : Bernard et Alice doivent être connectés en même temps pour pouvoir construire la clef. Or, comment Alice pourrait-elle savoir que Bernard souhaite communiquer avec elle ? Quand bien même, Alice, qui habite au Japon, devrait allumer son ordinateur en pleine nuit pour pouvoir communiquer avec son amant parisien ! Pas si grave s’il ne s’agit que d’un échange amoureux. Mais, à l’ère du tout informatique, qui implique toute la planète, la nécessité d’une connexion simultanée de l’expéditeur et du destinataire pose, on s’en doute, de véritables problèmes.

On pouvait penser qu’après plus de deux mille ans, les cryptograghes avaient définitivement gagné la guerre face aux cryptanalystes, mais ce n’était qu’une bataille, une de plus parmi tant d’autres. La guerre se poursuit…

Notes :

1- Le fonctionnement d’un tel système – tout comme celui de Vigénère – serait trop long à expliciter. Disons qu’il est constitué de câbles électriques, de rotors, bref, de tout un appareillage qui multiplie de manière considérable le nombre de clefs.

2- Nous avons précisé plus haut que le nombre p devait être premier (un nombre premier est, rappelons-le, un nombre qui ne peut être divisible que par 1 et par lui-même). Imaginons en effet que N = 6 et p = 4 (non premier donc, puisque 4 = 2 x2). Bernard envoie alors à Alice le nombre 0 ! En effet, Ne = 62 = 6x6 = 36 = 4x9 = 0 [4].

Le nombre p doit être supérieur à N. Imaginons en effet que N = 12 et p = 5. Bernard peut alors se ramener à un nombre N inférieur à p, puisque N = 12 = 5x2 + 2 = 2 [5]. 2 est bien inférieur à 5.

3- Bernard peut choisir un nombre N aussi grand qu’il le souhaite. En effet, comme il existe une infinité de nombres premiers, il n’a que l’embarras du choix pour le nombre premier p supérieur à N.

4- Ce résultat commun ne dépend nullement des nombres préalablement choisis. En fait, Bernard calcule (34)2, soit (3x3x3x3)2, c’est-à-dire 3x3x3x3 x 3x3x3x3. De son côté, Alice calcule (32)4, soit (3x3)4, c’est-à-dire 3x3 x 3x3 x 3x3 x 3x3, ce qui revient au même, puisque nos deux amants calculent tous les deux 38.

De manière plus générale, quels que soient les nombres N, d et e, on a : (Ne)d = (Nd)e = Nexd. Cette propriété est la commutativité de l’exponentielle, et c’est ce tout petit rien mathématique, mêlé à l’arithmétique modulo, qui assure le secret des échanges.

Bibliographie :

- Simon Singh, Histoire des codes secrets, JC Lattès, 1999

- Gilles Dubertret, Initiation à la cryptographie, Vuibert, 2000,

- Douglas Stinson, Cryptographie, Théorie et pratique, International Thomson publishing France, 1996.