ElGamal
Le chiffrement ElGamal : clé publique et secret, chiffrement avec un aléa à usage unique, couple (c1, c2), déchiffrement par l'inverse du masque, et le danger de réutiliser l'aléa.
- 22 cartes
- 6 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
- Comprendre
Quelques cartes du deck
Valeur publique h : de quoi s'agit-il ?
Voir la réponse
Puissance g^x mod p calculée avec le secret x du destinataire, publiée avec p et g pour que chacun puisse lui écrire.
Avec p = 23, g = 5 et x = 6, h = 5⁶ mod 23 = 8. Retrouver x à partir de h demande un logarithme discret.
Qu'affiche ce programme de déchiffrement ?
```python
p, x = 23, 6
c1, c2 = 10, 14
masque = pow(c1, x, p)
m = c2 * pow(masque, -1, p) % p
print(masque, m)`6 106 44 108 10
Voir la réponse
6 10Le masque est 10⁶ mod 23 = 6, son inverse est 4 (6 × 4 = 24 ≡ 1), et le message est 14 × 4 = 56 ≡ 10.
6 4oublie la multiplication par c2,4 10affiche l'inverse au lieu du masque.Avec le secret x, la valeur publique est h = … mod p ; pour chiffrer, on tire un aléa k et on calcule c1 = … mod p.
Voir la réponse
Avec le secret x, la valeur publique est h = g^x mod p ; pour chiffrer, on tire un aléa k et on calcule c1 = g^k mod p.
x reste chez le destinataire ; k reste chez l'expéditeur. Seuls h et c1 circulent, et aucun ne permet de remonter simplement à son exposant.
Aléa éphémère k : de quoi s'agit-il ?
Voir la réponse
Nombre tiré au hasard par l'expéditeur pour un seul message, qui ne doit jamais servir deux fois.
Il fabrique le masque h^k. S'il se répète, deux messages sont masqués par la même valeur et se trahissent l'un l'autre.