AES schneller als der RSA-Verschlüsselung?
Ich versuche zum testen der Geschwindigkeit von RSA und AES mit openssl auf ubuntu.
ich verwendete den folgenden code, 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 RSA verschlüsseln schneller als AES verschlüsseln.
Sollte nicht AES schneller sein? Mache ich etwas falsch?
Dank.
- Ich glaube nicht, dass Ihre zahlen, aber Sie könnten versuchen, das timing ein nop, nur um zu sehen, wie viel overhead ist in Ihrem timing-Schleife.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben @jbtule die richtige Stelle über die verschiedenen Zwecke, für RSA und AES Verschlüsselung gibt es etwas grundlegend falsch in der Gestaltung Ihrer benchmark.
Was Sie Messen hier nicht nur ein RSA-oder AES-Verschlüsselung routine, aber die ganze Ausführung dieser
openssl
Befehle.Während es sinnvoll sein kann, zu verwenden Timer außerhalb Ihres externen Programms zu Messen, wie eine Ihrer Funktionen ist die Ausführung, tut, so erfordert das Zeit andere Dinge zu tun (wie das Parsen der Kommandozeilen-Parameter nach der richtigen OpenSSL sub-Modul, öffnen Sie die Datei, Lesen einer Datei) zu vernachlässigen im Vergleich mit dem Zeitbedarf für die zeitgesteuerte Funktion.
Hier, das ist eindeutig nicht der Fall, vor allem mit so kurzer test-Nachricht.
Warum spielt es eine Rolle, welches ist schneller sowieso. Sie können nicht wirklich nutzen Sie für die gleiche Sache. RSA kann nur verschlüsseln,sehr kleine Menge von Daten.
Aber in der Regel, wenn Sie brauchen, um zu verschlüsseln, etwas großes mit RSA verwenden Sie es verschlüsseln ein zufälliger AES-Schlüssel und aes zu tun, Ihr Klartext, aber es ist mehr aus Gründen der Sicherheit auf der Grundlage der block-Größe und Entschlüsselung Geschwindigkeit eher-Verschlüsselung Geschwindigkeit.