PQMagic算法性能测试

PQMagic-CPU 版本

算法支持 PQMagic-std PQMagic-adv
ML-KEM (FIPS 203)
Kyber
Aigis-enc
ML-DSA (FIPS 204)
SLH-DSA (FIPS 205)
Dilithium
Aigis-sig
SPHINCS-Alpha
特性 跨平台/架构 高度兼容 针对x64(海光)、ARM(飞腾)等定制高性能优化版本
源码 开源于GiteeGithub 联系我们获取进阶版支持
  • 所有算法均支持国密 SM3 哈希模式,符合国密标准。
  • Kyber 和 Dilithium 算法基于 pq-crystalsliboqs 开发。
  • SLH-DSA 算法基于 SPHINCS+ 开发。

性能对比

在 x86 平台上对比广泛使用的开源库 liboqs ,结果显示 PQMagic 在标准算法 ML-DSA 与 ML-KEM 较 liboqs 性能均有大幅提升。

Platform CPU OS
X86 AMD Ryzen5 9600x Debian 12

ML_DSA (PARAMS = 87)

Op (times/s) liboqs PQMagic
Keypair 23422 52501 (2.24x)
Sign 12557 23697 (1.89x)
Verify 24067 49144 (2.04x)

ML_KEM (PARAMS = 1024)

Op (times/s) liboqs PQMagic
Keypair 92625 159207 (1.72x)
Encaps 89307 154704 (1.73x)
Decaps 90962 137517 (1.51x)

更多测试数据

ML-DSA
PARAMS Op (times/s) liboqs PQMagic
44 L2 Keypair 62960 126281 (2.00x)
Sign 24371 36957 (1.52x)
Verify 62915 105373 (1.67x)
65 L3 Keypair 36571 76031 (2.08x)
Sign 15072 26499 (1.76x)
Verify 37749 71310 (1.89x)
ML-KEM
PARAMS Op (times/s) liboqs PQMagic
512 L1 Keypair 204099 295508 (1.45x)
Encaps 195530 293481 (1.50x)
Decaps 210654 263000 (1.25x)
768 L3 Keypair 123744 190755 (1.54x)
Encaps 126135 193864 (1.54x)
Decaps 131180 174447 (1.33x)
Aigis-sig
L1 L3
Op (times/s) Aigis-sig1 Aigis-sig2 Aigis-sig3
Keypair 81541 51003 44298
Sign 22194 14757 13160
Verify 96708 71315 55712
Aigis-enc
L1 L3 L5
Op (times/s) Aigis-enc1 Aigis-enc2 Aigis-enc3 Aigis-enc4
Keypair 268696 190438 177310 137779
Encaps 155602 122465 115930 65277
Decaps 189022 147691 143708 76294

PQMagic-GPU 版本

测试数据为PQMagic-GPU版本的cuML-DSA与cuML-KEM对比pq-crystal中对应算法在CPU上的实现。测试结果显示该GPU实现对比CPU中的Ref版本性能提升了105 ~ 191倍,对比AVX2版本性能提升了22 ~ 42倍。

  CPU GPU
Platform AMD Ryzen 7 7800X3D 8-Core Processor
Debian 12
NVIDIA GeForce RTX 4090
Ubuntu 22.04
Params Operations
(times/s)
CPU GPU
Ref AVX2 cuML-DSA
44(L2) Keypair 17752.138 63576.699 2671645 (150×)
Sign 3666.686 21103.298 682533 (186×)
Verify 16058.926 57424.582 1750861 (109×)
65(L3) Keypair 10165.008 36910.061 1492426 (147×)
Sign 2395.523 13126.496 458552 (191×)
Verify 10469.618 36313.197 1156607 (110×)
87(L5) Keypair 6432.374 24067.215 906261 (141×)
Sign 1833.678 11586.688 335913 (183×)
Verify 6068.500 23469.792 715883 (118×)
Params Operations
(times/s)
CPU GPU
Ref AVX2 cuML-KEM
512(L1) KeyGen 44707.594 213533.089 4708003 (105×)
Enc 38228.028 194603.274 5100618 (133×)
Dec 28829.241 187968.752 4809295 (167×)
768(L3) KeyGen 26305.643 126405.867 3219630 (122×)
Enc 24090.463 129550.990 3379326 (140×)
Dec 18877.514 122252.039 3175115 (168×)
1024(L5) KeyGen 17290.587 99691.061 2229679 (129×)
Enc 16624.885 100478.308 2239284 (135×)
Dec 13336.832 93135.016 2229790 (167×)

历史测试数据

测试说明

  • -std 版本为纯C的高兼容性版本,-adv 为高性能优化版本。
  • SLH-DSA 与 SPHINCS-Alpha 算法后缀 -f 表示 fast 模式,-s 表示 small 模式,在同一安全参数下,small 相对 fast 签名长度小,但是签名时间长。针对不同的应用场景,可选择合适的安全参数。
  • 算法在不同平台上进行测试,其中 server 为搭载 Intel(R) Xeon(R) Platinum 8358 CPU 的服务器,PC 为搭载 AMD Ryzen 7 7800X3D 8-Core Processor 的个人电脑,Hygon 为搭载 Hygon C86 7390 32-core Processor 的海光服务器。

PQMagic | 联系我们
Copyright © Post-Quantum Magic Project. This site uses Just the Docs, a documentation theme for Jekyll.