Puncte:1

Performanța AES CTR + HMAC SHA1

drapel cn

Fac un test de performanță pe AES cu modul CTR și HMAC SHA1 pentru autentificarea mesajelor și am găsit viteza openssl instrument pentru asta.

Eu fac mai multe teste cu viteză openssl -evp sha1 aes-128-ctr aes-128-gcm pentru că vreau să-l compar cu modul GCM care face criptarea și autentificarea mesajelor într-un singur mod.

Acum întrebarea mea: cum pot compara aceste valori? Valoarea rezultatului sha1 este „viteza” combinației ctr + hmac sha1 pentru că este blocajul sau trebuie să scad aceste două valori pentru a obține viteza combinată a ctr + hmac sha1?

introduceți descrierea imaginii aici

kelalaka avatar
drapel in
HMAC-SHA-1 folosește apelul dublu al SHA-1, unul este lung (aproape hashuri la fel ca dimensiunea mesajului) și celălalt este scurt, un singur bloc de SHA1 (512 biți pentru SHA-1). Mesajele scurte suferă de inițializare, ar putea fi necesar să luați în considerare cazul dvs. real. Pentru interpretarea ieșirii, consultați [Cum pot interpreta ieșirea vitezei openssl?](https://stackoverflow.com/q/17410270/1820553) de la [so]. Acesta este în mare parte off-topic.
Maarten Bodewes avatar
drapel in
Nu există suite de criptare AES-CTR. Deși CTR este folosit ca tehnologie de bază pentru GCM, suitele de criptare autentificate MAC sunt toate bazate pe CBC, din păcate folosind MAC-then-encrypt. Desigur, deoarece CTR și CBC folosesc cât mai multe criptări de bloc, diferența de viteză *ar trebui* să fie neglijabilă pentru implementări sănătoase (dar există multă nebunie în această lume).
kelalaka avatar
drapel in
Vot închide această întrebare, deoarece este vorba despre interpretarea rezultatului unei biblioteci criptografice. Există deja [viteza HMAC](https://stackoverflow.com/q/58719049/1820553) pe [so] deja.
Puncte:0
drapel in

Valoarea rezultatului sha1 este „viteza” combinației ctr + hmac sha1 pentru că este blocajul sau trebuie să scad aceste două valori pentru a obține viteza combinată a ctr + hmac sha1?

În primul rând, ar trebui să utilizați AES-CBC doar pentru a vă asigura că utilizați combinația corectă de algoritmi. AES-CBC este mult mai lent decât AES-CTR pe aparatul meu. Acest lucru se datorează probabil tamponării; este posibil să se precalculeze părți mari din fluxul cheie pentru AES-CTR.

Pachetele TLS au, de obicei, o dimensiune de aproximativ 1,5 K, așa că ați putea folosi blocurile de 1024 de octeți ca cel mai bun indicator. Am făcut testul de viteză cu SHA-1, AES-CBC și AES-GCM.

Deci, să folosim următoarele valori:

SHA-1 (reprezentând HMAC-SHA-1): 1467708 kB/s
AES-CBC: 1330523 kB/s
AES-GCM: 3346640 k

În loc de GB/s, ar trebui să vă uitați la ns per kB, astfel puteți adăuga timpul de procesare împreună și apoi îl puteți calcula înapoi la GB/s după cum doriți.

Acum putem calcula viteza lui SHA-1 + CBC efectuând:

$$T_{SHA-1\&CBC} = {1 \over {1 \over T_{SHA-1}} + {1 \over T_{AES-CBC}}}$$

Unde $T$ este viteza de transfer în octeți pe secundă.

Aceasta va avea ca rezultat următoarea valoare: 697876 kB/s pentru SHA-1 + AES-CBC.Aceasta înseamnă că AES-GCM este de aproximativ 4,8 ori mai rapid decât SHA-1 + AES-CBC pentru o implementare normală, fără fire. Aceasta presupune că HMAC are aceeași viteză cu SHA-1 (ceea ce este aproximativ adevărat după toate probabilitățile, chiar dacă trebuie să proceseze puțin mai multe date).

Soteri avatar
drapel cn
Multumesc mult pentru raspunsul tau detaliat. Singurul lucru pe care nu-l înțeleg este de ce ai ales modul cbc? Am ales ctr + hmac sha1 pentru că acesta este implicit pentru protocolul srtp
Maarten Bodewes avatar
drapel in
Ah, scuze, m-am gândit că vei folosi TLS, pentru că te referi la OpenSSL. Nu am prea mult timp acum, poți să te înțelegi cu răspunsul dat pentru a calcula rezultatul agregat? Presupun că majoritatea protocoalelor nu vor avea mai multe fire pentru o conexiune specifică, așa că ar trebui să fie în acest caz o modalitate validă de calculare a vitezei.

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.