Introduction à la cryptographie moderne
Introduction à la cryptographie moderne
Cryptographie
Atindehou Mêton-Mêton
August 3, 2023
Plan
1. Introduction générale
2. Bases de la cryptographie
3. Cryptographie symétrique
4. Cryptographie asymétrique
5. Fonctions de hachage
6. Signature électronique
9. Cryptanalyse
Plan : 1 - Introduction générale
2
Objectifs du cours
Contenu du cours :
1. Introduction et historique
2. Bases de la cryptographie
3. Cryptographie symétrique
4. Cryptographie asymétrique
5. Fonctions de hachage
6. Signature électronique
7. Générateurs de suites aléatoires
8. La gestion des clefs en cryptographie
9. Cryptanalyse
10. Utilisation d’un cryptosystème libre : PGP
Ce cours doit permettre :
Cry
Mathématiques
UMR 5582
pto
CNRS-UJF
de laie
lo gie
oire h
Hist tograp
Arthur Scherbius développe la machine à chiffrer
Enigma, qui sera utilisée par l'Allemagne nazie
cryp
pendant la seconde guerre mondiale Stephen Wiesner jette les bases
d'une cryptographie quantique
Dans son Traicté des 1919 en inventant le principe d'une
chiffres ou secretes manières monnaie quantique
1970
d'escrire, Blaise de Vigenère
publie la méthode de chiffrement Horst Feistel développe
de substitution polyalphabétique le chiffre Lucifer chez IBM
qui conservera son nom
Léon Battista Alberti, grand Le WEP est adopté pour le chiffrement
1999
philosophe et écrivain de la des communications wifi
César utilise plusieurs chiffres, dont un 1586
renaissance, publie De
L'atbash est utilisé dans chiffre de substitution par décalage Componendis Cyphris,
l'ancien testament, connu aujourd'hui comme le chiffre de César premier ouvrage occidental Charles Bennett et Gilles Brassard
Joseph Mauborgne
notamment le livre de de cryptographie. Il invente réalisent la première expérience de
et Gilbert Vernam
Jérémie le cadran chiffrant et, pour la cryptographie quantique
inventent le masque
-50 première fois, propose un jetable système incon- 1976
1988
-600 -404 1467 1918
chiffre de substitution ditionnellement sûr
polyalphabétique
La machine de Lorenz
Le chiffre ADFGVX est inventé est utilisée pour chiffrer Le WPA2 est la nouvelle norme pour le chiffrement
par Fritz Nebel, colonel Allemand. les communications entre des communications wifi. Il pallie les faiblesses du WEP
les hauts dirigeants 2004
Selon Plutarque, C'est un chiffre qui mêle allemands
Lysandre de Sparte Le manuel du secrétaire, substitution et transposition 1939 1945
fait usage de la scytale, Adab-al-Kuttab contient Echange de clef de
Diffie et Hellman Nouveau standard de cryptographie, AES fondé
un chiffre de transposition une partie consacrée à la
sur l'algorithme Rijndael pour pallier les faiblesses de DES
cryptographie
Les Rossignol père et fils mettent au point
le grand chiffre, au service de Louis XIV 1984 2001
-400 0
Naissance de DES, premier standard Tahar Elgamal propose
Une des plus anciennes descriptions connues
de cryptographie, fondé sur Lucifer un cryptosystème fondé
de chiffre de substitution monoalphabétique
sur l'échange de clefs de
se trouve dans le Kâmasûtra, qui recommandait
Diffie-Hellman et le
aux femmes de chiffrer leur correspondance
logarithme discret
afin de cacher leurs liaisons
1991
Au MIT, Ron Rivest, Adi Shamir et
Leonard Adleman créent le cryptosystème
10è RSA, algorithme de chiffrement à clef publique
siècle
17 è
ses
Le lieutenant Georges Painvin
casse le chiffre allemand ADFGVX
tanaly
et contribue ainsi à la victoire française
Les cryp
Une faille est découverte dans MD5
1918
1996
es
célèbr
Scott Fluhrer, Itsik Mantin et
Adi Shamir démontrent la faiblesse du WEP
9è
siècle 1586 1893 1942 2001
Al Kindi publie le premier ouvrage connu Procès du Complot de Babington. Francis Etienne de Bazeries Le chiffrement de Lorenz est cassé par les
de cryptanalyse, Manuscrit sur le déchiffrement Walsingham, chef de l'espionnage anglais sous cryptanalyse le cryptanalystes de Bletchley Park, avec l'aide
des messages cryptographiques, qui présente Elisabeth I parvient à décrypter les messages grand chiffre du Colossus, le premier ordinateur électronique
l'analyse des fréquences échangés entre Marie Stuart, reine d'Ecosse, numérique
et les comploteurs, prouvant ainsi sa 1939 1945 Lars Lydersen, Carlos Wiechers, Christoffer Wittmann,
culpabilité. Elle fut décapitée Dominique Elser, Johannes Skaar et Vadim Makarov
La Electronic Frontier Foundation parviennent à craquer les détecteurs commerciaux utilisés
Babbage, puis Kasiski cassent le chiffre de Vigenère casse DES par force brute en 2 jours pour la cryptographie quantique.
1854
1863
1933
te
Contex 9è 15è
18è siècle 19è siècle
1939 1945
1947
-400
siècle siècle
1953
Première Guerre
mondiale
APPLIC
ATIONS
SECURITE
www
LOG
https://www-fourier.ujf-grenoble.fr/∼rossigno/Vulgarisation/vulg_files/poster_fds2012.pdf
Quelques étapes historiques
Le scytale grec (-400) : bâton de diamètre déterminé autour duquel
s’enroule une bande de cuir
Le code de César (-100) : substitution mono-alphabétique
le premier manuscrit de cryptanalyse du savant arabe Al-Kindi (900)
Les bombes électromécaniques d’Alan Turing
Le code Navajo : protection des échange radio Américain lors de la
guerre contre le Japon
Les travaux fondateurs de la cryptographie moderne de Claude
Shannon en 1945 : Objectifs de la cryptographie
▶ Secret
▶ Authentification
Voir également :
https://fr.wikipedia.org/wiki/Histoire_de_la_cryptologie
https://www.maths.univ-evry.fr/pages_perso/bayad/Enseignement/Polycopie_crypto-
2008.pdf
http://david.carella.free.fr/fr/cryptographie/principes-de-base.html
8
Présentation de la cryptographie “moderne”
Définition
Source : https://www.irisa.fr/prive/sgambs/intro.pdf 10
Utilité pour sécuriser la transmission de données
Exemples :
▶ Authentification de carte de banque
▶ Authentification sur internet
▶ Mise à jour de logiciel
Algorithmes en jeu :
▶ RSA (factorisation d’entiers)
▶ Courbes elliptiques
▶ ELGamal (logarithme discret), etc
12
Chiffrement asymétrique
Exemples :
▶ Ouverture d’un canal sécurisé sur internet
▶ Chiffrement des courriers électroniques,
▶ Futur de la télévision à péage
Algorithmes en jeu :
▶ RSA
▶ Courbes elliptiques
▶ Elgamal, ...
13
Contrôle d’intégrité par hachage
Exemples :
▶ Téléchargement de logiciel
▶ Paiement par carte
▶ Téléphonie, télévision, ...
Algorithmes en jeu :
▶ Fonctions de hachage
14
Chiffrement symétrique
Exemples :
▶ Protection des communications téléphoniques
▶ Transmissions sécurisées sur internet
▶ Chiffrement des télévisions à péage, DVD, ...
Algorithmes en jeu :
▶ AES,
▶ 3DES (algorithmes de permutations et de transformations de blocs
de bits), etc
15
Terminologie
Chiffrement transformation d’un texte clair en texte chiffré. Nécessite
l’utilisation d’une clé
Chiffre Algorithme permettant de transformer un texte clair en un
texte chiffré
Chiffrer Transformer un message de manière qu’il ne soit plus
lisible qu’à partir d’une clé
Clef Dans un système de chiffrement, donnée nécéssaire au
fonctionnement des chiffres
Cryptogramme Message chiffré ou codé
Décrypter Transformer un cryptogramme en texte clair, sans la clé
Cryptologie Cryptographie et cryptanalyse
Cryptanalyse Science de l’analyse des cryptogrammes pour les décrypter
Source :
https://www.tala-informatique.fr/wiki/images/e/eb/Cryptographie.pdf
17
Logiciels autour de la sécurité informatique
Logiciel à installer pgp :
Lien de téléchargement :
https://www.gnupg.org/%28fr%29/download/index.html
Presentation succincte :
https://mbourgeois.developpez.com/articles/securite/pgp/#LIV-A
Exercice à rendre :
Quelles fonctionnalités offrent chacun des logiciels :
aircrack-ng,
Ophcrack,
Kali Linux,
RainbowCrack
John the Ripper,
Wireshark,
tcpdump.
18
Plan : 2 - Bases de la cryptographie
19
Objectifs de la cryptographie moderne
20
Services de la cryptographie moderne
Pour sécuriser la transmission de données
Au moins quatre grandes familles
1. Signature asymétrique
2. Chiffrement asymétrique
3. Contrôle d’intégrité par hachage
4. Chiffrement symétrique
21
Composantes d’un système cryptographique
Composantes d’un système cryptographique
1. Humains (utilisation)
2. Matériel (implantation)
23
Primitives cryptographiques
1. Chiffrement symétrique
▶ Par blocs : AES, DES, 3DES, RC5, RC6, Lucifer
▶ Par flux : RC4, A5/1, A5/2, LEVIATHAN
2. Chiffrement asymétrique
▶ Problèmes difficiles : Théorie des nombres, codes
▶ Algorithmes : RSA, ELGamal, Diffie-Hellman
▶ Protocoles : SSH, GPG, BITCOIN, TLS
25
Chiffrement avec des clés secrètes
Historiquement
27
Notion de clé : Desiderata de Kerckhoffs
Pour qu’un système puisse assurer en un temps illimité des
communications secrètes, il faut que :
1. Le système doit être matériellement, sinon mathématiquement
indéchiffrable ;
2. Il faut qu’il n’exige pas le secret, et qu’il puisse sans inconvénient
tomber entre les mains de l’ennemi ;
3. La clef doit pouvoir en être communiquée et retenue sans le secours
de notes écrites, et être changée ou modifiée au gré des
correspondants ;
4. Il faut qu’il soit applicable à la correspondance télégraphique ;
5. Il faut qu’il soit portatif, et que son maniement ou son
fonctionnement n’exige pas le concours de plusieurs personnes ;
6. Enfin, il est nécessaire, vu les circonstances qui en commandent
l’application, que le système soit d’un usage facile, ne demandant ni
tension d’esprit, ni la connaissance d’une longue série de règles à
observer.
Source : https://fr.wikipedia.org/wiki/Principe_de_Kerckhoffs
28
Interprétation des principes de Kerckhoffs
29
Limitations de la méthode
30
Protocole de Diffie-Hellman
Principe de la méthode :
Alice et Bob peuvent se mettre d’accord sur un nombre (qu’ils peuvent
utiliser comme clé pour chiffrer la conversation suivante) sans qu’un
troisième agent appelé Ève puisse découvrir le nombre, même en ayant
écouté tous leurs échanges.2
2 https://fr.wikipedia.org/wiki/Échange_de_clés_Diffie-Hellman
31
Modèle théorique de chiffrement
Comment démontrer que la méthode OTP marche ?
OTP = One -Time Pad (méthode du masque jetable)
3 https ://www.maths.univ-
evry.fr/pages_perso/bayad/Enseignement/Polycopie_crypto-2008.pdf
33
Modèle théorique de chiffrement
Trois ensembles :
K : Ensemble des clés (keys)
M : Ensemble des messages claires
C : Ensemble des messages chiffrés
Passif
▶ Attaque à texte clair connu
▶ Attaque à texte chiffré seulement
Actif
▶ Attaque à texte clair choisi
▶ L’attaque à texte chiffré choisi
35
Objectifs à réaliser
Définir précisément :
Ce qu’on veux faire
Le schema à utiliser
(ie, celui pour lequel on “peut” avoir confiance)
36
Chiffrement parfait
Définition :
Un schema de chiffrement ⟨Gen, Enc, Dec⟩ sur un espace de messages M
est parfaitement secret, si pour toute distribution de probabilité sur M,
pour tout message clair m ∈ M, et pour tout message crypté c ∈ C :
ie, les distributions sur les messages et les cryptés sont indépendantes.
37
Formulation équivalente
L’adversaire écoute une expérience d’indiscernabilité symétrique : Symécoute
A,S
Soit
S = ⟨Gen, Enc, Dec⟩,
Un adversaire A réalisant l’expérience suivante :
1. A fourni une paire de message m0 , m1 ∈ M
2. Une clé aléatoire k ∈ K et un bit b ∈ {0, 1} sont choisis,
puis Enck (mb ) est envoyé à A
3. A fourni un bit b′
4. On a Symécoute
A,S = 1 si et seulement si b = b′
(On dit alors que A a réussi)
Définition :
S = ⟨Gen, Enc, Dec⟩ sur un espace de messages M est parfaitement
secret, si pour tout adversaire A :
1
Pr Symécoute
A,S =1 =
2
38
One-Time Pad (méthode du masque jetable)
Algorithme :
1. Pour un entier l > 0 choisi, M = K = C = {0, 1}l
2. Gen choisi uniformément des clés sur K
3. Pour m ∈ M, Enck (m) = m ⊕ k
4. Pour c ∈ C, Deck (c) = c ⊕ k
On a :
⊕ est l’opération ou exclusif bit à bit (x ⊕ x = 0, x ⊕ 0 = x)
Deck (Enck (m)) = (m ⊕ k) ⊕ k = m ⊕ (k ⊕ k) = m
39
OTP est parfaitement secret
Preuve :
Remarques
Les clés doivent être aussi longues que les messages
Si on utilise deux fois la même clé
▶ c1 = m1 ⊕ k et c2 = m2 ⊕ k
▶ c1 ⊕ c2 = (m1 ⊕ k) ⊕ (m2 ⊕ k) = m1 ⊕ m2
▶ Donc en sachant m1 ou m2 , on en déduit l’autre
c1 ⊕ c2 ⊕ m1 = m2
Théorème :
Tout schéma ⟨Gen, Enc, Dec⟩ pour lequel |K| < |M| n’est pas
parfaitement secret.
41
Plan : 3 - Cryptographie symétrique
3.1 Introduction
3.2 Chiffrements par blocs
3.3 Chiffrements à flux
42
Introduction
43
Chiffrements par blocs
Principe
45
Réseau de Feistel
46
Réseau de Feistel (suite)
Principe :
▶ on découpe l’information en deux blocs ;
▶ un bloc est codé avec une clé ou sous-clé (dérivée) ;
▶ le bloc codé est ajouté à l’autre avec un XOR ;
▶ on réitère le processus un certain nombre de tours
Chiffrement et déchiffrement ont une structure similaire
Exemples d’algorithme : DES, AES, Lucifer
Exercices à rendre : Présenter DES, AES par ces modes opératoires
(ECB et CBC).
47
Chiffrements à flots
Principle
49
Modes de fonctionnement
Deux modes
Mode synchronisé
Mode asynchrone
Exercice : présenter les modes de fonctionnement synchrone et
asynchrone.
50
Plan : 4 - Cryptographie asymétrique
51
A l’origine, le protocole de Diffie-Hellman: échange de clé
Alice et Bob peuvent se mettre d’accord sur un nombre (qu’ils peuvent
utiliser comme clé pour chiffrer la conversation suivante) sans qu’un
troisième agent appelé Ève puisse découvrir le nombre, même en ayant
écouté tous leurs échanges.4
4 https://fr.wikipedia.org/wiki/Échange_de_clés_Diffie-Hellman
52
Cryptographie asymétrique en bref
53
Bases mathématiques
54
Schéma de chiffrement RSA
Les composantes ⟨Gen, Enc, Dec⟩ sont :
1. Génération des clés Gen :
1.1 Soient deux nombres premiers p et q et N = pq
1.2 Alice choisit e : 1 ≤ e < N tel que pgcd(e, (p − 1)(q − 1)) = 1
On a alors :
Clé publique Alice = (N, e)
Clé privé Alice = (p, q, d)
Avec d tel que : ed ≡ 1 mod (p − 1)(q − 1)
2. Chiffrement Enc :
▶ Pour m ∈ M, on construit la séquence ⟨m1 , m2 , · · · , mw ⟩ de Z/N Z
▶ Chaque mi est chiffré séparément avec la clé publique d’Alice
ci = mei mod N
▶ On envoie ⟨c1 , c2 , · · · , cw ⟩ à Alice
3. Déchiffrement Dec :
▶ Alice calcule pour chaque ci : m′i = cdi mod N
▶ On a alors m′ = m = ⟨m′1 , m′2 , · · · , m′w ⟩
55
Attaques
56
Applications
On peut citer :
Signature numérique
Authentification
Certification numérique
57
Plan : 5 - Fonctions de hachage
5.1 Intuitivement
5.2 Formellement
5.3 Mise en oeuvre pratique
5.4 Exemples d’applications
58
Intuitivement
Fonction de hachage cryptographique
60
Intuitivement
Fonction (Hach) des messages vers les hachés (digests, fingerprints, ...)
En ayant un haché, il est “pratiquement” impossible de retrouver le
message (fonction à sens unique)
Pour tout hash = Hach(mesg), on a :
▶ Hach(mesg) est rapide à calculer
▶ Pour tout hash, impossible de retrouver Hach−1 (hash) = mesg
▶ Pour tous mesg, mesg ′ : Hach(mesg) ̸= Hach(mesg ′ )
(Il est pratiquement infaisable de determiner deux messages ayant le
même hash - On parle alors de collision)
Algorithme courant :
Secure Hash Algorithm (SHA), MD4, MD5, RIPEMD-256, ...
Voir également
https://fr.wikipedia.org/wiki/Fonction_de_hachage_cryptographique
61
Formellement
Modélisation mathématique
63
Définition et propriétés fondamentales
Définition : Une fonction de hachage est une paire ⟨Gen, H⟩, telle que
Gen est un algorithme permettant de générer une clé s, suivant une
certaine loi de probabilité, en ayant une entrée sécurisée 1n
Il existe un polynôme l tel que pour
mesg ∈ {0, 1}∗ : Hs (mesg) ∈ {0, 1}l(n)
Propriétés fondamentales :
Résistante aux collisions :
Pour s donné, il est pratiquement infaisable de trouver mesg et
mesg ′ tels que Hs (mesg) = Hs (mesg ′ )
Résistante à la pré-image :
Pour s et hash donnés, il est pratiquement infaisable de trouver
mesg tel que Hs (mesg) = hash
Résistante à la seconde pré-image :
Pour tout s et mesg donnés, il est pratiquement infaisable de
trouver mesg ′ tel que Hs (mesg) = Hs (mesg ′ )
64
Mise en oeuvre pratique
Modèles de construction
Construction de Merkle-Damgårt
Construction de Miyaguchi-Preneel
Construction de Matyas-Meyer-Oseas
Construction de Davies-Meyer
Voie également : https://en.wikipedia.org/wiki/One-way_compression_function
66
Transformation de Merkle-Damgårt
Utilisées pour :
Table de hachage comme structure de données
MAC : Message Authentification Code
Partage de clés
Signature électronique
Contrôle d’intégrité
Voir également https://fr.wikipedia.org/wiki/Fonction_de_hachage
70
Plan : 6 - Signature électronique
6.1 Intuitivement
6.2 Formellement
71
Intuitivement
Signature digitale ou électronique
Intuitivement
Alice souhaite envoyer un message à Bob en assurant son authenticité.
Ils utilisent
1. Une schéma de chiffrement asymétrique ⟨Gen, Enc, Dec⟩
▶ Gen(1n ) = (pb, pv), où pb est une clé publique et pv une clé privée
▶ Encpv (m) = c, (La clé privée est utilisée pour chiffer !!!)
▶ Decpb (c) = m
On a alors :
1. Signature du message
1.1 Hachage du message : hash = Hs (mesg)
1.2 Chiffrement du haché avec la clé privé : sign = Encpv (hash)
1.3 Transmission du message et de sa signature : ⟨mesg, sign⟩
2. Vérification de la signature
2.1 Hachage du message : hash = Hs (mesg)
2.2 Déchiffrement du signé avec la clé publique : hash′ = Decpb (sign)
2.3 Vérification si (hash == hash′ ) = true
74
Formellement
Schéma de signature électronique
Définition :
Un schéma de signature électronique est un triplet ⟨Gen, Sign, Vrfy⟩, où
Gen(1n ) = (pb, pr), où pb est une clé publique et pv une clé privée
Signpv (mesg) = sign
Vrfypb (mesg, sign) = b ∈ {0, 1}
▶ si b = 1 alors l’authentification est valide,
▶ si b = 0 alors l’authentification est invalide
76
Algorithmes couramment utilisés
Hachage RSA,
Digital Signature Standard (DSS, NIST 1991) : DSA
(Voir https://fr.wikipedia.org/wiki/Digital_Signature_Algorithm)
77
Applications typiques
Authentification,
Certification électronique,
Vérification d’intégrité
Plan : 7 - Générateurs de suites aléatoires
7.1 Intuitivement
7.2 Algorithmes courants
7.3 Exemples d’applications à la cryptographie
79
Intuitivement
Suite aléatoire
Une suite (xn )n∈N est aléatoire, s’il n’existe pas de fonction
déterministe5 f telle que pour tout n : f (x1 , ..., xn−1 ) = xn
Une suite (xn )n∈N est pseudo-aléatoire, s’il n’existe pas de fonction
calculable en pratique f telle que pour tout n : f (x1 , ..., xn−1 ) = xn
Méthode de Von-Neumann
Méthode de Fibonacci
Générateurs congruentiels linéaires
Voir également :
https://fr.wikipedia.org/wiki/Générateur_de_nombres_pseudo-aléatoires
83
Exemples d’applications à la cryptographie
84
Plan : 8 - Logiciels de sécurité informatique
85
PGP
OpenSSL
Aircrack-ng
Plan : 9 - Cryptanalyse
9.1 Intuitivement
9.2 Méthodes de cryptanalyse
87
L’art de la cryptologie par Diffie-Hellman
7 https://fr.wikipedia.org/wiki/Cryptanalyse
88
Premier cryptanalyste connu : Al-Kindi (801-873)
Méthode d’analyse des fréquences
89
Formes (niveaux) d’attaques
Passif
▶ Attaque à message clair connu
▶ Certaines paires (messages, chiffrés) connues
▶ Objectif : Trouver les clés utilisées pour déchiffrer d’autres chiffrés
Actif
▶ Attaque à message clair choisi
▶ Les paires (messages, chiffrées) connues
▶ Dispose de la possibilité de choisir des messages
▶ Objectif : Trouver la clé
▶ L’attaque à message chiffré choisi
▶ Choisir des chiffrés et obtient les messages correspondant
▶ Objectif : Trouver la clé
90
Méthodes classiques
https://fr.wikipedia.org/wiki/Cryptanalyse
91
Méthodes modernes
92