/ / AES rýchlejšie ako šifrovanie RSA? [uzavretý] - výkon, šifrovanie, porovnanie, aes, rsa

AES rýchlejšie ako šifrovanie RSA? [uzavretý] - výkon, šifrovanie, porovnanie, aes, rsa

Snažím sa otestovať rýchlosť RSA a AES s openssl v ubuntu.

Použil som nasledujúci kód na otestovanie.

echo -n "0123456789012345" > message.txt

openssl genrsa -out private.pem 1024
openssl rsa -in private.pem -out public.pem -pubout


for i in {1..1000}
do
openssl rsautl -encrypt -inkey public.pem -pubin -in message.txt -out message_enc.txt
done

for i in {1..1000}
do
openssl rsautl -decrypt -inkey private.pem -in message_enc.txt -out message_dec.txt
done

for i in {1..1000}
do
openssl enc -e -aes-128-cbc -in message.txt -out aes.bin -K ddf -iv 345

done

výsledky:

$ time ./rsa_enc
real    0m3.697s
user    0m1.308s
sys     0m0.680s

$ time ./rsa_dec
real    0m14.273s
user    0m3.172s
sys     0m0.696s

$ time ./aes

real    0m3.790s
user    0m1.408s
sys     0m0.500s

Ukazuje, že šifrovanie RSA je rýchlejšie ako šifrovanie AES.

AES by nemala byť rýchlejšia? Robím niečo nesprávne?

Vďaka.

odpovede:

5 pre odpoveď č. 1

Okrem správneho bodu o správnosti rôznych účelov týkajúcich sa šifrovania RSA a AES, je v návrhu vášho benchmarku niečo zásadne chybné.

To, čo merate tu, nie je len rutina RSA alebo AES šifrovania, ale celá realizácia týchto openssl príkazy.

Zatiaľ čo môže mať zmysel používať časovače vonkuváš externý program na meranie toho, ako funguje jedna z jeho funkcií, vyžaduje to, že čas strávený vykonávaním iných vecí (napríklad parsovanie parametrov príkazového riadku, nájdenie správneho podmodulu OpenSSL, otvorenie súboru, čítanie súboru) je zanedbateľné v porovnaní s časom potrebným na vykonanie časovanej funkcie.

Tu to jednoznačne nie je, najmä s takýmto krátkym testovacím posolstvom.


3 pre odpoveď č. 2

Prečo záleží na tom, ktorý z nich je rýchlejší. Naozaj ich nemôžete použiť na rovnakú vec. RSA môže iba šifrovať a veľmi malé množstvo údajov.

Ale všeobecne, ak potrebujete šifrovať niečoveľký s RSA používate to šifrovať náhodný AES kľúč a AES robiť svoj plaintext, ale to je viac z bezpečnostných dôvodov na základe veľkosti bloku a rýchlosť dešifrovania skôr šifrovacie rýchlosti.