Puncte:1

Cât de rapid este GHASH și ce face?

drapel tf
Tom

am citit aici:

https://www.researchgate.net/publication/220335697_GCM_GHASH_and_Weak_Keys

cum funcționează GHASH. Deci avem $m$ blocuri de 128 de biți $X_{i}$ și calculăm în $GF(2^{128})$:

$Y_{m} = \sum_{i=1}^{m} X_{i} \times H^{m-i+1}$

$H$ este o cheie. Văd chiar acolo că $H$ este ridicat la putere? Există o metodă de a o face rapid? $GF(2^{128})$ sau este doar modul de exponențiere standard cu exponențiere rapidă? Am crezut că există o înmulțire în $GF(2^{128})$ pe un bloc de 128 de biți, dar dacă $H$ este ridicat la putere, există mult mai mult.

Cât de rapid este GHASH în sine în comparație cu AES? Adică dacă AES poate realiza $n$ cicluri pe octet, cât de repede este GHASH singur? Performanța GHASH este comparabilă doar cu o înmulțire în $GF(2^{128})$ pe fiecare 128 de biți de text simplu sau este mult complicat?

forest avatar
drapel vn
Cât de rapid este depinde de caracteristicile hardware. Poate fi foarte rapid dacă procesorul are [`pclmulqdq`](https://www.felixcloutier.com/x86/pclmulqdq).
Tom avatar
drapel tf
Tom
@forest întrebarea mea a fost despre GHASH cu pclmulqdq, pentru că astăzi pare a fi o implementare standard a GCM. Știu că poate fi rapid, dar să presupunem că AES poate obține 1 ciclu pe octet, ce ia GHASH în acest 1 ciclu pe octet?
forest avatar
drapel vn
https://crypto.stackexchange.com/a/60109/54184 arată benchmark-uri cu și fără diferite caracteristici de accelerare hardware atât pentru GHASH, cât și pentru AES în modul CTR. AES cu accelerare hardware completă atinge 5307,37 MB/s. GHASH cu accelerare hardware completă atinge 4795,76 MB/s.
drapel us
Evaluați polinomul folosind [metoda lui Horner](https://en.wikipedia.org/wiki/Horner%27s_method) -- o înmulțire și o adunare pentru fiecare coeficient al polinomului.
Tom avatar
drapel tf
Tom
@forest mulțumesc, există câteva comparații interesante.
Tom avatar
drapel tf
Tom
Apropo, am dreptate că dacă AES și GHASH sunt comparabile ca performanță, atunci dacă le-am combinat în modul GCM, toate sistemele (AES-GCM) funcționează cu jumătate din viteza pe care o poate atinge singurul dintre ele?
kelalaka avatar
drapel in
Rețineți că instrucțiunile CPU moderne pentru GHASH, de asemenea.
Maarten Bodewes avatar
drapel in
@Tom Nu neapărat sau chiar probabil. Acest lucru ar putea indica faptul că cantitatea de cicluri CPU este comparabilă, dar pe CPU-urile moderne se petrece mult timp în timpul I/O - încărcarea datelor în diferitele niveluri de cache și registre ale CPU.
forest avatar
drapel vn
Procesoarele moderne @Tom au conducte foarte profunde și pot executa efectiv mai multe instrucțiuni simultan, atâta timp cât ambele nu necesită utilizarea acelorași unități de execuție (adică nu provoacă conflicte de porturi) și atâta timp cât niciuna dintre instrucțiuni nu depinde de cealaltă. terminand primul. AES-NI și CLMUL rulează ambele pe unități de execuție diferite (portul 0 față de portul 5, respectiv pe Skylake, vezi Tabelul 11.1 din [documentul de optimizare a microarhitecturii CPU Agner Fog](https://www.agner.org/optimize/microarchitecture.pdf) ), deci vor fi executate concomitent.
forest avatar
drapel vn
Pentru referință, pe un procesor vechi de server Ivy Bridge cu suport atât pentru AES-NI, cât și pentru CLMUL, AES pe 128 de biți în modul CTR este de 3205 MB/s, modul GCM este de 935,8 MB/s și GHASH brut este de 1328 MB/s ( toate pe blocuri de 16 KiB, testate cu OpenSSL 1.1.1n). Puteți vedea că trebuie să se execute simultan.

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.