Principes simples de cryptographie expliqués

La plupart des responsables sécurité et des informaticiens considèrent la cryptographie, ou « crypto », comme une « boite noire » où l’on ne souhaite pas forcément comprendre comment cela fonctionne, car cela fait appel à des concepts mathématiques complexes et inaccessibles au commun des mortels. C’est vrai, mais les principes de base sont très simples à comprendre. L’objectif de cet article est de passer ces principes en revue, mais aussi de voir lequel il faut utiliser, dans quel cas, et avec quel degré de sécurité réelle.

NOTA BENE : Pour éviter toute confusion, on appellera « crypté » tout élément non « lisible », et « décrypter » les techniques qui permettent de le rendre lisible. Si on dispose de la clef on parlera de « déchiffrer » au lieu de « décrypter ». « Décrypter » c’est donc rouler dans une voiture sans avoir la clef de contact, alors que « déchiffrer » c’est rouler dans une voiture où l’on a la clef (ce qui ne veut pas forcément dire que l’on est le propriétaire)…

Un peu d’histoire…

Dans son histoire courte « The Gold bug » éditée en 1843, Edgar Allan Poe explique les rudiments du cassage de code secret, et imagine que l’esprit humain pourra casser n’importe quel code que l’ingéniosité humaine pourrait concevoir. Pendant le siècle et demi suivant, la bagarre entre les fabricants de codes et les briseurs de code a connu des intrications et les complications qui auraient enchanté Poe. Un code réputé incassable a bien été inventé en 1918, bien que son invulnérabilité n’ait pas été prouvée avant les années 1940. Le code dit « symétrique » était plutôt impraticable parce qu’il exigeait de l’expéditeur et du récepteur de convenir à l’avance d’une clef -un chiffre aléatoire secret-, avec dans certains cas une utilisation unique chaque fois qu’un message secret a été transmis. Des codes plus pratiques, avec des clefs courtes et réutilisables, voire aucune clef secrète du tout, ont été développés dans les années 70, mais à ce jour ils demeurent dans un flou mathématique, sans qu’aucune preuve de « cassabilité » ou d’invulnérabilité ne soit établie.

L’art de la cryptographie a commencé il y a au moins 2.500 ans, avec les Egyptiens, Les Grecs puis les Romains, Jules César et son fameux « code 3 », et a joué un rôle important dans l’histoire depuis. Un des messages codés ou « cryptogramme » le plus célèbre, la note de Zimmermann, a probablement précipité l’entrée des États-Unis dans la 1ère Guerre Mondiale. Quand le cryptogramme a été cassé en 1917, les Américains comprirent que l’Allemagne avait essayé d’attirer le Mexique à adhérer à son effort de guerre, en promettant des territoires Américains au Mexique en cas de victoire.

Pratiquement simultanément, les Américains Gilbert S. Vernam d’ATT Company et Joseph Mauborane des transmissions de l’armée Américaine, ont développé le premier code réputé incassable appelé le chiffre de Vernam. Une particularité distinctive de ce code est son besoin de clef unique utilisée pour crypter le message transmis, en n’étant jamais réutilisée pour envoyer un autre message. (Le chiffre de Vernam est également connu comme le carnet à feuilles jetable des espions, chaque feuille étant utilisée pour coder un message puis détruite soigneusement, comme le magnétophone dans « Mission Impossible »….) La découverte du chiffrement de Vernam n’a pas généré beaucoup d’utilisations industrielles à l’époque parce que l’invulnérabilité n’a été prouvée que beaucoup plus tard, et parce que ses conditions d’utilisation étaient peu pratiques pour les particuliers et les entreprises, jusqu’à l’apparition de l’ordinateur personnel en 1980.

Un exemple de crypto symétrique : Le code de Che Guevara

Quand en 1967 l’armée bolivienne a capturé et a exécuté le révolutionnaire Che Guevara, elles ont trouvé sur son corps un brouillon de message à transmettre au Président cubain Fidel Castro. Le Che a employé le fameux chiffrement réputé incassable inventé par Gilbert Vernam en 1918. Les lettres composant le message du Che (en Espagnol) sont traduites une première fois en un nombre décimal à deux chiffres par une règle fixe, à savoir :

Par lui-même ce procédé n’aurait assuré pratiquement aucune protection. Les chiffres du message sont alors répartis dans des blocs à cinq chiffres. Ils deviennent la ligne supérieure de chaque groupe de trois lignes sur la feuille de brouillon. La ligne au milieu de chaque groupe est la clef, une combinaison de chiffres aléatoires connus seulement de Guevara et Castro :

On additionne alors le chiffre de la première et deuxième ligne pour produire un cryptogramme, formant le résultat sur la troisième ligne, qui est la seule envoyée par des moyens classiques interceptables comme le télégraphe ou la radio ondes courtes. En raison de l’addition des chiffres principaux avec ceux aléatoires, ce cryptogramme est lui-même une chaine décimale aléatoire, ne diffusant aucune information sur le message original, excepté à quelqu’un qui connait la clef. A l’autre bout, le bureau du code de Castro soustrait les mêmes chiffres au message reçu reconstruisant alors dans l’ordre les nombres de la rangée supérieure, ce qui donne le message en clair. Beaucoup d’espions et de diplomates ont employé le chiffre de Vernam tout au long du 20ème siècle. La clef, plutôt que d’utiliser des chiffres décimaux, utilise maintenant des éléments binaires 0 et 1, et les additions et les soustractions étant effectuées en base 2 par la machine, plutôt qu’en base 10 à la main. Néanmoins, la clef doit encore être disponible à la fois où elle produit le code et à l’endroit du déchiffrement, et donc elle doit être parfaitement gardée pendant toutes les phases de la livraison et de stockage pour l’empêcher de tomber dans les mains d’un adversaire.

En raison de cette limitation les soldats et les diplomates ont continué à utiliser des systèmes plus faibles utilisant des clefs plus courtes ou réutilisées. En conséquence, pendant la deuxième guerre mondiale, les alliés ont pu lire la plupart des messages secrets transmis par les Allemands et les Japonais. Il n’était nullement facile casser ces codes, mais c’était une question de temps. Par exemple certaines lettres ont une fréquence plus élevée dans une langue, le « e » ou le « s » que par exemple que le « q » ou le « x »… En comptant les occurrences d’une série on pouvait éventuellement en déduire des lettres, voire des syllabes utilisées d’avantage dans une langue, comme « et » ou « par »… Ce dispositif s’appelle la cryptanalyse. Les américains ont donc utilisé des indiens Cherokee pour leurs messages « source » ce qui brouillait le message en clair pour les Japonais qui cherchaient des mots en Anglais… Mais en essayant toutes les combinaisons possibles avec 26 lettres et 10 chiffres, ont finira fatalement par casser le code. On appelle cette technique le « brute force ». La tâche formidable de casser des codes de plus en plus sophistiqués fût donc l’un des facteurs qui ont stimulé le développement des ordinateurs capables d’exécuter des millions d’opérations donc de tentatives par seconde.

CRYPTO Asymétrique

Sous l’impulsion de l’armée Américaine, l’intérêt universitaire pour la cryptologie s’est développé au milieu des années 70, quand Whitfield Diffie, Martin E. Hellman et Ralph C. Merkle, de l’Université de Stanford, ont découvert le principe de la cryptographie à clefs publiques (PKC).

Un peu après, en 1977, Ronald L. Rivest, Adi Shamir et Leonard M. Adleman, du MIT, ont conçu une application pratique : L’infrastructure à clefs publiques asymétriques ou PKI. Ces systèmes diffèrent de tous les codes précédents, du fait que les parties souhaitant communiquer n’ont pas besoin de convenir d’une clef secrète à l’avance. L’idée de la PKI pour un utilisateur, que nous appellerons Alice, est de choisir aléatoirement une paire mutuellement inversible employée à la fois pour le chiffrage et le déchiffrage ; Elle publie alors les instructions pour effectuer le chiffrage (clef publique) mais pas le déchiffrage (clef privée).

Un autre utilisateur, appelé Bob, peut alors utiliser l’algorithme public d’Alice pour préparer un message que seule Alice peut déchiffrer. Ainsi, n’importe qui, y compris Alice, peut utiliser l’algorithme de chiffrement public de Bob pour préparer un message que seulement lui peut déchiffrer. C’est simple il suffisait d’y penser ! Ainsi, Alice et Bob peuvent converser secrètement sans partager le moindre secret préalable. Les PKI sont donc particulièrement appropriées pour chiffrer le courrier électronique et les transactions commerciales, qui se produisent souvent entre les parties qui, à la différence des diplomates et des espions, n’ont pas prévu préalablement leur besoin de communiquer secrètement. En contrepartie on ne sait pas si ces systèmes utilisés dans toutes nos transactions bancaires -par exemple à travers SSL et HTTPS- sont réellement solides. En effet, Shamir en 1982, maintenant à l’institut de Weizmann de la Science en Israël, à craqué l’un de ces systèmes le knapsack cipher. En Juillet 2004, deux jeunes femmes de l’Université de Shanghai ont annoncé la possibilité de calcul d’inversion de MD5 et SHA1, protocoles largement utilisés dans toutes nos communications chiffrées. Edgar Poe va sourire dans sa tombe : il se pourrait qu’il y ait une méthode d’attaque intelligente, jusqu’ici non découverte, qui pourrait casser tout code secret actuel en quelques minutes, voire « au fil de l’eau ». Il se peut qu’Alice et Bob aient du souci à se faire si une puissance nationale ou économique disposait d’une telle puissance de calcul… Diffie et Hellman ont d’ailleurs alerté de nombreuses fois la communauté scientifique dans les années 90, en expliquant qu’il y avait une faille grossière dans le codage de deux bits de DES (triple DES est largement utilisé dans nos communications chiffrées notamment dans HTTPS). Il se pourrait que cette faille ait été introduite volontairement lors de la conception du code pour permettre à une puissance nationale de décoder facilement les échanges cryptés sur son territoire. Ainsi la confidentialité des données et des flux chiffrés ne la serait pas pour tout le monde…

Le talon d’Achille de la crypto

En fait le talon d’Achille des solutions existantes de cryptographie est le processus d’échange des clefs. Tandis que les techniques conventionnelles de distribution se fondent sur la clef publique ou l’échange manuel. Une entité qui « renifle » le flux peut donc intercepter l’échange de clef, générer une fausse clef et se faire passer pour l’entité émettrice. Le récepteur va donc coder son message avec la fausse clef ce qui aura pour conséquence, primo que le message sera décodé par l’intrus en temps réel, et deuxio que le destinataire ne recevra pas le message d’origine, mais éventuellement un message modifié…

Voici un exemple d’interception de flux SSL dans un aéroport en WIFI, basé sur le principe du « man in the middle » et de la génération d’une fausse clef publique.

La STEGANOGRAPHIE : dissimuler l’information au lieu de la crypter.

La steganographie a été inventée par les Grecs pour dissimuler des informations à leurs ennemis. Ils inscrivaient sur le crane d’un esclave une information sensible, les cheveux repoussaient, puis le moment venu ils décapitaient l’esclave et récupéraient l’information… Ce « one time password », bien que cruel, leur garantissait de cacher une information de manière parfaite. En effet, le mot steganographie vient du Grec « steganos » qui veut dire « caché » mais dans le sens de « enfoui », comme un sous-marin… Le mot Grec « crypto » veut dire également « caché », mais dans le sens « on ne comprend pas la signification ». Deux mots de Grec donc, pour deux traitements des informations sensibles, distincts et complémentaires.

Dans la « crypto » si on reprend notre mot Grec, on chiffre le message avec une clef et on transmet la clef à tous les destinataires potentiels, permettant ainsi le déchiffrement ; En cas d’interception, le message ne pourra pas être lu sans la clef. Par exemple, le message chiffré sera « DAH » et la clef « 3 ». Le message en clair sera donc « AVE », « D-3=A » et ainsi de suite. En décalant de trois caractères la lettre d’origine on obtient le message en clair.

Le problème est, qu’une donnée cryptée attire l’attention dans une masse de données en clair. Il est évident pour un hacker ou une puissance étrangère, que les données chiffrées sont les données les plus « intéressantes ».

Il faut donc appliquer une autre stratégie pour les données dites « secrètes », les plus sensibles de toutes, celles qui ne doivent pas attirer l’attention. La steganographie moderne utilise un programme qui va encapsuler le fichier secret à protéger dans un autre fichier dit « hôte », plus grand, et qui sera anodin comme une photo ou une musique. Ce logiciel rend le fichier secret totalement invisible et perdu dans la masse de fichiers « en clair »…

Plusieurs avantages à cette technique : Lors de la perte d’un ordinateur portable, les fichiers réellement sensibles ne seront pas visibles par le voleur. Les douanes et autres systèmes de scan qui se concentrent sur les fichiers cryptés ne verront pas ces contenus. Des données secrètes au niveau même de l’entreprise ne seront pas visibles par d’autres personnes que celles au courant de l’existence du fichier. Même les informaticiens ne seront pas au courant de ces fichiers et ne pourront pas les lire.

Quelques inconvénients : Au niveau de la sécurité d’un pays, tous les délinquants peuvent utiliser ces techniques pour éviter d’être interceptés dans leurs agissements frauduleux. Les fuites d’informations à travers l’envoi d’un email sont facilitées pour les personnels indélicats.

Il faut donc connaître ces techniques et les expliquer aux dirigeants des entreprises afin de mieux protéger les données secrètes. « Un secret n’existe pas, sinon ce n’est plus un secret …», comme disent les militaires.

De quels programmes dispose-t-on pour mettre en œuvre la steganographie ? J’en utilise deux : Invisible Secrets 4, un shareware Roumain…

Et Truecrypt qui me permet de cacher un volume virtuel de mon disque dur, lui-même crypté…

Voici la photo « hôte » et la photo contenant le fichier caché ; Bien entendu on ne voit aucune différence à l’œil nu. La différence est dans le contenu du fichier, et dans la « vraie vie » le fichier d’origine n’étant pas disponible, il faut d’abord trouver quel fichier parmi des centaines de milliers, celui qui contient l’information steganographiée. Bien entendu on peut renforcer la sécurité en combinant la steganographie avec un chiffrement à l’intérieur du fichier… J’ai fait un challenge sur mon blog sur ces fichiers pour bien comprendre le mécanisme : www.netwizz.com

Image hôte « normale »

Image contenant le fichier steganographié

Si vous arrivez à déchiffrer le document vous aurez l’email qui prouvera votre exploit…

La CRYPTO Quantique

Un développement inattendu et récent est l’utilisation de la mécanique quantique afin d’exécuter des exploits cryptographiques irréalisables par les seules mathématiques. Les équipements cryptographiques quantiques utilisent typiquement des photons de lumière polarisés et tirent profit du principe de Heisenberg, un principe d’incertitudes, selon lequel la mesure d’un système quantique modifie l’état du système qu’il cherche à mesurer. L’écoute clandestine d’un flux crypté par la crypto quantique permettrait donc de manière absolue de modifier les données par une perturbation inévitable, alertant les utilisateurs légitimes. La cryptographie quantique exploite cet effet pour permettre à deux parties qui ne se sont jamais réunies ou vues, et donc qui ne partagent aucune information secrète à l’avance, de communiquer dans un secret absolu sous le nez d’un adversaire. Les techniques quantiques aident également à l’accomplissement des buts cryptographiques plus subtiles, importants dans un monde « post guerre-froide », tels que permettre à deux parties mutuellement méfiantes de prendre des décisions communes basées sur une information privée, tout en compromettant sa confidentialité le moins possible. Vous n’avez pas tout compris ? Voici donc la métaphore du « petit chat est mort »…

Pour décrire ce phénomène, on parle parfois du paradoxe du chat de Schrödinger qui est pour l’observateur à la fois mort et/ou vivant. Lorsque le chat dort, il est immobile, et l’on ne peut pas dire en le regardant s’il dort ou s’il est mort. Le chat peut donc être dans deux états différents que l’on ne peut différencier uniquement par l’observation.

L’observateur qui veut étudier avec une certitude absolue l’état de mort du chat ne pourra s’assurer qu’il est bien mort qu’en essayant de le réveiller. Si le chat est bien mort, le chat ne se réveille pas, donc ne change pas de position, donc l’état n’est pas perturbé, et l’on peut étudier cet état de mort du chat en étant certain que le chat que l’on observe est bel et bien mort.
Mais l’observateur qui veut étudier avec une certitude absolue l’état de sommeil du chat ne pourra s’assurer de cet état qu’en réveillant le chat. C’est ici qu’est le paradoxe : en réveillant le chat, l’observateur altère l’état qu’il voulait étudier, et il ne peut donc plus l’étudier. L’astuce consiste donc à supposer que le chat est endormi (probabilité = 50% = 1 chance sur 2), à l’observer d’abord, puis à vérifier ensuite en essayant de le réveiller. On ne conserve les résultats de l’observation que si le chat se réveille.

Avec seulement 2 états possibles, le raisonnement est simple. Tout se complique si l’on considère qu’il y a plusieurs chats à étudier en même temps et qu’il y a 3 états possibles, c’est à dire que chaque chat peut être soit mort, soit endormi, ou bien les 2 états à la fois en superposition…
Cependant au niveau quantique, il ne s’agit pas seulement d’un modèle permettant de rendre compte de notre ignorance du système. Les particules sont véritablement dans cet état superposé, et il en découle un certain nombre de propriétés inédites à notre échelle. Une mesure sur un système quantique va le forcer à choisir un des états. On parle de projection.

La cryptographie quantique résout définitivement le problème de la distribution de clés. Cette technologie de rupture protège de manière absolue les communications voix, données et images. Au lieu de transmettre les clés, ce procédé les fabrique de manière dynamique grâce aux principes universels de la physique quantique. Pour la première fois dans l’histoire de la cryptographie, les clés ainsi obtenues sont invulnérables.

La nette différence entre la crypto traditionnelle et la cryptographie quantique réside dans le fait que l’émetteur transmet au récepteur une chaîne continue de bits véhiculés par des grains de lumière appelés photons. Si un intrus essaie de les intercepter, leur état changera de manière irréparable. L’émetteur et le récepteur détecteront la tentative d’espionnage. La chaîne corrompue est alors rejetée. Aucun de ces bits douteux ne sera utilisé pour établir une clé. Seuls les photons intègres fournissant une information sans risque participent à la génération de clés secrètes.

En cryptographie traditionnelle, le risque d’une attaque par « man in the middle » reste indétectable. Les pirates réalisent alors une copie des messages transmis et procèdent ensuite à leur cryptanalyse en vue de briser les codes secrets. Les crypto systèmes actuels n’offrent aucune résistance contre de telles interceptions.

En revanche, la cryptographie quantique détecte systématiquement les intrusions et supprime le risque d’espionnage. Si un intrus tente de cloner les informations transportées par les photons envoyés sur la fibre optique reliant deux interlocuteurs, la mécanique quantique garantit que cette attaque entraînera une perturbation détectable. Les utilisateurs légitimes de la ligne retarderont alors l’envoi d’informations sensibles jusqu’à ce que la sécurité du lien soit de nouveau assurée.

Pour la toute première fois dans l’histoire de la cryptographie, la sécurité absolue des communications via liaisons optiques est rendue possible grâce aux lois de la physique quantique. Mais Edgar Poe aurait-il encore raison ? N’y a-t-il pas un moyen de casser le code ?

L’ordinateur quantique : le passage de la télé « noir et blanc » à la télé couleurs…

L’algorithme de Shor est un algorithme quantique pour factoriser un nombre N en temps O((log N)3) et en espace O(log N), nommé en l’honneur de Peter Shor. Beaucoup de crypto systèmes à clé publique, tels que le RSA, deviendraient cassables par un tiers si l’algorithme de Shor était un jour programmé dans un calculateur quantique pratique. Un message chiffré avec RSA peut être déchiffré par factorisation de sa clef publique N, qui est le produit de deux nombres premiers. Il est connu que les algorithmes classiques ne peuvent pas faire cela en temps O((log N)k) pour n’importe quel k, donc, ils deviennent rapidement impraticables quand N augmente, à la différence de l’algorithme de Shor qui peut casser le RSA en temps polynomial. Autrement dit, un ordinateur quantique changerait une durée exponentielle en durée linéaire en utilisant tous les états intermédiaires entre 0 et 1. Un peu comme si l’ordinateur au silicium actuel était une télé en « noir et blanc – zero et un » alors que l’ordinateur quantique était une télé « couleurs » avec une palette d’états entre le blanc et le noir…

Comme tous les algorithmes pour calculateur quantique, l’algorithme de Shor est probabiliste : il donne la réponse correcte avec une haute probabilité et la probabilité d’échec peut être diminuée en répétant l’algorithme. L’algorithme de Shor fut utilisé en 2001 par un groupe d’IBM, qui factorisa 15 en 3 et 5, en utilisant un calculateur quantique de 7 qubits. Le qubit est le bit de base d’un ordinateur quantique. Si une entité était capable de fabriquer un ordinateur quantique de, par exemple, 8 qubits, il serait équivalent à la puissance de 256 ordinateurs (2 puissance 8)… Avec un ordinateur à 40 qubits on aurait l’équivalent de puissance de 1 099 511 627 776soit 1099 milliards d’ordinateurs au silicium… Sachant que si l’on utilisait simultanément tous les ordinateurs de la planète on aurait une puissance de calcul maximum de 1 milliard d’ordinateurs soit 1000 près de fois moins…

Autrement dit un mot de passe de 12 caractères qui résisterait près de 43.000 ans à une attaque « brute force », ne résisterait plus que 1,2 secondes avec un ordinateur quantique, ou un code de 16 caractères (128 bits, c’est-à-dire nos communications SSL) qui résisterait à une attaque brute force pendant 2,8 x 10 puissance 35 années (c’est-à-dire 35 zéros derrière 2,8), ne résisterait plus que 2 minutes et demi avec un ordinateur quantique à 64 qubits… Aujourd’hui certaines compagnies annoncent des ordinateurs quantiques de 512 voire 1024 qubits en préparation, sans pour autant que l’on ait vu le moindre prototype…

Conclusion (temporaire)

Edgar Poe aura-t-il finalement tort ou raison ? A chaque avancée de la cryptographie, il y a des possibilités nouvelles de décryptage. Ce qui apparaît clair, est que toute puissance économique et militaire qui voudra se maintenir à la pointe devra constamment engager des recherches, et la voie semble toute tracée pour l’ordinateur quantique, la cryptographie quantique et les nanotechnologies nécessaires pour l’atteindre.

Source

Tags : Crypto, cryptographie, espionnage, Etats-Unis, 5G, Chine, informatique,