Performance AES比RSA加密更快?
我试图在ubuntu中用openssl测试RSA和AES的速度 我使用以下代码来测试它Performance AES比RSA加密更快?,performance,encryption,compare,aes,rsa,Performance,Encryption,Compare,Aes,Rsa,我试图在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 -p
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
结果:
$ 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
这表明RSA加密比AES加密更快
AES不应该更快吗?我做错什么了吗
谢谢。不管怎样,哪一个更快都很重要。你真的不能用它们来做同样的事情。RSA只能加密一个密码
但是一般来说,如果你需要用RSA加密一些大的东西,你可以用它加密一个随机的AES密钥和AES来做明文,但更多的是出于安全原因,基于块大小和解密速度,而不是加密速度。除了@jbtule关于RSA和AES加密不同用途的正确观点之外,基准测试的设计存在一些根本性的缺陷 您在这里测量的不仅仅是RSA或AES加密例程,而是这些
openssl
命令的整个执行过程
虽然在外部程序之外使用计时器来测量其功能的执行情况是有意义的,但这样做需要花费时间做其他事情(如解析命令行参数、查找正确的OpenSSL子模块、打开文件、读取文件)与执行定时功能所需的时间相比,可忽略不计
在这里,情况显然不是这样,尤其是对于如此短的测试消息。我不相信你的数字,但你可以尝试计时nop,只是为了看看计时循环中有多少开销。这个答案是不安全的。要为对称密钥传输密钥,标准用法是生成共享密钥。通过Diffie Hellman,只有当两个私钥都被泄露时,密钥才会被泄露,而这种方法只需要泄露一个密钥。除非绝对必要,否则切勿直接发送钥匙@AlexNolte这个答案没有任何安全性或不安全性,它只是描述了一个错误的假设,即RSA和AES是可互换的。我应该澄清,RSA确实最适合于少量数据。但是,安全社区认为发送用于加密大型有效负载的RSA加密AES密钥的建议不安全。概述了安全密钥交换协议,[此处]()。是的,我同意任何人都不应该再使用RSA加密。