Crypto
Crypto
Christian Adja
Enseignant-chercheur
Ceo RSCHAIN
1
LA SÉCURITÉ ?
Développement rapide des technologies de l’information
Rapide évolution de l’internet
2
LES SERVICES DE SÉCURITÉ
3
SERVICES DE SÉCURITÉ CRYPTOGRAPHIQUE
Service de confidentialité
Caractère réservé d'une information dont l'accès est limité aux
personnes admises à la connaître
ISO 7498-2 :
la propriété qu'une information n'est ni disponible ni divulguée aux personnes,
entités ou processus non autorisés.
4
SERVICES DE SÉCURITÉ CRYPTOGRAPHIQUE
Service d’intégrité
Propriété garantissant qu’une information n’a pas été modifié sans
autorisation
ISO 7498-2 :
la propriété assurant que des données n'ont pas été modifiées ou détruites de
façon non autorisée
5
SERVICES DE SÉCURITÉ CRYPTOGRAPHIQUE
Service d’authentification
Confirmation de la véracité de l'identité ou d’un élément spécifique à une
entité déclarée
ISO/IEC 2382/8:
Assure que l'identité de l'origine des données est bien l'identité revendiquée
6
SERVICES DE SÉCURITÉ CRYPTOGRAPHIQUE
7
FONDEMENTS CRYPTOGRAPHIQUE
8
FONDEMENTS CRYPTOGRAPHIQUE
TERMINOLOGIE
Cryptanalyse:
La science relative au décryptage
Cryptologie:
La science regroupant la cryptographie et la cryptanalyse
9
FONDEMENTS CRYPTOGRAPHIQUE:
TERMINOLOGIE
10
FONDEMENTS CRYPTOGRAPHIQUE: TERMINOLOGIE
11
FONDEMENTS CRYPTOGRAPHIQUE: TERMINOLOGIE
12
FONDEMENTS CRYPTOGRAPHIQUE: TERMINOLOGIE
13
FONDEMENTS CRYPTOGRAPHIQUE:
TERMINOLOGIE
Cryptologie
Cryptanalyse Cryptographie
Codes et Chiffrement
répertoires
Transposition Substitution
Mono- Poly-
alphabétique alphabétique
(Stéganographie)
14
LE CHIFFREMENT PAR SUBSTITUTION
15
LE CHIFFREMENT PAR SUBSTITUTION
16
LE CHIFFREMENT PAR SUBSTITUTION
Mono-alphabétique
Un texte en clair est remplacé systématiquement par une lettre donnée de l'alphabet par un signe donné
Une même lettre est toujours chiffrée par le même signe
Poly-alphabétique
Une lettre du texte en clair par une autre choisie en fonction d'un état du crypto système.
Ce changement dépend de la clé tout au long du processus
17
LE CHIFFREMENT
PAR SUBSTITUTION
•Substitution simple
• Un caractère du message clair est substitué par
un caractère unique du message chiffré.
Poly-alphabétique
Une lettre du texte en clair par une autre choisie en fonction
d'un état du crypto système.
Ce changement dépend de la clé tout au long du processus
Ex: Machine enigma, vigenère
18
LE CHIFFREMENT
PAR SUBSTITUTION
•Substitution homophonique
• Un caractère du message clair correspond à
plusieurs caractères du message chiffré.
• En générale un caractère peut être remplacé par
plusieurs caractère différents en fonction de la
fréquence du caractère
• Ex: Le chiffre de Philibert Babou
19
CHIFFREMENT MONOALPHABETIQUE: CÉSAR
Déchiffrement
𝐷10 (𝑥) = x → x - 10
21
CHIFFREMENT MONOALPHABETIQUE: CÉSAR
Par exemple:
DOHD MDFWD HVW
?
22
CHIFFREMENT MONOALPHABETIQUE: CÉSAR
Par exemple:
DOHD MDFWD HVW
ALEA JACTA EST
23
CHIFFREMENT MONOALPHABETIQUE: CÉSAR
Le déchiffrement de
𝐷𝑘 = x → x - k
24
CHIFFREMENT MONOALPHABETIQUE: CÉSAR
25
CHIFFREMENT MONOALPHABETIQUE: CÉSAR
Algorithme de chiffrement
def chiffrement_cesar (x,k):
return (x+k)%26
Algorithme de déchiffrement
def chiffrement_cesar (x,k):
return (x-k) % 26
26
CHIFFREMENT MONOALPHABETIQUE: ROT13
Avantages:
Chiffrement et déchiffrement se font de la même manière
Inconvénient:
Ne prend en compte que les lettres et non les symboles et les points
Il faut retirer toute accentuation et ponctuation du texte à chiffrer
27
LE CHIFFREMENT PAR SUBSTITUTION: SIMPLE
Par exemple
Chiffrement
BONJOUR → ZIFPGWK
Déchiffrement
Chemin inverse
28
LE CHIFFREMENT PAR SUBSTITUTION: SIMPLE
Par exemple
Chiffrement
BONJOUR → ZIFPGWK
Déchiffrement
Chemin inverse
29
LE CHIFFREMENT PAR SUBSTITUTION
Avantages
L’espace de clés est très grand
Inconvénients
La clé est longue (26 lettres)
30
LE CHIFFREMENT PAR SUBSTITUTION
31
LE CHIFFREMENT PAR
SUBSTITUTION
Principale faiblesse:
Une lettre est toujours chiffré de la même façon
B→X
32
LE CHIFFREMENT PAR SUBSTITUTION
33
LE CHIFFREMENT PAR SUBSTITUTION
Par exemple:
Message chiffré
LHLZ HFQ BC HFFPZ WH YOUPFH MUPZH
La fréquence des lettres
H:6, F:4, P:3, Z:3
H->E , F -> S, P → A, Z → I
*E** ES* ** ESS** *E ***SE ****E
ESSAI ou ESSIA
34
LE CHIFFREMENT PAR SUBSTITUTION
H->E , F -> S, P → A, Z → I
*E** ES* ** ESS** *E ***SE ****E
ESSAI ou ESSIA
*E*I ES* ** ESSAI *E **ASE **AIE
CECI EST ESSAIE DE PHRASE VRAIE
35
CHIFFREMENT POLY-ALPHABETIQUE: VIGENÈRE
36
CHIFFREMENT POLY-ALPHABETIQUE: VIGENÈRE
Par exemple:
On regroupe les lettres par blocs de longueur k
BONJOUR VOUS ETES AU COURS DE CRYPTO
BONJ OURV OUSE TESA UCOU RSDE CRYP TO
La clé sera constituée de k nombres de 0 à 25
(𝑛1 , 𝑛2 , 𝑛3 ,…, 𝑛𝑘 )
Décalage de 𝑛1 , pour la première lettre de
chaque bloc
Décalage de 𝑛2 , pour la deuxième lettre de
chaque bloc
Décalage de 𝑛3 , pour la troisième lettre de
chaque bloc
…
Décalage de 𝑛𝑘 , pour la k-ème lettre de chaque
bloc
37
LE CHIFFREMENT DE VIGENÈRE
Par exemple:
On choisit comme clé (1,3,5,2)
Le chiffrement de BONJ produit
EPSL
On regroupe les lettres par blocs de longueur k
BONJOUR VOUS ETES AU COURS DE CRYPTO
BONJ OURV OUSE TESA UCOU RSDE CRYP TO
La clé sera constituée de k nombres de 0 à 25 (𝑛1 , 𝑛2 , 𝑛3 ,…, 𝑛𝑘 )
Décalage de 𝑛1 , pour la première lettre de chaque bloc
Décalage de 𝑛2 , pour la deuxième lettre de chaque bloc
Décalage de 𝑛3 , pour la troisième lettre de chaque bloc
…
Décalage de 𝑛𝑘 , pour la k-ème lettre de chaque bloc
38
LE CHIFFREMENT DE VIGENÈRE
39
RÉSUMÉ
Faiblesses:
Une même lettre est régulièrement chiffrée de la même façon
Attaque statistique toujours possible
Solution
Changer la correspondance à chaque lettre
Correspond au chiffrement parfait
40
LE CHIFFREMENT PARFAIT
Principe:
A partir de la somme de nombres, m et n, m?
m + n = 90, m?
Plusieurs solutions possibles
Résultat difficile à trouver
Par exemple:
Message à envoyer
IL FAUT ATTAQUER
Alice choisit la clé secrète C
Alice transmet l clé à Bob
La clé est de même longueur que le message
C = [18, 4, 0, 2, 21, 12, 18, 13, 7, 11, 23, 22, 19, 2]
Ainsi I est décalé de 18 et devient A
Ainsi L est décalé de L et devient P
…
Le message chiffré
AP FCOF SGALNQBT
41
LE CHIFFREMENT PARFAIT
42
LE CHIFFREMENT PARFAIT
Principe:
A partir de la somme de nombres, m et n, m?
m + n = 90, m?
Plusieurs solutions possibles
Résultat difficile à trouver
Par exemple:
Message à envoyer
IL FAUT ATTAQUER
Alice choisit la clé secrète C
Alice transmet l clé à Bob
La clé est de même longueur que le message
C = [18, 4, 0, 2, 21, 12, 18, 13, 7, 11, 23, 22, 19, 2]
Ainsi I est décalé de 18 et devient A
Ainsi L est décalé de L et devient P
…
Le message chiffré
AP FCOF SGALNQBT
43
LE CHIFFREMENT PAR TRANSPOSITION
44
LE CHIFFREMENT PAR TRANSPOSITION
C’est un chiffrement qui consiste à changer l'ordre des lettres, donc à construire des
anagrammes
Salut → tulas
Plusieurs approches:
Transposition simple par colonne
Disposition des lettres du message horizontalement sur la matrice de longueur n
Ensuite suivra une récolte verticale
45
LE CHIFFREMENT PAR TRANSPOSITION
Exemple:
Pour un message de longueur m
m mod n = 0
Toutes les colonnes ont la même hauteur (m div n)
m mod n = i, tel que i>0
La hauteur des i premières colonnes est (m div n )+1
La hauteur des n-i colonnes restantes est m div n
46
LE CHIFFREMENT PAR TRANSPOSITION
M = BONJOUR2022 (11)
n=5
Hauteur des colonnes: 11 mod 5 = 1
Première colonne = 3
Toutes les autres = 2
B O N J O
U R 2 0 2
2
Chiffre : BU2ORN2J0O2
47
LE CHIFFREMENT PAR TRANSPOSITION
M = BONJOUR2022
n=5
Hauteur des colonnes: 11 mod 5 = 1
Première colonne = 3
Toutes les autres = 2
B O N J O
U R 2 0 2
2
Chiffre : BU2ORN2J0O2
48
LE CHIFFREMENT PAR TRANSPOSITION
Déchiffrement:
Disposition des lettres du message verticalement sur une matrice de longueur n
Collecte des lettres horizontalement
La construction de la matrice se fait de la même manière
Exemple:
M = BU2ORN2J0O2
n=5
Hauteur des colonnes: 11 mod 5 = 1
Première colonne de taille: 3
Les autres de taille: 2
B O N J O
U R 2 0 2
2
49
LE CHIFFREMENT PAR TRANSPOSITION
Transposition complexe par colonnes
Chiffrement
La clé du message donne le nombre de colonnes et l’ordre de la récolte des lettres
Les lettres du message sont disposées horizontalement
Les lettres sont ensuite collectées verticalement suivant l’ordre croissant des lettres de la clé par rapport à
l’alphabet
Exemple:
M = TRANSPOSITIONCOMPLEXE
clé = SALUT T R A N S
Hauteur des colonnes: 21 mod 5 = 1 P O S I T
Première colonne = 5 I O N C O
Toutes les autres = 4
M P L E X
E
S A L U T
3 1 2 5 4
Chiffre : ROOPASNLTPIMESTOXNICE
50
LE CHIFFREMENT PAR TRANSPOSITION
Transposition complexe par colonnes
Déchiffrement
Opération inverse pour déchiffrer le message
On dispose verticalement les lettres du message chiffré suivant l’ordre croissant des lettres du mot clé
On collecte ensuite les lettres horizontalement
Exemple:
M = ROOPASNLTPIMESTOXNICE
clé = SALUT
T R A N S
Hauteur des colonnes: 21 mod 5 = 1
Première colonne = 5 P O S I T
Toutes les autres = 4 I O N C O
M P L E X
E
S A L U T
3 1 2 5 4
Chiffre : TRANSPOSITIONCOMPLEXE
51
LE CHIFFREMENT PAR CODE
Aussi appelé chiffre du dictionnaire ou code
commercial
C’est un chiffrement par substitution
Les lettres sont remplacés par des syllabes, de mots ou des
expressions
L’espace de mots doit être assez grands pour
rendre difficile les analyses de fréquences
Il est en général nécessaire avoir un livre
contenant toutes les correspondances
ça devient problématique que le livre est volé, perdu ou ecc.
52
LE CHIFFREMENT PAR
CODE
Il y a en général deux types de code
Code ordonné:
Un parallélisme entre le classement alphabétique des éléments clairs et le
classement des groupes codiques qui leur correspondent
Le même document peut servir au chiffrement comme au déchiffrement.
Code désordonné:
Pas de parallélisme
Deux parties: chiffrant et déchiffrant Partie chiffrante
8088 référendum
3957 référer
1189 réfléchir
431 réflexe,-xion
Partie déchiffrante
8088 référendum
8089 incohérent,-ence
8090 comporter,-tement
8091 libre,-ement
53
CHIFFREMENT MÉCANIQUE: LE MACHINE ENIGMA
Système électromécanique
Inspiré du système parfait
Utilisée pour les communications de l’armée
allemande durant la seconde guerre
mondiale
Pour chiffrer un caractère il faut juste le
taper
L’équivalent chiffré s’allume
En version simplifié
La correspondance de l’alphabet avec celui permuté
change chaque fois une touche est tapé
C’est chiffrement par bloc
Génère mécaniquement un nouvel alphabet à chaque
caractère tapé
55
CHIFFREMENT SYMÉTRIQUE
Auguste Kerckoffs
« Toute méthode de chiffrement est connue de l'ennemi, la sécurité du
système ne dépend que du choix des clefs qui doivent être simples et
modifiables »
Principe de Shannon:
Un chiffre doit apporter de la confusion et de la diffusion, c’est-à-dire :
Confusion:
Il n’y a pas de relation algébrique simple entre le clair et le chiffré. En particulier, connaître
un certain nombre de couples clair-chiffré ne permet pas d’interpoler la fonction de
chiffrement pour les autres messages. Tout le contraire d’un chiffre affin.
Diffusion
La modification d’une lettre du clair doit modifier l’ensemble du chiffré. On ne peut pas
casser le chiffre morceau par morceau. Tout le contraire d’un chiffre mono-alphabétique.
56
CHIFFREMENT SYMÉTRIQUE
Clés identiques : KE = KD = K,
Clé doit rester secrète
57
CHIFFREMENT SYMÉTRIQUE
Inconvénient:
Distribution des clés
58
CHIFFREMENT SYMÉTRIQUE
59
CHIFFREMENT SYMÉTRIQUE: SCHÉMA DE FIESTEL
Mode de fonctionnement
Les blocs de données sont divisés en deux parties de taille identique
𝐿0 et 𝑅0
60
FONDEMENTS CRYPTOGRAPHIQUES
ALGORITHME DE CHIFFREMENT SYMÉTRIQUE
61
FONDEMENTS CRYPTOGRAPHIQUES
ALGORITHME DE CHIFFREMENT SYMÉTRIQUE
62
CHIFFREMENT SYMÉTRIQUE
63
CHIFFREMENT SYMÉTRIQUE
Étape 2:
Découpage du bloc en deux blocs de
32 bits (G0 et D0)
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
G0
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
D0
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
64
CHIFFREMENT SYMÉTRIQUE
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
CP
-1
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
65
CHIFFREMENT SYMÉTRIQUE
57 49 41 33 25 17 9
1 58 50 42 34 26 18
Gi
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
Di
14 6 61 53 45 37 29
21 13 5 28 20 12 4
14 17 11 24 1 5 3 28 15 6 21 10 14 17
23 19 12 4 26 8 16 7 27 20 13 2 23 19
CP
-2
41 52 31 37 47 55 30 40 51 45 33 48 41 52
44 49 39 56 34 53 46 42 50 36 29 32 44 49
66
CHIFFREMENT SYMÉTRIQUE
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
67
CHIFFREMENT SYMÉTRIQUE
68
CHIFFREMENT SYMÉTRIQUE
69
CHIFFREMENT SYMÉTRIQUE
Permutation du bloc:
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
70
CHIFFREMENT SYMÉTRIQUE
Étape finale:
le résultat de la dernière ronde est
transformé par la fonction inverse de
la permutation initiale.
71
CHIFFREMENT SYMÉTRIQUE
72
CHIFFREMENT SYMÉTRIQUE
Plusieurs réponses:
MARS, RC6, Rijndael, Serpent, Twofish
73
CHIFFREMENT SYMÉTRIQUE
74
CHIFFREMENT SYMÉTRIQUE
75
CHIFFREMENT SYMÉTRIQUE
RC4 a été révélé septembre 1994 d’une manière anonyme sur la liste de
diffusion Cypherpunks
RC4 est une marque déposée mais les implémentations non-officielles sont autorisées (
pas breveté).
76
CHIFFREMENT SYMÉTRIQUE
Blowfish
conçu par Bruce Schneier 1993.
Blocs de 64 bits
nom du poisson-lune japonais (ou fugu)
Clés de 32 bits à 448 bits
77
CHIFFREMENT SYMÉTRIQUE
78
CHIFFREMENT SYMÉTRIQUE
79
CHIFFREMENT SYMÉTRIQUE
80
CHIFFREMENT SYMÉTRIQUE
81
CHIFFREMENT SYMÉTRIQUE
82
CHIFFREMENT SYMÉTRIQUE
Avantages:
Simple et rapide
Inconvénient:
Manque de diffusion
N’assure pas l’intégrité des Blocks
Le chiffrement de blocs de texte en clair identiques produit des blocs de
texte chiffré identiques
Susceptible d’attaques de réjeu
83
CHIFFREMENT SYMÉTRIQUE
84
CHIFFREMENT SYMÉTRIQUE
Formule de chiffrement:
𝐶𝑖 = 𝐸𝑘 (𝑃𝑖 ⊕ 𝐶𝑖−1 )
𝐶0 = 𝐼𝑉
Formule de déchiffrement:
𝑃𝑖 = 𝐷𝑘 (𝐶𝑖 ) ⊕ 𝐶𝑖−1
𝐶0 = 𝐼𝑉
85
CHIFFREMENT SYMÉTRIQUE
Avantages:
Respecte le principe de diffusion et de confusion
Inconvénient:
L’exécution ne peut qu’être séquentiel
N’assure que le service de confidentialité
Le bourrage des blocs
86
CHIFFREMENT SYMÉTRIQUE
CBC - MAC:
Introduit l’authentification de message MAC
Apparait en 1985 dans le FIPS PUB 113
87
CHIFFREMENT SYMÉTRIQUE
88
CHIFFREMENT SYMÉTRIQUE
Chiffrement:
𝐶𝑖 = 𝐸𝑘 (𝐶𝑖−1 ) ⊕ 𝐵𝑖
Déchiffrement:
𝐵𝑖 = 𝐸𝑘 (𝐶𝑖−1 ) ⊕ 𝐶𝑖
89
CHIFFREMENT SYMÉTRIQUE
Avantages:
Pas d’algorithme de déchiffrement
Rapide
Pas de bourrage des blocs et pas de propagation de l’erreur
Respecte la propriété de diffusion et de confusion
Inconvénient:
Séquentiel
Ne tolère pas les pertes de block
90
CHIFFREMENT SYMÉTRIQUE
91
CHIFFREMENT SYMÉTRIQUE
Avantages
Pas de propagation d’erreurs d’un block à un autre
Le chiffrement d’un block nécessite du une étape du chiffrement
précédant
Inconvénient:
Pas d’authentification des blocs
92
CHIFFREMENT SYMÉTRIQUE
93
CHIFFREMENT SYMÉTRIQUE
94
CHIFFREMENT SYMÉTRIQUE
95
FONDEMENTS CRYPTOGRAPHIQUE:
ALGORITHME DE CHIFFREMENT SYMÉTRIQUE
Le Mode Galois/Counter(GCM)
conçu pour fournir à la fois l'intégrité et l'authenticité des données et la
confidentialité
Pour des blocs de 128 bits
Utilisé dans AES
Utilise le code d'authentification du message de Galois (GMAC) pour
authentifié les blocs
assure la confidentialité et l'authenticité des données cryptées et
l'authenticité des données authentifiées supplémentaires par bloc en en
chiffrement par flux
96
FONDEMENTS CRYPTOGRAPHIQUE:
ALGORITHME DE CHIFFREMENT SYMÉTRIQUE
Avantages
Assure l’intégrité, l’authentification et la confidentialité des bloc
Les calculs sont parallelisables
Utilisé dans AES
97
CHIFFREMENT SYMÉTRIQUE
Service de confidentialité
Bob
Alice
E (K, M) = C
M Texte chiffré M
Texte Clair E E-1 Texte chiffré
E-1 (k, C)) =
M
K K
Clé secrète Clé secrète
98
CHIFFREMENT SYMÉTRIQUE
99
CHIFFREMENT SYMÉTRIQUE
Nombres de clés
2128 = (210)12 (103)12 1036
Nombre d’instructions pour tester une clé
1000 = 210 = 103
Nombre d’instructions pour tester 2128 clés
1036 X 103 = 1039
Nombre d’instructions en année pour une machine à 2000 MIPS
2000 x 106 X 365 x 3600 x 24 = 1011x 2 x365 x 24
1016
Nombre d’années pour trouver tester 2128 clés
1039 /1016 = 1023
100
FONCTIONS À SENS UNIQUE
101
FONCTIONS DE HACHAGE
Hachage : propriétés
Pour X1 avec H(X1) = C1 ,
il est difficile de trouver un X2 != X1 telle que H(X2) = C1
Entrée de taille arbitraire et le résultat a une taille fixe 16, 20 oct.
On l’appelle le condensât, le message digest, l’empreinte,
le fingerprint
Exemple:
Fichier en entrée openssl.exe (taille 225 280 octets)
Sortie MD5(openssl.exe)= 1c:bd:cb:76:92:40:d0:53:99:e7:dd:7c:59:cf:04:44
Fichier en entrée copenssl.exe avec un carac. espace en plus (taille 225 281 octets)
Sortie MD5(copenssl.exe)= 73:61:18:df:2d:28:6e:f9:67:21:ad:1a:6a:ad:e7:f7
102
:
FONCTIONS DE HACHAGE SANS CLÉ
103
FONCTIONS DE HACHAGE AVEC CLÉ
Seules les parties qui ont accès à cette clé secrète peuvent calculer le condensé d'une fonction
HMAC.
permet de vaincre les attaques de type "man-in-the-middle" et d'authentifier l'origine des données
104
FONCTIONS DE HACHAGE AVEC CLÉ
hmac (h, Ks, M) = h (Ks XOR opad ||h(Ks XOR ipad ||M))
ipad = octet 0x36 et opad = octet 0x5C
De taille d’un bloc
105
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
Bob
Alice
E (k1, M) = C
Texte chiffré
M
Texte Clair
E E-1 M
Texte chiffré
E-1 (k2, C)) =
M
K1 K2
Clé publique Clé privée
Il existe une relation unique entre les deux clés (K1 et K2)
106
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
107
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
Message
Message Message Clair
Clair chiffré
Clé Publique du destinataire Clé privée du destinataire
Message
chiffré
108
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
Algorithme El Gamal
Réponse à un appel du NIST
pour échapper à la patente de RSA
Basé sur les logarithmes discrets
Complexité comparable à RSA
109
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
110
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
(n) = j
On sélectionne e tel que :
e et j soient premiers entre eux avec 1 < e < j
On calcule d tel que :
e.d = 1 mod j (e et d sont inverses l’un de l’autre modulo j)
111
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
p = 3, q =11
n = p*q = 3 x 11 = 33
j = (p-1)(q-1) = 2 x 10 = 20
Pour e = 3, d = 7
Car (e*d = 1 mod j): 3 x 7 = 1 mod j
112
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
Exemple:
p = 3, q =11
n = p.q = 3 x 11 = 33
j = (p-1)(q-1) = 2 x 10 = 20
Pour e = 3, d = 7
Car (e.d = 1 mod j): 3 x 7 = 1 mod j
Pour un message: M = 29
Chiffrement:
Y = Me mod n = 293 mod 33 = 2
Déchiffrement:
Yd mod n = 27 mod 33 = 29
113
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
114
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
115
PROTOCOLE D’ÉCHANGE DE CLÉ DIFFIE HELMAN
A B
Alice X
Calcule Ya = gba mod p
Bob Y
Calcule Xb = gab mod p
116
PROTOCOLE D’ÉCHANGE DE CLÉ DIFFIE HELMAN
Exemple:
On choisit un nombre premier p = 31 et la base g = 5
Alice choisit l’exposant a = 7
calcule X = 57 mod 31 = 5
Envoie X = 5 à Bob
Bob choisit l’exposant b = 11
calcule Y = 511 mod 31 = 25
Envoi Y = 25 à Alice
Alice
calcule Ya mod 31= 257 mod 31 = 25
Bob choisit l’exposant b = 11
calcule Xb mod 31= 511 mod 31 = 25
117
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
118
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
119
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
120
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
121
ALGORITHME DE CHIFFREMENT
ASYMÉTRIQUE
Service d’intégrité et d’identification
La signature numérique
Condensât
Message Message
Texte
Chiffré
?
Clé Privée du Clé Publique du signataire
signataire
122
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE
Alice dispose de
KpubA clé publique
KprivA clé privé
Intrus Bob
Alice KpubA KpubI
{ KAB }KpubA { KAB }KpubI
123
CHAPITRE 3 PKI: Certificats et
standards
124
FORMATS ET STANDARDS
STANDARDS PKCS
125
FORMATS ET STANDARDS
STANDARDS PKCS
126
STANDARDS PKCS#1
127
STANDARDS PKCS#1
128
STANDARDS PKCS#3
129
STANDARDS PKCS#3
OpenSSL> dhparam –h
-C Output C code
-rand file;file;... load the file (or the files in the directory) into
the random number generator
-noout no output
130
STANDARDS PKCS#5
Description d’une méthode pour chiffrer une chaîne d’octets avec une clé
secrète dérivée d’un mot de passe.
Password-Based Cryptography Standard
131
STANDARDS PKCS#8
132
STANDARDS PKCS#10
Description de la syntaxe pour les requêtes de certification (certification requests) vers l’autorité de
certification.
Certification Request Syntax Standard
133
FORMATS ET STANDARDS
STANDARDS PEM
PRIVACY ENHANCEMENT FOR INTERNET ELECTRONIC MAIL
134
LES CERTIFICATS
MOTIVATIONS
Problème de la cryptographie asymétrique
La distribution des clés publiques
L’authentification des clés publiques
Une clé publique appartient bien à celui qui prétend en être le détenteur
L’usage associé à la clé publique
La cryptographie asymétrique:
Pour les services orienté preuve
La distribution des clés de session
Pour une durée de vie plus conséquente
Nécessité de les révoquer si nécessaire
135
LES CERTIFICATS
MOTIVATIONS
« Certificat » = relève d’une autorité ou institution
Le contenu = information « authentique »
Mise en place d’un état de confiance en présence d’un certificat
Dico: « Acte écrit qui rend témoignage de la vérité d ’un fait, d’un droit »
Présence d’une autorité « reconnu » qui atteste de la véracité du contenu.
Certificat = document « signé »
136
LES CERTIFICATS
MOTIVATIONS
Certificat personnel
permet d’authentifier un utilisateur.
Certificat serveur
permet d’authentifier un serveur
Certificat développeur
permet de signer et d’authentifier les programmes et macros développés.
137
LES CERTIFICATS
STANDARD X.509
Versions successives:
1988 : v1
1993 : v2 = v1 + 2 nouveaux champs
1996 : v3 = v2 + extensions
138
LES CERTIFICATS
STANDARD X.509
Structure de données permettant de lier différents éléments au moyen
d’une signature
Le sujet ,la clef, l’émetteur du certificat, conditions de validité,…
Version
Serial Number Clé privée du
Signature Algorithm Identifier CA
(pour la signature de l’émetteur du
Issuer
certificat)
(Nom X500 du CA)
Validity
(Dates début et fin du certificat)
Subject
(Nom X500 du détenteur) Générati
SubjectPublidcKeyInformation
(Identificateur de l’algorithme et clé
on de la
IssuerUniqueIdentifier signature
publique)
(version 2)
SubjectUniqueIdentifier
(version 2)
Extensions
(Version 3)
Signature digitale du CA
LES CERTIFICATS STANDARD X.509
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
140
LES CERTIFICATS STANDARD X.509
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time }
141
LES CERTIFICATS STANDARD X.509
Certificate:
Version: 1 (0x0)
Issuer: C=US, O=VeriSign, Inc., OU=Class 2 Public Primary Certification Authority - G2, OU= (c) 1998 VeriSign,
Inc. - For authorized use only, OU=VeriSign Trust Validity
Subject: C=US, O=VeriSign, Inc., OU=Class 2 Public Primary Certification Authority - G2, OU= (c) 1998 VeriSign, Inc. - For
authorized use only, OU=VeriSign Key Info:
11:45:….:ce:ef:
142
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS
143
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS
Structure de l’extension
Type est unique pour chaque extension: le type est un type de base ASN1
Object Identifier (OID)
Avec un flag critique
Si l’application:
ne supporte pas cette extension, elle refuse le certificat
supporte cette extension et la valeur de l’extension est conforme à l’application elle l’accepte
sinon elle le rejette
144
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS
146
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS
ExtendedKeyUsage :
Indique un ou plusieurs buts pour l’usage de la clé publique: serverAuth, clientAuth,
codeSigning, emailProtection, timeStamping, OCSPSigning
ExentededKeyUsage ::= SEQUENCE OF KeyPurposeId
KeyPurposeId ::= OBJECT IDENTIFIER
PrivateKeyUsagePeriod:
Indique la durée de vie de la clé privé (uniquement pour des clés de signature).
147
INFRASTRUCTURE DE GESTION DE CLÉS
OU PKI
Opérations de base de la PKI:
Fournit et gère les éléments de sécurité qui permettent la mise en œuvre des services
de sécurité à base de cryptographie asymétrique:
authentification, identification, non répudiation, signature
Instaurer une tierce partie de confiance entre les acteurs.
Pour: la vérification, la certification, la révocation, la publication des clés
publiques
148
INFRASTRUCTURE DE GESTION DE CLÉS OU PKI
L’AUTORITÉ DE CERTIFICATION
Utilisateur final
INFRASTRUCTURE DE GESTION DE CLÉS OU PKI
L’AUTORITÉ DE CERTIFICATION
L’autorité de certification:
Entité qui conçoit/signe les certificats électroniques
Lien entre identité, clé publiques, et autres attributs
Utilise sa clé privé pour signer les certificats conçus après vérification
Peut révoquer ou suspendre les certificats
Entité ayant le rôle de tiers de confiance
L’autorité de certification est en possession d’un certificat
propre
autosigné
ou délivré par une autre CA
Pour certaines architectures le CA n’est pas relié au
« réseau en entrée ».
150
INFRASTRUCTURE DE GESTION DE CLÉS OU PKI
L’AUTORITÉ D’ENREGISTREMENT
Émission de requête
RA RA
151
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
152
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
153
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
CRL
Modèle traditionnel , supporté par toutes les plateformes.
Liste noire des certificats révoqués.
Signée par l’autorité de certification et publiée dans l ’annuaire
154
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
–Avantages de la CRL
Simple
Compatible avec les applications
Peut être caché
–Inconvénients de la CRL
• Le serveur de révocation doit publier périodiquement une nouvelle CRL
même si aucun certificat n'a été révoqué durant depuis la dernière publication
• La périodicité de la CRL peut être pénalisante pour certaines applications notamment de
paiement
• La taille de la CRL peut grossir ceci implique:
une surcharge en communication, en calcul et en stockage
• L’expiration à la même date de la CRL, conduit à une implosion de requête
155
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
156
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
157
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
Delta CRL
Fournit les informations sur les certificats dont le statut a changé depuis la
dernière CRL.
Réduit la quantité de données à échanger avec l’autorité de certification et
améliore les temps de réponse et la sécurité de la vérification de la validité
des certificats.
Les usagers maintiennent leurs propres bases de données de CRLs
Chaque delta CRL est associée à une CRL de référence
158
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
L ’application héberge un client qui interroge le serveur OCSP sur l ’état du certificat
le serveur envoi l ’état du certificat dans un message signé
159
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
Inconvénients
le serveur OCSP a besoin de signer toutes les réponses
la clé privée du serveur OCSP doit être hautement sécurisée => engendre une vulnérabilité au système =>
augmente les coûts
Nécessite une très haute disponibilité du serveur et du service
160
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
Modèle Client/Serveur
161
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION
Avantages
Décharge les postes clients légers
Centralise les politiques de validation
Simple du côté client
162
Les solutions de sécurité basée sur les PKI
CHAPITRE 5
163
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI:
PROTOCOLE SSL/TLS
SSL/TLS est le protocole de sécurité le plus déployé grâce à son intégration aux
browsers, serveurs Web, client/serveur de messagerie et à l’ensemble des applicatifs qui sont
basés sur TCP
SSL/TLS
Ne nécessite ‘(éventuellement) aucune intervention du côté client
164
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : ARCHITECTURE
NFS
TCP UDP
IP
165
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PORTS
166
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PORTS
167
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : SERVICES DE SÉCURITÉ
Authentification
Serveur (obligatoire), client (optionnel)
Utilisation de certificat X509 V3
A l’établissement de la session.
Confidentialité
Algorithme de chiffrement symétrique négocié, clé générée à l’établissement de la
session.
Intégrité
Fonction de hachage avec clé secrète : hmac(clé secrète, h, Message)
Non Rejeu
Numéro de séquence
168
LES SOLUTIONS DE SÉCURITÉ BASÉ SUR LES PKI
PROTOCOLE SSL/TLS : LES PROTOCOLES
Application
SSL Handshake
Alert CCS
Record
TCP
169
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE
170
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE
171
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE
172
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE
173
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE
Ouverture d'une
session SSLv3
Client Serveur
Client Hello
Serveur Hello
Certificate
(Serveur Key Exchange)
(Certificate Request)
Server Hello Done
(Certificate)
Client Key Exchange
(Certificate Verify)
ChangeCipherSpec
Finished
ChangeCipherSpec
Finished
Application Data
Application Data
174
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE
Ouverture d'une
connexion
Client Serveur
Client Hello
Serveur Hello
ChangeCipherSpec
Finished
ChangeCipherSpec
Finished
Application Data
175
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE CHANGECIPHERSPEC (CCS)
176
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE RECORD
Après application de :
◼la fragmentation des données en blocs de taille maximum de 214 octets
◼la compression des données, fonction prévue mais non supportée
actuellement
◼la génération d’un condensât pour assurer le service d’intégrité
◼le chiffrement des données pour assurer le service de confidentialité
177
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE ALERT
178
NOTES BIBLIOGRAPHIQUES
https://www.emse.fr/~nadia.el-
mrabet/Presentation/Cours1_FondementCrypto.pdf
181