Î1: De ce se pierde confidențialitatea mesajelor când se utilizează același IV de două ori? Din principiu am putut vedea doar că rezultatul XOR(p1, p2) poate fi dedus deoarece linia superioară de date este aceeași - dar nu p1, p2 în sine.
De fapt, în destul de multe cazuri, cunoașterea $p_1 \oplus p_2$ poate fi folosit pentru a recupera o estimare bună $p_1, p_2$. Asta depinde de distribuție $p_1, p_2$ au fost extrase din - dacă există șiruri de biți aleatorii, care, evident, nu pot fi exploatate pentru a le recupera $p_1, p_2$ - pe de altă parte, dacă erau șiruri ASCII englezești, atunci este de fapt surprinzător de ușor (cu excepția că nu vei ști care este $p_1$ si care este $p_2$)
Î2: Cum/De ce poate fi dezvăluită AES-Key prin utilizarea aceluiași IV de câteva ori?
De fapt, nu veți recupera cheia AES în sine; puteți recupera valoarea internă $H$.
Autentificarea GCM funcționează astfel; eticheta este calculată prin extinderea AAD și a textului cifrat într-o serie de valori de 128 de biți $x_n, x_{n-1}, ..., x_1$ si calcul:
$$tag = x_n H^n + x_{n-1}H^{n-1} + ... + x_1H^1 + E_k(nonce)$$
Dacă obținem două mesaje distincte criptate cu același nonce, putem scădea cele două ecuații, rezultând [1]:
$$tag - tag' = (x_n - x'_n) H^n + (x_{n-1} - x'_{n-1} ) H^{n-1} + ... + (x_1 - x'_1)H^1$$
Deoarece textele cifrate (sau AAD) au fost diferite, vor exista niște coeficienți diferit de zero în aceste ecuații.
Și, știm toți coeficienții (spre deosebire de cazul unic GCM, unde nu știam valoarea $E_k(nonce)$); acesta este un polinom cunoscut al necunoscutului $H$ de grad $n$; se dovedește că, în câmpuri finite, acest lucru este practic de rezolvat.
Acum, cunoașterea $H$ nu ne permite să citim niciun text cifrat; ceea ce ne-ar permite să facem este să modificăm textele cifrate astfel încât să păstrăm eticheta valabilă, anulând astfel garanția de integritate a GCM.
[1]: Notă notațională minoră: deoarece lucrăm într-un câmp finit de caracteristica doi, operațiile $+$ și $-$ sunt de fapt aceleași și este tradițional să le scrieți întotdeauna ca $+$. L-am scris ca $-$ pentru a face mai evident ceea ce facem.