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 | 联系我们获取进阶版支持 |
所有算法均支持国密 SM3 哈希模式,符合国密标准;同时也支持 SHAKE 哈希模式,与国际标准无缝衔接。
性能对比
在 x86 平台 (环境为下文 PC ) 上对比广泛使用的开源库 liboqs , 结果显示 PQMagic 在标准算法 ML-DSA 与 ML-KEM 较 liboqs 性能均有大幅提升。
ML_DSA (PARAMS = 87)
Op (times/s) | PQMagic | liboqs | botan | boringssl |
---|---|---|---|---|
Keypair | 52501 (2.24x) | 23422 | 5768 | 6252 |
Sign | 23697 (1.89x) | 12557 | 3537 | 1411 |
Verify | 49144 (2.04x) | 24067 | 25137 | 5522 |
ML_KEM (PARAMS = 1024)
Op (times/s) | PQMagic | liboqs | botan | boringssl |
---|---|---|---|---|
Keypair | 159207 (1.72x) | 92625 | 20808 | 28108 |
Encaps | 154704 (1.73x) | 89307 | 72433 | 53147 |
Decaps | 137517 (1.51x) | 90962 | 43582 | 34292 |
更多测试数据
Platform | CPU | OS |
---|---|---|
PC | AMD Ryzen5 9600x | Debian 12 |
Server | Intel Xeon Platinum 8358 | Ubuntu 22.04 LTS |
Hygon | Hygon Dhyana Processor | CTyunOS 22.06.3 |
算法:
参数:
哈希:
平台:
测试说明
-
-std
版本为纯C的高兼容性版本,-adv
为高性能优化版本。 - SLH-DSA 与 SPHINCS-Alpha 算法后缀
-f
表示 fast 模式,-s
表示 small 模式,在同一安全参数下,small 相对 fast 签名长度小,但是签名时间长。针对不同的应用场景,可选择合适的安全参数。
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×) |