有什么类似 AES 但性能更高的加密算法吗?

2022-05-13 10:16:10 +08:00
 Richard14

如题,想要针对二进制文件进行加密(图片等等,单文件大小不超过 10M ,平均 3M 左右),试了一下 AES 处理单个文件要 10 毫秒以上,速度太慢了,有什么类似的但性能更高的算法吗?就是针对流的加密解密,必须使用秘钥才能操作的那种的

3002 次点击
所在节点    问与答
18 条回复
1041412569
2022-05-13 10:21:27 +08:00
ZipCrypto
sunny352787
2022-05-13 10:43:33 +08:00
你这是卡在 CPU 了还是卡在磁盘 IO 了啊?按说一般情况下加密算法不至于是瓶颈,多线程跑加密通常是磁盘 IO 限制速度
yaott2020
2022-05-13 10:51:17 +08:00
ECC?
otakustay
2022-05-13 10:56:01 +08:00
不少芯片自带硬件级的 AES ,换算法不见得快,感觉你的问题卡在 IO 上了?
rioshikelong121
2022-05-13 11:02:00 +08:00
ECC 不是公钥加密算法么? 能比 AES 还快?
我之前看资料上说 ECC 虽然 key 的长度比较短,但是比 RSA 还要慢。
billlee
2022-05-13 11:18:28 +08:00
现在 AES 应该是最快的,因为有硬件加速
felixlong
2022-05-13 11:20:57 +08:00
记忆中 chacha20 比 AES 快。好多 IoT 的协议都是用这个加密。
gamexg
2022-05-13 11:22:41 +08:00
好奇楼主的场景,我这边 aes cpu 单核 能跑到 500M-1000M/s ,这个一般不会是瓶颈了吧?
libook
2022-05-13 11:44:30 +08:00
假设题主用的是 OpenSSL ,假设这个版本支持 AES 指令集,假设题主用的 CPU 支持 AES 指令集,假设没有其他性能瓶颈,那么测出来的应该是当前硬件上比较极限的速度了。

比硬件效率更高的应该也是硬件方案,当前主流 CPU 是否支持其他密码学指令集我就不大了解了,题主可以自己查一查。
duke807
2022-05-13 12:22:43 +08:00
Linux 源码中的 speck 加密
https://elixir.bootlin.com/linux/v4.18/source/crypto/speck.c
https://elixir.bootlin.com/linux/v4.18/source/include/crypto/speck.h

我有抽取整理到用戶空間,需要的話留言,我傳上來
3dwelcome
2022-05-13 12:28:11 +08:00
@felixlong "记忆中 chacha20 比 AES 快。好多 IoT 的协议都是用这个加密。"

纯 CPU 来算 chacha20 是快,但是 AES 在一些 CPU 上有对应的硬件指令,_mm_aesenc_si128 是真的快。
CEBBCAT
2022-05-13 12:58:17 +08:00
用 openssl 测一下不就知道了
yolee599
2022-05-13 13:09:16 +08:00
@felixlong 很多 IOT 设备都带 AES 硬件
AkashicRecords
2022-05-13 16:00:49 +08:00
首先排除 ECC 在内的一切公钥加密算法,公钥加密算法就不适合这种单纯的加解密场景……
其次,如果不考虑 AES-NI 等硬件指令集的优化,RC4 、Blowfish 等算法是比 AES 快的,这个我做过实验验证过。
最后,如果考虑指令集的话,可以看看是不是别的地方有瓶颈了。
haah
2022-05-13 22:06:51 +08:00
有呀!凯撒密码,速度杠杠的。
Richard14
2022-05-15 17:39:16 +08:00
@gamexg
@otakustay
@sunny352787 我看楼上回复还以为是我调用方式错了,不过看 8#老哥的数据那也没错啊,我 10M 的流要跑 10ms ,每秒钟不就是 1000M 么。不过 10ms 的话意味着每秒最大响应请求数只有 100 个,感觉还是很慢啊
gamexg
2022-05-15 19:18:20 +08:00
@Richard14 额,那个是单核心的速度。
https 我记得就是 aes 加密,一般 https 不会是
gamexg
2022-05-15 19:19:42 +08:00
那个是单核心的速度。
https 我记得就是 aes 加密,web 服务器,一般不会因为 https 加密出现瓶颈。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/852574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX