Chapitre 4 : le chiffrement et la
cryptographie
I. Introduction
Ici nous entrons au cœur du sujet traiter dans le cadre de ce cours : les principes du
chiffrement sur lesquels reposent toutes les techniques de sécurité informatique, et notamment
les inventions révolutionnaires de l’échange public de clés et du chiffrement asymétrique. Il est
surprenant que les bases mathématiques de ces inventions des années 1970 aient été connues des
mathématiciens du XVIIIe siècle comme Euler, et le lecteur découvrira qu’il peut les aborder avec
la seule maîtrise de l’addition et de la multiplication.
II. Naissance de la cryptographie informatique : Alan Turing
L’invention de l’ordinateur a bien sûr donné un essor considérable à la cryptographie et à
la cryptanalyse. Ce n’est d’ailleurs pas un hasard si le créateur du modèle théorique de l’ordinateur,
Alan Turing, a été aussi pendant la guerre un formidable concepteur de machines à déchiffrer les
codes allemands chiffrés par les automates Enigma. Les machines de Turing, appelées Bombes,
étaient fondées sur une réalisation originale du logicien polonais Marian Rejewski. La courbe qui
trace le succès des attaques de sous-marins allemands contre les convois transatlantiques qui
acheminaient les fournitures américaines à la Grande-Bretagne subit des fluctuations importantes
qui correspondent au délai à l’issue duquel l’équipe d’Alan Turing à Bletchley Park en Angleterre
parvenait à déchiffrer plus ou moins parfaitement le code allemand après un changement de
combinaison des Enigma. Lorsque l’on sait l’importance militaire qu’ont eue ces fournitures, on
ne saurait sous-estimer la contribution de Turing à la victoire alliée.
III. Data Encryption Standard (DES)
Le DES (Data Encryption Standard) repose sur les principes suivants : le texte clair est
codé en numération binaire et découpé en blocs de 64 bits. Chaque bloc est découpé en demi-blocs
dont les bits subissent des permutations complexes, puis les demi-blocs sont additionnés et soumis
à d’autres transformations. L’opération est recommencée seize fois. La fonction de transformation
comporte des variations en fonction de la clé, qui est un nombre arbitraire choisi par les utilisateurs
1
Par: M. SAGOUONG
du code. Le nombre de valeurs possibles pour la clé détermine le nombre de façons dont un
message peut être chiffré. L’émetteur du message secret le chiffre selon l’algorithme DES au
moyen de la clé, le destinataire applique la fonction inverse avec la même clé pour le déchiffrer.
La NSA a obtenu que la normalisation du DES en 1976 comporte une limitation de la taille
de la clé à 56 bits, ce qui correspond à 1017 valeurs possibles. Aujourd’hui cette valeur est
notoirement trop faible, et l’on utilise le triple DES, avec une longueur de clé de 112 bits.
La nouvelle norme AES (Advanced Encryption Standard) utilise des clés de 128, 192 et
256 bits. La mise en concurrence pour AES a été lancée le 2 janvier 1997 et le choix de la solution
a eu lieu le 3 octobre 2000. C’est l’algorithme Rijndael développé par Joan Daemen et Vincent
Rijmen de l’université catholique de Louvain qui a été retenu.
La postérité actuelle du DES procure un chiffrement qui peut être considéré comme
robuste, à condition que soit résolu le problème crucial de tous les systèmes qui reposent sur une
clé secrète utilisée aussi bien pour le chiffrement que pour le déchiffrement : les participants
doivent s’échanger des clés de façon secrète, ce qui n’est pas simple.
IV. Diffie et Hellman résolvent l’échange de clés
Si Alex veut entretenir une correspondance secrète avec Bérénice, ils peuvent convenir de
chiffrer leurs messages avec un protocole tel que le triple DES, que nous venons de présenter. Ce
protocole présente toutes les garanties de robustesse, mais il faudra que Bérénice et Alex
conviennent d’une clé secrète : pour ce faire, ils devront se rencontrer, ce qui peut être impossible,
ou se communiquer la clé par la poste : dans les deux cas, l’instant de l’échange est celui dont un
espion peut profiter pour dérober leur secret et ainsi réduire à néant la sûreté de leurs
communications. C’est le problème de l’échange de clés.
IV.1 Le problème de l’échange de clés
Depuis des siècles le problème de l’échange des clés était considéré comme un
inconvénient naturel du chiffrement
Avec l’utilisation de l’ordinateur et des télétransmissions, et la dématérialisation de
l’information qu’ils autorisent, le problème se pose différemment. Dans les années 1970 un
2
Par: M. SAGOUONG
chercheur indépendant et excentrique, Whitfield Diffie, réfléchissait au moyen pour deux
utilisateurs du réseau ARPANET d’échanger des courriers électroniques chiffrés sans se
rencontrer physiquement au préalable pour convenir de la clé de chiffrement qu’ils
utiliseraient.
Diffie et Hellman cherchaient une méthode pour convenir d’un secret partagé sans le faire
circuler entre les participants, en d’autres termes une fonction mathématique telle que les
participants puissent échanger des informations dont eux seuls pourraient déduire le secret. Les
caractéristiques souhaitées d’une telle fonction sont la relative facilité de calcul dans le sens
direct, et la quasi-impossibilité de calculer la fonction réciproque. Ainsi, si s est le secret en
clair, F la fonction de chiffrement, c le secret chiffré, D la fonction de déchiffrement, il faut
que c = F(s) soit facile à calculer, mais s = D(c) pratiquement impossible à calculer pour tout
autre que les participants. Au prix de quel stratagème.
V. Chiffrement symétrique à clé secrète
La transformation repose sur deux éléments : une fonction mathématique (au sens large) et
une clé secrète. Seule une personne connaissant la fonction et possédant la clé peut effectuer la
transformation inverse, qui transforme le texte chiffré en texte clair. C’est la même clé qui sert au
chiffrement et au déchiffrement, et pour cette raison elle doit rester secrète : nous décrirons plus
loin des systèmes de chiffrement asymétrique, qui utilisent des clés différentes pour le chiffrement
et le déchiffrement, ce qui permet de rendre publique la clé de chiffrement, puisqu’elle ne permet
pas le déchiffrement.
La science de l’invention des codes secrets s’appelle la cryptographie. La science,
adverse, du déchiffrement de ces codes est la cryptanalyse. Si le cryptanalyste ignore tout de la
fonction de chiffrement et de la clé, il aura le plus grand mal à déchiffrer, mais un bon code doit
résister à la découverte de sa fonction de chiffrement tant que la clé reste secrète.
Une bonne fonction de chiffrement doit éviter de prêter le flanc à la cryptanalyse. Ainsi le
code, qui reposait sur une simple transposition circulaire des lettres de l’alphabet, est très facile à
décoder par l’analyse des fréquences des lettres dès lors que l’on sait dans quelle langue a été écrit
le message. Un bon code doit aussi chiffrer de façons différentes deux occurrences successives
d’un même texte dans le corps du message pour éviter que la détection d’une répétition ne fournisse
3
Par: M. SAGOUONG
des indices au cryptanalyste. La connaissance simultanée d’un texte clair et de sa version chiffrée,
comme dans le cas de Champollion et de la pierre de Rosette, est une aubaine pour le décodeur,
comme l’occurrence de noms propres, etc.
Figure 1:Principe du chiffrement symétrique
VI. Le chiffrement asymétrique à clé publique
La méthode de Diffie et Hellman permet l’échange de clés, mais elle impose une
concertation préalable entre les acteurs. Parfois ce n’est pas pratique : si Aïcha veut envoyer à
Boris un courrier électronique chiffré pendant qu’il est en vacances, elle sera obligée d’attendre
son retour pour établir la clé avec lui.
Whitfield Diffie avait eu une autre idée, pour laquelle il n’avait pas trouvé de solution
mathématique appropriée : un système où l’on utiliserait une clé pour chiffrer et une autre pour
déchiffrer. Ainsi, Boris proposerait à Aïcha une clé de chiffrement, avec laquelle elle coderait
le message, et Boris le décoderait avec une clé différente, la clé de déchiffrement. La clé de
chiffrement ne permet que de chiffrer, même Aïcha serait incapable de déchiffrer son propre
message avec cette clé, seul Boris le peut avec sa clé de déchiffrement. Comme la clé de
chiffrement ne fonctionne que dans un sens, elle permet de créer des secrets mais pas d’en
dévoiler, et elle peut donc être publique, inscrite dans un annuaire ou sur un site Web. Quiconque
veut envoyer un message chiffré à Boris peut la prendre et l’utiliser.
4
Par: M. SAGOUONG
Il faut seulement être sûr que personne ne pourra calculer la clé de déchiffrement à partir
de la clé de chiffrement. Et là l’intuition mathématique est décisive.
Si l’idée du chiffrement asymétrique à clés publiques revient à Diffie et Hellman (sans oublier les
précurseurs britanniques tenus au secret), la réalisation de cette idée revient à Rivest, Shamir et
Adleman : ils ont trouvé une solution mathématique permettant sa mise en œuvre et nommé cette
solution de leurs initiales : RSA.
Figure 2:Principe du chiffrement asymétrique
VII. Évaluer la robustesse d’un cryptosystème
Comme nous l’avons vu, les systèmes de chiffrement symétriques et asymétriques reposent
sur des méthodes mathématiques complètement différentes. Ces deux familles de systèmes sont
d’un usage complémentaire, ils sont utilisés conjointement dans les réalisations techniques que
nous employons quotidiennement. Il convient d’avoir une conscience claire du fait que la
confiance que l’on peut placer en eux, ou pas, ou en d’autres termes leur robustesse, repose sur
des hypothèses de nature radicalement différentes dans les deux cas.
VII.1 Robustesse du chiffrement symétrique
La robustesse d’un système de chiffrement symétrique repose sur l’impossibilité de deviner la
clé utilisée : ce qui découle d’une précaution et de trois qualités :
5
Par: M. SAGOUONG
• La précaution est que les utilisateurs doivent éviter de divulguer la clé et la stocker sur un
support convenablement protégé, cela semble évident mais souvent cette condition n’est pas
vérifiée ;
• L’espace des clés doit être vaste, pour parer aux attaques par force brute qui consistent à tenter
le déchiffrement avec toutes les clés possibles successivement ; autrement dit, la clé doit
comporter beaucoup de chiffres ;
• L’algorithme doit être lui-même robuste, c’est-à-dire tel que l’examen du message chiffré ne
doive pas révéler d’indices de nature à aider le déchiffrement, soit par la découverte de la clé,
soit par l’élucidation directe du message ;
• Enfin la réalisation du logiciel doit être correcte, et c’est généralement là que gisent les failles
; les algorithmes robustes sont complexes et subtils, une programmation maladroite peut
réduire de façon spectaculaire la taille réelle de l’espace des clés ; or c’est de la taille de
l’espace des clés que découle l’entropie du cryptosystème, qui est la mesure mathématique de
sa quantité d’incertitude ou d’aléa.
Pour pouvoir décerner un certificat de robustesse à un système de chiffrement symétrique, on
doit démontrer que l’attaque par force brute est l’attaque optimale. Ensuite, cela acquis, la guerre
entre cryptographes et cryptanalystes se résume à une question de longueur de clé et de puissance
de calcul.
En pratique, les assaillants réels cherchent (et trouvent) des failles de réalisation dans les
systèmes réels, cependant que les assaillants du monde de la recherche constituent des grilles
de calcul intercontinentales pour casser les algorithmes, ce qui est utile aux progrès de la
science, mais peu utilisable par des cyber-criminels.
VII.2 Robustesse du chiffrement asymétrique
La robustesse des cryptosystèmes à clés publiques repose sur deux piliers :
• La confidentialité de la clé privée de celui qui l’utilise ; en effet la divulgation de cette clé
privée réduit à néant la protection offerte par le système.
• Les résultats de la théorie des nombres, ou plutôt l’absence de tels résultats, qui nous dit que
la factorisation de très grands nombres est un problème difficile, ainsi d’ailleurs que le
problème du logarithme discret (ici, le terme difficile doit être entendu comme insoluble en
pratique). C’est-à-dire que tous ces systèmes sont à la merci d’un progrès inattendu de la
6
Par: M. SAGOUONG
théorie mathématique, qui viendrait par exemple offrir aux cryptanalystes un nouvel
algorithme de factorisation rapide.
Comme pour le chiffrement symétrique, les nombres choisis comme bases du système doivent
être suffisamment grands pour décourager les attaques par force brute, et la réalisation des
programmes doit être correcte.
V.3 Robustesse de l’utilisateur de cryptosystème
Ainsi les deux types de cryptosystèmes obéissent à des critères de robustesse assez différents,
mais la confiance qu’il est possible de leur accorder repose aussi sur un facteur qu’ils ont en
commun : la responsabilité de l’utilisateur. Si la sûreté de votre système repose sur l’éducation des
utilisateurs, alors il convient d’être inquiet. Les systèmes de sécurité reposent sur des
comportements humains dont il est imprudent de penser qu’ils seront adoptés toujours et en toutes
circonstances :
• Qui peut garantir que sa clé privée est inaccessible ?
• Est-il possible pratiquement de vérifier l’authenticité des certificats électroniques de tous les
sites que nous visitons ?
• Et si nous nous avisions de le faire, les serveurs qui détiennent les listes de révocations de
certificats et les réseaux qui leur donnent accès ne seraient-ils pas irrémédiablement saturés ?
• Nous pouvons être sûrs de l’identité d’un porteur de certificat ou de clé publique que nous
avons rencontré en personne et qui nous a montré une pièce d’identité et le condensat de sa
clé, mais faire confiance à un certificat parce qu’il est signé par une lointaine autorité de
certification n’est pas si facile : le nom et le prénom d’une personne peuvent l’identifier de
façon sûre au sein d’une petite population, mais ce n’est plus vrai à l’échelle d’un pays ou du
monde. Et son identité a pu être usurpée. C’est tout le problème de l’attaque par interposition
(Man in the middle).
Il n’est donc guère raisonnable d’espérer que les utilisateurs soient en mesure de garantir que ces
conditions seront réunies en tout lieu et à chaque instant. Nous envisagerons des moyens de
progresser vers ce but, sinon de l’atteindre.
7
Par: M. SAGOUONG
VIII. Quelques Terminologies
▪ Cryptographie : science de garder le secret de messages. Elle est pratiquée par des
cryptographes.
▪ Cryptanalyse : art de décrypter les messages chiffrés. Elle est pratiquée par des
cryptanalystes. Opposée à la cryptographie, elle a pour but de retrouver le message en clair
à partir du cryptogramme en déterminant les failles des algorithmes utilisés.
Etude des procédés cryptographiques dans le but de trouver des faiblesses et, en
particulier, de pouvoir décrypter les messages chiffrés.
▪ Cryptologie : branche des mathématiques qui traite la cryptographie et la cryptanalyse.
Elle est pratiquée par des cryptologues qui sont des mathématiciens théoriciens.
▪ Cryptosystème : ensemble des clés possibles (espace de clés), des messages en clairs et
chiffrés possibles associés à un algorithme donné.
8
Par: M. SAGOUONG