Guillaume Tyson 20-10-12 Cryptologie Cette conférence nous a sensibilisé à travers l’exemple de la carte bancaire à une discipline que nous connaissons tous de nom sans pour autant savoir de quoi il en retourne vraiment, la cryptologie. Sous ce nom se cache en fait deux sciences, la cryptographie et la cryptanalyse, l’art de concevoir des systèmes de chiffrement et l’art de les casser. Un système de chiffrement doit respecter certaines contraintes. Une notion clé est celle de confidentialité, savoir de qui exactement on cherche à protéger des données. Les mesures prises ne seront pas les mêmes. Souvent on commence par supposer l’adversaire très fort, puis on adapte l’algorithme à la menace la plus probable. À ce sujet, j’ai trouvé cela inquiétant de savoir que si ça les intéressait, des organismes très puissants comme la NSA serait capable d’avoir accès à des données très personnelles de quiconque. Il existe principalement deux types de systèmes de chiffrement. Le premier type (historiquement) est celui à clé secrète. Bien qu’il existait déjà sous diverses forme, c’est Auguste Kerckhoff, un militaire français du 19ème siècle, qui en défini proprement les règles. L’idée la plus importante de ce genre de système est que l’algorithme, ou le mécanisme, qui a servi à crypter le message est publique, tout le monde peut avoir accès à la théorie derrière. Ce qui garantit l’inviolabilité du message est que la clé utilisée pour transcrire le message codé est tenue secrète. La grosse difficulté est donc de parvenir à transmettre cette clé tout en garantissant sa confidentialité. C’est à ce type de système auquel on pense naturellement quand on parle de cryptologie, ou plus naïvement de code secret. Classiquement, les films d’espionnage où les agents secrets emploient diverses ruses pour se transmettre la clé. Cependant, cette méthode connaît aujourd’hui ses limites. D’une part parce qu’il devient de plus en plus facile pour des ordinateurs de tester toutes les combinaisons possible, d’autre part parce que ce n’est pas une solution adaptée à toutes les situations. En particulier, c’est ce que nous avons vu avec l’exemple de la carte bancaire. Typiquement, quand on insère notre carte dans le lecteur et qu’on tape notre code pin, le terminal interroge la carte pour savoir si c’est la bonne clé. Il est possible de créer des cartes qui répondent oui quelle que soit la demande. Une clé secrète ne suffit pas. Je trouve que la seconde méthode employée, à clé publique, n’a pas autant de charme. Cela semble trop facile de chiffrer un message. Prenons l’exemple classique d’Alice et Bob qui cherchent à communiquer. Cette technologie repose sur le principe qu’ils ont tous les deux en commun un algorithme. (Typiquement aujourd’hui l’algorithme RSA). Supposons qu’Alice veuille envoyer un message à Bob. Bob d’une part génère à partir de l’algorithme une clé 1 Guillaume Tyson 20-10-12 privée et une clé publique. Il envoi alors à Alice la clé publique et garde pour lui la clé privée. La clé publique et l’algorithme peuvent être connus de n’importe qui. Alice chiffre alors son message utilisant l’algorithme et renvoi, toujours publiquement, le message chiffré. Bob est alors le seul capable de déchiffrer le message car il est le seul à posséder la clé secrète. J’ai été impressionné, mais aussi à la fois un peu déçu, de voir la puissance des mathématiques (car c’est bien de cela qu’il s’agit). Même si c’est bien pratique, cela enlève un peu le charme de l’écriture sympathique ou des systèmes à clé secrète transmis de génération en génération. Finalement vient la notion essentielle de l’authenticité, comment vérifier que l’expéditeur est bien le bon. C’est le problème qui m’a semblé le moins naturel. Il prend toute son importance avec les cartes bancaires. Si on ne vérifie pas l’authenticité d’une carte, on s’expose à des risques évidents de fraude. Pour ce faire, le terminal qui interroge la carte envoi une requête à la banque, reçoit une clé publique puis s’assure que la carte bancaire interrogée possède la clé secrète, typiquement en demandant la factorisation d’un nombre aléatoire modulo la clé publique (opération très difficile sans la clé secrète). Je garderais surtout de cet exposé que les solutions mathématiques à un problème donné sont bien souvent les plus puissantes. Une conversation peut être surprise, une planque découverte, mais personne n’est en mesure de résoudre une équation dont il ne connaît pas toutes les variables. Cela me laisse admiratif mais aussi un peu déçu de penser qu’on ne peut pas faire mieux que des maths. 2