2. Sommaire :
Biographie
Introduction
Échange de clés Diffie-Hellman
Principe de fonctionnement d’El-Gamal
Cryptanalyse
Attaque de l'homme du milieu
Solution
conclusion
2
3. Biographie
Né le 18 août 1955 au Caire
Crypthographe égyptien
l'auteur d'un algorithme de cryptographie à clef publique
Invention de l’algorithme El-Gamal en 1984
directeur de l'ingénierie chez RSA Security Inc.
3
4. introduction
Algorithme a masque jetable
cryptographie asymétrique
Basée sur l’échange de clés Diffie-Hellman
construit à partir du problème du logarithme discret
4
7. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Exemple
7
8. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob choisi r=8 et alice s=13
8
9. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob choisi r=8 et alice s=13
Bob calcule 58
mod 89=4 et l’envoi
à alice
9
10. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 » Bob choisi r=8 et alice s=13
Bob calcule 58
mod 89=4
10
11. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 » Bob choisi r=8 et alice s=13
alice calcule 513
mod 89 = 40 et
l’envoi à bob
11
12. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob choisi r=8 et alice s=13
alice calcule 513
mod 89 = 40
12
13. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob choisi r=8 et alice s=13
Maintenant bob calcule la clé de
chiffrement grâce au nombre
d’alice 40
13
14. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob choisi r=8 et alice s=13
Maintenant bob calcule la clé de
chiffrement grâce au nombre
d’alice 40: 408 mod 89 = 16
14
15. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob choisi r=8 et alice s=13
Maintenant bob calcule la clé de
chiffrement grâce au nombre
d’alice 40: 408 mod 89 = 16
Donc la clé de chiffrement est 16
puis il crypte p: 16x35 mod 89=26
15
16. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob choisi r=8 et alice s=13
bob calcule la clé de chiffrement
grâce au nombre d’alice 40:
408 mod 89 = 16
Donc la clé de chiffrement est 16
puis il crypte p: 16x35 mod 89 = 26
Puis l’envoi à alice
16
17. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob: « le message crypté est 26 »
Bob choisi r=8 et alice s=13
Pour décrypter alice prend le
nombre de bob qui est 4
17
18. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob: « le message crypté est 26 »
Bob choisi r=8 et alice s=13
Pour décrypter alice prend le
nombre de bob qui est 4
Alice calcule la clé de chiffrement
grâce au nombre de bob 4:
413
mod 89 = 16
18
19. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob: « le message crypté est 26 »
Bob choisi r=8 et alice s=13
Pour décrypter alice prend le
nombre de bob qui est 4
Alice calcule la clé de chiffrement
grâce au nombre de bob 4:
413
mod 89 = 16
Puis calcule la clé de
déchiffrement : 16−1
= 39
19
20. Crypter et décrypter p=35 utilisent une base
publique a=5 et le modulo N=89
Bob: « mon nombre est 4 »
Alice: «mon nombre est 40 »
Bob: « le message crypté est 26 »
Bob choisi r=8 et alice s=13
Pour décrypter alice prend le
nombre de bob qui est 4
Alice calcule la clé de chiffrement
grâce au nombre de bob 4:
413
mod 89 = 16
Puis calcule la clé de
déchiffrement : 16−1
= 39
Puis décrypte 26:
39x26 mod 89 = 35
20
21. Cryptanalyse
Si je chiffre 2 message (m et m`) avec les même valeur a,p,r,x
c1= km(mod p) et c2 = km`(mod p) qui donne c1/c2=m/m`
D’où la nécessité de changer a chaque fois les valeurs a,p,r,x (masque
jetable)
recherche exhaustive pour trouver (r,x) (brute force) car (𝑎 𝑟 mod p)
et (𝑎 𝑥 mod p) sont échanger publiquement
21
22. attaque de l'homme du milieu
L’attaquant se placer entre Alice et Bob
intercepte la clé ga envoyée par Alice et envoi à Bob une autre clé ga‘
intercepte la clé gb envoyée par Bob à Alice et envoi à Alice une autre
clé gb‘
L'attaquant communique ainsi avec Alice en utilisant la clé
partagée gab'
communique avec Bob en utilisant la clé partagée ga'b
22
23. Solution
La parade classique à cette attaque(attaque de l’homme du milieu)
consiste à signer(à l’aide d’un algorithme de hachage) les échanges de
valeurs (𝑎 𝑥 mod p) et (𝑎 𝑘 mod p)
un nombre premier p de l'ordre de 300 chiffres ainsi que r et x de
l'ordre de 100 chiffres sont tout simplement impossibles à casser
Il n’existe pas d’algorithme efficace pour résoudre le problème
de logarithme discret qui consiste a trouver les deux valeurs x et r
(xr=log 𝑎 𝐾 ) en ayant en possession (𝑎 𝑥 mod p) et (𝑎 𝑟 mod p)
23
24. Conclusion
El Gamal est 2 fois plus lent que RSA.
La taille des données chiffrées représente 2 fois celle des
données en clair
La complexité de l’algorithme ElGamal est de 2 𝑝𝑜𝑙𝑦(log 𝑛 ) (complexité
sous exponentielle) > a la complexité de RSA qui est de
𝑛 𝑘(complexité polynomiale) tel que k∈ (IN)
24