A l’origine, la cryptographie ne concernait que les informations les plus stratégiques. Secrets d’Etats, informations militaires sur le positionnement de troupes, complots fomentés dans l’ombre… seules les opérations les plus importantes nécessitaient le sceau du secret.
Aujourd’hui, les choses ont changé. Si les gouvernements ont toujours besoin de cryptographie, c’est également le cas de Monsieur tout le monde. On ne s’en rend même pas compte, mais la cryptographie est partout : lorsqu’on retire de l’argent, lorsqu’on fait ses courses, lorsqu’on navigue sur Internet… ou bien sûr, lorsque deux personnes veulent s’envoyer des informations secrètes.
Le chiffre de César
Au début, les messages codés étaient très simples. On sait par exemple que Jules César utilisait une forme de code aujourd’hui primitive : il faisait correspondre chaque lettre de l’alphabet à une autre lettre grâce à un simple décalage (ici, le décalage est de 3) :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
Ce type de chiffrement, appelé “Chiffre de César”, est extrêmement simple, et il serait aujourd’hui très facile d’en venir à bout.
Il existe plusieurs logiciels ou sites, sur Internet, qui permettent d’écrire très facilement des messages codés avec le chiffre de César. Par contre, il ne faut pas compter dessus pour envoyer des messages secrets !
Comment écrire un message secret ?
Quelle que soit la méthode utilisée, il faut trois éléments pour écrire un message secret :
• Le message à envoyer
• Une méthode de chiffrement, aussi appelée “algorithme”. Il peut s’agir du chiffre de César, qui consiste à décaler l’alphabet.
• Une clé de chiffrement, qui fixe les modalités d’utilisation de l’algorithme. Dans notre exemple, la clé utilisée est 3, puisqu’on a décidé de décaler l’alphabet de 3 unités. Un autre jour, on aurait pu utiliser une clé de 12, en décalant l’alphabet de 12, ce qui aurait donné un message complètement différent. Le chiffre de César peut prendre 26 clés différentes (pour les 26 lettres), ce qui est très peu.
Pendant la Seconde Guerre mondiale, les Allemands utilisaient “Enigma”, une sorte de machine à écrire très complexe qui pouvait avoir plus de 10 000 000 000 000 000 clés possibles.
En bref, pour faire un bon code secret, il faut 1 message + 1 algorithme + 1 clé. Pour décoder le message, le destinataire a besoin du message crypté, de l’algorithme, et de la clé.
La distribution de la clé dans la cryptographie
Imaginons maintenant la situation suivante : Alice et Bob veulent s’envoyer des messages secrets, mais Eve les espionne.
Alice et Bob doivent se mettre d’accord sur une clé qui leur permettra de crypter et de décrypter des messages (“on décale de 3”, par exemple). Si Eve les espionne, la seule solution pour eux consiste à se rencontrer physiquement pour s’échanger la clé. Non seulement c’est une phase critique (Eve pourrait les espionner même s’ils se rencontrent), mais en plus, c’est peu pratique… Si Alice habite en Chine, par exemple, il lui est difficile de rejoindre Bob. Ce n’est que dans les années 1970 qu’une solution à cette distribution des clés a été trouvée. Imaginons qu’Alice veuille envoyer un message secret à Bob. Elle place son message dans une boîte, à laquelle elle ajoute un cadenas. Elle envoie la boîte à Bob. Bob ajoute un deuxième cadenas à la boîte, et renvoie le tout à Alice. Alice enlève alors son cadenas et renvoie la boîte à Bob.
Celui-ci peut enfin ouvrir la boîte, puisque le cadenas qui reste est le sien… et à aucun moment, la boîte n’aura voyagé sans cadenas : Eve n’aura jamais pu l’ouvrir. La traduction mathématique du système (qui demanda un certain temps de réflexion supplémentaire) fut révélée au public en 1976.
Cependant, s’il s’agissait là d’un bond de géant dans la cryptographie, un petit problème pratique demeurait : le temps de transmission de l’information. En effet, si Alice voulait envoyer un message à Bob, il fallait qu’elle attende la réponse de Bob et qu’elle lui réponde en retour pour que son ami reçoive enfin le message crypté : c’était un peu long !
Le principe des clés publiques
La réponse à ce problème est venue d’une réflexion sur le principe même de clé. Depuis la naissance de la cryptographie, on disait qu’il fallait la même clé pour crypter et pour décrypter un message. Etait-ce vraiment le cas ? En fait, le moyen le plus simple serait d’avoir une clé de chiffrement, que tout le monde connaîtrait (la clé publique), et une clé de déchiffrement, que seule Alice posséderait (la clé privée). N’importe qui pourrait crypter un message pour Alice, mais elle seule serait capable de le comprendre… Imaginons en effet qu’Alice possède un cadenas avec la clé correspondante. Elle fabrique alors plusieurs copies du cadenas et les envoie à Bob. Dès que Bob voudra lui envoyer un message, il lui suffira de mettre le texte dans une boîte, de la fermer avec l’un des cadenas d’Alice et de lui envoyer le tout.
Ce qui est intéressant dans cette analogie, c’est l’idée de cadenas : quelque chose de facile à fermer (n’importe qui peut appuyer dessus) mais de très difficile à ouvrir (il faut la clé qui correspond).
Maintenant, comment appliquer cette idée d’un point de vue mathématique ? Ce qu’il faut, c’est ce qu’on appelle une “fonction à sens unique”. Une fonction, c’est une opération mathématique qui permet de transformer un chiffre en un autre. Le fait de diviser par deux est une fonction par exemple. Mais une “fonction à sens unique”, c’est une opération qui transforme un chiffre x en un chiffre y de telle sorte qu’il est quasiment impossible de déduire x si l’on connaît y. “Diviser par deux” n’est pas une fonction à sens unique, car si y=4, on en déduit facilement que x=8.
Le plus gros risque de la cryptographie : l’homme
Actuellement, la technologie est donc parfaitement au point. La probabilité pour qu’on puisse casser les codes actuellement utilisés est extrêmement faible. Si cela se produisait, ce serait avant tout dû au hasard. Cependant, si la technologie est au point, l’homme est parfaitement faillible. En cryptographie, le risque principal n’est pas la faiblesse de l’algorithme, mais la faiblesse de l’être humain. Il suffit en effet d’un peu d’inattention, de quelques maladresses, pour que tout le système s’écroule. Il suffit par exemple qu’Alice notre sa clé privée sur un bout de papier, ou sur un coin de son ordinateur pour que des siècles d’avancées en cryptographie soient réduits à néant. En matière de sécurité, la tâche la plus ardue n’est donc plus de trouver le meilleur système, mais d’éduquer les utilisateurs.