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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres
  5. Mises en situation
  6. 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 10
    • 6 4
    • 4 10
    • 8 10
    Voir la réponse

    6 10

    Le masque est 10⁶ mod 23 = 6, son inverse est 4 (6 × 4 = 24 ≡ 1), et le message est 14 × 4 = 56 ≡ 10. 6 4 oublie la multiplication par c2, 4 10 affiche 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.