«Protocoles de cryptosystÚmes»: Diffie - Hellman, El-Gamal, MTI / A (0), STS

Préface
Ce texte sera l'un des chapitres réécrits du manuel sur la protection de l'information du Département de l'ingénierie radio et des systÚmes de contrÎle, ainsi que, à partir de ce code de formation, le Département de la protection de l'information du MIPT (GU). Le tutoriel complet est disponible sur github (voir aussi les versions préliminaires ). Sur Habrir, je prévois de télécharger de nouvelles "grandes" piÚces, d'une part, pour collecter des commentaires et observations utiles, et d'autre part, pour donner à la communauté plus de matériel sur des sujets utiles et intéressants. Sections précédentes du chapitre Protocoles cryptographiques: 1 , 2 , 3

Comme les créateurs des protocoles à trois passes de la section précédente , les auteurs des algorithmes suivants ne les ont pas considérés uniquement comme des constructions mathématiques fournissant une opération élémentaire (par exemple, le chiffrement à clé publique), mais ont essayé de construire un systÚme de distribution de clés complet autour d'une ou deux formules. Certaines de ces constructions, qui ont été transformées, sont utilisées à ce jour (par exemple, le protocole Diffie-Hellman), certaines ne restent que dans l'histoire de la cryptographie et de la protection des informations.

Plus tard dans les années 1990, les primitives mathématiques asymétriques (chiffrement et signature électronique) et les protocoles seront séparés, ces primitives seront utilisées, ce qui sera démontré dans la section sur les protocoles asymétriques.

Diffie - Hellman Protocol


Le premier algorithme Ă  clĂ© publique a Ă©tĂ© proposĂ© par Diffie et Hellman en 1976, «New Directions in Cryptography» ( Bailey Whitfield Diffie, Martin Edward Hellman, «New directions in cryptography» , [Diffie, Hellman 1976] ). Ce protocole, qui peut Ă©galement ĂȘtre appelĂ© schĂ©ma Diffie-Hellman , a Ă©tĂ© le premier Ă  rĂ©duire les exigences pour que le canal de communication Ă©tablisse une connexion sĂ©curisĂ©e sans avoir Ă  Ă©changer au prĂ©alable les clĂ©s.

Le protocole permet à deux parties de créer une clé de session commune à l'aide d'un canal de communication qu'un attaquant peut écouter, mais en supposant que ce dernier ne peut pas modifier le contenu du message.

Soit p - un grand nombre premier g - un Ă©lĂ©ment primitif du groupe  mathbbZ∗p , y=gx bmodp et p , y et g connu Ă  l'avance. Fonction y=gx bmodp nous considĂ©rons unidirectionnel, c'est-Ă -dire que le calcul d'une fonction avec une valeur connue d'un argument est une tĂąche facile, et son inversion (trouver un argument) avec une valeur connue d'une fonction est difficile. (Fonction inverse x= loggy bmodp appelĂ© la fonction logarithme discret. Il n’existe actuellement aucun moyen rapide de calculer une telle fonction p .)

Le protocole d'Ă©change comprend les actions suivantes.

Interaction des participants dans le protocole Diffie-Hellman


  1. Alice choisit un hasard 2 leqa leqp−1
    Alice \ Ă  \ gauche \ {A = g ^ a \ bmod p \ droite \} \ Ă  BobAlice \ Ă  \ gauche \ {A = g ^ a \ bmod p \ droite \} \ Ă  Bob
  2. Bob choisit au hasard 2 leqb leqp−1
    Bob calcule la clĂ© de session K=Ab bmodp
    Bob \ Ă  \ gauche \ {B = g ^ b \ bmod p \ droite \} \ Ă  AliceBob \ Ă  \ gauche \ {B = g ^ b \ bmod p \ droite \} \ Ă  Alice
  3. Alice calcule K=Ba bmodp

De cette façon, une clé de session secrÚte partagée est créée K . En raison de la sélection aléatoire des valeurs a et b dans une nouvelle session, une nouvelle clé de session sera reçue.

Le protocole fournit uniquement la génération de nouvelles clés de session (cible G10). En l'absence d'un tiers de confiance, il ne fournit pas d'authentification des parties (objectif G1), faute de passages avec confirmation de la possession de la clé, il n'y a pas d'authentification de clé (objectif G8). Mais, puisque le protocole n'utilise pas de longues clés «maßtres», on peut dire qu'il a la propriété du secret direct parfait (objectif G9).

Le protocole ne peut ĂȘtre utilisĂ© qu'avec des canaux de communication dans lesquels un cryptanalyste actif ne peut pas intervenir. Sinon, le protocole devient vulnĂ©rable Ă  une simple «attaque mĂ©diane».

Interaction des participants au protocole Diffie-Hellman dans un modĂšle avec un cryptanalyste actif


  1. Alice choisit un hasard 2 leqa leqp−1
    Alice \ Ă  \ gauche \ {A = g ^ a \ bmod p \ droite \} \ Ă  Mellory ~ (Bob)Alice \ Ă  \ gauche \ {A = g ^ a \ bmod p \ droite \} \ Ă  Mellory ~ (Bob)
  2. Mallory choisit un hasard 2 leqm leqp−1
    Mallory calcule une clé de session pour un canal avec Alice

    KAM=Am bmodp=gam bmodp


    Mellory ~ (Alice) \ to \ left \ {M = g ^ m \ bmod p \ right \} \ to BobMellory ~ (Alice) \ to \ left \ {M = g ^ m \ bmod p \ right \} \ to Bob
    Mellory ~ (Bob) \ vers \ gauche \ {M = g ^ m \ bmod p \ droite \} \ vers AliceMellory ~ (Bob) \ vers \ gauche \ {M = g ^ m \ bmod p \ droite \} \ vers Alice
  3. Alice calcule la clé de session pour le canal avec Mallory (pensant que Mallory est Bob)

    KAM=Ma bmodp=gam bmodp

  4. Bob choisit au hasard 2 leqb leqp−1
    Bob calcule la clé de session pour le canal avec Mallory (pensant que Mallory est Alice)

    KBM=Mb bmodp=gbm bmodp


    Bob \ Ă  \ gauche \ {B = g ^ b \ bmod p \ droite \} \ Ă  Mellory ~ (Alice)Bob \ Ă  \ gauche \ {B = g ^ b \ bmod p \ droite \} \ Ă  Mellory ~ (Alice)
  5. Mallory calcule une clé de session pour un canal avec Bob

    KBM=Bm bmodp=gbm bmodp



En conséquence, Alice et Bob ont reçu de nouvelles clés de session, mais ils n'ont pas établi de canal de communication «sécurisé» entre eux, mais avec un attaquant qui a désormais la possibilité de relayer ou de modifier tous les messages transmis entre Alice et Bob.

Le protocole Diffie-Hellman diffÚre de la plupart des protocoles de distribution de clés en raison du fait qu'il n'utilise pas d'autres primitives cryptographiques (cryptage, signature numérique ou fonctions de hachage), mais en soi est en un sens une primitive cryptographique pour construire des protocoles plus complexes. Il permet la génération de nombres aléatoires dans un systÚme distribué sans centre de confiance. De plus, aucun cÎté ne peut forcer l'autre cÎté à utiliser l'ancienne clé de session, contrairement, par exemple, au protocole Yahalom.

Le protocole peut ĂȘtre modifiĂ© de sorte qu'au lieu du groupe multiplicatif de multiplication simple, utilisez le groupe additif d'addition de points de la courbe elliptique. Dans ce cas, les parties choisiront toujours des nombres entiers alĂ©atoires, mais n'augmenteront pas le nombre de gĂ©nĂ©rateurs Ă  une puissance, mais multiplieront le point de gĂ©nĂ©rateur par le nombre souhaitĂ©.

  1. Les parties se sont mises d'accord sur un groupe de points de la courbe elliptique  mathbbE son sous-groupe cyclique  mathbbG puissance n= | mathbbG | et gĂ©nĂ©rateur G groupes  mathbbG (ou au moins un sous-groupe suffisamment grand du groupe  mathbbG )
  2. Alice choisit un hasard 2 leqa leqn−1
    Alice \ Ă  \ gauche \ {A = a \ fois G \ droite \} \ Ă  BobAlice \ Ă  \ gauche \ {A = a \ fois G \ droite \} \ Ă  Bob
  3. Bob choisit au hasard 2 leqb leqn−1
    Bob calcule le point K=b foisA
    Bob \ Ă  \ gauche \ {B = g \ fois G \ droite \} \ Ă  AliceBob \ Ă  \ gauche \ {B = g \ fois G \ droite \} \ Ă  Alice
  4. Alice calcule le point K=a foisB

En tant que nouvelle clé de session, les parties peuvent choisir, par exemple, la premiÚre coordonnée du point trouvé K .

Protocole El Gamal


Le protocole El-Gamal ( [ElGamal, 1984] , [ElGamal, 1985] ), en raison de la distribution prĂ©liminaire de la clĂ© publique de l'une des parties, fournit l'authentification de la clĂ© pour ce cĂŽtĂ©. Il peut ĂȘtre garanti que seul le propriĂ©taire de la clĂ© privĂ©e correspondante peut calculer la clĂ© de session. Cependant, la confirmation de la rĂ©ception de la clĂ© (rĂ©alisation des objectifs G1 et G8) ne fait pas partie du protocole.

-


  1. Alice et Bob choisissent des options communes p et g oĂč p Est un grand nombre premier, et g - Ă©lĂ©ment de champ primitif  mathbbZ∗p .
    Bob crée une paire de clés privées et publiques b et KB :

     beginarraylb:2 leqb leqp−1,KB=gb bmodp. endarray


    Clé publique KB Il est en libre accÚs public pour toutes les parties. Un cryptanalyste ne peut pas le remplacer - la substitution sera perceptible.
  2. Alice cueille un secret x et calcule la clé de session K

    K=KxB=gbx bmodp.


    Alice \ Ă  \ gauche \ {g ^ x \ bmod p \ droite \} \ Ă  Bob

  3. Bob calcule la clé de session

    K=(gx)b=gbx bmodp.


Le protocole ne garantit pas la sélection d'une nouvelle clé de session dans chaque session de protocole (G10), et l'utilisation d'une clé «maßtre» KB transférer une clé de session permet à un attaquant de calculer toutes les clés de session des sessions précédentes lorsqu'une clé privée est compromise b (objectif G9).

Protocole MTI / A (0)


En 1986, C. Matsumoto ( Tsutomu Matsumoto ), I. Takashima ( Youichi Takashima ) et H. Imai ( Hideki Imai ) ont proposĂ© plusieurs algorithmes, appelĂ©s plus tard la famille de protocoles MTI ( [Matsumoto, Tsutomu, Imai 1986] ). En raison de la distribution prĂ©liminaire des clĂ©s publiques des deux parties, ils ont fourni une authentification de clĂ© implicite (cible G7). Autrement dit, une clĂ© de session ne pouvait ĂȘtre garantie que par les propriĂ©taires des clĂ©s publiques correspondantes. Nous considĂ©rerons l'un des reprĂ©sentants de cette famille - le protocole MTI / A (0).

Auparavant, les parties Ă©taient convenues des paramĂštres gĂ©nĂ©raux du systĂšme. p et g oĂč p Est un grand nombre premier, et g - Ă©lĂ©ment de champ primitif  mathbbZ∗p .

MTI/A(0)

Chacune des parties (Alice et Bob) a généré une paire de clés privées et publiques:

\ begin {array} {ll} Alice: & ~ a, ~~ K_A = g ^ a \ bmod p, \\ Bob: & ~ b, ~~ K_B = g ^ b \ bmod p. \\ \ end {array}


  1. Alice a gĂ©nĂ©rĂ© un nombre alĂ©atoire RA: 2 leqRA leqp−1
    Alice \ Ă  \ gauche \ {g ^ {R_A} \ bmod p \ droite \} \ Ă  Bob
  2. Bob a gĂ©nĂ©rĂ© un nombre alĂ©atoire RB: 2 leqRB leqp−1
    Bob a trouvĂ© une clĂ© de session K=(gRA)b cdotKRBA bmodp
    Bob \ Ă  \ gauche \ {g ^ {R_B} \ bmod p \ droite \} \ Ă  Alice
  3. Alice a calculĂ© la clĂ© de session K=(gRB)a cdotKRAB bmodp

Si les clés publiques KA et KB correspondre à vos clés privées a et b , puis les clés de session calculées par les participants correspondent:

\ begin {array} {lll} (g ^ {R_A}) ^ b \ cdot K_A ^ {R_B} \ bmod p & = & g ^ {b R_A + a R_B} \ bmod p, \\ (g ^ { R_B}) ^ a \ cdot K_B ^ {R_A} \ bmod p & = & g ^ {a R_B + b R_A} \ bmod p. \ end {array}


En raison de la complexitĂ© de la tĂąche de logarithme discret, un attaquant ne pourra pas obtenir a,RA ou b,RB Ă  partir des messages transmis, et la publication prĂ©alable des clĂ©s publiques garantit que seuls les utilisateurs lĂ©gitimes reçoivent la clĂ© de session. SĂ©lection alĂ©atoire RA et RB garantit que les deux parties peuvent ĂȘtre sĂ»res de crĂ©er une nouvelle clĂ© de session dans chaque session de protocole.

Comme d'autres représentants des protocoles de cryptosystÚme, MTI n'a pas été développé en tenant compte de la possibilité de compromettre les clés "maßtres" fermées a et b (objectif G9).

Protocole de station Ă  station


Le protocole STS ( Station-to-Station , [Diffie, Oorschot, Wiener 1992] ) est destiné aux systÚmes de communication mobiles. Il utilise les idées du protocole Diffie-Hellman et du cryptosystÚme RSA. Une caractéristique du protocole est l'utilisation d'un mécanisme de signature électronique pour l'authentification mutuelle des parties.

Auparavant, les parties Ă©taient convenues des paramĂštres gĂ©nĂ©raux du systĂšme. p et g oĂč p Est un grand nombre premier, et g - Ă©lĂ©ment de champ primitif  mathbbZ∗p .

De chaque cĂŽtĂ© A et B possĂšde une paire de clĂ©s Ă  long terme: une clĂ© privĂ©e pour dĂ©chiffrer et crĂ©er une signature Ă©lectronique K textpublic et clĂ© publique pour le chiffrement et la vĂ©rification de signature K textpublic .

\ begin {array} {ll} A: K_ {A, \ text {private}}, K_ {A, \ text {public}}: \ forall M: & \ text {Verify} _A (M, S_A (M )) = true, \\ & D_A (E_A (M)) = M, \\ B: K_ {B, \ text {private}}, K_ {B, \ text {public}}: \ forall M: & \ text {Verify} _B (M, S_B (M)) = true, \\ & D_B (E_B (M)) = M. \\ \ end {array}



O Where  textVerifyA( dots) c'est une fonction de vĂ©rification de la signature Ă©lectronique sur une clĂ© publique KA, textpublic et DA - fonction de dĂ©chiffrement utilisant la clĂ© privĂ©e KA, textprivate .

Le protocole se compose de quatre passes, dont trois incluent la transmission de messages ( [Cheryomushkin 2009] ).

STS


  1. Alice choisit un nombre alĂ©atoire RA:2 leqRA leqp−1 .
    Alice \ Ă  \ gauche \ {A, m_A = g ^ {R_A} \ bmod p \ droite \} \ Ă  Bob
  2. Bob choisit un nombre alĂ©atoire RB:2 leqRB leqp−1 .
    Bob calcule la clĂ© de session K=mRBA bmodp .
    Bob \ Ă  \ gauche \ {B, A, m_B = g ^ {R_B} \ bmod p, E_K (S_B (m_A, m_B)) \ right \} \ Ă  Alice
  3. Alice calcule une clĂ© de session K=mRAB bmodp .
    Alice vérifie la signature dans le message EK(SB(mA,mB)) .
    Alice \ Ă  \ gauche \ {A, B, E_K (S_A (m_A, m_B)) \ droite \} \ Ă  Bob
  4. Bob vérifie la signature dans le message EK(SA(mA,mB)) .

Le protocole assure la garantie de la formation de nouvelles clés (G10), mais pas le secret direct parfait (G9).

Comme l'a montré l'attaque de Lowe 1996 ( [Lowe 1996] ), le protocole ne peut garantir l'authentification des sujets (cible G1), des clés (G7) et la preuve de propriété de la clé de session (G8). Bien que l'attaquant ne puisse pas accéder à la nouvelle clé de session si le protocole est utilisé uniquement pour authentifier les sujets, Alice peut confondre l'attaquant avec Bob.

STS


  1. Alice choisit un nombre alĂ©atoire RA:2 leqRA leqp−1 .
    Alice \ Ă  \ gauche \ {A, m_A = g ^ {R_A} \ bmod p \ droite \} \ Ă  Mellory ~ (Bob)
  2. Mellory \ to \ left \ {M, m_A \ right \} \ to Bob
  3. Bob choisit un nombre alĂ©atoire RB:2 leqRB leqp−1 .
    Bob calcule la clĂ© de session K=mRBA bmodp .
    Bob \ Ă  \ gauche \ {B, M, m_B, E_K (S_B (m_A, m_B)) \ droite \} \ Ă  Mellory
  4. Mellory ~ (Bob) \ vers \ gauche \ {B, A, E_K (S_B (m_A, m_B)) \ droite \} \ vers Alice
  5. Alice calcule une clĂ© de session K=mRAB bmodp .
    Alice vérifie la signature dans le message EK(SB(mA,mB)) .
    Alice \ Ă  \ gauche \ {A, B, E_K (S_A (m_A, m_B)) \ droite \} \ Ă  Mellory ~ (Bob)

AprÚs avoir réussi le protocole, Alice est convaincue qu'elle communique avec Bob.

Comme tous les autres «protocoles de cryptosystĂšme», le protocole de station Ă  station est basĂ© sur une source externe d'informations sur les clĂ©s publiques des participants, sans remettre en cause l'exactitude et la fiabilitĂ© de cette source. Ce qui, dans le cas gĂ©nĂ©ral, est incorrect. Si des informations sur les clĂ©s des participants doivent ĂȘtre reçues en externe Ă  chaque session du protocole (par exemple, s'il y a beaucoup de participants et qu'il n'est pas possible de se souvenir de toutes les clĂ©s), alors le canal d'obtention des clĂ©s publiques sera l'objectif principal d'un cryptanalyste actif pour les protocoles considĂ©rĂ©s. La façon de vous protĂ©ger de cela en utilisant des primitives de cryptographie asymĂ©triques est dans la section suivante.

Littérature


  • [Diffie, Hellman 1976] Diffie W., Hellman ME Nouvelles directions en cryptographie // Information Theory, IEEE Transactions on. - 1976. - nov. - t. 22, n ° 6. - p. 644-654. - ISSN 0018-9448. - DOI: 10.1109 / TIT.1976.1055638.
  • [ElGamal, 1984] El Gamal T. Un cryptosystĂšme Ă  clĂ© publique et un schĂ©ma de signature basĂ© sur des logarithmes discrets // Actes du CRYPTO 84 sur les progrĂšs de la cryptologie. - Santa Barbara, Californie, États-Unis: Springer-Verlag New York, Inc., 1985 .-- p. 10-18. - ISBN 0-387-15658-5. - URL: dl.acm.org/citation.cfm?id=19478.19480 .
  • [ElGamal, 1985] El Gamal T. Un cryptosystĂšme Ă  clĂ© publique et un schĂ©ma de signature basĂ© sur des logarithmes discrets // Transactions IEEE sur la thĂ©orie de l'information. - 1985. - juillet. - t. 31, n ° 4. - p. 469-472. - DOI: 10.1109 / TIT.1985.1057074.
  • [Matsumoto, Tsutomu, Imai 1986] Matsumoto T., Takashima Y., Imai H. À la recherche de systĂšmes intelligents de distribution de publicitĂ©s // Trans. Inst. Electron Commun. Eng. Jpn. Sect. E. T. 69. question 2. - 02.1986. - avec 99-106.
  • [Diffie, Oorschot, Wiener 1992] Diffie W., Van Oorschot PC, Wiener MJ Authentication
    et échanges de clés authentifiés // Conceptions, codes et cryptographie. - 1992. - juin. - t. 2, n ° 2. - p. 107-125. - ISSN 1573-7586. - DOI: 10.1007 / BF00124891.
  • [Lowe 1996] Lowe G. Quelques nouvelles attaques contre les protocoles de sĂ©curitĂ© // CSFW '96 Actes du 9Ăšme atelier IEEE sur les fondations de sĂ©curitĂ© informatique. —Washington, DC, États-Unis: IEEE Computer Society, 1996. - p. 162.
  • [Cheremushkin 2009] Cheremushkin A. V. Protocoles cryptographiques: propriĂ©tĂ©s et vulnĂ©rabilitĂ©s de base // Applied Discrete Mathematics. - 2009. - nov. - problĂšme. 2. - p. 115-150. - URL: cyberleninka.ru/article/n/kriptograficheskieprotokoly-osnovnye-svoystva-i-uyazvimosti.pdf .

Postface
L'auteur sera reconnaissant des commentaires factuels et autres sur le texte.

Source: https://habr.com/ru/post/fr476106/


All Articles