/ / AES schneller als RSA-Verschlüsselung? geschlossen

AES schneller als RSA-Verschlüsselung? [geschlossen] - Leistung, Verschlüsselung, vergleichen, AES, RSA

Ich versuche, die Geschwindigkeit von RSA und AES mit openssl in Ubuntu zu testen.

Ich habe den folgenden Code verwendet, um es zu testen.

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

Ergebnisse:

$ 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

Es zeigt, dass die RSA-Verschlüsselung schneller ist als die AES-Verschlüsselung.

Sollte AES nicht schneller sein? Mache ich etwas falsch?

Vielen Dank.

Antworten:

5 für die Antwort № 1

Neben dem korrekten Standpunkt von @jbtule zu den verschiedenen Zwecken der RSA- und AES-Verschlüsselung ist etwas grundlegend fehlerhaft bei der Gestaltung Ihres Benchmarks.

Was Sie hier messen, ist nicht nur eine RSA- oder AES-Verschlüsselungsroutine, sondern deren Ausführung openssl Befehle.

Es kann zwar sinnvoll sein, Timer außerhalb zu verwendenWenn Ihr externes Programm die Leistung einer seiner Funktionen misst, erfordert dies Zeitaufwand für andere Aufgaben (z. B. das Parsen der Befehlszeilenparameter, das Finden des richtigen OpenSSL-Submoduls, das Öffnen der Datei, das Lesen der Datei), um vernachlässigbar zu sein mit der Zeit, die zur Ausführung der zeitgesteuerten Funktion erforderlich ist.

Dies ist hier insbesondere bei einer so kurzen Testmeldung eindeutig nicht der Fall.


3 für die Antwort № 2

Warum spielt es eine Rolle, welche schneller ist? Sie können sie wirklich nicht für dasselbe verwenden. RSA kann nur eine verschlüsseln sehr kleine Datenmenge.

Aber im Allgemeinen, wenn Sie etwas verschlüsseln müssenMit RSA verwenden Sie eine große Zahl, mit der Sie einen zufälligen AES-Schlüssel und einen AES-Schlüssel für Ihren Klartext verschlüsseln können. Es ist jedoch aus Sicherheitsgründen mehr auf die Blockgröße und die Entschlüsselungsgeschwindigkeit als auf die Verschlüsselungsgeschwindigkeit zurückzuführen.