哪种密钥封装方法(KEM)最快?ML-KEM 的性能如何?

本文分析了不同密钥封装方法(KEM)的性能,包括密钥生成、封装和解封装的速度。实验结果显示,ML-KEM 在各个方面表现良好,是现有 KEM 方法的优秀替代品。RSA 在密钥生成和解封装方面较慢,而 P256 曲线在密钥生成方面最快。

哪个是最快的 KEM (密钥封装方法)?ML-KEM 性能如何?

使用 KEM,我们用 Alice 的公钥封装一个密钥,然后用 Alice 的私钥解封它:

因此,要衡量哪个最快,这完全取决于我们关注的是什么:每秒生成的密钥数、每秒的封装数或每秒的解封数。为此,让我们使用 OpenSSL:

$ openssl speed -kem-algorithms
Doing rsa512 keygen ops for 10s: 3662 rsa512 KEM keygen ops in 9.94s  # 在 10 秒内完成 rsa512 密钥生成操作:在 9.94 秒内完成 3662 个 rsa512 KEM 密钥生成操作
Doing rsa512 encaps ops for 10s: 2454771 rsa512 KEM encaps ops in 9.91s # 在 10 秒内完成 rsa512 封装操作:在 9.91 秒内完成 2454771 个 rsa512 KEM 封装操作
Doing rsa512 decaps ops for 10s: 288275 rsa512 KEM decaps ops in 9.89s # 在 10 秒内完成 rsa512 解封操作:在 9.89 秒内完成 288275 个 rsa512 KEM 解封操作
Doing rsa1024 keygen ops for 10s: 1017 rsa1024 KEM keygen ops in 9.91s # 在 10 秒内完成 rsa1024 密钥生成操作:在 9.91 秒内完成 1017 个 rsa1024 KEM 密钥生成操作
Doing rsa1024 encaps ops for 10s: 1189576 rsa1024 KEM encaps ops in 9.94s # 在 10 秒内完成 rsa1024 封装操作:在 9.94 秒内完成 1189576 个 rsa1024 KEM 封装操作
Doing rsa1024 decaps ops for 10s: 94147 rsa1024 KEM decaps ops in 9.97s  # 在 10 秒内完成 rsa1024 解封操作:在 9.97 秒内完成 94147 个 rsa1024 KEM 解封操作
Doing rsa2048 keygen ops for 10s: 183 rsa2048 KEM keygen ops in 9.98s  # 在 10 秒内完成 rsa2048 密钥生成操作:在 9.98 秒内完成 183 个 rsa2048 KEM 密钥生成操作
Doing rsa2048 encaps ops for 10s: 399880 rsa2048 KEM encaps ops in 9.94s # 在 10 秒内完成 rsa2048 封装操作:在 9.94 秒内完成 399880 个 rsa2048 KEM 封装操作
Doing rsa2048 decaps ops for 10s: 12854 rsa2048 KEM decaps ops in 9.95s  # 在 10 秒内完成 rsa2048 解封操作:在 9.95 秒内完成 12854 个 rsa2048 KEM 解封操作
Doing rsa3072 keygen ops for 10s: 54 rsa3072 KEM keygen ops in 10.22s   # 在 10 秒内完成 rsa3072 密钥生成操作:在 10.22 秒内完成 54 个 rsa3072 KEM 密钥生成操作
Doing rsa3072 encaps ops for 10s: 192320 rsa3072 KEM encaps ops in 9.97s # 在 10 秒内完成 rsa3072 封装操作:在 9.97 秒内完成 192320 个 rsa3072 KEM 封装操作
...
...
                         keygen    encaps    decaps keygens/s  encaps/s  decaps/s
               rsa512 0.002714s 0.000004s 0.000034s     368.5  247800.2   29146.3
              rsa1024 0.009741s 0.000008s 0.000106s     102.7  119705.8    9444.2
              rsa2048 0.054559s 0.000025s 0.000774s      18.3   40239.5    1291.5
              rsa3072 0.189236s 0.000052s 0.002441s       5.3   19292.3     409.7
              rsa4096 0.537007s 0.000089s 0.005576s       1.9   11218.8     179.3
              rsa7680 11.546875s 0.000302s 0.047693s       0.1    3313.7      21.0
             rsa15360 139.218750s 0.001188s 0.274071s       0.0     841.4       3.6
              ECP-256 0.000013s 0.000066s 0.000050s   79752.8   15241.5   19970.8
              ECP-384 0.000895s 0.001814s 0.000913s    1117.5     551.2    1095.4
              ECP-521 0.001949s 0.003903s 0.001959s     513.1     256.2     510.4
               X25519 0.000039s 0.000080s 0.000036s   25881.0   12537.8   27553.8
                 X448 0.000366s 0.000998s 0.000629s    2733.3    1001.8    1590.3
           ML-KEM-512 0.000049s 0.000040s 0.000062s   20365.2   24903.6   16133.0
          ML-KEM-768 0.000075s 0.000058s 0.000088s   13272.6   17204.8   11365.0
          ML-KEM-1024 0.000111s 0.000079s 0.000118s    8988.5   12686.0    8497.8
      X25519MLKEM768 0.000118s 0.000137s 0.000130s    8460.4    7287.1    7694.5
        X448MLKEM1024 0.000485s 0.0001.074s 0.000743s    2060.2     931.3    1345.2
    SecP256r1MLKEM768 0.000106s 0.000141s 0.000155s    9474.3    7069.4    6470.9
   SecP384r1MLKEM1024 0.001053s 0.001916s 0.001162s     950.1     521.9     860.9

对于每秒的密钥生成数,P256 曲线是最快的,X25519 和 ML-KEM-512 慢三到四倍。我们可以看到,RSA 是一种相当慢的密钥生成方法,RSA-2K 比 P256 慢 4,300 多倍:

P256/ML-KEM768 和 X25519/ML-KEM768 的混合方法运行良好,但显然比现有的椭圆曲线方法慢。

当涉及到每秒加密数时,RSA 表现最好,其次是 ML-KEM。总的来说,P256 在这方面表现不佳:

当涉及到解封时,X25519、P256 和 ML-KEM 都表现良好,而 RSA 则慢得多(注意:现在不再使用 RSA512):

因此,一般来说,ML-KEM(KEM 的量子鲁棒方法)在所有领域都表现良好,并表明它是我们现有 KEM 方法的绝佳替代品。RSA 通常在生成密钥和解封方面速度较慢。还应该记住,操作速度越快,可能消耗的能量就越少。

  • 原文链接: medium.com/asecuritysite...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
asecuritysite
asecuritysite
江湖只有他的大名,没有他的介绍。