Histoire
et usage de la Cryptographie |
Par le Dr. Steven Perry
1. Qu'est-ce que la cryptographie ?
2. Comment ça marche ?
3. Bon, OK. Comment je peux faire ça chez moi ?
4. Et à part moi qui ça interresse d'autre ?
Ce petit essai se veut un rapide panorama des méthodes actuelles de cryptographie. De nos jours, la cryptographie est entrée dans la vie courante. Nous nous en servons tous les jours sans même nous en rendre compte. Chaque fois que nous passons un appel téléphonique, que nous envoyons un email, nous cryptons les données que nous maipulons. La plupart du temps ce cryptage se fait automatiquement et il est tellement rapide que nous ne nous en rendons même pas compte. Seuls les cryptages des transactions bancaires peuvent être perceptibles par un humain, et encore la plupart du temps faut-il qu'il soit cablé pour se rendre compte de la seconde et demi écoulée entre la validation de son code de carte bancaire et l'affichage de l'état de son compte. Pourtant, même si la cryptographie nous entoure, peu d'entre nous en perçoivent l'interêt, la necessité même. Car sans cryptographie, de nos jours, nous pourrions dire adieu à une vie privée qu'il est déjà tellement difficile de défendre face aux multinationales, prêtes à nous vendre n'importe quoi à n'importe quel prix, aux gouvernement, soucieux de nous surveiller pour mieux nous contrôler et à tant d'autres individus non moins puissants et encore moins scrupuleux s'il en est.
Mon ouvrage présente tout d'abord une définition de la cryptographie afin que tout le monde parle de la même chose. Il va ensuite détailler, sans entrer dans des détails trop techniques quelques méthodes classiques de cryptage. La troisième partie présentera des ébauches d'applications, plus particulièrement destinées aux runners et vous offrira une amusante machine de cryptage. Enfin, la dernière section vous montrera quelques ressources de la matrice consacrées à la cryptographie.
Je vous souhaite une agréable lecture. N'hésitez pas à m'envoyer vos remarques et suggestions à SPerry@mit.edu
De tous temps, les services secrets ont utilisé toutes sortes de codages et de moyens cryptographiques pour communiquer entre agents et gouvernements, de telle sorte que les "ennemis" ne puissent pas comprendre les informations échangées. La cryptologie a alors évolué dans ces milieux fermés qu'étaient les gouvernements, les services secrets et les armées. Ainsi, très peu de gens, voire personne n'utilisait la cryptographie à des fins personnelles. C'est pourquoi, pendant tant d'années, la cryptologie est restée une science discrète.
De nos jours en revanche, il y a de plus en plus d'informations qui doivent
rester secrètes ou confidentielles. En effet, les informations échangées
par les banques ou un mot de passe ne doivent pas être divulgués
et personne ne doit pouvoir les déduire.
C'est pourquoi ce genre d'informations est crypté. L'algorithme de cryptographie
DES par exemple, est utilisé massivement par les banques pour garantir
la sécurité et la confidentialité des données circulant
sur les réseaux bancaires. Le système d'exploitation Unix, lui
aussi, utilise ce procédé pour crypter ses mots de passe.
Finalement, la cryptologie est de plus en plus utilisée sur la Matrice. Avec l'apparition du commerce en ligne, c'est-à-dire la possibilité de commander des produits directement sur le réseau, la cryptographie est devenue nécessaire. En effet, si les différents ordinateurs branchés sur la Matrice sont sécurisés par des mots de passe, c'est-à-dire à priori inaccessibles par un ennemi, les transactions de données entre deux ordinateurs distants via le net sont, quant à elles, facilement interceptibles. C'est pourquoi lorsque l'on commande un produit sur le net en payant avec notre carte bancaire, il est beaucoup plus sûr d'envoyer notre numéro de carte bancaire une fois crypté, celui-ci ne pourra à priori, être décrypté que par la société à laquelle on a commandé ce produit.
C'est pour ces mêmes raisons d'insécurité sur le réseau, et par un besoin humain d'intimité que la cryptographie à des fins purement personnelles s'est développée sur le réseau : pour la messagerie électronique. En effet lorsque l'on envoie un message électronique, on peut préférer qu'il reste discret vis à vis de la communauté, voire qu'il ne soit compréhensible que par le destinataire du message. En d'autres termes, la cryptographie peut servir si l'on veut envoyer un message confidentiel, ou un message intime à quelqu'un. Cela est aujourd'hui possible grâce à la formidable distribution de logiciels gratuits permettant d'utiliser de la cryptographie "forte" très facilement. C'est le cas du logiciel PGP (Pretty Good Privacy = "assez bonne confidentialité") qui est distribué gratuitement sur le réseau, développé par Philip R. Zimmerman seul, en 1991. Ce sont pour toutes ces raisons que tout d'abord la cryptologie s'est énormément renforcée, et que finalement elle est passée d'un monde fermé comme les armées ou les services secrets à un monde ouvert à tout utilisateur.
A partir de 2012, la cryptographie a fait un bond en avant avec les découvertes de Rahjiv Slimann. Ce chercheur en mathématiques pures de l'université de Calculta a en effet combiné des résultats obtenus précédemment dans des domaines très différents (méthodes de factorisation de très grands nombres et théorie des ondelettes plus utilisée habituellement en compression de données) pour produire de nouveaux schéma d'encryptage donc l'attaque par la force brute (la seule envisageable) demande une puissance de calcul qui, même près de 15 ans après n'est toujours pas envisageable. Ces algorithmes ont depuis été utilisés par la majorité des outils de cryptage et sont actuellement la référence absolue dans le domaine.
Seule une petite publication, passée quasiment inaperçue, à
la fin de l'an dernier semble indiquer un nouveau prétendant au titre
très envié d'"algorithme de cryptage de référence".
Il s'agit d'une méthode mise au point à partir des résultats
de Slimann par des chercheurs du centre EBM de Cologne. Mais cette technique
fait appel à des puces spéciales développées par
EBM et risque donc de ne pas connaitre un grand succès à moins
de démontrer des performance très supérieures aux applications
actuelles.
Le chiffrement est l'action de transformer une information claire, compréhensible de tout le monde, en une information chiffrée, incompréhensible. Le chiffrement est toujours associé au déchiffrement, l'action inverse. Pour ce faire, le chiffrement est opéré avec un algorithme à clé publique ou avec un algorithme à clé privée.
Les algorithmes à clé privée sont aussi appelés algorithmes symétriques. En effet, lorsque l'on crypte une information à l'aide d'un algorithme symétrique avec une clé secrète, le destinataire utilisera la même clé secrète pour décrypter. Il est donc nécessaire que les deux interlocuteurs se soient mis d'accord sur une clé privée auparavant, par courrier, par téléphone ou lors d'un entretien privé. La cryptographie à clé publique, quant à elle, a été inventée par Whitfield Diffie et Martin Hetlman en 1976 pour éviter ce problème d'échange de clé secrète préalable.
En effet, les algorithmes à clé publique sont aussi appelés algorithmes asymétriques. C'est à dire que pour crypter un message, on utilise la clé publique (connue de tous) du destinataire, qui sera à priori le seul à pouvoir le décrypter à l'aide de sa clé privée (connue de lui seul).
Une information de type texte, ou n'importe quel autre type d'information a besoin d'être codée avant d'être cryptée à l'aide d'un algorithme à clé publique ou privée. En d'autres termes, il faut fixer une correspondance entre une information et un nombre, puisque les algorithmes à clé (publique ou privée) ne peuvent crypter que des nombres. Le problème se résout facilement, puisque la plupart du temps, ce type de cryptographie est essentiellement utilisé sur des machines. Et comme de toute façon les informations sur une machine sont une suite de nombres, le problème est déjà très simplifié.
L'algorithme DES ne crypte que des blocs de 64 bits. Il nous suffira donc de diviser nos informations à crypter en blocs de 8 octets.
L'algorithme RSA, lui, ne crypte que des nombres inférieurs au nombre n qui est un élément de sa clé publique. On pourra utiliser le standard ASCII, plus communément appelé "table ASCII" qui code chaque octet (ou chaque caractère) de 000 à 255, pour transformer partie par partie l'information à crypter en nombres (tous inférieurs à n).
L'algorithme de Slimann traite des groupement de 256 bits. Le message a crypter doit donc avoir une taille multiple de cette valeur (ce qui n'est pas une grande contrainte). Il impose par contre quelques autres contraintes sur la forme du message et il peut être nécessaire de passer des filtres préliminaires sur les données mais ceci dépasse un peu le cadre de cet article. On se reportera aux diverses publications du Dr. Slimann.
Bien sûr, dès que l'on parle de cryptographie, il faut également aborder la cryptanalyse. La cryptanalyse n'est rien d'autre que l'art de déchiffrer les codes secrets c'est à dire le contraire de la cryptographie.
La cryptanalyse est l'étude des procédés de décryptage. Où, plus généralement la science qui étudie la sécurité des procédés cryptographiques. Le cryptologiste est toujours cryptanalyse puisque qu'il doit en créant un algorithme de cryptographie s'assurer de sa sécurité, et pour ce faire, il a besoin de la cryptanalyse. La cryptanalyse tente de tester la résistance d'un algorithme de cryptographie en simulant différents types "d'attaques", qu'un ennemi pourrait effectuer si il interceptait le document crypté. Un ennemi, en cryptologie, est une personne qui tentera, une fois le document crypté intercepté d'opérer une attaque passive, ou une attaque active.
Faire une attaque passive est le fait de tenter de décrypter un document dans le but d'en prendre connaissance uniquement, sans l'altérer.
Faire une attaque active est le fait de tenter de décrypter un document dans le but de pouvoir en prendre connaissance d'une part, et d'autre part dans le but de le modifier, ou d'en modifier la signature pour le falsifier, en général dans son intérêt.
La seule méthode connue à ce jour pour décrypter un message
crypté avec DES, est la méthode dite "brute" qui consiste
à tester la totalité des différentes clés de 56
bits possibles. Le problème majeur est qu'il y en a 2^56, soit exactement
72 057 595 037 927 936 différentes ! Cela peut prendre un temps considérable.
Cependant, les services secrets peuvent avoir les moyens matériels de
briser
de tels codes, il leur suffit d'avoir une ou des machines extrêmement
puissantes, ce qui pourrait tout à fait être possible pour des
nations importantes...
Comme on l'a vu précédemment, la résistance d'un document
crypté avec l'algorithme RSA s'appuie sur le fait qu'il est extrêmement
difficile de factoriser en deux facteurs premiers un très grand nombre.
L'attaque va donc consister à utiliser des algorithmes de factorisation
les plus rapides, et les plus puissants possibles, pour factoriser le nombre
n extrêmement grand de la clé publique visée.
L'attaque d'un tel document et encore beaucoup plus long (pour une taille du
nombre n raisonnable) que l'attaque d'un document crypté avec DES. C'est
pourquoi, de grandes recherches en mathématiques sur des algorithmes
de factorisation de plus en plus rapides sont effectuées partout dans
le monde. La méthode RSA, réputée pour sa quasi-invulnérabilité
(quand elle est utilisée avec une très grande clé) pourrait
s'écrouler si quelqu'un parvenait un jour à écrire un tel
algorithme.
Car RSA repose sur un principe qui a l'air évident mais qui n'a jamais été prouvé ! Actuellement, il n'y a aucun algorithme/méthode connu, capable de factoriser dans un temps convenable une très grande clé. Avec les algorithmes de factorisation actuels, il faudrait au briseur de code une puissance beaucoup plus importante pour arriver à ses fins. Mais avec une puissance de calcul plus importante, l'utilisateur peut aussi agrandir la taille de la clé de un bit ou deux, par exemple. Or l'augmentation de la taille de la clé de un/deux bits signifie une multiplication par deux/quatre le nombre maximum que peut être la clé ! Par exemple RSA Labs a mis sur le marché il y a quelques mois un processeur dédié à la méthode RSA comportant des instructions dites "de haut niveau" directement implémentées sur le processeur, comme une instruction permettant de calculer le modulo d'un grand nombre avec un autre grand nombre rapidement, et une instruction permettant de factoriser un grand nombre.
Ce processeur factorise en effet beaucoup plus vite qu'un ordinateur normal, puisque sur l'un, l'algorithme de factorisation est implémenté en hardware alors que sur l'autre, il est implémenté en software. On peut remarquer que ce processeur avantage plus ou moins également le crypteur que le briseur de code.
Les découvertes de Slimann ont mis à mal la quasi invulnérabilité
de l'algorithme RSA en facilitant grandement la factorisation de grands nombre
mais combinées avec ses recherches dans le domaine de la théorie
des ondelettes, il a également permis de renforcer cet algorithme en
utilisant des clés considérablement plus grandes. Son algorithme
quant à lui n'a pas encore (après plus de dix ans d'existance)
été attaqué avec succès et est à ce jour
considéré comme un des plus sûr.
Mais énormément de monde.
Voici quelques cyberliens pour visiter le monde de la cryptographie :
|
Copyright 2003, © Les Kranamyths