Vous êtes sur la page 1sur 29

Chapitre III

Les Mécanismes cryptographiques


(Partie – 2)
Cryptographie asymétrique
Utilise deux clé pour chaque lien de communication simplex
 Une clé publique de chiffrement distribuée à tous le monde
 Une clé privée de déchiffrement gardée secrète

Le cryptage asymétrique est utilisé dans les domaines de :


 La confidentialité
 l’échange de clés
 l’authentification (signature numérique)
 l’intégrité

les algorithmes de chiffrement asymétrique tirent leur robustesse de la complexité


de certaines opérations mathématiques comme:
 La factorisation des nombres entiers.
 Le logarithme discret.
 Le résidu quadratique.
 …etc.
Cryptographie asymétrique
Principe
 P : texte en clair
 C : texte chiffré
 KU: clé publique et KR: clé privée pour chaque utilisateur

 E : Algorithme de chiffrement
Utilise P et KU (ou P et KR)

 D : Algorithme de déchiffrement
Utilise C et KR (ou C et KU)

D(E(P, KU),KR) = P = D(E(P,KR), KU)

Cryptage Authentification
Cryptographie asymétrique
Principe de Chiffrement

« A veut envoyer un message crypté à B »

•KUB
•KUA A B •KRB
•KRA

C
P P
A E Canal de communication D B

KUB KRB
Cryptographie asymétrique
Principe d’authentification / signature numérique

« A veut s’authentifier auprès de B »

•KUB
•KUA A B •KRB
•KRA

C
P P
A E Canal de communication D B

KRA KUA
Cryptographie asymétrique
Echange de clé

« A veut communiquer avec B avec un crypto système symétrique en


utilisant la clé K. Alors A envoie à B la clé secrète»

•KUB
•KUA A B •KRB
•KRA

C
K K
A E Canal de communication D B

KUB KRB
Cryptographie asymétrique
Exemples d’algorithmes

 RSA
Rone Rivest, Adi Shamir et Leonard Adelman
Repose sur la complexité de factorisation de grands nombres
Adapté à la fois pour la cryptographie et la signature numérique
 ElGamal
Tahar El Gamal
Repose sur la difficulté de calcul du loarithme discret
utilisé pour l’échange de clés secrètes

 Rabin

Michael Rabin
Repose sur la factorisation comme le RSA

 …..etc
RSA (Rivest– Shamir – Adelman)
 Génération des clés

1. Choisir deux nombre premiers de grande taille p et q


2. Calculer n = p . q
3. Calculer (n) = (p-1)(q-1)
4. Choisir un entier aléatoire e < (n) tel que e et (n) soient premiers entre eux
 PGCD(e, (n)) = 1; 1 < e < (n)
5. Trouver un entier d tel que e . d Ξ 1 mod (n)
 d= e-1 mod (n)
6. La clé publique est KU = {e, n}
7. La clé privée est KR = {d, n}
8. Les nombres p et q ne sont plus utiles et peuvent être écartés (mais jamais révélés)
RSA (Rivest– Shamir – Adelman)
 Chiffrement

Le texte clair est découpé en blocs de k bits tel que 2k<=n
Chaque bloc est traité comme un nombre entier m (< n)

P = 10100…………………………………………………………………………………………

m1 m2 m3 mL

Avec mi < n pour tout i = 1..L

C =c1, c2, ….cL tel que ci = mie mod n


RSA (Rivest– Shamir – Adelman)
 Déchiffrement

C = c1, c2, … cL Avec ci < n pour tout i = 1..L

P = m1, m2, … mL tel que : mi = cid mod n

 Résumé

Clé publique = e, n
Clé privée = d, n
Chiffrement c = me mod n
Déchiffrement m = cd mod n
RSA (Rivest– Shamir – Adelman)
 Exemple

• Génération de clés

Sélectionner deux nombres premiers p = 7, q = 17


Calculer n = p.q = 7 x 17 = 119
Calculer (n) = (p-1)(q-1) = 6 x 16 = 96
Choisir un nombre e < 96 et premier avec 96 e = 5
Déterminer d tel que d.e = 1 mod 96 et d < 96
d = 77 car d.e = 77 x 5 = 385 = 4 x 96 + 1

Clé publique KU = {5, 119}

Clé privée KR = {77, 119}


RSA (Rivest– Shamir – Adelman)
 Exemple (suite)

• Cryptage
P = 19
C = 195 mod 119
= 2476099 (mod 119) = 66

• décryptage

C = 6677 (mod 119) = 19


Sécurité du RSA
RSA est sûr dans les conditions suivantes:

Les valeurs de e et d sont très grandes


Les valeurs de p et q restent inconnues

Des valeurs sur 1024 bits à 2048 bits semblent être suffisantes pour rendre
l’algorithme incassable

Des recherches ont montré qu’il est possible de casser un code RSA avec une
clé de 1024 bits en huit mois en faisant coopérer 1600 ordinateurs
conventionnels
Comparaison DES-RSA
Vitesse

Le DES est 100 fois plus rapide que le RSA


La vitesse de cryptage/ décryptage du RSA se mesure en kb/s
La vitesse de cryptage/décryptage du DES se mesure en mb/s

Longueur des clés

Le DES utilise une taille fixe (56 bits)


RSA peut utiliser des clés de longueur variable mais elles doivent être assez longues
Sécurité
RSA est plus sûr que le DES

Utilisation pratique
Le DES (ou AES actuellement) est adapté pour échanger des données volumineuses
a condition que la clé soit fréquemment changée. Par contre RSA est utilisé pour
échanger des données non volumineuses.
Une utilisation pratique consiste à utiliser DES ou AES pour l’échange de données et
RSA pour l’échange des clés.
Deffie-Hellmann (Algorithme d’échange de clés)

 C’est le premier algorithme à clé publique, inventé en 1976

Permet à un groupe d’utilisateurs d’échanger une clé secrète en utilisant un support


non sécurisé

Il est utilisé pour la distribution des clés

Il n’est pas utilisé pour le chiffrement des messages

Repose sur la difficulté de calcul des logarithmes discrets


Deffie-Hellmann (Algorithme d’échange de clés)
Principe

A et B veulent partager une clé secrète K (non encore connue)


1. A et B choisissent deux grands nombres n et g tels que g < n et g premier avec n
les deux entités peuvent communiquer ces valeurs par un canal public non sécurisé

2. A choisit un nombre aléatoire x et calcule X = gx mod n


et l’envoie à B
3. B choisit un nombre aléatoire y et calcule Y = gy mod n
et l’envoie à A
4. A calcule K1 = Yx mod n

5. B calcule K2 = Xy mod n

La clé est K = K1 = K2 = gxy mod n


Deffie-Hellmann (Algorithme d’échange de clés)
Principe

n, g n, g n, g
A B X = gx mod n
X = gx mod n
Y = gy mod n Y = gy mod n
K1 = Yx mod n K2 = Xy mod n
= (gy mod n)x mod n K1 = K2 = K = (gx mod n)y mod n
= gxy mod n = gyx mod n

Intrus Pour trouver x et y, il faut


résoudre les deux équations:
?
n, g ln( X ) ln(Y )
x y
X = gx mod n ln( g ) ln( g )
Y = gy mod n  Très difficile dans le cas de
K = gxy mod n ? grands nombres
Deffie-Hellmann (Algorithme d’échange de clés)
Caractéristiques

 Algorithme souple ne nécessitant aucun échange sur un support sécurisé ou


une communication préalable à l’échange

 n doit être très grand et choisit tel que n(n-1)/2 soit premier avec n pour éviter
certaines failles trouvées dans l’algorithme

Sensible aux attaques de type man-in-the-middle. Un intrus peut se faire passer


pour un autre et établir un échange secret avec un correspondant
Signature numérique
 La signature numérique permet d'authentifier l’origine d’un message

 Plusieurs approches permettent de réaliser l’authentification des messages

 Le message en entier est crypté avec la clé privée de l’émetteur ou avec la clé
secrète partagée

 Utilisation d’un code d’authentification du message


Calcul d’un résumé du message avec une fonction particulière
Ce résumé est crypté avec la clé privée de l’émetteur ou la clé secrète et
ajouté au message à envoyer
Le résumé est dit code d’authentification du message ou MAC (Message
Authentication Code)
La fonction qui calcule le résumé est dite fonction de hachage ou HASH
MAC = F(M,K)
SignaturePrincipe
numérique
Recepteur
Emetteur K
Message

Message

Message
Transmission Algorithme
MAC

MAC calculé
MAC

MAC
Non
=? Emetteur
imposteur
Oui
Algorithme
MAC
Emetteur
authentique

K
Signature numérique
Fonction de hachage à sens unique

 H est une fonction de hachage à sens unique si:


 H opère sur un message m de taille quelconque et produit un résultat de
taille fixe.
H(m) = h

La taille du résultat h est généralement inferieure à la taille du message m

Etant donné m, il est facile de calculer H(m)

Etant donné h, il est difficile de calculer m

Etant donné m, il est difficile de trouver m’ tel que :


H(m) = H(m’)

Il est difficile de trouver deux messages aléatoires m et m’ tel que:


H(m) = H(m’)
Signature numérique
Fonction de Hachage à sens unique-Exemples d’algorithmes

Algorithmes de la famille MD

MD2, MD4 et MD5 (hash de 128 bits)

Algorithmes de la famille SHA

SHA-1 (160 bits), SHA-256 (256 bits), SHA-684 (384 bits) et SHA-512 (512 bits)

Algorithmes de la famille RIPEMD

RIPEMD-128, RIPEMD-160
Fonction de Hachage MD5
L’entrée de l’algorithme MD5 est un texte décomposé en blocs de 512 bits.

La longueur du message (représentée sur 64 bits) est ajoutée à la fin du message

Pour que la longueur totale du message soit un multiple de 512 bits, des bits de
bourrage sont insérés entre le message et les 64 derniers bits rajoutés à la fin de ce
dernier

Le bourrage se fait en rajoutant un seul 1 et autant de 0 que nécessaire

La sortie de l’algorithme est un ensemble de 4 blocs de 32 bits chacun qui seront
joints pour former une empreinte de 128 bits.
Fonction de Hachage MD5
Fonctionnement de l’algorithme

 Initialisation

 Chaque bloc M de 512 bits est décomposé en 16 sous blocs de 32 bits chacun
M[0], M[1], …. M[15]

 Quatre variables de 32 bits chacune sont crées (variables de chainage)


A = 0x01234567
B = 0x89ABCDEF
C = 0xFEDCBA98
D = 0x76543210
 Ces variables sont ensuite copiées dans d’autres variables AA, BB, CC et DD
A copiée dans AA
B copiée dans BB
C copiée dans CC
D copiée dans DD
Fonction de Hachage MD5
Fonctionnement de l’algorithme
 Boucle principale D C B A Bloc de 512 bits

M[0], M[1], …. M[15]


DD CC BB AA Round 1

M[0], M[1], …. M[15]


Round 2

M[0], M[1], …. M[15]


Round 3

M[0], M[1], …. M[15]


Round 4

Somme
+ arithmétique
+
+
+

DD CC BB AA
Fonction de Hachage MD5
Fonctionnement de l’algorithme
 Les rounds
Chaque round correspond à l’exécution de 16 opérations. Chacune portant
sur un sous-bloc M[i] (les 16 sous blocs de 32 bits chacun)

Chaque opération consiste à effectuer les tâches suivantes:


1. Calculer une fonction non linéaire de trois variables parmi A, B, C et D
2. Ajouter au résultat la quatrième variable
3. Ajouter au résultat la valeur du sous bloc traité (considéré comme un
nombre sur 32 bits)
4. Ajouter au résultat une constante bien déterminée
5. Effectuer un décalage circulaire vers la gauche du résultat d’un nombre de
bits bien déterminé
6. Ajouter au résultat l’une des variables A, B, C ou D
7. Remplacer l’une des variables A, B, C ou D par le résultat trouvé
Il y a 4 fonctions non linéaire, chacune correspondant à une round
F ( X , Y , Z )  ( X  Y )  ( X  Z )
G ( X , Y , Z )  ( X  Z )  (Y  Z )
H ( X ,Y , Z )  X  Y  Z
I ( X , Y , Z )  Y  ( X  Z )
Fonction de Hachage MD5
Fonctionnement de l’algorithme
 Les rounds (suite)

A M[j] ti

B
Fonction non
C linéaire (F,G,H ou I) + + + <<<S +

D
Fonction de Hachage MD5
Fonctionnement de l’algorithme
 Les rounds (suite) Round2
Round1

Round3 Round4
Questions
10 parties communiquent en utilisant le DES, combien de clés faudra-t-il pour établir les
communications
Quelle est la différence entre un codage à substitution et un codage à transposition
Pour casser un codage à substitution quelles sont les opérations à effectuer
Quel est le nombre de tours de l’algorithme DES
Quelle est la taille de la clé dans DES, comment le Triple-DES peut-il aider à améliorer la
sécurité du DES.
10 parties communiquent en utilisant le RSA, combien de clés sont nécessaires
Dans la cryptographie à clé publique, comment les clés sont elles utilisées pour le
cryptage et le décryptage
Dans la cryptographie à clé publique , comment les clés son elle utilisées pour
l’authentification
Quel est l’algorithme le plus rapide, RSA ou DES
Sur quel facteurs repose la sécurité de l’algorithme RSA
Donnez un algorithme efficace qui calcule XY avec X et Y entiers

Vous aimerez peut-être aussi