Puncte:5

Hashingul unei criptări ECB cu o funcție hash puternică produce un MAC sigur?

drapel ng

Aplicarea a puternic funcția hash ca SHA-256 la criptarea ECB a unui mesaj (folosind o cheie secretă $K$) produce un Mac securizat? De exemplu, dat un mesaj $m$, ar fi o simplă construcție mac $H(E_K(m))$ fi considerat un Mac sigur dacă am folosit un hash puternic $H$ ca SHA-256?

În comparație cu HMAC standard, această construcție pare mai simplă și poate chiar să se execute puțin mai rapid. De asemenea, nu pare că această schemă mac este vulnerabilă atacuri de extensie de lungime fie din moment ce fara cunostinta de $K$, nu pare că atacatorul poate „extinde” intrarea în funcția hash $H$ din moment ce ieșirea de $E_K(m)$ nu este niciodată „expus” atacatorului, ci doar consumat ca doar un pas intermediar de calcul în interior $H(E_K(m))$.

Desigur, standardul $\text{HMAC}(K,m)$ construcția este probabil mai sigură împotriva utilizării „funcțiilor hash slabe”, așa că cer în mod intenționat $H$ în construcția mea să fie o funcție hash „puternică” (de exemplu, SHA-256), care ar trebui să fie rezistentă la coliziuni și (desigur) rezistentă la preimagine.

La fel, această cheie $K$ ar numai să fie folosit doar pentru a genera Mac-uri și nu „partajat” în alte scopuri de criptare în altă parte. Acest lucru se datorează faptului că dacă o „altă parte a aplicației” reutilizari $K$ pentru criptarea generală în altă parte, un atacator ar putea profita de asta pentru a determina $c=E_K(p)$ pentru un text simplu cunoscut sau ales (sau chiar „derivat”) $p$, și astfel falsifică trivial un mesaj $m = p$ împreună cu mac-ul său valid $H(c)$.

**Edit: acesta este în esență inversul această schemă...

Maarten Bodewes avatar
drapel in
Rețineți că HMAC este încă o singură trecere a H subiacent peste date - chiar dacă schema ECB + hash funcționează pentru cantități mai mari de date (și nu aș fi sigur de asta nici din cauza reutilizarii cheilor), ar fi un schema cu două treceri, mai degrabă decât o schemă cu o singură trecere.
Puncte:8
drapel ng

Nu, construcția propusă nu este sigură, cu excepția cazului în care dimensiunea blocului $b$ al cifrului bloc este neobișnuit de mare sau mult mai larg decât MAC. Presupunând $p$ perechi distincte mesaj/MAC cunoscute $(m_i,h_i)$ cu $b$mesaj -bit $m_i$ și $h_i$ macar $b$-bit, există un simplu atac al costului așteptat dominat de $2^b/p$ hashes și căutări printre $h_i$.

Atacul pur și simplu are hashuri arbitrare distincte $b$-valori de biți $c$ pana cand $H(c)$ este unul dintre $h_i$. Cu o bună probabilitate, criptarea corespondentei $m_i$ este $c$. Acest lucru permite calcularea trivială a MAC-ului pentru $m_i\mathbin\|m_i$ la fel de $H(c\mathbin\|c)$, care este considerată fals.

Atacul este destul de fezabil atunci când cifrul bloc este $64$-bit, de ex. 3DES sau IDEA cu 3 taste. Cu AES-256 și $p=2^{40}$, costă o limită plauzibilă $2^{88}$ hashes și căutări printre $p$ valorile.

Notă: construcția așa cum este menționată în întrebare funcționează numai pentru mesaje cu dimensiunea unui multiplu $b$. Umplutură comună de criptare a blocurilor (cum ar fi adăugarea unui bit apoi $0$ la $b-1$ zero biți, după cum este necesar pentru a ajunge la sfârșitul unui bloc) poate rezolva acest lucru, dar atacul este ușor de adaptat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.