Schimb de chei criptate

Schimbul de chei criptate ( EKE ) este un  protocol dezvoltat de Steve Bellovin și Michael Merritt [1] . EKE funcționează cu condiția ca utilizatorii să aibă un secret partajat înainte de începerea protocolului. Protocolul vă permite să generați o cheie de sesiune pentru a stabili o conexiune sigură. O nouă cheie de sesiune este generată pentru fiecare sesiune.

Cuvânt înainte

Acest protocol folosește criptarea simetrică și asimetrică. În fiecare sesiune a protocolului, o cheie publică este generată aleatoriu și criptată folosind cheia secretă disponibilă părților. Utilizarea a două tipuri de criptare este principala caracteristică a acestui protocol. O parolă poate acționa ca un secret partajat în schemă, ceea ce face ca acest protocol să fie convenabil pentru utilizarea în sistemele în care secretul partajat este o parolă.

Protocolul EKE

Alice și Bob împărtășesc un P secret. Folosind protocolul EKE, ei au capacitatea de a genera o cheie de sesiune partajată K.

  1. Alice generează o pereche aleatorie de chei public-privată, criptează simetric cheia publică K' folosind secretul partajat P ca cheie. Bob trimite.
  2. Bob, cunoscând secretul împărtășit, decriptează mesajul și primește cheia K'. Apoi, generează aleatoriu o cheie de sesiune k, o criptează cu cheia publică K' și secretul partajat P. Trimite de Alice.
  3. Alice obține cheia de sesiune partajată k prin decriptarea mesajului. Generează un șir aleator , îl criptează în k. Bob trimite.
  4. Bob primește șirul lui Alice prin decriptarea mesajului. Apoi, generează propriul șir aleator . Criptează ambele șiruri cu cheia de sesiune partajată, trimite șirurile criptate către Alice.
  5. Alice primește și decriptează mesajul. Valoarea primită de la Bob este comparată cu ceea ce a fost ales la pasul (3). Dacă valorile se potrivesc, atunci Alice criptează cu cheia și o trimite lui Bob.
  6. Bob primește prin decriptarea mesajului. Valoarea primită de la Alice este comparată cu ceea ce s-a ales la punctul (4). Dacă valorile se potrivesc, atunci protocolul este finalizat - participanții pot schimba mesaje folosind cheia k atunci când sunt criptați.

Rezistența la atacuri

Ca urmare a funcționării protocolului, criptoanalistul pasiv Eve poate accesa doar și , precum și mesajele criptate cu cheia de sesiune partajată k. Deoarece algoritmul folosește o schemă de criptare asimetrică și cheile K’ și k sunt alese aleatoriu, Eve nu poate ghici P. Astfel, secretul partajat P poate fi o simplă parolă pe care o persoană și-o poate aminti.

Pașii 3-6 oferă confirmare. La pașii 3-5, Alice se asigură că Bob cunoaște cheia de sesiune partajată. La pașii 4-6, Bob se asigură că Alice cunoaște cheia de sesiune partajată. Aceeași sarcină este rezolvată în protocolul Kerberos prin schimbul de marcaje temporale.

Implementări

La implementarea acestui protocol, este posibil să se utilizeze mulți algoritmi cu chei publice, dar trebuie să se țină seama și de faptul că limitările metodelor de criptare asupra cheilor pot oferi unui atacator oportunități suplimentare pentru atacuri. Utilizarea unor secvențe aleatorii în acest protocol va face imposibil un atac cu forță brută.

O implementare a EKE folosind sistemul ElGamal [1]

Beneficii

Când se utilizează schema ElGamal [2] , este posibil să se simplifice protocolul principal.

Inițializare

Valorile g - elementul părinte al grupului și p - modulul pentru care se fac calculele sunt alese pentru toți utilizatorii protocolului. De asemenea, conform protocolului EKE, utilizatorii au un secret r partajat. Apoi cheia publică.

Protocol de operare
  1. În acest algoritm, cheia publică nu trebuie să fie criptată cu secretul partajat P. Pentru cazul general, această abordare nu funcționează. În primul pas al protocolului, Alice îi trimite lui Bob:
  2. Pentru algoritmul ElGamal, Bob alege un număr aleator R. Apoi, în această etapă, Bob trimite următorul mesaj:

Implementarea EKE folosind protocolul Diffie-Hellman, DH-EKE [3]

La implementarea EKE folosind protocolul Diffie-Hellman [4] , cheia K este generată automat de către participanții la protocol în timpul execuției sale.

Beneficii

Când se utilizează protocolul DH-EKE, este rezolvată vulnerabilitatea protocolului Diffie-Hellman subiacent la un atac man-in-the-middle (MITM). Dacă criptoanalistul nu cunoaște secretul partajat al utilizatorilor, atunci nu va putea [3] să ghicească cheia, deoarece valorile aleatorii sunt criptate.

Inițializare

Valorile g - elementul părinte al grupului și n - modulul pentru care se fac calculele sunt alese pentru toți utilizatorii protocolului. Conform protocolului EKE, utilizatorii au un secret comun P.

Protocol de operare
  1. Alice alege la întâmplare și îi trimite lui Bob. Acest lucru nu necesită ca Alice să cripteze primul mesaj cu secretul partajat P.
  2. Bob alege aleatoriu , calculează K, generează un șir aleator , îl criptează cu cheia K. În continuare - calculează , îl criptează cu secretul partajat P. Îl trimite lui Alice.
  3. Alice obține prin decriptarea primei părți a mesajului folosind secretul partajat P. Apoi, calculează K și decriptează a doua parte a mesajului lui Bob cu cheia primită. Generează un șir aleator , criptează șirurile primite cu cheia K și îl trimite lui Bob.
  4. Bob primește și decriptează mesajul. Valoarea primită de la Alice este comparată cu ceea ce s-a ales la punctul (3). Dacă valorile se potrivesc, atunci Bob criptează cu cheia K și trimite lui Alice.
  5. Alice primește prin decriptarea mesajului. Valoarea primită de la Bob este comparată cu ceea ce a fost ales la pasul (4). Dacă valorile se potrivesc, atunci protocolul este complet - participanții pot schimba mesaje folosind cheia K atunci când sunt criptați.

Protocol EKE îmbunătățit

Steve Bellovin și Michael Merritt [1] au propus consolidarea unei părți a protocolului cerere-răspuns. Această consolidare permite [3] să evite compromisul datelor, cu condiția ca criptoanalistul să aibă valoarea cheii de sesiune comună anterioare k.

  • La pasul 3, Alice generează un număr aleator . Trimite lui Bob:
  • La pasul 4, Bob generează un număr aleator și îi trimite lui Alice:

Cu acest protocol, Alice și Bob pot calcula o cheie de sesiune partajată -- . Mai târziu, această cheie este folosită pentru a stabili o conexiune sigură, cheia k este folosită ca cheie de schimb de chei.

Să presupunem că Eve a avut acces la valoarea S, dar funcționarea protocolului este concepută astfel încât să nu-i ofere Evei informații despre secretul partajat P. În plus, deoarece numai datele aleatoare sunt criptate pe cheia K, abordări criptografice pentru recuperarea acestuia nu sunt aplicabile.

Note

  1. ↑ 1 2 3 S. M. Bellovin, M. Merritt. Schimb de chei criptate: protocoale bazate pe parole securizate împotriva atacurilor de dicționar  //  Proceedings of the IEEE Symposium on Research in Security and Privacy, Oakland. - 1992. - P. 72-84 .
  2. T. ElGamal. Un criptosistem cu cheie publică și o schemă de semnătură bazată pe logaritmi discreti  //  IEEE Transactions on Information Theory. - 1985. - Vol. IT-31 . — P. 469–472 .
  3. ↑ 1 2 3 Schneier B. Criptografia aplicată. Protocoale, algoritmi, cod sursă în limbaj C = Criptografie aplicată. Protocoale, algoritmi și cod sursă în C. - M. : Triumph, 2002. - P. 82. - 816 p. - 3000 de exemplare. - ISBN 5-89392-055-4 .
  4. W. Diffie și M. E. Hellman. Noi direcții în criptografie  (engleză)  // IEEE Transactions on Information Theory. - 1976. - Vol. IT-11 . — P. 644–654 .