V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Richard14
V2EX  ›  问与答

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

  •  
  •   Richard14 · 2022-05-13 10:16:10 +08:00 · 2961 次点击
    这是一个创建于 927 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    比硬件效率更高的应该也是硬件方案,当前主流 CPU 是否支持其他密码学指令集我就不大了解了,题主可以自己查一查。
    duke807
        10
    duke807  
       2022-05-13 12:22:43 +08:00 via Android
    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
        11
    3dwelcome  
       2022-05-13 12:28:11 +08:00
    @felixlong "记忆中 chacha20 比 AES 快。好多 IoT 的协议都是用这个加密。"

    纯 CPU 来算 chacha20 是快,但是 AES 在一些 CPU 上有对应的硬件指令,_mm_aesenc_si128 是真的快。
    CEBBCAT
        12
    CEBBCAT  
       2022-05-13 12:58:17 +08:00
    用 openssl 测一下不就知道了
    yolee599
        13
    yolee599  
       2022-05-13 13:09:16 +08:00 via Android
    @felixlong 很多 IOT 设备都带 AES 硬件
    AkashicRecords
        14
    AkashicRecords  
       2022-05-13 16:00:49 +08:00
    首先排除 ECC 在内的一切公钥加密算法,公钥加密算法就不适合这种单纯的加解密场景……
    其次,如果不考虑 AES-NI 等硬件指令集的优化,RC4 、Blowfish 等算法是比 AES 快的,这个我做过实验验证过。
    最后,如果考虑指令集的话,可以看看是不是别的地方有瓶颈了。
    haah
        15
    haah  
       2022-05-13 22:06:51 +08:00
    有呀!凯撒密码,速度杠杠的。
    Richard14
        16
    Richard14  
    OP
       2022-05-15 17:39:16 +08:00
    @gamexg
    @otakustay
    @sunny352787 我看楼上回复还以为是我调用方式错了,不过看 8#老哥的数据那也没错啊,我 10M 的流要跑 10ms ,每秒钟不就是 1000M 么。不过 10ms 的话意味着每秒最大响应请求数只有 100 个,感觉还是很慢啊
    gamexg
        17
    gamexg  
       2022-05-15 19:18:20 +08:00 via Android
    @Richard14 额,那个是单核心的速度。
    https 我记得就是 aes 加密,一般 https 不会是
    gamexg
        18
    gamexg  
       2022-05-15 19:19:42 +08:00 via Android
    那个是单核心的速度。
    https 我记得就是 aes 加密,web 服务器,一般不会因为 https 加密出现瓶颈。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.