先日、OpenSSL 3.5とwolfSSL 5.8.0の両方がリリースされました。x86_64 Linux PCでベンチマークを実行しましたので、結果をご紹介します。
ベンチマークデータは次のようにして得ることができます。
なお、出力は見やすくなるよう一部編集しています。
OpenSSL
構成・ビルド
$ ./Configure
$ make all
ベンチマーク出力
47317 ML-KEM-512 KEM keygen ops in 0.99s
72114 ML-KEM-512 KEM encaps ops in 1.00s
46625 ML-KEM-512 KEM decaps ops in 1.00s
31811 ML-KEM-768 KEM keygen ops in 1.00s
55855 ML-KEM-768 KEM encaps ops in 0.99s
35390 ML-KEM-768 KEM decaps ops in 1.00s
20942 ML-KEM-1024 KEM keygen ops in 1.00s
42164 ML-KEM-1024 KEM encaps ops in 0.99s
27043 ML-KEM-1024 KEM decaps ops in 1.00
wolfSSL
構成・ビルド
$ ./configure --enable-mlkem=yes,cache-a --enable-dilithium \
--enable-all-asm
$ make all
ベンチマーク出力
ML-KEM 512 128 key gen 293900 ops took 1.000 sec
ML-KEM 512 128 encap 271900 ops took 1.000 sec
ML-KEM 512 128 decap 237300 ops took 1.000 sec
ML-KEM 768 192 key gen 163900 ops took 1.000 sec
ML-KEM 768 192 encap 152500 ops took 1.000 sec
ML-KEM 768 192 decap 200700 ops took 1.000 sec
ML-KEM 1024 256 key gen 109200 ops took 1.000 sec
ML-KEM 1024 256 encap 106200 ops took 1.000 sec
ML-KEM 1024 256 decap 143600 ops took 1.001 sec
まとめ
wolfSSLはすべての操作とパラメータセットにおいて、OpenSSLよりも格段に高速であることが分かります。wolfSSLでは、優れた効率とパフォーマンスに関する長い伝統を誇りに思っています。
ただし、これは完全に同等な比較ではないことを申し添えます。具体的には、wolfSSLのビルド構成ではアセンブリ最適化を有効にしていますが、現時点でOpenSSLにはそのような最適化機構がありません。同様に、wolfSSLではCache A最適化(*)を有効にしていますが、こちらもOpenSSLには実装されていない機構です。
* Cache A最適化とは
鍵生成時、非カプセル化に使用する行列Aを保存します。鍵は8KBと大きくなりますが、非カプセル化が大幅に高速化されます。同じオブジェクトで鍵生成と非カプセル化を実行する場合はオンにしてください。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/post-quantum-benchmark-comparison-ml-kem-wolfssl-5-8-0-vs-openssl-3-5