/ / AES szybszy niż szyfrowanie RSA? [zamknięty] - wydajność, szyfrowanie, porównywanie, aes, RSA

AES szybszy niż szyfrowanie RSA? [zamknięty] - wydajność, szyfrowanie, porównywanie, aes, RSA

Próbuję przetestować szybkość RSA i AES z openssl w ubuntu.

Użyłem następującego kodu, aby go przetestować.

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

Wyniki:

$ 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

Pokazuje to, że szyfrowanie RSA jest szybsze niż szyfrowanie AES.

Czy nie powinienem być szybszy? Czy robię coś niepoprawnie?

Dzięki.

Odpowiedzi:

5 dla odpowiedzi № 1

Poza tym, że @jbtule słusznie wskazuje na różne cele szyfrowania RSA i AES, w projekcie twojego benchmarku jest coś całkowicie wadliwego.

To, co tu mierzysz, nie jest po prostu procedurą szyfrowania RSA lub AES, ale całą ich wykonaniem openssl polecenia.

Chociaż może być sens używania timerów na zewnątrzTwój zewnętrzny program do mierzenia wydajności jednej z jego funkcji, wymaga poświęcenia czasu na robienie innych rzeczy (np. analizowanie parametrów wiersza poleceń, znajdowanie odpowiedniego podmodułu OpenSSL, otwieranie pliku, czytanie pliku) jako nieznacznego porównania z czasem wymaganym do wykonania funkcji czasowej.

W tym przypadku tak nie jest, szczególnie w przypadku tak krótkiej wiadomości testowej.


3 dla odpowiedzi № 2

Dlaczego tak ważne jest to, który z nich jest szybszy. Naprawdę nie możesz ich użyć do tego samego. RSA może zaszyfrować tylko bardzo mała ilość danych.

Ale ogólnie rzecz biorąc, jeśli chcesz coś zaszyfrowaćduże z RSA używasz zaszyfrować losowy klucz AES i aes, aby zrobić twój zwykły tekst, ale to bardziej ze względów bezpieczeństwa w oparciu o rozmiar bloku i prędkość odszyfrowywania raczej prędkość szyfrowania.