Des millions de personnes transmettent chaque jour des documents dans le monde entier via des réseaux informatiques. Or, qu'il s'agisse de données à caractère privé ou professionnel, il est parfois nécessaire de les chiffrer pour des raisons de confidentialité.
Depuis l'apparition de l'écriture, les hommes n'ont cessé de s'intéresser - la plupart du temps à des fins militaires - aux moyens permettant de transformer un document intelligible en une information incompréhensible. Pendant la Guerre des Gaules, les Romains ont par exemple utilisé un système de cryptage - dit " de César " - s'appuyant sur un alphabet décalé de trois lettres : le A était transformé en D, le B en E et ainsi de suite. Au fil du temps, les méthodes de cryptage se sont sophistiquées et adaptées aux innovations techniques de leur époque : les ordinateurs sont par exemple devenus incontournables de nos jours.
Avant d'étudier plus en détail les principaux procédés cryptographiques actuellement utilisés, il convient tout d'abord d'expliquer certains termes fréquemment employés par les spécialistes. La cryptologie est la science des écritures secrètes, qu'il s'agisse d'informations électroniques ou non. Elle englobe la cryptographie - laquelle désigne le processus permettant de rendre inintelligible une donnée compréhensible - et la cryptanalyse (ensemble de méthodes servant à décoder des données sans connaître préalablement la clé de codage). Lorsqu'il s'agit de coder des données numériques, on utilise de préférence le terme " chiffrement ". Les informations chiffrées - également appelées " cryptogramme " - sont dites déchiffrées lorsque la clé de codage appropriée est employée. En revanche, on parle de décryptage lorsque des tiers cherchent à transformer un cryptogramme en texte clair sans connaître la clé.
Cryptographie asymétrique
A l'heure actuelle, il existe deux principales méthodes pour chiffrer des informations : la cryptographie symétrique et asymétrique. Dans les deux cas, on s'appuie sur des formules mathématiques souvent complexes, appelées " algorithmes ". En revanche, le principe de codage à base de clés n'est pas du tout le même. Dans un système symétrique, une clé unique sert à la fois au chiffrement et au déchiffrement des informations par transposition ou substitution de caractères. L'inconvénient majeur de ce système réside dans la transmission de la clé au correspondant souhaité. En effet, étant donné que la même clé est nécessaire pour le codage et le décodage, les personnes souhaitant s'envoyer des documents chiffrés doivent trouver une solution " sécurisée " pour se communiquer la clé. Il faut notamment éviter de transmettre la clé au moyen d'un message électronique - une interception du courrier étant par exemple possible sur Internet. Une remise en main propre ou via un canal de communication sécurisé est donc préférable dans un système symétrique. Les algorithmes DES (Data Encryption Standard - inventé par IBM en 1976) et IDEA (International Data Encryption Algorithm - développé par Xuejia Lai, James Massey et Sean Murphy) sont les plus connus.
Contrairement à un système symétrique, la cryptographie asymétrique - également dite à clé publique - se distingue par l'utilisation de deux clés distinctes. Une paire de clés est générée : une clé publique est utilisée pour le chiffrement d'un document, une clé privée secrète pour l'opération inverse. La clé publique, qui ne peut en aucun cas servir au déchiffrement, est communiquée librement - par eMail, courrier postal ou appel téléphonique - à tout correspondant susceptible d'envoyer des documents codés au détenteur de la clé privée. Sans cette dernière, il est absolument impossible de déchiffrer un cryptogramme créé à l'aide de la clé publique. Par conséquent, la clé privée doit être impérativement conservée dans un endroit sûr, hors d'atteinte des autres utilisateurs pour éviter toute possibilité de décryptage.
L'algorithme RSA - développé par Ronald Rivest, Adi Shamir et Leonard Adleman à la fin des années 70 - est le système de cryptographie asymétrique le plus célèbre et il est notamment utilisé dans le logiciel de chiffrement Pretty Good Privacy (PGP) réalisé par Philip Zimmermann. Un algorithme comme RSA s'appuie sur des calculs mathématiques a fortiori très simples - comme la multiplication de deux nombres premiers - mais dès qu'il s'agit d'effectuer le cheminement inverse (factorisation du résultat), cela s'avère beaucoup plus complexe.
Signature et authentification
Outre le choix d'un algorithme de codage, la longueur des clés générées est également importante. En effet, plus la clé est longue, plus il sera difficile à un cryptanalyste de " craquer " un cryptogramme. A l'heure actuelle, seules des clés supérieures ou égales à 512 bits sont absolument sûres. A titre d'exemple, DES utilise des clés de 56 bits et IDEA de 128 bits, tandis que RSA supporte des clés de taille variable. Toutefois, même si des documents chiffrés avec DES ou IDEA sont en principe décryptables, cette opération n'est pas à la portée du premier venu...
Les procédures de chiffrement et de déchiffrement ne sont pas les seuls problèmes à prendre en compte. En effet, le cryptage des données ne sert à rien si le destinataire du cryptogramme n'est pas en mesure de vérifier l'intégrité du document ainsi que l'identité de son expéditeur - des personnes mal intentionnées peuvent notamment se faire passer pour autrui ou bien intercepter un message avant d'en modifier le contenu pour induire en erreur le destinataire. Pour éviter toute falsification des informations, on utilise une " signature numérique " unique, dont la structure s'appuie en partie sur le contenu du document à envoyer. Le principe est le suivant : une fonction mathématique - dite de hachage - calcule une valeur qui est ensuite associée au message chiffré. Lors de la réception de ce dernier, le destinataire effectue son propre calcul à l'aide du même algorithme puis compare le résultat avec la valeur qui lui a été envoyée. Si les deux valeurs sont identiques, cela signifie que le document n'a pas été modifié en cours de route. Pour éviter que la valeur de hachage ne soit exploitée par un tiers mal intentionné désireux de falsifier le message, l'expéditeur doit la chiffrer à l'aide de sa clé privée avant de coder l'ensemble du document avec la clé publique du destinataire. Ce qui pose a priori un problème à ce dernier. En effet, lorsqu'il déchiffre le message avec sa clé privée, la signature demeure encore cryptée - celle-ci ayant été codée avec la clé privée de l'expéditeur. Il s'agit en fait d'un faux problème car, dans un système asymétrique, une information chiffrée avec la clé privée d'un utilisateur peut être décodée avec sa clé publique. Cette opération, qui n'aurait aucun sens dans un chiffrement classique (tout un chacun pouvant alors lire les messages d'autrui avec la clé publique correspondante) s'avère essentielle lors du hachage : seul le véritable expéditeur peut crypter la signature avec sa clé privée.
Si la cryptologie vous intéresse, vous pouvez notamment consulter sur Usenet le forum de discussion fr.misc.cryptologie.
© 1998 - Jean-Philippe Elie