Histoire de la cryptologie 23995 31809338 2008-07-23T06:17:24Z Wgsjul 427776 erreur d'orthographe. Aucune autre mention d'une orthographe alternative pour scytale n'est présente. Cet article résume l''''histoire de la cryptographie''' de l'[[Antiquité]] à aujourd'hui. La [[cryptographie]] est la science du codage des messages à l'aide de '' codes secrets'' ou de ''[[clé de chiffrement|clés]]''. Le codage des messages vise à en assurer la [[confidentialité]], l'[[authentification|authenticité]] et l'[[intégrité (cryptographie)|intégrité]]. ==Dans l'Antiquité== ===Les premières méthodes de chiffrement=== ====Le plus vieux document chiffré==== Le premier « document » chiffré connu remonte à l'[[Antiquité]]. Il s'agit d'une tablette d'argile, retrouvée en [[Irak]], et datant du {{XVIe siècle av. J.-C.}} Un potier y avait gravé sa recette secrète en supprimant des consonnes et en modifiant l'orthographe des mots. ====La technique grecque==== Le première grande compilation des procédés cryptographiques et stéganographique pratiqué durant l'Antiquité est celle du chapitre 31 de la ''[[Poliorcétique]]'' d'[[Énée le Tacticien]], datant du {{IVe siècle av. J.-C.}} Entre le [[Xe siècle av. J.-C.|{{Xe}}]] et {{VIIe siècle av. J.-C.}} semble attesté une technique de chiffrement par transposition, c'est-à-dire reposant sur le changement de position des lettres dans le message, en utilisant un bâton de diamètre déterminé appelée [[scytale]]. On enroulait en hélice une bande de cuir autour de la [[scytale]] avant d'y inscrire un message. Une fois déroulé, le message était envoyé au destinataire qui possèdait un bâton identique, nécessaire au déchiffrement. Cependant, l'utilisation de la [[scytale]] lacédémonienne comme procédé cryptographique n'est explicitement affirmée que par [[Plutarque]] et [[Aulu-Gelle]], auteurs de la fin de l'Antiquité, et n'est pas mentionnée par [[Énée le Tacticien]] : dès lors, la scytale a-t-elle véritablement été un procédé cryptographique ? ====La technique des Hébreux==== À partir du {{Ve siècle av. J.-C.}}, l'une des premières techniques de chiffrement est utilisée dans les textes religieux par les [[Hébreux]] qui connaissent plusieurs procédés. Le plus connu appelé ''Atbash'' est une méthode de substitution alphabétique inversée. Son nom est formé par les initiales des premières et dernières lettres de l'alphabet hébreux '''a'''leph, '''t'''au, '''b'''eth, '''sh'''in. Elle consiste à remplacer chaque lettre du texte en clair par une autre lettre de l'alphabet choisie de la manière suivante : A devient Z, B devient Y, etc. ====Nabuchodonosor==== Aux alentours de [[-600]], [[Nabuchodonosor II|Nabuchodonosor]], roi de [[Babylone]], employait une méthode originale : il écrivait sur le crâne rasé de ses esclaves, attendait que leurs cheveux aient repoussé, et il les envoyait à ses généraux. Il suffisait ensuite de raser à nouveau le messager pour lire le texte. Il s'agit toutefois de stéganographie à proprement parler et non pas de cryptographie : l'information est cachée et non pas codée. On remarque dans ce procédé une certaine fiabilité : en effet l'interception du message par un tiers est tout de suite remarquée. ====Les premiers « vrais » systèmes de cryptographie==== Il faut attendre [[-200]] pour voir apparaître les premiers « vrais » systèmes de cryptographie. Ce sont essentiellement des chiffrements par substitution. Il existe 4 types de substitutions : * ''mono-alphabétique'' : remplace chaque lettre du message par une autre lettre de l'alphabet * ''poly-alphabétique'' : utilise une suite de chiffres mono-alphabétiques (la clé) réutilisée périodiquement * ''homophonique'' : fait correspondre à chaque lettre du message en clair un ensemble possible d'autres caractères * ''polygrammes'' : substitue un groupe de caractères dans le message par un autre groupe de caractères ===Le code de César=== [[Image:Caesar3.svg|thumb|250px|Principe du chiffre de César]] {{article détaillé|Chiffre de César}} Le code de [[Jules César|César]] est la méthode cryptographique, par substitution mono-alphabétique, la plus ancienne ({{Ier_siècle_av._J.-C.}}). Cette méthode est utilisée dans l'armée romaine et bien qu'elle soit beaucoup moins robuste que la technique [[Histoire de la cryptographie#La technique des Hébreux|Atbash]], la faible alphabétisation de la population la rend suffisamment efficace. ==== Méthode de chiffrement ==== Son système est simple, il consiste à décaler les lettres de l'alphabet d'un nombre ''n''. Par exemple, si on remplace A par D (n=3), on remplace B par E, C par F... Le texte que nous souhaitons coder étant le suivant : « décaler les lettres de l'alphabet » Le texte codé est alors : « ghfdohu ohv ohwwuhv gh o'doskdehw » ====Les limites de ce procédé==== Malheureusement, on comprendra que ce système est très peu sûr, puisqu'il n'y a que 26 lettres dans l'alphabet donc seulement 26 façons de chiffrer un message avec le code de César. Pourtant sa simplicité conduisit les officiers sudistes à le réemployer durant la [[guerre de Sécession]]. L'armée [[Russie|russe]] en fit de même en [[1915]]. ====Un système connu et pourtant...==== Il est à noter que le code de César a été utilisé sur des forums internet sous le nom de [[ROT13]] (rot-ation de 13 lettres ou A-->N...). Le ROT13 n'a pas pour but de rendre du texte confidentiel, mais plutôt d'empêcher la lecture involontaire (d'une réponse à une devinette, ou de l'intrigue d'un film, etc.). Son utilisation est simple : il suffit de re-chiffrer un texte, codé en ROT13, une deuxième fois pour obtenir le texte en clair. ===Le [[carré de Polybe]]=== L'historien grec [[Polybe (historien)|Polybe]] est à l'origine du premier procédé de chiffrement par substitution homophonique. ==== Méthode de chiffrement ==== C'est un système de transmission basé sur un carré de 25 cases (on peut agrandir ce carré à 36 cases, afin de pouvoir ajouter les chiffres ou pour chiffrer des alphabets comportant davantage de lettres, comme l'[[alphabet cyrillique]]). En français, on supprime le ''W'', qui sera remplacé par ''V''. Il existe une variante où ce sont ''I'' et ''J'' qui se partagent la même case. Chaque lettre peut être ainsi représentée par un groupe de deux chiffres : celui de sa ligne et celui de sa colonne. Ainsi ''e''=(1;5), ''u''=(5;1), ''n''=(3;4)... ====Un moyen de transmission original==== Polybe proposait de transmettre ces nombres au moyen de torches. Une torche à droite et cinq à gauche pour transmettre la lettre ''e'' par exemple. Ce procédé permettait donc de transmettre des messages sur de longues distances. ====Son originalité==== Les cryptologues modernes ont vu dans le « carré de 25 » plusieurs caractéristiques extrêmement intéressantes : * la conversion de lettres en chiffres, * la réduction de nombres, de symboles, * la représentation de chaque lettre par deux éléments séparés. Ce système de chiffrement peut être compliqué avec un mot de passe. Par exemple, si le mot de passe est ''DIFFICILE'', on commencera à remplir le carré avec les lettres de ce mot, après avoir supprimé les lettres identiques, puis on complétera le tableau avec les lettres inutilisées. ==De l'Antiquité à la guerre == [[1379]] : [[Gabriele de Lavinde]], secrétaire du pape, écrit un recueil de codes et de clés appelé ''nomenclateur''. Ce dictionnaire permet de crypter des mots ou des syllabes courants et sera utilisé pendant plusieurs siècles par les diplomates européens et américains. ==={{XVe siècle}}=== * [[1412]] : Les connaissances de la civilisation arabe dans le domaine de la cryptologie sont exposées dans ''Subh al-a sha'', une encyclopédie en 14 volumes écrite par l'Égyptien [[Abd Allah al-Qalqashandi|al-Qalqashandi]]. * [[1467]] : Le savant italien [[Leone Battista Alberti]] expose pour la première fois le chiffrement par substitution polyalphabétique qu'il applique à l'aide d'un disque à chiffrer.<br>Ce procédé consiste à remplacer chaque lettre du texte en clair par une lettre d'un autre alphabet et à changer plusieurs fois d'alphabet de substitution au cours du chiffrement, rendant la cryptanalyse par analyse de fréquence inefficace.<br>Le principe du disque à chiffrer sera repris et amélioré par le colonnel [[Wadsworth]] en [[1817]], puis par [[Charles Wheatstone]] en [[1867]].<br>Alberti présente aussi pour la première fois le surchiffrement codique, c'est-à-dire le chiffrement du texte déjà chiffré une première fois, technique qui ne sera réellement utilisée que plusieurs siècles plus tard. === {{XVIe siècle}} === * [[1518]] : Le moine bénédictin [[Johannes Trithemius|Jean Trithème]] écrit ''Polygraphiæ'', le premier livre imprimé traitant de cryptologie, dans lequel il expose un procédé [[stéganographie|stéganographique]] consistant à remplacer chaque lettre du texte en clair par un groupe de mots, le texte crypté ressemblant alors à un poème.<br>Trithème expose aussi une technique de chiffrement par substitution polyalphabétique à l'origine de la technique connue sous le nom de [[chiffre de Vigenère]]. * [[1553]] : [[Giovan Batista Belaso]] publie le livre ''La Cifra'', un recueil de clés littérales utilisées dans les chiffrements par substitution polyalphabétique, faciles à retenir et à utiliser, qu'il appelle ''[[mot de passe|mots de passe]]''. * [[1563]] : L'Italien [[Giambattista della Porta]] expose dans son livre ''De Furtivis Literarum Notis, vulgo de ziferis'' les connaissances en cryptologie connues jusqu'à cette époque.<br>Il expose une technique de substitution diagrammatique consistant à remplacer chaque couple de lettres du texte en clair par un symbole et présente un procédé de chiffrement par substitution polyalphabétique utilisant 11 alphabets différents qui restera efficace pendant 3 siècles. ===[[Chiffre de Vigenère|Le chiffre de Vigenère]]=== En [[1586]], le diplomate français [[Blaise de Vigenère]] présente dans son livre ''Traicté des chiffres ou secrètes manières d'escrire'' (http://gallica.bnf.fr/notice?N=FRBNF31575919) une technique de chiffrement par substitution polyalphabétique inspirée de celle de [[Trithème]]. Le chiffrement de Vigenère ne sera décrypté qu'en [[1854]]. ==== Méthode de chiffrement ==== Le chiffrement utilise une clé littérale ou mot de passe, dont chaque lettre indique le décalage alphabétique à appliquer sur le texte en clair. On reporte les lettres de l'alphabet sur une grille de 26 x 26 cases ; la première rangée contenant ''A'', ''B'', ..., les colonnes suivantes sont chacune décalée d'une position par rapport à la précédente. Le texte chiffré s'obtient en prenant l'intersection, de la ligne qui commence par la lettre à coder, avec la colonne qui commence par la première lettre du mot de passe, et ainsi de suite. Dès que l'on atteint la fin du mot de passe, on recommence à la première lettre. Pour décoder, il suffit de faire la même chose dans l'autre sens. ====Les points forts de cette méthode==== Cet [[Algorithmique|algorithme]] de cryptographie comporte beaucoup de points forts. Il est très facile d'utilisation, et le déchiffrement est tout aussi facile si on connaît la clé. La grande caractéristique du ''chiffre de Vigenère'' est qu'il est impossible par une analyse statistique simple de retrouver où sont certaines lettres. Un autre avantage réside dans le fait que l'on peut produire une infinité de clés. Il fallut attendre près de quatre siècles pour qu'il soit cryptanalysé au milieu du {{s-|XIX|e}}. Voir [[Cryptanalyse du chiffre de Vigenère]]. === {{XVIIe siècle}} === * [[1623]] : Dans son livre ''De dignitate et augmentis scientiarum'', [[Francis Bacon (philosophe)|Francis Bacon]] expose une technique [[stéganographie|stéganographique]] qui consiste à représenter chaque lettre du texte en clair par un groupe de 5 lettres ''A'' ou ''B''. Le texte crypté résultant est ainsi constitué d'une succession de ces deux lettres.<br>Ce procédé est équivalent à un codage binaire des lettres de l'alphabet sur 5 bits, préfigurant le codage numérique des lettres sur 8 bits utilisé actuellement en informatique (code [[ASCII]]). === {{XIXe siècle}} === * [[1854]] : Un pionnier du télégraphe, [[Charles Wheatstone]], apporte sa contribution à la cryptologie en inventant le chiffrement de [[Chiffre de Playfair|Playfair]], du nom de celui qui l'a fait connaître.<br>Cette technique est basée sur une méthode de substitution diagrammatique consistant à remplacer un couple de lettres adjacentes par un autre couple choisi dans une grille qui constitue la clé. * [[1883]] : Le hollandais [[Auguste Kerckhoffs]] publie un livre sur la cryptologie ''La cryptographie militaire''.<br>Il y expose notamment quelques règles à respecter pour concevoir un bon système cryptographique, toujours valables actuellement, dont la principale est la suivante : la sécurité d'un système ne doit pas reposer sur le secret de la méthode de cryptage. ===Le [[chiffre de Delastelle]]=== L'inventeur de ce système est un français nommé [[Félix-Marie Delastelle]]. Il utilise une grille de chiffrement/déchiffrement analogue à celle du chiffre de Polybe. ==== Méthode de chiffrement ==== Tout d'abord, il faut regrouper les lettres du message clair 5 par 5 (au besoin, on rajoute des nulles pour arriver à un multiple de cinq). Pour déchiffrer, on effectue l'opération dans le sens inverse. ====Une simple adaptation==== Le ''chiffre de Delastelle'' diffère peu de celui de Polybe. Il est présenté ici cependant pour montrer la diversité des méthodes de chiffrement, mais aussi que la plupart de ces méthodes sont de simples adaptations de méthodes déjà existantes. === Grand chiffre du roi Louis XIV === Les historiens disposent de quelques documents qui ont été chiffrés par ce qu'on nomme le ''[[Grand Chiffre]]'' du roi [[Louis XIV de France|Louis XIV]], et qui n'était en principe utilisé que pour des communications d'une importance extrême. C'est dire l'intérêt pour les historiens de connaître le contenu de ces documents, ou même simplement le ''sujet'' dont ils parlaient. Hélas, faute d'information même statistique sur la nature des textes, et de connaissance ne serait-ce que de quelques mots de leur contenu, ils durent attendre longtemps la solution de ce mystère. Vers [[1893]], [[Étienne Bazeries]] les en délivra finalement après trois siècles de perplexité. == Lors de la [[Seconde Guerre mondiale]] == ===La machine [[Enigma (machine)|Enigma]]=== [[Image:Enigma.jpg|right|thumb|Enigma : modèle civil]] ====Inventée pour les civils==== L'histoire de la machine '''Enigma''' commence en [[1919]], quand un ingénieur hollandais, Hugo Alexander, dépose un brevet de machine à chiffrer électromécanique. Ses idées sont reprises par le Dr Arthur Scherbius, qui crée à [[Berlin]] une société destinée à fabriquer et à commercialiser une machine à chiffrer civile : l'Enigma. Cette société fait un fiasco, mais la machine Enigma a attiré l'attention des militaires. ==== Le fonctionnement d'Enigma ==== Le codage effectué par la machine ''Enigma'' est à la fois simple et astucieux. Chaque lettre est remplacée par une autre, l'astuce est que la substitution change d'une lettre à l'autre. La machine est alimentée par une pile électrique. Quand on appuie sur une touche du clavier, un circuit électrique est fermé, et une lampe s'allume qui indique quelle lettre codée l'on substitue. Concrètement, le circuit électrique est constitué de plusieurs éléments en chaîne : * le tableau de connexions : il permet d'échanger des paires de l'alphabet, deux à deux, au moyen de fiches. Il y a 6 fiches qui permettent donc d'échanger 12 lettres. Un tableau de connexions est donc une permutation très particulière où on a échangé au plus 6 paires. Par exemple, dans le tableau suivant (avec simplement 6 lettres), on a échangé ''A'' et ''C'', ''D'' et ''F'', tandis que ''B'' et ''E'' restent invariants. * les rotors : un rotor est également une permutation, mais cette fois quelconque. À chaque lettre en entrée correspond une autre lettre. On peut composer les rotors, c'est-à-dire les mettre les uns à la suite des autres. La machine Enigma disposera, au gré de ses évolutions successives, de 3 à 6 rotors. Parmi ces rotors, seuls 3 sont utilisés pour le codage, et on a le choix de les placer dans l'ordre que l'on souhaite (ce qui constituera une partie de la clé). Surtout, les rotors sont cylindriques, et ils peuvent tourner autour de leur axe. Ainsi, à chaque fois qu'on a tapé une lettre, le premier rotor tourne d'un cran, et la permutation qu'il engendre est changée. Observons ce changement sur la figure suivante : le rotor transforme initialement ''D'' en ''B''. Lorsqu'il tourne d'un cran, cette liaison électrique ''D''--->''B'' se retrouve remontée en ''C''--->''A''. Chaque rotor possède donc 26 positions. À chaque fois qu'une lettre est tapée, le premier rotor tourne d'un cran. Après 26 lettres, il est revenu à sa position initiale, et le second rotor tourne alors d'un cran. On recommence à tourner le premier rotor, et ainsi de suite... Quand le second rotor a retrouvé sa position initiale, c'est le troisième rotor qui tourne d'un cran. * Le réflecteur : Au bout des 3 rotors se situe une dernière permutation qui permet de revenir en arrière. On permute une dernière fois les lettres 2 par 2, et on les fait retraverser les rotors, et le tableau de connexion. Résumons sur la machine simplifiée suivante (6 lettres, 2 rotors) comment est codée la lettre A : * on traverse le tableau de connexions : on obtient ''C'' * on traverse les 2 rotors : on obtient successivement ''A'' et ''F'' * on traverse le réflecteur où on obtient ''E'', puis on renvoie dans les rotors pour obtenir ''F'', ''A'' et finalement ''C'' après le tableau de connexions. Remarquons que si on avait tapé ''C'', le courant aurait circulé dans l'autre sens et on aurait obtenu ''A''. ====Nombre de clés possibles==== Il y a trois éléments à connaître pour pouvoir coder un message avec la machine Enigma : # la position des 6 fiches du tableau de connexion : d'abord, il faut choisir 12 lettres parmi 26. C'est donc le nombre de combinaisons de 12 parmi 26, soit 26! /(12!14!) = {{formatnum:9657700}}. Maintenant, il faut choisir 6 paires de lettres parmi 12, soit 12 !/6 !, et comme la paire (''A'', ''D'') donne la même connexion que la paire (''B'', ''A''), il faut encore diviser par 26. On trouve finalement {{formatnum:100391791500}}. # l'ordre des rotors : il y a autant d'ordres que de façons d'ordonner 3 éléments : 3 !=6. # la position initiale des rotors : chaque rotor ayant 26 éléments, il y a 26*26*26={{formatnum:17576}} choix. On multiplie tout cela, et on obtient plus de 10<small><sup>16</sup></small> possibilités, ce qui est énorme pour l'époque ! Il est important de remarquer que les permutations employées dans les rotors et les réflecteurs ne peuvent pas être considérées comme faisant partie du secret. En effet, toutes les machines utilisent les mêmes, et il suffit donc d'en avoir une à disposition. Les Britanniques, par exemple, en ont récupéré une pendant la guerre dans un sous-marin coulé. Ceci est une illustration d'un principe général en cryptographie, dit ''principe de [[Auguste Kerckhoffs|Kerckhoffs]]'', qui veut que tout le secret doit résider dans la clé secrète de chiffrement et de déchiffrement, et pas dans une quelconque confidentialité de l'algorithme (ici de la machine) qui ne peut être raisonnablement garantie. ====Points forts et faiblesses==== Nous avons déjà décrit les points forts de la machine ''Enigma''. Pour l'essentiel, c'est le nombre de clés énorme, et la réversibilité : si, avec la même clé secrète initiale, on tape le message clair, on obtient le message codé, et avec le message codé, on obtient le message clair. L'une des failles de la machine ''Enigma'' est que jamais la lettre A ne sera codée par un A. Cela élimine un certain nombre de cas à inspecter. Une des autres faiblesse dépend plutôt du protocole utilisé par les Allemands : certains opérateurs - par exemple, ceux qui informaient de la météo - prenaient peu de précautions et commençaient toujours leurs messages par les mêmes mots (typiquement « Mon général... »). Les Britanniques connaissaient ainsi pour une partie du message à la fois le texte clair et le texte codé, ce qui aide à retrouver la clé. Et comme c'est la même clé qui sert pour toutes les machines ''Enigma'' de l'armée allemande pour un jour donné, une erreur de protocole dans un message peut compromettre la sécurité de tous les autres ! ==== Le déchiffrement des messages Enigma ==== Le service de renseignements polonais fut semble-t-il le premier à réellement travailler à « casser » le code allemand dans les années 1930. Ils travaillèrent ensuite en collaboration avec le service cryptographique du 2{{e}} bureau français, dirigé par le colonel [[Gustave Bertrand]], aidés dans cette tâche par les informations fournis par la taupe française [[Hans Thilo Schmidt]] (« Asche » pour les services français). Finalement, une collaboration s'instaure avec les services britanniques, qui rassemblèrent leurs spécialistes cryptographes à [[Bletchley Park]]. C'est là qu'[[Alan Mathison Turing|Alan Turing]] conçut ce qui fut le premier ordinateur, Colossus, qui permettait d'augmenter la vitesse de déchiffrement des messages Enigma. La [[Kriegsmarine]] ayant mis au point une Enigma modifiée, ce n'est que vers [[1942]], après la capture d'une machine modifiée sur un [[U-boot]] que les alliés purent connaître la teneur des messages codés de la marine allemande. ====Enigma et UNIX==== Un étudiant s'amusa un jour à programmer en [[langage C]] la simulation du fonctionnement d'une machine Enigma. Ce programme fut inclus dans les distributions [[UNIX]] sous le nom de '''crypt''' (utilisable comme une commande UNIX). Jusqu'à la déclassification des travaux du groupe de [[Bletchley Park]], les bureaux d'études d'engineering croyaient ce codage très sûr et l'utilisaient pour échanger leurs informations confidentielles. Pour la plus grande joie, n'en doutons pas, de la [[National Security Agency]], qui en voyait son travail considérablement facilité ! ===Le code Lorenz === ====Le code des hauts dirigeants allemands==== Si la machine Énigma est la plus connue, le code Lorenz a conduit à des retombées encore plus importantes aujourd'hui. Ce code était utilisé par la haute hiérarchie allemande pour sécuriser les communications des dirigeants. ==== Inverser le code ==== Strictement, le chiffrement de Énigma n'a pas été « cracké ». Les allemands l'utilisaient mal, parfois très mal, suffisamment pour que la recherche de la clef unique parmi toutes les clefs devienne possible. Cette attaque, la force brute, vaincra tous les chiffrements. Un chiffrement n'est « cracké » que lorsqu'il existe mieux que la force brute pour l'inverser. Au contraire, le code Lorenz a bel et bien été « cracké ». Ainsi, sans retrouver la clef de chiffrement, le texte clair était recalculé depuis le texte chiffré. ==== L'analyse du code Lorenz ==== Le code Lorenz pratiquait le chiffrement par flot (stream cipher). Ce type de chiffrement a une faiblesse mortelle : il devient trivial à inverser lorsque deux messages sont chiffrés avec la même clef. En considérant que A est le texte clair, B est la clef, le message chiffré A' = A + B Si deux messages sont chiffrés avec la même clef, A' = A + B et C' = C + B, il suffit de faire l'addition des deux textes chiffrés pour éliminer la clef ! A' + C' = ( A + B )+ ( C + B ) = ( A + C ) + ( B + B ) = A + C puisque B + B = 0. Puisque tous les effets de la clef sont maintenant retirés, il ne reste qu'à faire une analyse statistique pour « séparer » les deux textes A et C et retrouver ainsi chacun d'eux. La clef devient aussi triviale à calculer ( elle est égale à A' + A ). C'est cette seule et unique faiblesse qui a détruit tout le code. Un opérateur a transmis un long message pour recevoir en réponse un NACK ( message non reçu ). Plutôt que de respecter les règles et produire une nouvelle clef, il a repris la même clef et a renvoyé son message. S'il avait renvoyé EXACTEMENT le même texte lettre par lettre, l'attaque n'aurait pas été possible. Par contre, en utilisant un diminutif ici et un synonyme là, il a techniquement envoyé ce second message chiffré avec la même clef. De là tout a déboulé... Après avoir retrouvé les deux messages et la clef unique, celle-ci a révélé ses secrets. La technique utilisée codait les lettres sur cinq bits où chaque bit traversait un canal de chiffrement différent. La clef a montré certaines répétitions. De celles-ci a été déduit tout le principe de la génération de la clef et celui de la machine Lorenz. Une autre distinction entre Énigma et Lorenz est que les alliés avaient été en possession d'une machine Énigma avant la guerre et en avaient obtenu d'autres pendant. Au contraire, les alliés ne virent une authentique machine Lorenz qu'après la fin de la guerre. ==== La faiblesse du code Lorenz ==== Si le mécanisme de génération de clef de Lorenz était maintenant connu, il ne suffisait pas à inverser les autres messages chiffrés. De plus, l'analyse statistique de la clef montrait que celle-ci resterait aléatoire sur chaque canal même si elle était contrôlée par des paramètres non aléatoires comme la prépondérance de certaines lettres dans une langue. Une faiblesse dans le code Lorenz a malgré tout été trouvée. Deux lettres consécutives identiques produisait un résultat constant sur chacun des 5 canaux dans le texte chiffré. Un exemple est le doublon « SS », en plus de ceux imposés par la langue. ==== La conséquence du code Lorenz ==== Si une faiblesse était trouvée, l'exploiter était autre chose. En effet, l'analyse statistique nécessaire pour retrouver ces doublons demandait une puissance inexistante pour l'époque. C'est à ce moment que fut développée l'arme ultime pour le chiffrement, l'ordinateur. [[Colossus (ordinateur)|Colossus]], le premier ordinateur, a ainsi été construit. Plusieurs peuvent débattre sur l'identité du premier ordinateur. Si l'on définit un ordinateur comme étant un circuit électronique capable d'exécuter des programmes, Colossus était bel et bien le premier ordinateur. C'est donc avec Colossus que le code Lorenz a pu être inversé. Les détails de ses algorithmes débordent toutefois les objectifs de cette section. En plus de léguer l'ordinateur, l'attaque du code Lorenz, tout comme celle d'Énigma, a fait une énorme différence dans la guerre. Dire qu'elle a raccourci la guerre de un an ou même fait la différence entre victoire et défaite n'est que spéculation. La meilleure formulation a été faite par un Allemand après qu'il apprit l'existence du programme de déchiffrement des alliés. Sa réaction a été d'affirmer que la différence apportée par le déchiffrement aura été que la bombe nucléaire aura explosé au Japon plutôt qu'en Allemagne. Effectivement, avec une arme comme la bombe nucléaire, les alliés n'auraient pas eu besoin d'attendre un an avant de détruire l'Allemagne nazi. Ils n'auraient pas non plus échappé la victoire. Grâce au décodage d'Énigma et du code Lorenz, ils n'ont pas eu besoin de la bombe nucléaire en Allemagne et tel est probablement la meilleure estimation de la différence concrète jouée par le déchiffrement allié. ==Les [[Navajos]]== Bien que les moyens de chiffrements électromécaniques, tels que la machine ''Enigma'', aient prouvé leur efficacité en terme de sécurité, ils n'en restent pas moins encombrants et lents car nécessitant une double saisie des messages. Ces deux inconvénients majeurs rendant ce procédé quasiment inexploitable en milieu hostile, ils poussèrent les [[États-Unis|Américains]] à chercher un moyen de chiffrement assurant une communication efficace sur le terrain lors de la guerre qui les opposa aux [[Japon]]ais. Ce procédé fut imaginé par l'ingénieur américain Philip Johnston. Ce dernier ayant grandi dans les réserves navajos, il eut l'idée d'utiliser leur langue comme procédé cryptographique. La méconnaissance quasi totale de cette langue ainsi que sa construction grammaticale très particulière, la rendant impénétrable aux étrangers, décidèrent de son utilisation. Cependant un problème majeur demeurait : les mots usuels employés par l'[[Armée américaine|armée]] n'existaient pas dans la [[Navajo (langue)|langue navajo]]. Il fut donc décidé de trouver une correspondance entre des mots navajos et le dialecte militaire. Cette table de correspondance fut établie par association d'idées afin de la rendre plus facilement mémorisable. Le terme « [[bombardier (avion)|bombardier]] » fut par exemple traduit par « buse » alors que les « bombes » larguées par ces engins devenaient des « œufs » dans la langue navajo. Voilà comment les ''Parleurs-de-code'' (''[[Windtalkers]]'') navajos prirent part à la [[Bataille du Pacifique|campagne du Pacifique]]. Leur bravoure au combat fut reconnue de manière officielle par le gouvernement américain lorsqu'il leur dédia, en [[1982]], la journée du 14 août. ==Voir aussi== === Articles connexes === * [[Histoire des mathématiques]] * [[Histoire de l'informatique]] === Bibliographie === * [[Simon Singh]], ''Histoire des codes secrets'', Livre de Poche, Paris, 2001. ISBN 2253150975 * [[Simon Singh]], ''Histoire des codes secrets. De l'Égypte des pharaons à l'ordinateur quantique'', Lattès, Paris, 1999. ISBN 2709620480 ===Liens externes=== * {{fr}}[http://www.apprendre-en-ligne.net/crypto/menu/index.html Ars Cryptographica Étude interactive des messages secrets de l'Antiquité à nos jours] ====Travaux scolaires faits par des lycéens de terminale scientifique==== * [http://cryptotpe.free.fr/ Fait en 2003, publié avec l'accord des auteurs] * [http://perso.wanadoo.fr/wakaziva/crypto/ Fait en 2004] ====Des articles publiés par Bletchley Park sur Énigma et Lorenz==== * {{en}} [http://www.bletchleypark.org.uk/content/articles.rhtm Plusieurs textes techniques sur Enigma et Lorenz] {{Cryptologie historique}} {{Portail|cryptologie|sécurité de l'information}} [[Catégorie:Cryptologie]] [[Catégorie:Algorithmique]] [[Catégorie:Histoire par domaine scientifique|Cryptographie]] [[en:History of cryptography]] [[es:Historia de la criptografía]] [[hu:A kriptográfia története]] [[ja:暗号史]] [[no:Kryptografihistorie]] [[ro:Istoria criptologiei]] [[vi:Lịch sử mật mã học]]