ZHDA333 September 2026 AM62L
# OpenSSL native (through EVP provider dispatch)
openssl speed -seconds 3 -kem-algorithms ML-KEM-512 ML-KEM-768 ML-KEM-1024 X25519MLKEM768
# liboqs direct (bypasses OpenSSL EVP)
oqs_speed_kem -d 3 ML-KEM-512
oqs_speed_kem -d 3 ML-KEM-768
oqs_speed_kem -d 3 ML-KEM-1024
# wolfSSL native (--enable-armasm build)
wolfcryptbenchmark -ml-kem-512 -ml-kem-768 -ml-kem-1024| 算法 | OpenSSL 原生密钥生成/秒 | liboqs (NEON) 密钥生成/秒 | wolfSSL 密钥生成/秒 (+armasm) | OpenSSL 封装/秒 | liboqs 封装/秒 | wolfSSL 封装/秒 (+armasm) | OpenSSL 解封装/秒 | liboqs 解封装/秒 | wolfSSL 解封装/秒 (+armasm) |
|---|---|---|---|---|---|---|---|---|---|
| ML-KEM-512 | 4,906 | 12,829 | 18,897 | 5,743 | 11,026 | 18,355 | 3,783 | 10,007 | 12,876 |
| ML-KEM-768 | 3,130 | 7,886 | 11,881 | 3,963 | 7,299 | 11,727 | 2,668 | 6,482 | 8,521 |
| ML-KEM-1024 | 2,145 | 5,394 | 7,820 | 2,882 | 4,963 | 6,423 | 1,994 | 4,405 | 5,572 |
使用 --enable-armasm 时,wolfSSL 为所有加密原语使能 aarch64 汇编 — 包括 SHAKE/Keccak (sha3_asm.S)。ML-KEM 性能主要由 SHAKE-128/256 (Keccak) 决定,因此 NEON Keccak 汇编使 wolfSSL 相比其纯 C 基线提升 60–100%,并在 ML-KEM-512 上在密钥生成方面提升 47%、在封装方面提升 67% 超越 liboqs。
liboqs 的 NEON NTT 路径优化了多项式运算,但 wolfSSL 的 NEON Keccak 速度优势足以弥补这一差距。如果不使用 --enable-armasm,wolfSSL ML-KEM 将运行纯 C Keccak,并落后于 liboqs。有关前后对比,请参阅节 3.5。