AES比RSA加密更快?

use*_*272 4 encryption performance compare rsa aes

我试图用ubuntu中的openssl来测试RSA和AES的速度.

我使用以下代码来测试它.

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
Run Code Online (Sandbox Code Playgroud)

结果:

$ 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
Run Code Online (Sandbox Code Playgroud)

它表明RSA加密比AES加密更快.

AES不应该更快吗?我做错了吗?

谢谢.

Bru*_*uno 5

除了@jbtule关于RSA和AES加密的不同目的的正确观点之外,基准设计中存在一些根本性的缺陷.

您在这里测量的不仅仅是RSA或AES加密例程,而是整个执行这些openssl命令.

虽然在外部程序之外使用计时器来衡量其中一个函数的执行情况是有意义的,但这样做需要花费时间来做其他事情(比如解析命令行参数,找到正确的OpenSSL子模块,打开文件) ,读取文件)与执行定时功能所需的时间相比可以忽略不计.

在这里,情况显然不是这样,特别是在这么短的测试消息的情况下.


jbt*_*ule 2

无论如何,为什么哪个更快那么重要呢?你确实不能将它们用于同一件事。RSA只能加密极少量的数据

但通常,如果您需要使用 RSA 加密大型内容,您可以使用它加密随机 AES 密钥和 aes 来处理明文,但更多的是出于基于块大小和解密速度而不是加密速度的安全原因。