SÉCURITÉ INFORMATIQUE
2019/2020
Chapitre 3
Cryptographie Moderne
Mme S. Bensaid née Belattaf
UMMTO
PLAN DU CHAPITRE
Algorithmes de chiffrement modernes
– Classification
– Symétrique ou asymétrique?
– Optimisation du chiffrement par une clé de session
Arithmétique pour la cryptographie
Protocole de Diffie Hellman (DH)
Chiffrement de RSA
Chiffrement d’Elgamal
Fonctions de hachage
Signatures Numériques
– Signature numérique avec RSA
– Signature numérique avec EL Gamal
Les certificats numériques.
Autorités de certification et PKI 2
S. BENSAID 2019/2020 – UMMTO
ALGORITHMES DE CHIFFREMENT MODERNES
Classification
Algorithmes de Chiffrement
A clés symétriques A clés asymétriques
DES RSA
Triple DES Elgamal
AES Rabin
IDEA Merkel-Hellman
3
RC2, RC4 et RC5
S. BENSAID 2019/2020 – UMMTO
ALGORITHMES DE CHIFFREMENT MODERNES
Chiffrement à clés symétriques
L’émetteur et le récepteur doivent posséder la même clé secrète
4
S. BENSAID 2019/2020 – UMMTO
Algorithmes de Chiffrement modernes
CHIFFREMENT À CLÉS ASYMÉTRIQUES (À CLÉ PUBLIQUE)
Chaque interlocuteur dispose d’un couple de clés :
o Une clé publique connue de tous.
o Une clé privée gardée secrète.
L’émetteur (la source) chiffre le message en utilisant la clé publique du
destinataire. 5
Le destinataire déchiffre le message en utilisant sa clé privé
S. BENSAID 2019/2020 – UMMTO
ALGORITHMES DE CHIFFREMENT MODERNES
SYMÉTRIQUE OU ASYMÉTRIQUE ?
Chiffrement à clés symétriques
Avantages
La rapidité
Ces algorithmes utilisent des clés de taille relativement faible et peu de ressources.
Ex :128 bits pour IDEA et 168 bits pour Triple DES
Inconvénients :
Le problème 1 : est que l’émetteur et le récepteur doivent se mettre d’accord à l’avance sur la
clé à utiliser : Problème de distribution de la clé secrète
Le problème 2 : est que chaque entité doit disposer d’autant de clés secrètes qu’elle a
d’interlocuteurs : Problème de gestion de clés secrètes.
Chiffrement à clés asymétriques
Avantages :
Pas de problème de distribution de clés.
Chaque interlocuteur garde secret que sa clé privée.
Inconvénients
Les algorithmes asymétriques sont particulièrement lents à comparer avec ceux symétriques
et demandent un temps de traitement processeur important : Charge de calcul
Ils nécessitent des clés plus longues (ex : 1024 bits, 2048 bits) 6
S. BENSAID 2019/2020 – UMMTO
ALGORITHMES DE CHIFFREMENT MODERNES
Optimisation du chiffrement par une clé de session
Objectifs
1. Palier aux inconvénients majeurs du système de chiffrement :
asymétrique : lenteur de traitement des messages de taille importante.
symétrique : problème de distribution et de gestion des clés secrètes
2. Prendre le meilleur des 2 systèmes de chiffrement.
Solution
Combinaison des 2 systèmes de chiffrement symétrique et asymétrique
7
S. BENSAID 2019/2020 – UMMTO
ALGORITHMES DE CHIFFREMENT MODERNES
OPTIMISATION DU CHIFFREMENT PAR UNE CLÉ DE SESSION
Comment combiner l’usage des 2 systèmes?
Principe :
Pour chiffrer les messages de grande taille, on utilise un algorithme
symétrique et une clé de session.
On utilise un algorithme asymétrique pour chiffrer la clé de session.
Une clé de session est une clé secrète, partagée entre deux
interlocuteurs durant la durée de l’échange et détruite à la fin
de la session de travail.
S. BENSAID 2019/2020 – UMMTO
OPTIMISATION DU CHIFFREMENT PAR UNE CLÉ DE SESSION
Pour assurer la confidentialité des données échangées entre 2
interlocuteurs (entités), on suit les étapes suivantes :
L’une des deux entités (l’émetteur) génère aléatoirement une clé de
session.
L’émetteur chiffre le message à transmettre en utilisant la clé de
session et un algorithme à clé symétrique.
L’émetteur chiffre la clé de session avec la clé publique du
destinataire (en utilisant un algorithme à clé asymétrique).
Le message chiffré et la clé chiffrée sont envoyés au destinataire.
Le destinataire déchiffre la clé de session chiffrée en utilisant sa clé
privé.
Le destinataire déchiffre le message en utilisant cette clé de session.
Le destinataire peut, également, utiliser cette clé de session pour
émettre des messages chiffrés à son interlocuteur. 9
S. BENSAID 2019/2020 – UMMTO
ARITHMÉTIQUE POUR LA CRYPTOGRAPHIE
ALGORITHME D’EXPONENTIATION RAPIDE
C = 150233 mod 437
233 = 11101001(2)
1 150
0 1502 mod 437 = 213
0 2132 mod 437 = 358
1 3582 mod 437 = 123
0 1232 mod 437 = 271
1 2712 mod 437 = 25
1 252 mod 437 = 188
1 1882 mod 437 = 384
(150 × 123 × 25 × 188× 384) mod 437 = 351 10
S. BENSAID 2019/2020 – UMMTO
ARITHMÉTIQUE POUR LA CRYPTOGRAPHIE
ALGORITHME D’EUCLIDE ETENDU (LES ÉQUATIONS DIOPHANTIENNES)
396X+17Y=1 pgcd (396,17)=1
396 163 -
23 17 7 +
3 5 2 -
2 2 1 +
1 0 -
396 × 7 – 17 × 163 = 1 {X=7,Y=-163}
11
S. BENSAID 2019/2020 – UMMTO
PROTOCOLE DE DIFFIE-HELLMAN (DH)
Inventé par Whitfield Diffie et Martin Hellman en 1976
Objectif de DH: Partage ou échange d’une clé secrète
par l’intermédiaire d’un échange de données publiques.
Il tire sa sécurité du problème du Logarithme Discret
A=BX mod C
12
S. BENSAID 2019/2020 – UMMTO
PROTOCOLE DE DIFFIE-HELLMAN (DH)
• Deux participants A et B choisissent, publiquement, un nombre premier p et
une base g (un entier plus petit que p).
p et g sont les paramètres de Diffie-Hellman.
• Chaque participant génère confidentiellement sa clé privée :
A génère XA tel que : XA <p
B génère XB tel que : XB<p
• Chaque participant calcule alors une clé publique :
A calcule : YA = gXA mod p
B calcule : YB = gXB mod p.
• Les deux participants s’échangent leurs clés publiques.
• Chaque participant calcule la clé secrète K
A calcule : K = (YB )XA mod p
B calcule : K = (YA )XB mod p
13
La clé K constitue le secret partagé entre les deux participants
S. BENSAID 2019/2020 – UMMTO
PROTOCOLE DE DIFFIE-HELLMAN
A et B partagent deux paramètres (p, g)
Clé privée de A XA
Clé privée de B XB
Clé publique de A YA
Clé publique de B YB
YA
YA = gXA mod p A YB B YB = gXB mod p
K = (YB )XA mod p = gXA * XB mod p = K = (YA )XB mod p 14
S. BENSAID 2019/2020 – UMMTO
CHIFFREMENT DE RSA
Inventé par Ronald Rivest, Adi Shamir et Leonard Adleman en 1977
RSA tire sa sécurité du problème de factorisation
Génération des clés :
Choisir deux grands nombres premiers p et q (p≠q)
Calculer n=p×q
Calculer φ(n)=(p−1)×(q−1)
Choisir e tels que : 1<e < φ(n) et pgcd(e, φ(n))=1
Calculer d tel que : e×d mod φ(n)=1 (1<d < φ(n))
Clé publique (e, n)
Clé privée (d, n)
Chiffrement : C=Me mod n tel que M<n
M : texte clair C : texte chiffré
Déchiffrement : M=Cd mod n 15
S. BENSAID 2019/2020 – UMMTO
CHIFFREMENT DE RSA
Exercice : p = 17, q = 11, e = 7, M = 88
Génération des clés :
n = p×q = 17 × 11 = 187
φ(n) = (p−1)×(q−1) =(17 − 1) × (11 − 1) = 160
On vérifie que :
1<e < φ(n) et le pgcd (7,160)=1 160 23 +
22 7 1 -
7 × d mod 160 = 1 d = 23
1 8 1 +
Clé publique (e, n)=(7,187)
Clé privée (d, n) = (23,187)
1 0 -
Chiffrement : C = 887 mod 187 = 11 (M<n)
Déchiffrement : M= 1123 mod 187 = 88
16
S. BENSAID 2019/2020 – UMMTO
CHIFFREMENT D’ELGAMAL
Inventé par Taher Elgamal en 1984
Il tire sa sécurité du problème du Logarithme Discret.
Chiffrement d’Elgamal :
Génération des clés :
Choisir un grand nombre premier p et deux nombres a et g tels que:
• a <p
• g < p
Calculer A=ga mod p
Clé publique (A, g, p)
Clé privée a
Chiffrement : M<p
Choisir un nombre aléatoire b (b < p et pgcd(b, p-1)=1)
Calculer B=gb mod p
Calculer C=M×Ab mod p
Le chiffré du message (B, C)
17
Déchiffrement M=(C×B ( p−a−1) ) mod p
S. BENSAID 2019/2020 – UMMTO
FONCTION DE HACHAGE H
h=H(M) : h est appelé le haché
La valeur de h est de longueur fixe et inférieure à M
A partir de h, il est impossible de retrouver M
Il est difficile de trouver M’ tel que H(M’)=h
Exemples : MD4, MD5, SHA-1, RIPEMD-160
18
S. BENSAID 2019/2020 – UMMTO
SIGNATURE NUMÉRIQUE
PuA : Clé publique de A
PrA : Clé privé de A
A B
M
Hachage
Hachage ?
h1 = h2
h PuA
Chiffrement Déchiffrement
PrA
On peut ainsi s’assurer de l’origine du 19
S message M et en authentifier l’émetteur A
S. BENSAID 2019/2020 – UMMTO
SIGNATURE NUMÉRIQUE AVEC RSA
Paire de clés de l’expéditeur {(e, n), (d, n)}
Expéditeur Génération de la signature de M
Calculer h=H(M)
Calculer S=hd mod n
La signature numérique (M, S)
Destinataire Vérification de la signature
Calculer h1=H(M)
Calculer h2=Se mod n
Si h1=h2 la signature est valide
20
S. BENSAID 2019/2020 – UMMTO
SIGNATURE NUMÉRIQUE AVEC ELGAMAL
Paire de clés de l’expéditeur {(A, g, p), a}
Expéditeur Génération de la signature de M
Calculer h=H(M)
Choisir un nombre aléatoire b (b<p et pgcd(b, p–1)=1)
Calculer B=gb mod p
Calculer C tel que h=(a×B+b×C) mod (p−1)
La signature numérique (M, S) tel que S=(B, C)
Destinataire Vérification de la signature
Calculer h=H(M)
Si (AB×BC )mod p=gh mod p la signature est valide
21
S. BENSAID 2019/2020 – UMMTO
LES CERTIFICATS NUMÉRIQUES
Liaison d’une entité à sa clé publique
REQ
A B, KI
I B
« A » envoie à « B » une requête pour avoir sa clé publique
« I » interrompt la requête
« I » répond à « A » avec (B, KI) en se faisant passer pour « B »
Comment « A » peut vérifier la validité de cette liaison ?
Certificat d’identité
Un certificat d’identité est un document électronique signé
par une Autorité de Certification (AC) permettant de lier 22
une entité à sa clé publique
S. BENSAID 2019/2020 – UMMTO
LES CERTIFICATS NUMÉRIQUES
Structure d’un certificat standard X.509 :
Version du standard
Numéro de série du certificat
Fonction de hachage utilisée
Algorithme de signature utilisé
Certificat
M
L’identité du signataire
Période de validité du certificat
L’identité de l’utilisateur
La clé publique de l’utilisateur
Signature de l’autorité de confiance
S
23
S. BENSAID 2019/2020 – UMMTO
LES CERTIFICATS NUMÉRIQUES
Certificat d’attribut
Le certificat d’attribut permet d'attribuer des permissions
à une entité.
Un certificat d'attribut contient un ensemble d’attributs
qui donnent des informations sur les privilèges du
possesseur du certificat
Exemple : Modèle de certification hiérarchique
L’autorité de certification racine délivre un certificat
d’attribut qui garantit la délégation du service de
certification à une ou plusieurs d’autres autorité, qui elles
mêmes délivrent à leur tours des certificats à d’autres, et
ainsi de suite. 24
S. BENSAID 2019/2020 – UMMTO
EXEMPLE : MODÈLE DE CERTIFICATION HIÉRARCHIQUE
Quels sont les certificats nécessaires à vérifier pour que
l’utilisateur X puisse vérifier la clé publique de Y ?
X=4 & Y=3 1
C3 C0 C2 C4
{ C1} C1
2 4
X=3 & Y=5 C5 3
C7 C8 C6
{C0, C3, C5}
5 6 7
X=7 & Y=8 C9
{C0, C3, C7, C8, C9}
8 25
S. BENSAID 2019/2020 – UMMTO
AUTORITÉS DE CERTIFICATION ET PKI
PKI (Public Key Infrastructure): Une Infrastructure à clé
publique est l'ensemble des algorithmes, protocoles et services
pour gérer et sécuriser les échanges d'information.
La procédure de certification se fait principalement en trois
étapes :
1. L’utilisateur s’enregistre auprès de l’autorité
d’enregistrement en donnant des justifications concrètes
vis-à-vis de son identité.
2. L’autorité d’enregistrement génère la paire de clés de
l’utilisateur et envoie une requête de certification à
l’autorité de certification.
3. L’autorité de certification génère un certificat pour
l’utilisateur et publie ce dernier sur l’annuaire. 26
S. BENSAID 2019/2020 – UMMTO
AUTORITÉS DE CERTIFICATION ET PKI
Le PKI fournit trois services principaux :
1. La génération et la mise à jour des paires de clés.
2. La certification des clés publiques et la publication des certificats
dans un annuaire pour les rendre accessible.
3. La révocation des certificats: un certificat peut être révoqué dans
les cas suivants:
L’expiration de la période de validité (Révocation automatique)
La divulgation de la clé privée de l’utilisateur (Sur demande).
L’utilisateur n’est plus considéré digne de confiance (Par rapport à
son comportement) 27
S. BENSAID 2019/2020 – UMMTO
RÉFÉRENCE
Solange Ghernaouti, « Cours et exercices Sécurité informatique et réseaux,
Cours avec plus de 100 exercices corrigés ». [Référence biblio : Res 260]
OMAR Mawloud, Notes de cours du module sécurité
informatique, 3eme année licence informatique, Université de
Bejaia.
28
S. BENSAID 2019/2020 – UMMTO