Pentru a calcula eticheta de autentificare în modul Galois / Counter (GCM), mai întâi se calculează un MAC folosind GHASH peste cifru text și datele suplimentare. După aceea, acest MAC este criptat folosind GCTR (folosind primul contor).

Întrebarea mea este: De ce este necesar acest ultim pas de criptare? Care ar fi problema de securitate, dacă aș folosi direct ieșirea GHASH direct ca etichetă de autentificare?

Răspuns

Care ar fi problema de securitate, dacă aș folosi direct ieșirea GHASH ca etichetă de autentificare?

Apoi cineva care ascultă mesaje criptate ar putea recupera $ H $ , dintre care unul este corect.

Rezultatul GHASH este un polinom public (bazat pe textul cifrat și AAD), evaluat la o valoare secretă $ H $ . Se pare că, având în vedere un astfel de polinom, $ H $ poate fi recuperat eficient, fie rescriind polinomul ca $ \ mathrm {GHASH} (H) + \ mathrm {Tag} = 0 $ și recuperarea rădăcinilor (care se poate face într-un câmp finit) sau chiar mai ușor, obținând două astfel de texte criptate, rescriind ambele și utilizați o valoare extinsă euclidiană pentru a-și recupera rădăcina comună.

Având în vedere $ H $ , un atacator poate face în mod banal modificări arbitrare la mesajele criptate ; da, este „rău.

Comentarii

  • O altă întrebare: De ce este necesar să folosiți GCTR pentru a cripta blocul GHASH în loc să folosiți doar $ Enc_H (GHASH) $ ca etichetă? În acest fel, GMAC ar putea fi utilizat fără a fi nevoie de un IV.
  • @mat: vrei să spui $ GHASH $ prin AES (folosind $ H $ ca cheie )? Ei bine, de fapt, un astfel de lucru ar funcționa (ei bine, nu aș folosi

nu aș folosi $ H $ ca cheie, dar în afară de asta …) și ar fi un design mai conservator; cu toate acestea, GCM a fost inițial conceput pentru a fi un mod liniar cu țevi; adică ar putea fi implementat având în vedere o implementare hardware AES în care, în fiecare ciclu de ceas, dăm următorul bloc de text simplu hardware-ului și fiecare ciclu de ceas, apare textul cifrat de acum 10-14 cicluri. Făcând o criptare pe GHASH, ' d blocăm conducta …

  • Adică doar o simplă Criptarea BCE (folosind fie cheia $ H $, fie $ K $) a GHASH în loc să o facă cu GCTR. Ar trebui să aibă avantajul că GMAC ar fi mai ușor de utilizat, deoarece nu ar mai avea nevoie ' de un nonce. Pipelinigul nu este o problemă aici, deoarece criptarea etichetei este chiar ultimul pas care se face în GCM oricum, deci conducta este cu siguranță goală în acest stadiu.
  • @David 天宇 Wong: cea mai mare parte a performanței ( GHASH este paralizabil, hashurile fără cheie nu sunt de obicei ' t)
  • @David 天宇 Wong: oh, corect, și asta …
  • Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *