0% ont trouvé ce document utile (0 vote)
115 vues177 pages

Crypto

Transféré par

david.athuil
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
115 vues177 pages

Crypto

Transféré par

david.athuil
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CRYPTOGRAPHIE

Christian Adja
Enseignant-chercheur
Ceo RSCHAIN

1
LA SÉCURITÉ ?
Développement rapide des technologies de l’information
 Rapide évolution de l’internet

Les moyens de communication doivent être sûrs et fiable

2
LES SERVICES DE SÉCURITÉ

Les solutions de sécurité doivent contribuer à satisfaire les


critères de sécurité
 La confidentialité
 La non-répudiation
 L’intégrité
 L’authentification

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.

Une information échangée entre deux ou plusieurs entités n’est


accessible que par celles-ci.

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

Une information échangée entre deux ou plusieurs entités est reçue


par tous telle qu’elle a été émise.
 Dans un contexte d’échange l’authentification de l’origine accompagne le service
d’intégrité.

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

Dans la pratique l’authentification


 consiste à relier des informations entre elles avec généralement un élément permettant de
spécifier une entité

6
SERVICES DE SÉCURITÉ CRYPTOGRAPHIQUE

Service de non répudiation


La répudiation consiste:
 au fait que dans un échange où sont impliqués deux ou plusieurs entités , l’une
de celles renie d’avoir participé à tout ou partie de l’échange

La non répudiation consiste:


 Au fait qu’aucune entité ne puisse répudier d’avoir participé à l’échange

La non répudiation dans le contexte d’un émetteur et d’un récepteur:


 Consiste donc à ce que ni l’émetteur et/ou le destinateur ne puisse répudier
l’émission et/ou la réception d’un message

La non répudiation relève de la notion de preuve au sens juridique du


terme

7
FONDEMENTS CRYPTOGRAPHIQUE

Science qui consiste à écrire l'information en la


rendant inintelligible à ceux ne possédant pas les
capacités de la déchiffrer
Information: Voix, textes, données, images
Bases
 Mathématiques
 Physiques

8
FONDEMENTS CRYPTOGRAPHIQUE
TERMINOLOGIE

Cryptographie: du grec « kruptos » (caché) et « graphien » (écrire)


 La science relative à la création des cryptogrammes

Cryptanalyse:
 La science relative au décryptage

Cryptologie:
 La science regroupant la cryptographie et la cryptanalyse

9
FONDEMENTS CRYPTOGRAPHIQUE:
TERMINOLOGIE

Système cryptographique ou Cryptosystème:


 C’est un procédé pour transformer un texte clair en texte chiffré et
inversement
Clé:
 Un secret associé au Cryptosystème pour réaliser une transformation
donnée
 La clé a une taille fixe indépendante de la taille du message (à une
exception près)
Cléptographie:
 L’art de dérober les clés
Stéganographie:
 L'art de la dissimulation

10
FONDEMENTS CRYPTOGRAPHIQUE: TERMINOLOGIE

Cryptosystème à usage restreint:


 Sa sécurité est basée sur le secret de ces opérations de chiffrement et de
déchiffrement
 Vulnérabilité de l’ensemble des messages chiffrés si le procédé est révélé

Cryptosystème à usage général:


 Sa sécurité repose sur le secret de la clé
 Vulnérabilité des messages chiffrés avec la même clé si la clé est révélée

11
FONDEMENTS CRYPTOGRAPHIQUE: TERMINOLOGIE

Algorithme de chiffrement asymétrique


Algorithme de chiffrement symétrique:
 Par bloc
 Par flot

Fonction à sens unique:


 Algorithme de chiffrement asymétrique
 Fonctions de hachage avec et sans clé

12
FONDEMENTS CRYPTOGRAPHIQUE: TERMINOLOGIE

(dé)chiffrement: transformation d’un message « lisible » ou texte


clair (angl. plaintext) en un message incompréhensible ou texte
chiffré (angl. ciphertext)

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

Un chiffrement par substitution est un algorithme par


lequel chaque caractère du message clair (écrit dans un
alphabet donné) est substitué par un autre caractère dans
le message chiffré (qui peut être écrit dans un alphabet
différent de celui du message clair).

15
LE CHIFFREMENT PAR SUBSTITUTION

En cryptographie classique, quatre types de chiffrement par


substitution sont distingués:
• Substitution simple (Mono-alphabétique)
• Substitution poly alphabétique
• Substitution homophonique
• Substitution polygrammique

16
LE CHIFFREMENT PAR SUBSTITUTION

Deux types de 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

•Substitution polygrammique (playfair)


• Le principe est de substituer des blocs de
caractères, au lieu d'un seul caractère

19
CHIFFREMENT MONOALPHABETIQUE: CÉSAR

Alice veut envoyer un message secret à Bob


 Ils s’accordent sur la clé sécrète k =10,

Alice veut envoyer BONJOUR


 Elle transforme bonjour en 0 14 13 9 14 20 17
 𝐶10 (𝑥)=x + 10 → 10 24 23 19 24 30 27
 Message transmis → KYXTYEB

Déchiffrement
 𝐷10 (𝑥) = x → x - 10

21
CHIFFREMENT MONOALPHABETIQUE: CÉSAR

On attribue à césar l’un des premiers protocoles cryptographiques


 Utilisé pour ses communications avec son armée

Son procédé se base sur un décalage circulaire des lettres de


l’alphabet
 A -> D, B -> E, C->D, etc …

Par exemple:
 DOHD MDFWD HVW
 ?

22
CHIFFREMENT MONOALPHABETIQUE: CÉSAR

On attribue à césar l’un des premiers protocoles cryptographiques


 Utilisé pour ses communications avec son armée

Son procédé se base sur un décalage circulaire des lettres de


l’alphabet
 A -> D, B -> E, C->D, etc …

Par exemple:
 DOHD MDFWD HVW
 ALEA JACTA EST

23
CHIFFREMENT MONOALPHABETIQUE: CÉSAR

On associe aux lettres de l’alphabet un nombre de 0..25


 {A,B,C,…,Z} → {0,1,2,…,25}
 ALEA → 0 11 4 0

Le chiffrement de césar de décalage k


 𝐶𝑘 = x → x + k

Le déchiffrement de
 𝐷𝑘 = x → x - k

24
CHIFFREMENT MONOALPHABETIQUE: CÉSAR

k est la clé de chiffrement


Il existe que 26 possible clés
 K = 0,1,…,25 (espace de clés)
 K ne peut que être un entier

Cette méthode est faible !


 Un attaquant peut déchiffrer un message intercepté sans connaitre la clé

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

cas particulier du chiffrement de César


 Chiffrement de césar avec un décalage de 13 caractères

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

On associe à chaque lettre une autre lettre sans une règle


générale
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 AZERTYUIOPQSDFGHJKLMWXCVBN

Par exemple
 Chiffrement
 BONJOUR → ZIFPGWK
 Déchiffrement
 Chemin inverse

28
LE CHIFFREMENT PAR SUBSTITUTION: SIMPLE

On associe à chaque lettre une autre lettre sans une règle


générale
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 AZERTYUIOPQSDFGHJKLMWXCVBN

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

Il y a 26! choix possibles


 26 choix pour chiffrer la lettre A
 25 choix pour chiffrer la lettre B
 24 choix pour chiffrer la lettre C
 …
 1 choix pour chiffrer la lettre Z

Nombre totale de combinaisons


 26 x 25 x 24 x…x 2 x 1
 26 ! ~ 4 x 1024

Il faudrait 12 millions d’années à un ordinateur capable de tester


1.000.000 de clés par seconde

31
LE CHIFFREMENT PAR
SUBSTITUTION

Principale faiblesse:
 Une lettre est toujours chiffré de la même façon
 B→X

Les lettres n’apparaissent toutes avec la même fréquence


 Selon la langue
 Lettres les plus fréquentes en Français
 ESAINTRULODCPMVQGFHBXJYZKW

32
LE CHIFFREMENT PAR SUBSTITUTION

Attaque par dictionnaire


 On cherche dans le texte chiffré la lettre la plus fréquente
 Qui devrait être (E)
 Ensuite la (S)
 Puis (A) …
 Ensuite il faudra deviner les lettres manquantes

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

 Pour remédier au problème des attaques par dictionnaire


 Les lettres ne seront pas tous cryptés de la même façon

 On utilise le chiffrement par bloc


 Le texte est découpé en plusieurs blocs de dimension (k)
 On choisit une clé (n) de dimension (k)
 Chaque composante est un chiffrement de césar
 La fonction de déchiffrement est C- 𝑛1 , - 𝑛2 , …, - 𝑛𝑘

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

 Pour une clé de longueur k, nous avons 26𝑘 possibilités:


 K=4, 264 =456976
 Une faiblesse persiste
 Si deux lettre B se retrouvent à la même position dans deux blocs différents, alors ils seront chiffrés par la
même clé
 Attaques:
 Les attaques statistiques sont encore possibles
 On aligne tous les blocs chiffrés
 Les premières lettres de chaque bloc, les deuxièmes lettres de chaque bloc …
 Attaque statistique sur chacun des regroupements
 Marche bien si les blocs sont de petite taille

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

 Ainsi pour A→0, B→1, …


 Le message crypté est la somme du message M avec la clé sécrète C
 X=M Θ C
 Bob reçoit X et connaît C
 X–C=M
 L’inviolabilité du système nécessite:
 La dimension de la clé soit égal à la dimension du message
 La clé doit être totalement aléatoire et doit servir qu’une seule fois.
 Inconvénients
 La dimension de la clé peut devenir important quand on chiffre de très gros messages

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

 Le chiffrement par transposition consiste à appliquer une permutation des


caractères sur le message clair en entier. De ce fait, le message chiffré est
fait du même matériel que le message clair.

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

 Transposition complexe par colonnes


 A partir d’une clé (mot ou expression) de la longueur souhaitée
 On numérote ensuite les lettres dans l’ordre alphabétique
 Si une lettre apparaît plusieurs fois, elle est numérotée successivement de la gauche vers la droite

45
LE CHIFFREMENT PAR TRANSPOSITION

 Transposition simple par colonne


 Disposition des lettres du message horizontalement sur la matrice de longueur n
 Ensuite suivra une récolte verticale

 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

Basé sur la substitution et la permutation


 Principes de diffusion et de confusion à l’aide d’une clé

Clés identiques : KE = KD = K,
 Clé doit rester secrète

Une fonction qui transforme un message en clair en message chiffré


à l’aide d’une clé
K : la clé,
M : le message clair,
C : le message chiffré,
E : la fonction de chiffrement
E-1 : la fonction de déchiffrement

57
CHIFFREMENT SYMÉTRIQUE

Clé choisie aléatoirement dans l’espace des clés


 Taille de clés variable

Algorithmes répandus DES, AES, 3DES, RC4, …


La taille de la clé est fixe
 Généralement indépendante de la taille du message

Limitée en taille par la législation en cas de confidentialité


Une clé différente pour chaque couple
Absence de gestion de clés
Avantages:
 Rapidité

Inconvénient:
 Distribution des clés

58
CHIFFREMENT SYMÉTRIQUE

Le théorème du secret parfait


 « Un crypto-système est dit à secret parfait si la réception d’un chiffré
ne donne aucune information sur le clair dont il est issu»

59
CHIFFREMENT SYMÉTRIQUE: SCHÉMA DE FIESTEL

Développé à IBM dans les années 70


Utilisée dans les algorithmes de chiffrement par bloc
Repose sur :
 Des permutations, des substitutions

Mode de fonctionnement
 Les blocs de données sont divisés en deux parties de taille identique
 𝐿0 et 𝑅0

 Le réseau se subdivise en tours


 A chaque tours 𝐿0 et 𝑅0 sont échangés
 Chaque tour utilise une clé intermédiaire

60
FONDEMENTS CRYPTOGRAPHIQUES
ALGORITHME DE CHIFFREMENT SYMÉTRIQUE

61
FONDEMENTS CRYPTOGRAPHIQUES
ALGORITHME DE CHIFFREMENT SYMÉTRIQUE

DES (Data Encryption Standard) algorithme de chiffrement symétrique


par bloc avec feedback et sans feedback
Taille de clés de 56 bits (initialement sur 64 bits)
 64 bits car 1 bit de parité par bloc

Standard 15 janvier 1977 du FIPS (PUB 46).


 Version du 25 octobre 1999 FIPS PUB 46-3

DES était un des plus déployés parmi les algos symétriques

62
CHIFFREMENT SYMÉTRIQUE

DES fonctionne en trois étapes


Le message est découpé en blocs de 64 bits
Étape 1: permutation initiale et fixe d'un bloc

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

Étape 3: Dérivation des clés

 Chaque clé est décalée de k en


fonction du tour vers la gauche
 Ensuite la clé est recomposée et 48
bits sont sélectionnés

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

Étape 4: Expansion des blocs

 Expansion du bloc D0 sur 48 bits


 Or exclusif avec la clé

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

Étape 5: 16 itérations de fiestel


 À chaque itération (schéma de
FIESTEL)
 le bloc de 32 bits ayant le poids le
plus fort subira une transformation.

68
CHIFFREMENT SYMÉTRIQUE

Etape 6: Compression bloc


 Le chiffré de 48 bits est transformé
en 32 bits
 Le bloc est découpé en de petits
blocs de 6 bits
 Grâce aux s-boxes

69
CHIFFREMENT SYMÉTRIQUE

Permutation du bloc:

 Le bloc D0 est permuté selon la table


suivante

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

3DES est l’application de trois fois


successives de DES
Peut être usuel avec 3 ou deux clés
différentes
3DES avec la même clé répétée
trois fois est compatible DES
Blocs de 64 bits
La complexité de 3 X 56 bits est
inférieure à celle d’une clé de 168
bits
 Mais généralement avec que 2 clés. K1=K3

DES-ede3 (Encryption, Decryption,


Encryption)
Simple mais assez lent à exécuter

72
CHIFFREMENT SYMÉTRIQUE

En 1998 appel à projet du NIST pour remplacer DES


 Pour tous secteurs : bancaire, militaire, Internet
 Sécurité et performance supérieure à 3DES
 Tailles de blocs et de clé supérieures à 128 bits
 Flexible au niveau implémentation

Plusieurs réponses:
 MARS, RC6, Rijndael, Serpent, Twofish

En 2000 : algorithme Rijndael retenu


 devenu AES (Advanced Encryption Standard)

73
CHIFFREMENT SYMÉTRIQUE

AES (Advanced Encryption Standard)


 La taille de clé: 128, 192 ou 256 bits
 Rotation basée sur des matrices 4x4
 Transformation linéaire pour garantir la diffusion
 Xor entre matrices
 Plusieurs tours sont appliqués avec ce même schéma au bloc
 Utilisé par:
 WhatsApp, Signal, Vercrypt, WPA2, etc..

74
CHIFFREMENT SYMÉTRIQUE

Les données sont stockées dans un carrée


 4x 4 =16 cases → 8*16 = 128 bits

Substitution par Octet


 16 boîtes-S de 8 bits

Décalage par ligne


Mélange par colonne
Ex-or avec la sous-clé de 128 bits
Nombre de tours
 AES-128 = 10 tours
 AES-192 = 12 tours
 AES-256 = 14 tours

75
CHIFFREMENT SYMÉTRIQUE

Algorithme de chiffrement à la volée ou stream


RC4 (Rivest Cipher 4 ou Ron's Code) conçu en 1987 par Ronald Rivest (Rivest
Cipher 4 ou Ron's Code)
 Algorithme de chiffrement symétrique de la même compagnie RS RC2, RC5 et RC6.

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é).

Chiffrement en stream ou enfilé, taille des clés entre 40 et 128 bits

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

Towfish (ancien candidat pour AES)


 conçu par B. Schneier, Niels Fergusson, …
 Blocs de 128 bits
 Clés de 128, 192, 256 bits
 Très résistant à la cryptanalyse
 Plus performant que AES pour une clé de 256 bits

78
CHIFFREMENT SYMÉTRIQUE

RC6 (Ron’s Cipher version 6) (ancien candidat pour AES)


 Conçu par Ron Rivest et al.
 Dérivé de RC5
 Blocs de 128 bits
 Clés de 128, 192, 256 bits (clés jusqu’à 2048 bits)

79
CHIFFREMENT SYMÉTRIQUE

CAMELLIA (basé sur E2 candidat pour AES)


 Conçu par Nippon Telegraph and Telephone Corporation et Mitsubishi Electric
Corporation
 Retenue par le projet NESSIE et standard du gouvernement japonais
 Blocs de 128 bits
 Clés de 128, 192, 256 bits
 Basé sur le schéma de Fiestel
 Plus lent que AES

80
CHIFFREMENT SYMÉTRIQUE

Un mode de fonctionnement de chiffrement par bloc définit


comment les différents blocs d'un texte en clair multibloc
doivent être chiffrés et déchiffrés.

Plusieurs modes opératoires


 ECB (Electronic Code Book)
 CBC (Cipher Block Chaining)
 CFB (Cipher Feedback Block)
 OFB (Output Feedback Block)
 CTR (CounTeR)
 CTS (CipherText Stealing)
 CBC-MAC
 EAX
 GCM

81
CHIFFREMENT SYMÉTRIQUE

Le Mode Electronic Codebook(ECB)


 C’est le mode opératoire le plus simple
 Donc rapide
 Standardisé en 1981 dans le FPS 81
 Assure la confidentialité et non l’intégrité
 Le chiffrement et déchiffrement d’un block n’a pas d’impact dur les
autres blocs
 Le chiffrement de blocs de texte en clair identiques produit des blocs de
texte chiffré identiques

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

Le Mode Cipher Block Chaining (CBC)


 Apparaît en 1976 pour régler le problème de l’ECB
 Chaque bloc est mis en ex-or avec le cryptogramme du bloc précedant
 Le chiffrement et déchiffrement d’un block impact celui du Block
suivant
 Introduit un vecteur d’initialisation
 Doit être aléatoire et non réutilisable
 Le chiffrement d’un block nécessite du cryptogramme du bloc précédant
 Cette approche permet de rompre le lien entre les cryptogrammes de
deux blocs identiques

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

Le code d'authentification correspond à une partie du


dernier bloc chiffré 𝐶𝑛−1
Sujet de plusieurs erreurs

87
CHIFFREMENT SYMÉTRIQUE

Le Mode Cipher Feedback (CFB)


 Utilise un vecteur d’initialisation
 Opère plutôt sur des segments de block
 (DES, AES)
 Le chiffrement d’un block nécessite du ciphertext du bloc précédant

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

Le Mode Output Feedback Block (OFB)


 Utilise un vecteur d’initialisation
 Le chiffrement d’un block nécessite du une étape du chiffrement
précédant

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

Le Mode CTR (CounTeR)


 Transformation du chiffrement par bloc en en chiffrement par flux
 Il génère le prochain bloc de flux de clés en chiffrant les valeurs
successives d'un "compteur".
 Le compteur peut être n'importe quelle fonction qui produit une
séquence qui est garantie de ne pas se répéter pendant une longue
période

93
CHIFFREMENT SYMÉTRIQUE

Le Mode CTR (CounTeR)


 Transformation du chiffrement par bloc en en chiffrement par flux
 C’est un mode opératoire de AES
 Un compteur remplace le vecteur d’initialisation
 Il génère le prochain bloc de flux de clés en chiffrant les valeurs
successives d'un "compteur".
 Le compteur peut être n'importe quelle fonction qui produit une
séquence qui est garantie de ne pas se répéter pendant une longue
période

94
CHIFFREMENT SYMÉTRIQUE

Le Mode CTR (CounTeR)


 Avantages:
 calcul parallélisable des E(compteur)
 précalcule possible des E(compteur)
 Pas bourrage
 Deux blocs en clair identiques d'un même fichier donneront des versions chiffrées différentes
 Inconvénients:
 2 fichiers chiffrés avec la même clef et commençant de la même façon auront une version
chiffrée qui commence de la même façon
 IV doit être totalement aléatoire

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

• Problème d’échange de clé


– Le réseau n’est pas de confiance
• Une clé par couple
– Gestion et renouvellement

98
CHIFFREMENT SYMÉTRIQUE

Soit t la taille d’une clé en bits


La force brute consiste à tester la totalité de l’espace ou valeur de
la clé
Le test d’une clé nécessite en moyenne l’exécution de 1000
instructions
La puissance d’une machine est de 2000 MIPS ( 2000 millions
d’instructions par seconde)
Relation
𝑁𝑏𝑟 𝑑 ′ 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛𝑠
= 𝑡𝑒𝑚𝑝𝑠
𝑃𝑢𝑖𝑠𝑠𝑎𝑛𝑐𝑒 𝑚𝑎𝑐ℎ𝑖𝑛𝑒

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

Les fonctions à sens unique sont à la base de toutes les


techniques cryptographiques modernes.
Les fonctions à sens unique sont :
 Chiffrement asymétrique
 fonction de hachage (avec ou sans clé secrète)
 Protocole de Diffie-Hellman (échanges de clés)

Une fonction à sens unique f de E vers F est une fonction telle


que :
 pour x  E ; f(x) est facilement calculable
 pour y  F ; il est calculatoirement difficile de trouver x  E tel que f(x)
= y

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É

Fonction de Hachage sans clé


 A la base des fonctions de hachage à clés
 Signatures numériques (avec le chiffrement asymétrique)
 mot de passe: stockage des hachés

Message Digest : MD2, MD4 et MD5.


 Développé par Ron Rivest pour la RSA Security

RACE Integrity Primitives Evaluation Messages Digest


 RIPEMD-128 et RIPEMD-160.
 Développé par H. Dobbertin, A. Bosselaers et B. Preneel

Secure Hash Algorithm SHA1 (standard SHS).


 Développé par le NIST en 1995; ANSI X9.30.

103
FONCTIONS DE HACHAGE AVEC CLÉ

Fonction standardisée à l’IETF RFC2104 et au NIST FIPS PUB 198


hmac: Keyed-hash Message Authentication Code
Permet d’assurer un service d’intégrité et d’authentification
 Combinaison d’une fonction de hachage avec une clé sécrète 𝒌𝑠
 Toutes fonctions de hachage peuvent être utilisée

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

Le résultat d’une fonction hmac se nomme un mac:


 mac (message authentication code)
 La taille du mac est identique à la taille du condensât de h
 20 octets pour SHA-1 et 16 octets pour MD5
 Fonction usuel dans les protocoles SSL, TLS, IPsec pour les services d’authentification de l’origine des
données et d’intégrité

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

Fonction à trois paramètres : hmac (h, Ks, M) = mac


 h : Fonction de hachage
 Ks: Une clé secrète
 M: Un message ou data

Soit B la taille des blocs ( B = 64 octets)


 La taille de B dépend de la fonction h

La taille de Ks doit être égale à celle de B


 Si la taille de Ks est inférieure à celle de B, un pad de 0

Si la taille de Ks est supérieure à la taille du condensât de h, on lui applique la fonction


h

105
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

Fonction basée sur la complexité de calcul


 Relativement plus lente que le chiffrement symétrique
 chiffrement de 100 à 1000 fois plus lents à résistance égale

Deux clés: si l’une chiffre l’autre déchiffre

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

Alice et Bob vont disposer chacun d’une paire de clés uniquement


Une clé va être rendue publique: Clé publique
 Elle sera publié notamment dans un annuaire

Une clé restera privée: Clé privée


 Cette clé doit être du domaine du privée et bien protégée
 Elle ne doit jamais être
 divulgué à un tiers
 stocké en clair sur un support quelconque
 échangé au travers du réseau en chiffré ou en clair

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 RSA (R.Rivest,A.Shamir,L. Adleman)


 Défini en 1977 breveté par le MIT(expiration en 2000)
 Basé sur la factorisation des nombres premiers
 Commercialisé par la société RSA
 Le plus déployé parmi les algorithmes asymétriques
 Obligatoire dans plusieurs protocoles (SSL/TLS,PGP, SET,..)
 Intégré à presque toutes les cartes de paiement

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

Clé Publique est :


 le couple (e,n)

Clé Privée est :


 le couple (d,n)

Soit M le message clair et C le message chiffré.


Pour chiffrer M, on calcule :
 C = Me modulo n.

Pour déchiffrer on calcule :


 M = Cd modulo n.

110
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

Pour former les couples (e,n) et (d,n).


 On choisit au hasard 2 gds. nombres premiers p et q.
 On calcule n = p.q
 On pose j = (p-1).(q-1)

  (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

Deux clés: si l’une chiffre l’autre déchiffre

Pour le même message: M = 29


Chiffrement avec la clé privé:
Z = Md mod n = 297 mod 33 = 17
Déchiffrement:
Ze mod n = 173 mod 33 = 29

114
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

Pour percer RSA, il faut pouvoir factoriser n.


 Si on factorise n, on obtient p et q,
 on calcule j = (p -1)(q - 1)
 on calcule d, e.d = 1 mod j

La factorisation de grands nombres est complexe ,elle est dissuasive.


Deux difficultés pour implémenter RSA:
 La génération de grands nombres premiers (p et q)
 L’exponentiation avec de grand facteur.
 Un standard est défini: PKCS 1 (Public Key Cipher System).

115
PROTOCOLE D’ÉCHANGE DE CLÉ DIFFIE HELMAN

Protocole d’échange de clé :


Soit g et p (premier) deux éléments publics
 Alice
 génère a un exposant et calcule X = ga mod p
 Bob
 génère b un exposant et calcule Y = gb mod p

A B
 Alice X
 Calcule Ya = gba mod p
 Bob Y
 Calcule Xb = gab mod p

gab mod p est la clé partagée entre Alice et Bob

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

Algorithme asymétrique ElGamal


 Même usage que RSA et même principe
A génère une paire de clé publique/privé
 g est un générateur
 p est un nombre premier
 A génère b et calcule y = gb mod p
 La clé publique de A est: <g, p, y>
 La clé privée de A est <g, p, b>
B veut transmettre le message M à A
 M est mis sous la forme m < p
 Il génère un entier aléatoire k < p-1
 Il calcule c1 = gk mod p et c2 = m.yk mod p
 B transmet à A le couple (c1, c2)

118
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

A reçoit le couple (C1, C2)

A dispose de sa clé privée <g, p, b>

C2 = m.yk mod p et y = gb mod p

Pour déchiffrer, A calcule


(C2 / C1b) = (m.gbk mod p / gbk mod p)=m

119
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

Pas de service de confidentialité directement:


 Pour raison de performance

Service d’échange de clé (symétrique):


 Pour la mise en œuvre du service de confidentialité
 Établissement de la clé de session
A B
KB publique de B
KAB généré par A
{ KAB }KB

120
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

Échange de clé et service de confidentialité


A B

Clé secrète Clé secrète

Texte Texte Clair


Texte Clair
Chiffré

Clé publique du Clé privée du


destinataire destinataire

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

Condensât Signature Condensât

122
ALGORITHME DE CHIFFREMENT ASYMÉTRIQUE

Attaques de l’homme au milieu: Man In Middle ( MIM)

Alice dispose de
KpubA clé publique
KprivA clé privé
Intrus Bob
Alice KpubA KpubI
{ KAB }KpubA { KAB }KpubI

Nécessité d’authentifier les clés publiques


Nécessité de gérer les clés publiques:
durée de vie, usages, révocation, …
… déployer une infrastructure de confiance

123
CHAPITRE 3 PKI: Certificats et
standards

124
FORMATS ET STANDARDS
STANDARDS PKCS

Des standards pour la cryptographie à clé publique


PKCS (Public Key Cipher System) sont des standards définis initialement par la
compagnie RSA pour activer l’usage de l’algorithme asymétrique RSA.
Principale objectif: interopérabilité entre les applications.
Ils couvrent la réalisation de tous les services de sécurité.
Ils définissent des formats pour tous les objets liés à la réalisation de ces services.
Ils définissent également des interfaces entre certains composants (logiciel et
matériel) de sécurité
Une description de ces standards avec des exemples et donnée sur le site de RSA
(http://www.rsa.com)

125
FORMATS ET STANDARDS
STANDARDS PKCS

PKCS #1: RSA Cryptography Standard


PKCS #3: Diffie-Hellman Key Agreement Standard
PKCS #5: Password-Based Cryptography Standard
PKCS #7: Cryptographic Message Syntax Standard
PKCS #8: Private-Key Information Syntax Standard
PKCS #10: Certification Request Syntax Standard
PKCS #11: Cryptographic Token Interface Standard
PKCS #12: Personal Information Exchange Syntax Standard
PKCS #13: Elliptic Curve Cryptography Standard
PKCS #14: Pseudorandom Number Generation Standard
PKCS #15: Cryptographic Token Information Format Standard

126
STANDARDS PKCS#1

Défini dans le RFC3447


Spécifie les primitives RSA de chiffrement, de déchiffrement de signature
(selon un principe décrit dans PKCS #7) et de vérification
Spécifie les schémas de chiffrement et de signature
Spécifie les méthodes d’encodage de ces schémas
Spécifie la syntaxe ASN.1 pour:
 les clés publiques
 les clés privées
 les schémas mentionnés ci-dessus

127
STANDARDS PKCS#1

Syntaxe des clés en ASN1 :


RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e }

RSAPrivateKey ::= SEQUENCE {


version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER
-- (inverse of q) mod p }

128
STANDARDS PKCS#3

Les paramètres publiques de Diffie-Helman dont en ASN1:


DHParameter ::= SEQUENCE {
prime INTEGER, -- p
base INTEGER, -- g
privateValueLength INTEGER OPTIONAL }

129
STANDARDS PKCS#3
OpenSSL> dhparam –h

dhparam [options] [numbits]

where options are

-inform arg input format - one of DER PEM

-outform arg output format - one of DER PEM

-in arg input file

-out arg output file

-dsaparam read or generate DSA parameters, convert to DH

-check check the DH parameters

-text print a text form of the DH parameters

-C Output C code

-2 generate parameters using 2 as the generator value

-5 generate parameters using 5 as the generator value

numbits number of bits in to generate (default 512)

-rand file;file;... load the file (or the files in the directory) into
the random number generator

-noout no output

OpenSSL> dhparam -out dhp.pem -2 1024

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

Standard destiné au chiffrement de clés privées (réfère PKCS #8).


Définition de deux algorithmes de chiffrement de clé
 MD2 avec DES-CBC
 MD5 avec DES-CBC

131
STANDARDS PKCS#8

Private Key Information Standard


Description de syntaxe pour la clé privé
 la clé privée
 des attributs
 Identifiant de l’algorithme (ex: PKCS#1)

PrivateKeyInfo ::= SEQUENCE {


version Version,
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
privateKey PrivateKey,
attributes [0] IMPLICIT Attributes OPTIONAL }

PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier

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

IETF a défini une autre structure (RFC 2511)


 Internet X.509 Certificate Request Message Format

CertificationRequest ::= SEQUENCE {


certificationRequestInfo CertificationRequestInfo,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature Signature }

Signature ::= BIT STRING

CertificationRequestInfo ::= SEQUENCE {


version Version,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
attributes [0] IMPLICIT Attributes }

Attributes ::= SET OF Attribute

133
FORMATS ET STANDARDS
STANDARDS PEM
PRIVACY ENHANCEMENT FOR INTERNET ELECTRONIC MAIL

RFC 1424 - PEM : Key Certification and related services


 Afin de répondre à des demandes de certification de la part d'utilisateurs, le CA devra leur fournir une
adresse électronique à laquelle ils pourront envoyer un message PEM de ce type :

-----BEGIN PRIVACY-ENHANCED MESSAGE-----


Proc-Type: 4,MIC-ONLY
Content-Domain: RFC822
Originator-Certificate: <requestor's self-signed certificate>
MIC-Info: RSA,RSA-MD2,<requestor's signature on text>
<text>
-----END PRIVACY-ENHANCED MESSAGE-----

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

La réponse est le certificat et une infrastructure associée pour leur gestion

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.

Certificat d’autorité de certification


 permet de signer des certificats.

137
LES CERTIFICATS
STANDARD X.509

Un seul standard en lice: Certificats X509


Standard:
 ITU-T X.509(03/2000), ou ISO/IEC 9594-8
• Certificats de clé publique et d'attribut
 RFC 3280: (définition de profil fonctionnel basé sur X509)

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

Certificat ::= SEQUENCE {

version[0] Version DEFAULT v1,

serialNumber CertificateSerialNumber,

signature AlgorithmIdentifier,

issuer Name,

validity Validity,

subject Name,

subjectPublicKeyInfo SubjectPublicKeyInfo,

issuerUniqueIdentifier[1] IMPLICIT UniqueIdentifier OPTIONAL,

-- si ce composant est présent, la version doit être v2 ou v3

subjectUniqueIdentifier[2]IMPLICIT UniqueIdentifier OPTIONAL, -- si ce composant est présent, la version doit être v2 ou


v3

extensions[3] Extensions OPTIONAL -- si


ce composant est présent, la version doit être v3 -- }

140
LES CERTIFICATS STANDARD X.509
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time }

SubjectPublicKeyInfo ::= SEQUENCE {


algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }

Extensions ::= SEQUENCE OF Extension

Extension ::= SEQUENCE {


extnId Object Identifier,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING}

141
LES CERTIFICATS STANDARD X.509
Certificate:

Version: 1 (0x0)

Serial Number: 1f:42:28:…:b3:ab:1f:1c

Signature Algorithm: sha1WithRSAEncryption

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

Not Before: May 18 00:00:00 1998 GMT

Not After : May 18 23:59:59 2018 GMT

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:

Public Key Algorithm: rsaEncryption

RSA Public Key: (1024 bit)

Modulus (1024 bit):


00:a7:…:7f:77

Exponent: 65537 (0x10001)

Signature Algorithm: sha1WithRSAEncryption

11:45:….:ce:ef:
142
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS

Le but initial des certificats est de lier:


 identité et clé publique par la signature d’un tiers de confiance

Pour couvrir des services plus étendus


 Nécessaire d’associer d’autres informations à la clé publique

L’extension consiste à ajouter de nouveaux champs aux certificats


L’ extension est défini dans ITU-T Rec. X.660 et ISO/IEC 9834-1
Des extensions sont standardisées,
 possibilité de définir des extensions spécifiques

Si l’application ne supporte pas une extension critique, elle abandonne le


certificat.

143
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS

Type de l’extension Flag critique (1 ou 0) Valeur

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

Avec un flag non critique


 Si l’application
 ne supporte pas cette extension, l’extension est a supporte pas cette extension abandonnée
mais le certificat accepté

La valeur est conforme au type de l’extension

144
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS

2.5.29 - certificateExtension (id-ce) 2.5.29.23 - Hold Instruction Code


2.5.29.1 - old Authority Key Identifier 2.5.29.24 - Invalidity Date
2.5.29.27 - Delta CRL indicator
2.5.29.2 - old Primary Key Attributes
2.5.29.28 - Issuing Distribution Point
2.5.29.3 - Certificate Policies 2.5.29.29 - Certificate Issuer
2.5.29.4 - Primary Key Usage Restriction 2.5.29.30 - Name Constraints
2.5.29.31 - CRL Distribution Points
2.5.29.14 - Subject Key Identifier 2.5.29.32 - Certificate Policies
2.5.29.15 - Key Usage 2.5.29.33 - Policy Mappings
2.5.29.35 - Authority Key Identifier
2.5.29.16 - Private Key Usage Period
2.5.29.36 - Policy Constraints
2.5.29.17 - Subject Alternative Name 2.5.29.37 - Extended key usage
2.5.29.18 - Issuer Alternative Name 2.5.29.46 - FreshestCRL
2.5.29.54 - X.509 version 3 certificate extension Inhibit Any-
2.5.29.19 - Basic Constraints policy
2.5.29.20 - CRL Number
2.5.29.21 - Reason code 145
LES CERTIFICATS
STANDARD X.509: LES EXTENSIONS

KeyUsage : usage de la clé publique certifiée


DigitalSignature
NonRepudiation
KeyEncipherment
DataEncipherment
keyAgreement
keyCertSign
CRLSign
encipherOnly
decipherOnly

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

Comment être sûr qu’une clé publique est bien associé à un


sujet?
L’autorité de certification répond à cette question.
Le CA vérifie l’authenticité de la requête, signe et publie le
certificat.

Publie les certificats


CA Annuaire
Publie la révocation
Des certificats

Emet une requête

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

L’autorité d’enregistrement (RA) vérifie les demandes de


certificat de l’usager
Publie les certificats
CA Annuaire
Publie la révocation
Des certificats

Émission de requête

RA RA

Util. final Util. final

151
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION

Un certificat peut être révoqué quand:


 La clé privé de l’autorité est compromise
 La clé privée associée au certificat est compromise
 Changement de statut du détenteur du certificat
 Suspension du détenteur du certificat
 Un certificat a été obtenu frauduleusement

 Un changement intervenu dans l'état du sujet du certificat en tant qu'entité approuvée

L’autorité de révocation et l’autorité de certification peuvent être la


même entité

152
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION

Différentes méthodes de révocation:


 CRLs (Certficate Revocation List)
 CRL Distribution Points,
 Delta CRLs,
 OCSP (Online Certificat S Protocol)
 Vérification en temps réel
 SCVP (Simple Certificate Validation Protocol)
 Protocole déchargeant un client de la vérification complète d’un
certificat

Un certificat comporte dans une extension la ou les


méthodes supportées
 Adresse du serveur (ou des serveurs) CRL et nom du fichier
contenant la liste des CRLs, …
 http://SVRSecure-crl.verisign.com/SVRSecure2005.crl

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

 Chaque entrée contient :


 le numéro de série du certificat
 la date de la révocation
 d ’autres infos comme la cause de la révocation

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

CRL Distribution Points


 Principe : diviser la CRL en des parties plus petites
 Chaque certificat contient les informations permettant à l ’application de vérifier sa
validité au bon endroit

156
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION

CRL Distribution Points:


 Avantages
 Peut être cachée
 Problème de taille résolu
 Inconvénients
 Endroit de vérification du certificat est en dur dans le certificat
 Introduit une complexité d ’implémentation

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

OCSP: Online Certificate Status Protocol – RFC 2560


 Permet la vérification temps réel de la validité du certificat
 Repose sur un modèle client-serveur (Requête/Réponse)
 Le serveur OCSP peut utiliser la CRL pour répondre

 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

OCSP: Online Certificate Status Protocol


 Avantages
 fourni des informations à jour
 temps de réponse rapide
 réponse peut être cachée

 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

SCVP (Simple Certificate Validation Protocol)


 Draft de l’IETF

Modèle Client/Serveur

Le client SCVP décharge la vérification du certificat sur un serveur

Le serveur SCVP fournit:


 Les informations sur la validité, le chemin de certification, la révocation
 La validation du certificat

161
LES CERTIFICATS
STANDARD X.509 : RÉVOCATION

SCVP (Simple Certificate Validation Protocol)


 Inconvénient
 État de draft
 Nécessite un serveur sur site

 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

Les certificats sont la méthode commune au trois pour la fourniture du service


d’authentification
SSL, TLS et WTLS n’interopèrent pas malgré que l’automate à la base de leur
fonctionnement est identique
La version actuelle de TLS est la 1.3
 Elle se distingue de SSL et TLSv1.0 par le support de nouvelles méthodes d’authentification

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

FTP SMTP HTTP Telnet XDR

SSL SNMP RPC

TCP UDP

IP

165
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PORTS

Protocole Port Protocole non Application


sécurisé sécurisé
HTTPS 443 HTTP Transactions requête-
réponse sécurisées
SSMTP 465 SMTP Messagerie électronique

SNNTP 563 NNTP News sur le réseau Internet

SSL-LDAP 636 LDAP Annuaire X.500 allégé

SPOP3 995 POP3 Accès distant à la boîte aux


lettres avec rapatriement des
messages

166
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PORTS

Protocole Port Protocole non Application


sécurisé sécurisé
FTP-DATA 889 FTP Transfert de fichiers

FTPS 990 FTP Contrôle du transfert de fichiers

IMAPS 991 IMAP4 Accès distant à la boîte aux lettres avec ou


sans rapatriement des messages
TELNETS 992 Telnet Protocole d’accès distant à un système
informatique
IRCS 993 IRC Protocole de conférence par l’écrit

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

Authentification du serveur et éventuellement du client,


Négociation des algorithmes de chiffrement et de hachage, échange d’un
secret,
Génération des clés.

170
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE

Message Type de Sens de Signification


message transmission
HelloRequest optionnel serveur → client Ce message demande au client d'entamer
le Handshake.
ClientHello obligatoire client → serveur Ce message contient :
le numéro de version du protocole SSL ;
le nombre aléatoire : client_random ;
l'identificateur de session : session_ID ;
la liste des suites de chiffrement choisies
par le client ;
la liste des méthodes de compression
choisies par le client.
ServerHello obligatoire serveur → client Ce message contient :
le numéro de version du protocole SSL ;
un nombre aléatoire : serveur_random ;
l'identificateur de session : session_ID ;
une suite de chiffrement ;
une méthode de compression.

171
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE

Certificate Optionnel serveur → client Ce message contient le certificat du


client → serveur serveur ou celui du client si le serveur le lui
réclame et que le client en possède un.
ServerKeyExchange Optionnel serveur → client Ce message est envoyé par le serveur que
s’il ne possède aucun certificat, ou
seulement un certificat de signature.
CertificateRequest Optionnel serveur → client Par ce message, le serveur réclame un
certificat au client.
ServerHelloDone Obligatoire serveur → client Ce message signale la fin de l’envoi des
messages ServerHello et subséquents.

172
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE HANDSHAKE

ClientKeyExchange Obligatoire client → serveur Ce message contient le PreMasterSecret


crypté à l’aide de la clé publique du
serveur.
CertificateVerify Optionnel client → serveur Ce message permet une vérification
explicite du certificat du client.
Finished obligatoire serveur → client Ce message signale la fin du protocole
client → serveur Handshake et le début de l’émission des
données protégées avec les nouveaux
paramètres négociés.

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)

ChangeCipherSpec signale au Record toute modification des


paramètres de sécurité,

Constitué d’un message (1 octet)

176
LES SOLUTIONS DE SÉCURITÉ BASÉE SUR LES PKI
PROTOCOLE SSL/TLS : PROTOCOLE RECORD

Reçoit les données des couches supérieures : (Handshake, Alert,


CCS, HTTP, FTP ...), et les transmet au protocole TCP.

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

Le protocole Alert peut être invoqué :


- par l’application, par exemple pour signaler la fin d’une connexion
- par le protocole Handshake suite à un problème survenu au cours de son déroulement
par la couche Record directement, par exemple si l'intégrité d'un message
est mise en doute

178
NOTES BIBLIOGRAPHIQUES

https://www.emse.fr/~nadia.el-
mrabet/Presentation/Cours1_FondementCrypto.pdf

181

Vous aimerez peut-être aussi