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(飞腾)等定制高性能优化版本 |
源码 | 开源于Gitee和Github
|
联系我们获取进阶版支持 |
性能对比
在 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 的海光服务器。