performance - AES 比 RSA 加密更快?

标签 performance encryption compare aes rsa

关闭。这个问题是 off-topic 。它目前不接受答案。












想改进这个问题? Update the question 所以它是 Stack Overflow 的 on-topic

9年前关闭。




Improve this question




我正在尝试在 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

结果:
$ 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不应该更快吗?我做错了什么吗?

谢谢。

最佳答案

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

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

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

在这里,显然情况并非如此,尤其是对于如此简短的测试消息。

关于performance - AES 比 RSA 加密更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642408/

相关文章:

c# - .net 加密数据库表

php - 选择比当前日期早 x 天的记录

比较 C 上的字符串

php - 在 RAM + 服务器性能中缓存 MaxMind City 二进制数据库

mysql - 设计组织良好且规范化的关系数据库的步骤

Java:读取 XML 文件并将信息存储在文本文件中的快速方法

java - 比较 ArrayList 中的数字

performance - 用于二进制相关的SSE向量的Popcount吗?

android - 我可以为 android 和 ios 加密我的源代码吗?

ruby-on-rails - 在 Ruby on Rails 中验证 Django 密码给出不匹配的密码