密码学 - Botan3 - Billatnapier

本文介绍了Botan3,一个开源密码学库,常用于AWS,支持多种对称密钥方法(如AES, Blowfish)和哈希方法(如SHA-256, SHA-3),以及RSA, ECDSA, Ed25519等公钥签名算法,以及DH, ECDH, X25519等密钥交换算法。文中还提供了各种算法的性能基准测试数据。

Botan3

Botan — 在日语中是牡丹花的意思 — 是一个开源的密码学库,通常与 AWS 一起使用。它通常与 C、C++ 和 Python 集成,但可以与大多数语言集成。它可以在这个 GitHub 上找到 [ 这里 ]。支持的对称密钥方法有 AES、Blowfish、CAST、DES、TripleDES、GOST、IDEA、Noekeon、SHACAL2、SM4、Serpent、ThreeFish、TwoFish、ChaCha20、RC4 和 Sala20:

AES-128 [aesni] 加密缓冲区大小 1024 字节:4338.823 MiB/秒 0.00 周期/字节 (500.01 毫秒内 2169.44 MiB)
AES-128 [aesni] 解密缓冲区大小 1024 字节:4290.455 MiB/秒 0.00 周期/字节 (500.01 毫秒内 2145.25 MiB)
AES-192 [aesni] 加密缓冲区大小 1024 字节:3630.154 MiB/秒 0.00 周期/字节 (500.01 毫秒内 1815.12 MiB)
AES-192 [aesni] 解密缓冲区大小 1024 字节:3592.082 MiB/秒 0.00 周期/字节 (500.01 毫秒内 1796.06 MiB)
AES-256 [aesni] 加密缓冲区大小 1024 字节:3093.438 MiB/秒 0.00 周期/字节 (500.01 毫秒内 1546.75 MiB)
AES-256 [aesni] 解密缓冲区大小 1024 字节:3106.537 MiB/秒 0.00 周期/字节 (500.01 毫秒内 1553.31 MiB)
ARIA-128 加密缓冲区大小 1024 字节:75.259 MiB/秒 0.13 周期/字节 (500.77 毫秒内 37.69 MiB)
ARIA-128 解密缓冲区大小 1024 字节:73.917 MiB/秒 0.13 周期/字节 (500.56 毫秒内 37.00 MiB)
ARIA-192 加密缓冲区大小 1024 字节:62.732 MiB/秒 0.15 周期/字节 (500.14 毫秒内 31.38 MiB)
ARIA-192 解密缓冲区大小 1024 字节:64.348 MiB/秒 0.15 周期/字节 (500.21 毫秒内 32.19 MiB)
ARIA-256 加密缓冲区大小 1024 字节:56.530 MiB/秒 0.17 周期/字节 (500.84 毫秒内 28.31 MiB)
ARIA-256 解密缓冲区大小 1024 字节:57.929 MiB/秒 0.16 周期/字节 (500.61 毫秒内 29.00 MiB)
Blowfish 加密缓冲区大小 1024 字节:190.608 MiB/秒 0.05 周期/字节 (500.04 毫秒内 95.31 MiB)
Blowfish 解密缓冲区大小 1024 字节:189.101 MiB/秒 0.05 周期/字节 (500.06 毫秒内 94.56 MiB)
CAST-128 加密缓冲区大小 1024 字节:144.880 MiB/秒 0.07 周期/字节 (500.41 毫秒内 72.50 MiB)
CAST-128 解密缓冲区大小 1024 字节:96.747 MiB/秒 0.10 周期/字节 (500.01 毫秒内 48.38 MiB)
Camellia-128 加密缓冲区大小 1024 字节:123.243 MiB/秒 0.08 周期/字节 (500.54 毫秒内 61.69 MiB)
Camellia-128 解密缓冲区大小 1024 字节:126.847 MiB/秒 0.08 周期/字节 (500.11 毫秒内 63.44 MiB)
Camellia-192 加密缓冲区大小 1024 字节:89.149 MiB/秒 0.11 周期/字节 (500.56 毫秒内 44.62 MiB)
Camellia-192 解密缓冲区大小 1024 字节:94.894 MiB/秒 0.10 周期/字节 (500.56 毫秒内 47.50 MiB)
Camellia-256 加密缓冲区大小 1024 字节:93.874 MiB/秒 0.10 周期/字节 (500.67 毫秒内 47.00 MiB)
Camellia-256 解密缓冲区大小 1024 字节:94.130 MiB/秒 0.10 周期/字节 (500.64 毫秒内 47.12 MiB)
DES 加密缓冲区大小 1024 字节:85.281 MiB/秒 0.11 周期/字节 (500.55 毫秒内 42.69 MiB)
DES 解密缓冲区大小 1024 字节:84.516 MiB/秒 0.11 周期/字节 (500.65 毫秒内 42.31 MiB)
TripleDES 加密缓冲区大小 1024 字节:29.991 MiB/秒 0.32 周期/字节 (500.15 毫秒内 15.00 MiB)
TripleDES 解密缓冲区大小 1024 字节:29.934 MiB/秒 0.32 周期/字节 (501.10 毫秒内 15.00 MiB)
GOST-28147-89(R3411_94_TestParam) 加密缓冲区大小 1024 字节:50.919 MiB/秒 0.19 周期/字节 (500.80 毫秒内 25.50 MiB)
GOST-28147-89(R3411_94_TestParam) 解密缓冲区大小 1024 字节:51.425 MiB/秒 0.19 周期/字节 (500.72 毫秒内 25.75 MiB)
IDEA [sse2] 加密缓冲区大小 1024 字节:328.479 MiB/秒 0.03 周期/字节 (500.03 毫秒内 164.25 MiB)
IDEA [sse2] 解密缓冲区大小 1024 字节:327.594 MiB/秒 0.03 周期/字节 (500.05 毫秒内 163.81 MiB)
Noekeon [ssse3] 加密缓冲区大小 1024 字节:375.612 MiB/秒 0.03 周期/字节 (500.02 毫秒内 187.81 MiB)
Noekeon [ssse3] 解密缓冲区大小 1024 字节:394.831 MiB/秒 0.02 周期/字节 (500.06 毫秒内 197.44 MiB)
SHACAL2 [avx2] 加密缓冲区大小 1024 字节:756.350 MiB/秒 0.01 周期/字节 (500.02 毫秒内 378.19 MiB)
SHACAL2 [avx2] 解密缓冲区大小 1024 字节:785.263 MiB/秒 0.01 周期/字节 (500.07 毫秒内 392.69 MiB)
SM4 加密缓冲区大小 1024 字节:184.094 MiB/秒 0.05 周期/字节 (500.08 毫秒内 92.06 MiB)
SM4 解密缓冲区大小 1024 字节:181.869 MiB/秒 0.05 周期/字节 (500.02 毫秒内 90.94 MiB)
Serpent [avx2] 加密缓冲区大小 1024 字节:422.790 MiB/秒 0.02 周期/字节 (500.10 毫秒内 211.44 MiB)
Serpent [avx2] 解密缓冲区大小 1024 字节:478.477 MiB/秒 0.02 周期/字节 (500.02 毫秒内 239.25 MiB)
Threefish-512 加密缓冲区大小 1024 字节:580.505 MiB/秒 0.02 周期/字节 (500.10 毫秒内 290.31 MiB)
Threefish-512 解密缓冲区大小 1024 字节:533.542 MiB/秒 0.02 周期/字节 (500.08 毫秒内 266.81 MiB)
Twofish 加密缓冲区大小 1024 字节:265.074 MiB/秒 0.04 周期/字节 (500.10 毫秒内 132.56 MiB)
Twofish 解密缓冲区大小 1024 字节:261.103 MiB/秒 0.04 周期/字节 (500.04 毫秒内 130.56 MiB)
AES-128/CBC/PKCS7 512820 密钥调度/秒;0.00 毫秒/操作 17.00 周期/操作 (0.00 毫秒内 2 个操作)
AES-128/CBC/PKCS7 加密缓冲区大小 1024 字节:638.110 MiB/秒 0.01 周期/字节 (500.01 毫秒内 319.06 MiB)
AES-128/CBC/PKCS7 解密缓冲区大小 1024 字节:1276.272 MiB/秒 0.01 周期/字节 (500.04 毫秒内 638.19 MiB)
CTR-BE(AES-128) 281690 密钥调度/秒;0.00 毫秒/操作 33.50 周期/操作 (0.01 毫秒内 2 个操作)
CTR-BE(AES-128) 加密缓冲区大小 1024 字节:2140.244 MiB/秒 0.00 周期/字节 (500.00 毫秒内 1070.12 MiB)
CTR-BE(AES-128) 解密缓冲区大小 1024 字节:2239.735 MiB/秒 0.00 周期/字节 (500.00 毫秒内 1119.88 MiB)
AES-128/EAX 2396 密钥调度/秒;0.42 毫秒/操作 4171.50 周期/操作 (0.83 毫秒内 2 个操作)
AES-128/EAX 加密缓冲区大小 1024 字节:369.054 MiB/秒 0.03 周期/字节 (500.10 毫秒内 184.56 MiB)
AES-128/EAX 解密缓冲区大小 1024 字节:357.718 MiB/秒 0.03 周期/字节 (500.04 毫秒内 178.88 MiB)
AES-128/OCB 3711 密钥调度/秒;0.27 毫秒/操作 2693.00 周期/操作 (0.54 毫秒内 2 个操作)
AES-128/OCB 加密缓冲区大小 1024 字节:873.005 MiB/秒 0.01 周期/字节 (500.07 毫秒内 436.56 MiB)
AES-128/OCB 解密缓冲区大小 1024 字节:791.588 MiB/秒 0.01 周期/字节 (500.02 毫秒内 395.81 MiB)
AES-128/GCM(16) [clmul] 178571 密钥调度/秒;0.01 毫秒/操作 53.50 周期/操作 (0.01 毫秒内 2 个操作)
AES-128/GCM(16) [clmul] 加密缓冲区大小 1024 字节:1239.798 MiB/秒 0.01 周期/字节 (500.03 毫秒内 619.94 MiB)
AES-128/GCM(16) [clmul] 解密缓冲区大小 1024 字节:1090.140 MiB/秒 0.01 周期/字节 (500.05 毫秒内 545.12 MiB)
AES-128/XTS 434782 密钥调度/秒;0.00 毫秒/操作 20.00 周期/操作 (0.00 毫秒内 2 个操作)
AES-128/XTS 加密缓冲区大小 1024 字节:1495.448 MiB/秒 0.01 周期/字节 (500.02 毫秒内 747.75 MiB)
AES-128/XTS 解密缓冲区大小 1024 字节:1417.414 MiB/秒 0.01 周期/字节 (500.03 毫秒内 708.75 MiB)
AES-128/SIV 256410 密钥调度/秒;0.00 毫秒/操作 38.50 周期/操作 (0.01 毫秒内 2 个操作)
AES-128/SIV 加密缓冲区大小 1024 字节:364.532 MiB/秒 0.03 周期/字节 (500.30 毫秒内 182.38 MiB)
AES-128/SIV 解密缓冲区大小 1024 字节:341.272 MiB/秒 0.03 周期/字节 (500.15 毫秒内 170.69 MiB)
Ascon-AEAD128 833333 密钥调度/秒;0.00 毫秒/操作 11.00 周期/操作 (0.00 毫秒内 2 个操作)
Ascon-AEAD128 加密缓冲区大小 1024 字节:272.391 MiB/秒 0.04 周期/字节 (500.20 毫秒内 136.25 MiB)
Ascon-AEAD128 解密缓冲区大小 1024 字节:240.530 MiB/秒 0.04 周期/字节 (500.20 毫秒内 120.31 MiB)
Serpent/CBC/PKCS7 392156 密钥调度/秒;0.00 毫秒/操作 23.00 周期/操作 (0.01 毫秒内 2 个操作)
Serpent/CBC/PKCS7 加密缓冲区大小 1024 字节:73.662 MiB/秒 0.13 周期/字节 (500.59 毫秒内 36.88 MiB)
Serpent/CBC/PKCS7 解密缓冲区大小 1024 字节:406.882 MiB/秒 0.02 周期/字节 (500.15 毫秒内 203.50 MiB)
CTR-BE(Serpent) 185185 密钥调度/秒;0.01 毫秒/操作 52.00 周期/操作 (0.01 毫秒内 2 个操作)
CTR-BE(Serpent) 加密缓冲区大小 1024 字节:411.747 MiB/秒 0.02 周期/字节 (500.00 毫秒内 205.88 MiB)
CTR-BE(Serpent) 解密缓冲区大小 1024 字节:404.461 MiB/秒 0.02 周期/字节 (500.05 毫秒内 202.25 MiB)
Serpent/EAX 103092 密钥调度/秒;0.01 毫秒/操作 96.50 周期/操作 (0.02 毫秒内 2 个操作)
Serpent/EAX 加密缓冲区大小 1024 字节:54.217 MiB/秒 0.18 周期/字节 (500.30 毫秒内 27.12 MiB)
Serpent/EAX 解密缓冲区大小 1024 字节:54.054 MiB/秒 0.18 周期/字节 (500.66 毫秒内 27.06 MiB)
Serpent/OCB 165289 密钥调度/秒;0.01 毫秒/操作 61.00 周期/操作 (0.01 毫秒内 2 个操作)
Serpent/OCB 加密缓冲区大小 1024 字节:297.659 MiB/秒 0.03 周期/字节 (500.15 毫秒内 148.88 MiB)
Serpent/OCB 解密缓冲区大小 1024 字节:311.894 MiB/秒 0.03 周期/字节 (500.17 毫秒内 156.00 MiB)
Serpent/GCM(16) [clmul] 107526 密钥调度/秒;0.01 毫秒/操作 90.50 周期/操作 (0.02 毫秒内 2 个操作)
Serpent/GCM(16) [clmul] 加密缓冲区大小 1024 字节:286.769 MiB/秒 0.03 周期/字节 (500.18 毫秒内 143.44 MiB)
Serpent/GCM(16) [clmul] 解密缓冲区大小 1024 字节:296.997 MiB/秒 0.03 周期/字节 (500.01 毫秒内 148.50 MiB)
Serpent/XTS 217391 密钥调度/秒;0.00 毫秒/操作 44.50 周期/操作 (0.01 毫秒内 2 个操作)
Serpent/XTS 加密缓冲区大小 1024 字节:348.904 MiB/秒 0.03 周期/字节 (500.14 毫秒内 174.50 MiB)
Serpent/XTS 解密缓冲区大小 1024 字节:368.860 MiB/秒 0.03 周期/字节 (500.02 毫秒内 184.44 MiB)
Serpent/SIV 130718 密钥调度/秒;0.01 毫秒/操作 75.00 周期/操作 (0.02 毫秒内 2 个操作)
Serpent/SIV 加密缓冲区大小 1024 字节:54.553 MiB/秒 0.17 周期/字节 (500.66 毫秒内 27.31 MiB)
Serpent/SIV 解密缓冲区大小 1024 字节:54.453 MiB/秒 0.18 周期/字节 (500.43 毫秒内 27.25 MiB)
ChaCha20Poly1305 118343 密钥调度/秒;0.01 毫秒/操作 82.00 周期/操作 (0.02 毫秒内 2 个操作)
ChaCha20Poly1305 加密缓冲区大小 1024 字节:632.923 MiB/秒 0.02 周期/字节 (500.06 毫秒内 316.50 MiB)
ChaCha20Poly1305 解密缓冲区大小 1024 字节:614.418 MiB/秒 0.02 周期/字节 (500.07 毫秒内 307.25 MiB)
RC4 加密缓冲区大小 1024 字节:361.709 MiB/秒 0.03 周期/字节 (500.06 毫秒内 180.88 MiB)
RC4 write_keystream 缓冲区大小 1024 字节:357.107 MiB/秒 0.03 周期/字节 (500.03 毫秒内 178.56 MiB)
Salsa20 加密缓冲区大小 1024 字节:422.111 MiB/秒 0.02 周期/字节 (500.02 毫秒内 211.06 MiB)
Salsa20 write_keystream 缓冲区大小 1024 字节:418.032 MiB/秒 0.02 周期/字节 (500.11 毫秒内 209.06 MiB)
ChaCha(20) [avx2] 加密缓冲区大小 1024 字节:1777.999 MiB/秒 0.01 周期/字节 (500.00 毫秒内 889.00 MiB)
ChaCha(20) [avx2] write_keystream 缓冲区大小 1024 字节:1966.411 MiB/秒 0.00 周期/字节 (500.02 毫秒内 983.25 MiB)

支持的哈希方法包括:Ascon-Hash256、BLAKE2b、BLAKE2s、BLAKE2s(128)、BLAKE2s(256)、GOST-34.11、Keccak-1600(256)、Keccak-1600(512)、Keccak-1600、MD4、MD5、RIPEMD-160、SHA-1、SHA-256、SHA-224、SHA-256、SHA-512、SHA-3、SHA-3(224)、SHA-3(256)、SHA-3(384)、SHA-3(512)、SHAKE-128(128)、SHAKE-256(256)、Skein-512、Skein-512(256)、Skein-512(384)、SM3、Streebog-256、Streebog-512 和 Whirlpool [ 这里 ]:

SHA-1 [avx2] 哈希缓冲区大小 1024 字节:594.121 MiB/秒 0.02 周期/字节 (500.00 毫秒内 297.06 MiB)
SHA-256 [avx2] 哈希缓冲区大小 1024 字节:312.927 MiB/秒 0.03 周期/字节 (500.12 毫秒内 156.50 MiB)
SHA-512 [avx2] 哈希缓冲区大小 1024 字节:419.802 MiB/秒 0.02 周期/字节 (500.09 毫秒内 209.94 MiB)
SHA-3(256) [bmi2] 哈希缓冲区大小 1024 字节:271.624 MiB/秒 0.04 周期/字节 (500.00 毫秒内 135.81 MiB)
SHA-3(512) [bmi2] 哈希缓冲区大小 1024 字节:152.033 MiB/秒 0.06 周期/字节 (500.30 毫秒内 76.06 MiB)
Ascon-Hash256 哈希缓冲区大小 1024 字节:102.154 MiB/秒 0.09 周期/字节 (500.47 毫秒内 51.12 MiB)
RIPEMD-160 哈希缓冲区大小 1024 字节:328.654 MiB/秒 0.03 周期/字节 (500.15 毫秒内 164.38 MiB)
Skein-512(512) 哈希缓冲区大小 1024 字节:283.807 MiB/秒 0.03 周期/字节 (500.12 毫秒内 141.94 MiB)
BLAKE2b(512) 哈希缓冲区大小 1024 字节:676.241 MiB/秒 0.01 周期/字节 (500.01 毫秒内 338.12 MiB)
Whirlpool 哈希缓冲区大小 1024 字节:95.368 MiB/秒 0.10 周期/字节 (500.04 毫秒内 47.69 MiB)
SHAKE-128 [bmi2] 输入缓冲区大小 1024 字节:323.143 MiB/秒 0.03 周期/字节 (250.00 毫秒内 80.79 MiB)
SHAKE-128 [bmi2] 输出缓冲区大小 1024 字节:341.948 MiB/秒 0.03 周期/字节 (250.00 毫秒内 85.49 MiB)
SHAKE-256 [bmi2] 输入缓冲区大小 1024 字节:279.011 MiB/秒 0.03 周期/字节 (250.00 毫秒内 69.75 MiB)
SHAKE-256 [bmi2] 输出缓冲区大小 1024 字节:280.039 MiB/秒 0.03 周期/字节 (250.00 毫秒内 70.01 MiB)
Ascon-XOF128 输入缓冲区大小 1024 字节:106.530 MiB/秒 0.09 周期/字节 (250.00 毫秒内 26.63 MiB)
Ascon-XOF128 输出缓冲区大小 1024 字节:108.283 MiB/秒 0.09 周期/字节 (250.00 毫秒内 27.07 MiB)

MAC:

CMAC(AES-128) mac 缓冲区大小 1024 字节:719.183 MiB/秒 0.01 周期/字节 (500.05 毫秒内 359.62 MiB)
HMAC(SHA-256) mac 缓冲区大小 1024 字节:255.753 MiB/秒 0.04 周期/字节 (500.24 毫秒内 127.94 MiB)

公钥签名包括 RSA、ECDSA、Ed25519、Ed448、ML-DSA 和 SLH-DSA:

RSA-1024 80 密钥生成/秒;12.39 毫秒/操作 123950 周期/操作(508 毫秒内 41 个操作)
RSA-1024 3533 签名/秒;0.28 毫秒/操作 2830.92 周期/操作(500.14 毫秒内 1767 个操作)
RSA-1024 88530 验证/秒;0.01 毫秒/操作 112.99 周期/操作(500.01 毫秒内 44266 个操作)
RSA-2048 13 密钥生成/秒;71.73 毫秒/操作 717262 周期/操作(646 毫秒内 9 个操作)
RSA-2048 858 签名/秒;1.17 毫秒/操作 11655 周期/操作(501 毫秒内 430 个操作)
RSA-2048 32977 验证/秒;0.03 毫秒/操作 303.30 周期/操作(500.04 毫秒内 16490 个操作)
RSA-3072 4 密钥生成/秒;231.23 毫秒/操作 2312323 周期/操作(694 毫秒内 3 个操作)
RSA-3072 294 签名/秒;3.39 毫秒/操作 33933 周期/操作(502 毫秒内 148 个操作)
RSA-3072 13033 验证/秒;0.08 毫秒/操作 767.37 周期/操作(500.11 毫秒内 6518 个操作)
RSA-4096 1 密钥生成/秒;593.05 毫秒/操作 5930546 周期/操作(1186 毫秒内 2 个操作)
RSA-4096 130 签名/秒;7.67 毫秒/操作 76658 周期/操作(506 毫秒内 66 个操作)
RSA-4096 7534 验证/秒;0.13 毫秒/操作 1327.46 周期/操作(500.12 毫秒内 3768 个操作)

ECDSA-secp256r1 19531 密钥生成/秒;0.05 毫秒/操作 512.19 周期/操作(500.01 毫秒内 9766 个操作)
ECDSA-secp256r1 13659 签名/秒;0.07 毫秒/操作 732.22 周期/操作(500.02 毫秒内 6830 个操作)
ECDSA-secp256r1 7253 验证/秒;0.14 毫秒/操作 1378.68 周期/操作(500.15 毫秒内 3628 个操作)
ECDSA-secp384r1 ```
SLH-DSA-SHA2-128s 6 keygen/sec; 146.66 ms/op 1466618 cycles/op (4 ops in 587 ms)
SLH-DSA-SHA2-128s 0 sign/sec; 1102.37 ms/op 11023687 cycles/op (1 op in 1102 ms)
SLH-DSA-SHA2-128s 914 verify/sec; 1.09 ms/op 10941 cycles/op (458 ops in 501 ms)
SLH-DSA-SHA2-128f 439 keygen/sec; 2.28 ms/op 22750 cycles/op (220 ops in 501 ms)
SLH-DSA-SHA2-128f 12 sign/sec; 77.53 ms/op 775273 cycles/op (7 ops in 543 ms)
SLH-DSA-SHA2-128f 180 verify/sec; 5.53 ms/op 55277 cycles/op (92 ops in 508 ms)
SLH-DSA-SHA2-192s 4 keygen/sec; 216.09 ms/op 2160909 cycles/op (3 ops in 648 ms)
SLH-DSA-SHA2-192s 0 sign/sec; 2191.28 ms/op 21912815 cycles/op (1 op in 2191 ms)
SLH-DSA-SHA2-192s 582 verify/sec; 1.72 ms/op 17168 cycles/op (292 ops in 501 ms)
SLH-DSA-SHA2-192f 295 keygen/sec; 3.38 ms/op 33787 cycles/op (148 ops in 500 ms)
SLH-DSA-SHA2-192f 11 sign/sec; 90.88 ms/op 908840 cycles/op (6 ops in 545 ms)
SLH-DSA-SHA2-192f 209 verify/sec; 4.77 ms/op 47691 cycles/op (106 ops in 505 ms)
SLH-DSA-SHA2-256s 7 keygen/sec; 135.49 ms/op 1354887 cycles/op (4 ops in 542 ms)
SLH-DSA-SHA2-256s 0 sign/sec; 1735.80 ms/op 17357956 cycles/op (1 op in 1736 ms)
SLH-DSA-SHA2-256s 431 verify/sec; 2.32 ms/op 23197 cycles/op (216 ops in 501 ms)
SLH-DSA-SHA2-256f 113 keygen/sec; 8.83 ms/op 88316 cycles/op (58 ops in 512 ms)
SLH-DSA-SHA2-256f 5 sign/sec; 174.61 ms/op 1746084 cycles/op (3 ops in 524 ms)
SLH-DSA-SHA2-256f 215 verify/sec; 4.64 ms/op 46423 cycles/op (108 ops in 501 ms)
SLH-DSA-SHAKE-128s 7 keygen/sec; 142.62 ms/op 1426230 cycles/op (4 ops in 570 ms)
SLH-DSA-SHAKE-128s 0 sign/sec; 1091.38 ms/op 10913812 cycles/op (1 op in 1091 ms)
SLH-DSA-SHAKE-128s 923 verify/sec; 1.08 ms/op 10835 cycles/op (462 ops in 501 ms)
SLH-DSA-SHAKE-128f 437 keygen/sec; 2.28 ms/op 22833 cycles/op (220 ops in 502 ms)
SLH-DSA-SHAKE-128f 18 sign/sec; 54.50 ms/op 544974 cycles/op (10 ops in 545 ms)
SLH-DSA-SHAKE-128f 322 verify/sec; 3.10 ms/op 30965 cycles/op (162 ops in 502 ms)
SLH-DSA-SHAKE-192s 4 keygen/sec; 211.23 ms/op 2112333 cycles/op (3 ops in 634 ms)
SLH-DSA-SHAKE-192s 0 sign/sec; 1984.50 ms/op 19844965 cycles/op (1 op in 1984 ms)
SLH-DSA-SHAKE-192s 634 verify/sec; 1.58 ms/op 15752 cycles/op (318 ops in 501 ms)
SLH-DSA-SHAKE-192f 301 keygen/sec; 3.32 ms/op 33182 cycles/op (151 ops in 501 ms)
SLH-DSA-SHAKE-192f 11 sign/sec; 85.31 ms/op 853084 cycles/op (6 ops in 512 ms)
SLH-DSA-SHAKE-192f 214 verify/sec; 4.67 ms/op 46697 cycles/op (108 ops in 504 ms)
SLH-DSA-SHAKE-256s 7 keygen/sec; 140.70 ms/op 1407048 cycles/op (4 ops in 563 ms)
SLH-DSA-SHAKE-256s 0 sign/sec; 1749.52 ms/op 17495207 cycles/op (1 op in 1750 ms)
SLH-DSA-SHAKE-256s 422 verify/sec; 2.36 ms/op 23648 cycles/op (212 ops in 501 ms)
SLH-DSA-SHAKE-256f 114 keygen/sec; 8.73 ms/op 87268 cycles/op (58 ops in 506 ms)
SLH-DSA-SHAKE-256f 4 sign/sec; 216.06 ms/op 2160615 cycles/op (3 ops in 648 ms)
SLH-DSA-SHAKE-256f 207 verify/sec; 4.83 ms/op 48254 cycles/op (104 ops in 502 ms)

HSS-LMS-SHA-256,HW(10,1) 4 keygen/sec; 219.16 ms/op 2191585 cycles/op (3 ops in 657 ms)
HSS-LMS-SHA-256,HW(10,1) 4 sign/sec; 219.56 ms/op 2195578 cycles/op (3 ops in 659 ms)
HSS-LMS-SHA-256,HW(10,1) 21951 verify/sec; 0.05 ms/op 455.74 cycles/op (10978 ops in 500.10 ms)
HSS-LMS-SHAKE-256(256),HW(10,1) 1 keygen/sec; 665.27 ms/op 6652728 cycles/op (1 op in 665 ms)
HSS-LMS-SHAKE-256(256),HW(10,1) 1 sign/sec; 664.74 ms/op 6647407 cycles/op (1 op in 665 ms)
HSS-LMS-SHAKE-256(256),HW(10,1) 4984 verify/sec; 0.20 ms/op 2006.90 cycles/op (2494 ops in 500.34 ms)
HSS-LMS-SHAKE-256(192),HW(10,1) 2 keygen/sec; 492.53 ms/op 4925280 cycles/op (2 ops in 985 ms)
HSS-LMS-SHAKE-256(192),HW(10,1) 1 sign/sec; 504.29 ms/op 5042892 cycles/op (2 ops in 1009 ms)
HSS-LMS-SHAKE-256(192),HW(10,1) 5298 verify/sec; 0.19 ms/op 1888.28 cycles/op (2708 ops in 511.13 ms)
HSS-LMS-Truncated(SHA-256,192),HW(10,1) 2 keygen/sec; 398.47 ms/op 3984710 cycles/op (2 ops in 797 ms)
HSS-LMS-Truncated(SHA-256,192),HW(10,1) 3 sign/sec; 317.01 ms/op 3170127 cycles/op (2 ops in 634 ms)
HSS-LMS-Truncated(SHA-256,192),HW(10,1) 8126 verify/sec; 0.12 ms/op 1231.49 cycles/op (4064 ops in 500.10 ms)
HSS-LMS-SHA-256,HW(10,1),HW(10,1) 3 keygen/sec; 323.71 ms/op 3237066 cycles/op (2 ops in 647 ms)
HSS-LMS-SHA-256,HW(10,1),HW(10,1) 1 sign/sec; 866.35 ms/op 8663458 cycles/op (1 op in 866 ms)
HSS-LMS-SHA-256,HW(10,1),HW(10,1) 3790 verify/sec; 0.26 ms/op 2639.34 cycles/op (1896 ops in 500.24 ms)
HSS-LMS-SHA-256,HW(10,1),HW(10,1),HW(10,1) 3 keygen/sec; 265.18 ms/op 2651760 cycles/op (2 ops in 530 ms)
HSS-LMS-SHA-256,HW(10,1),HW(10,1),HW(10,1) 1 sign/sec; 793.74 ms/op 7937368 cycles/op (1 op in 794 ms)
HSS-LMS-SHA-256,HW(10,1),HW(10,1),HW(10,1) 4214 verify/sec; 0.24 ms/op 2373.64 cycles/op (2108 ops in 500.24 ms)

对于密钥交换,我们有 DH, ECDH, X25519, X448, ML-KEM 和 FrodoKEM:

DH-2048 655 keygen/sec; 1.53 ms/op 15258 cycles/op (330 ops in 503 ms)
DH-2048 1134 key agreements/sec; 0.88 ms/op 8815.73 cycles/op (568 ops in 500.63 ms)
DH-3072 254 keygen/sec; 3.92 ms/op 39253 cycles/op (128 ops in 502 ms)
DH-3072 309 key agreements/sec; 3.23 ms/op 32318 cycles/op (156 ops in 504 ms)
DH-4096 245 keygen/sec; 4.07 ms/op 40693 cycles/op (123 ops in 500 ms)
DH-4096 273 key agreements/sec; 3.65 ms/op 36535 cycles/op (138 ops in 504 ms)
DH-6144 98 keygen/sec; 10.15 ms/op 101524 cycles/op (50 ops in 508 ms)
DH-6144 101 key agreements/sec; 9.85 ms/op 98484 cycles/op (52 ops in 512 ms)
DH-8192 54 keygen/sec; 18.36 ms/op 183580 cycles/op (28 ops in 514 ms)
DH-8192 60 key agreements/sec; 16.52 ms/op 165180 cycles/op (32 ops in 529 ms)

ECDH-secp256r1 19021 keygen/sec; 0.05 ms/op 525.89 cycles/op (9511 ops in 500.02 ms)
ECDH-secp256r1 6422 key agreements/sec; 0.16 ms/op 1557.23 cycles/op (3212 ops in 500.13 ms)
ECDH-secp384r1 8172 keygen/sec; 0.12 ms/op 1223.82 cycles/op (4087 ops in 500.08 ms)
ECDH-secp384r1 2644 key agreements/sec; 0.38 ms/op 3781.55 cycles/op (1324 ops in 500.63 ms)
ECDH-secp521r1 3596 keygen/sec; 0.28 ms/op 2781.70 cycles/op (1799 ops in 500.21 ms)
ECDH-secp521r1 1229 key agreements/sec; 0.81 ms/op 8131.51 cycles/op (616 ops in 500.83 ms)
ECDH-brainpool256r1 15688 keygen/sec; 0.06 ms/op 637.63 cycles/op (7845 ops in 500.06 ms)
ECDH-brainpool256r1 4610 key agreements/sec; 0.22 ms/op 2169.20 cycles/op (2306 ops in 500.16 ms)
ECDH-brainpool384r1 5904 keygen/sec; 0.17 ms/op 1693.87 cycles/op (2953 ops in 500.14 ms)
ECDH-brainpool384r1 1752 key agreements/sec; 0.57 ms/op 5705.31 cycles/op (878 ops in 500.90 ms)
ECDH-brainpool512r1 3450 keygen/sec; 0.29 ms/op 2898.63 cycles/op (1726 ops in 500.26 ms)
ECDH-brainpool512r1 922 key agreements/sec; 1.08 ms/op 10844 cycles/op (462 ops in 501 ms)

X25519 18584 keygen/sec; 0.05 ms/op 538.15 cycles/op (9293 ops in 500.05 ms)
X25519 18862 key agreements/sec; 0.05 ms/op 530.17 cycles/op (9432 ops in 500.04 ms)

X448 3063 keygen/sec; 0.33 ms/op 3264.77 cycles/op (1532 ops in 500.14 ms)
X448 3004 key agreements/sec; 0.33 ms/op 3328.74 cycles/op (1504 ops in 500.62 ms)

ML-KEM-512 18375 keygen/sec; 0.05 ms/op 544.42 cycles/op (9188 ops in 500.02 ms)
ML-KEM-512 46766 KEM encrypt/sec; 0.02 ms/op 213.98 cycles/op (14896 ops in 318.52 ms)
ML-KEM-512 29791 KEM decrypt/sec; 0.03 ms/op 335.87 cycles/op (14896 ops in 500.00 ms)
ML-KEM-768 10084 keygen/sec; 0.10 ms/op 991.80 cycles/op (5043 ops in 500.05 ms)
ML-KEM-768 32467 KEM encrypt/sec; 0.03 ms/op 308.01 cycles/op (10384 ops in 319.83 ms)
ML-KEM-768 20766 KEM decrypt/sec; 0.05 ms/op 481.79 cycles/op (10384 ops in 500.03 ms)
ML-KEM-1024 6273 keygen/sec; 0.16 ms/op 1594.30 cycles/op (3137 ops in 500.04 ms)
ML-KEM-1024 24488 KEM encrypt/sec; 0.04 ms/op 408.57 cycles/op (8017 ops in 327.38 ms)
ML-KEM-1024 16031 KEM decrypt/sec; 0.06 ms/op 624.02 cycles/op (8017 ops in 500.08 ms)

FrodoKEM-640-SHAKE 133 keygen/sec; 7.51 ms/op 75098 cycles/op (69 ops in 518 ms)
FrodoKEM-640-SHAKE 51 KEM encrypt/sec; 19.46 ms/op 194596 cycles/op (26 ops in 506 ms)
FrodoKEM-640-SHAKE 56 KEM decrypt/sec; 17.56 ms/op 175639 cycles/op (26 ops in 457 ms)
FrodoKEM-640-AES 223 keygen/sec; 4.48 ms/op 44813 cycles/op (112 ops in 502 ms)
FrodoKEM-640-AES 279 KEM encrypt/sec; 3.58 ms/op 35878 cycles/op (134 ops in 480 ms)
FrodoKEM-640-AES 267 KEM decrypt/sec; 3.74 ms/op 37375 cycles/op (134 ops in 501 ms)
FrodoKEM-eFrodoKEM-640-SHAKE 218 keygen/sec; 4.57 ms/op 45751 cycles/op (110 ops in 503 ms)
FrodoKEM-eFrodoKEM-640-SHAKE 187 KEM encrypt/sec; 5.34 ms/op 53377 cycles/op (94 ops in 502 ms)
FrodoKEM-eFrodoKEM-640-SHAKE 186 KEM decrypt/sec; 5.37 ms/op 53694 cycles/op (94 ops in 505 ms)
FrodoKEM-eFrodoKEM-640-AES 429 keygen/sec; 2.33 ms/op 23284 cycles/op (215 ops in 501 ms)
FrodoKEM-eFrodoKEM-640-AES 357 KEM encrypt/sec; 2.80 ms/op 28005 cycles/op (175 ops in 490 ms)
FrodoKEM-eFrodoKEM-640-AES 348 KEM decrypt/sec; 2.87 ms/op 28709 cycles/op (175 ops in 502 ms)
FrodoKEM-976-SHAKE 90 keygen/sec; 11.01 ms/op 110073 cycles/op (46 ops in 506 ms)
FrodoKEM-976-SHAKE 92 KEM encrypt/sec; 10.86 ms/op 108653 cycles/op (46 ops in 500 ms)
FrodoKEM-976-SHAKE 90 KEM decrypt/sec; 11.01 ms/op 110106 cycles/op (46 ops in 506 ms)
FrodoKEM-976-AES 197 keygen/sec; 5.06 ms/op 50598 cycles/op (99 ops in 501 ms)
FrodoKEM-976-AES 164 KEM encrypt/sec; 6.07 ms/op 60729 cycles/op (81 ops in 492 ms)
FrodoKEM-976-AES 161 KEM decrypt/sec; 6.20 ms/op 62042 cycles/op (81 ops in 503 ms)
FrodoKEM-eFrodoKEM-976-SHAKE 101 keygen/sec; 9.88 ms/op 98791 cycles/op (51 ops in 504 ms)
FrodoKEM-eFrodoKEM-976-SHAKE 91 KEM encrypt/sec; 10.98 ms/op 109770 cycles/op (46 ops in 505 ms)
FrodoKEM-eFrodoKEM-976-SHAKE 90 KEM decrypt/sec; 11.09 ms/op 110927 cycles/op (46 ops in 510 ms)
FrodoKEM-eFrodoKEM-976-AES 196 keygen/sec; 5.10 ms/op 50958 cycles/op (99 ops in 504 ms)
FrodoKEM-eFrodoKEM-976-AES 161 KEM encrypt/sec; 6.20 ms/op 61993 cycles/op (79 ops in 490 ms)
FrodoKEM-eFrodoKEM-976-AES 157 KEM decrypt/sec; 6.35 ms/op 63479 cycles/op (79 ops in 501 ms)
FrodoKEM-1344-SHAKE 51 keygen/sec; 19.39 ms/op 193882 cycles/op (26 ops in 504 ms)
FrodoKEM-1344-SHAKE 48 KEM encrypt/sec; 20.64 ms/op 206393 cycles/op (25 ops in 516 ms)
FrodoKEM-1344-SHAKE 48 KEM decrypt/sec; 20.77 ms/op 207701 cycles/op (25 ops in 519 ms)
FrodoKEM-1344-AES 107 keygen/sec; 9.32 ms/op 93210 cycles/op (54 ops in 503 ms)
FrodoKEM-1344-AES 85 KEM encrypt/sec; 11.72 ms/op 117219 cycles/op (43 ops in 504 ms)
FrodoKEM-1344-AES 83 KEM decrypt/sec; 12.01 ms/op 120128 cycles/op (43 ops in 517 ms)
FrodoKEM-eFrodoKEM-1344-SHAKE 52 keygen/sec; 18.93 ms/op 189327 cycles/op (27 ops in 511 ms)
FrodoKEM-eFrodoKEM-1344-SHAKE 48 KEM encrypt/sec; 20.79 ms/op 207889 cycles/op (24 ops in 499 ms)
FrodoKEM-eFrodoKEM-1344-SHAKE 47 KEM decrypt/sec; 20.90 ms/op 209043 cycles/op (24 ops in 502 ms)
FrodoKEM-eFrodoKEM-1344-AES 107 keygen/sec; 9.34 ms/op 93420 cycles/op (54 ops in 504 ms)
FrodoKEM-eFrodoKEM-1344-AES 88 KEM encrypt/sec; 11.26 ms/op 112583 cycles/op (44 ops in 495 ms)
FrodoKEM-eFrodoKEM-1344-AES 87 KEM decrypt/sec; 11.46 ms/op 114651 cycles/op (44 ops in 504 ms)
  • 原文链接: billatnapier.medium.com/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

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