この度、耐量子暗号アルゴリズムClassic McElieceの実装をwolfSSLへ統合する新しいプロジェクト「mcwolf」をスタートしました。mcwolfへの統合にご尽力いただいたDaniel J. Bernsteinさんに感謝いたします。
Classic McElieceとは、現在ISOによる標準化が検討されているコードベースの耐量子暗号アルゴリズムです。こちらに示されるように、すでに多数のアプリケーションでサポートされています。
Classic McElieceをwolfSSLに統合するmcwolfは、wolfSSLに対して実行可能なスクリプトとパッチで構成されています。
64-bit 整数にてベクトル化されている公式vec実装を使用し、様々なプラットフォームに最適化できる、移植可能なソリューションとして提供いたします。詳細はこちらからご確認いただけます。
なぜ今、Classic McElieceが注目されているのか
Classic McElieceは、1978年に考案された非対称鍵暗号の1種です。現在普及しているコンピュータによる攻撃に耐えられるだけでなく、Shorのアルゴリズムによる影響を回避できるため、耐量子アルゴリズムの1種として昨今注目を浴びています。量子耐性を有することから、機密データの長期的なセキュリティ確保に貢献できます。
* Shorのアルゴリズムをはじめとする、耐量子アルゴリズムに関する情報はこちらのWebinarアーカイブにて詳しくご紹介しています。ぜひご覧ください。
Classic McElieceの主な特徴
- 考案から約50年に及ぶ長い歴史のあるMcEliece暗号システムに基づいた、強力なセキュリティ基盤です。
- 他の耐量子KEMと比較して、比較的小さな暗号文サイズで動作します。
mcwolfプロジェクトの主な特徴
- プラットフォーム間で移植可能な、Classic McElieceの公式vec実装を使用しています。
- 包括的なテストを含んでおり、同一のコードがSUPERCOPとlibmcelieceで広範囲にテストされています
この実装は、以下に示すようにClassic McElieceの様々なパラメータセットをサポートしています。
- mceliece348864
- mceliece348864pc
- mceliece460896
- mceliece460896pc
- mceliece6688128
- mceliece6688128pc
- mceliece6960119
- mceliece6960119pc
- mceliece8192128
- mceliece8192128pc
mcwolfのビルド手順
mcwolfのビルドは簡単です。
まずは https://cr.yp.to/2025/20250426-mcwolf/notes.html にアクセスし、ビルドスクリプトをダウンロードします。その後、Linuxマシン実行可能属性を付加し、スクリプトを実行するだけです。
ただし、curl、python3、git、autoconf、libtool、その他一般的なgccビルドツールがすでにインストールされている必要があります。
mcwolf実装には、既存のtestingフレームワークに統合されたテストが含まれています。
出力例の一部を以下に示します。
MCELIECE348864 test passed!
MCELIECE460896 test passed!
MCELIECE6688128 test passed!
MCELIECE6960119 test passed!
MCELIECE8192128 test passed!
...
------------------------------------------------------------------------------
wolfSSL version 5.8.0
------------------------------------------------------------------------------
Math: ??????Multi-Precision: Wolf(SP) word-size=64 bits=4096 sp_int.c
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
mceliece 348864 key gen 100 ops took 4.492 sec, avg 44.922 ms, 22.261 ops/sec
mceliece 348864 encap 18100 ops took 1.005 sec, avg 0.056 ms, 18007.073 ops/sec
mceliece 348864 decap 6500 ops took 1.005 sec, avg 0.155 ms, 6466.727 ops/sec
mceliece 460896 key gen 100 ops took 14.307 sec, avg 143.068 ms, 6.990 ops/sec
mceliece 460896 encap 9800 ops took 1.005 sec, avg 0.103 ms, 9751.777 ops/sec
mceliece 460896 decap 2200 ops took 1.009 sec, avg 0.459 ms, 2180.508 ops/sec
mceliece 6688128 key gen 100 ops took 30.491 sec, avg 304.906 ms, 3.280 ops/sec
mceliece 6688128 encap 5900 ops took 1.007 sec, avg 0.171 ms, 5856.450 ops/sec
mceliece 6688128 decap 2000 ops took 1.001 sec, avg 0.500 ms, 1998.431 ops/sec
mceliece 6960119 key gen 100 ops took 27.325 sec, avg 273.249 ms, 3.660 ops/sec
mceliece 6960119 encap 6300 ops took 1.008 sec, avg 0.160 ms, 6248.913 ops/sec
mceliece 6960119 decap 2100 ops took 1.022 sec, avg 0.487 ms, 2055.315 ops/sec
mceliece 8192128 key gen 100 ops took 35.826 sec, avg 358.255 ms, 2.791 ops/sec
mceliece 8192128 encap 5500 ops took 1.001 sec, avg 0.182 ms, 5495.955 ops/sec
mceliece 8192128 decap 2100 ops took 1.044 sec, avg 0.497 ms, 2010.617 ops/sec
現状、McElieceはML-KEMと比較して高速とは言えません。しかし、ML-KEMとは全く異なるアプローチによって暗号強度を担保しており、約50年に渡って突破されていない実績を有しています。
お客様のユースケースに対応する、最適な耐量子アルゴリズムをお選びください。
まとめ
mcwolfは量子コンピューティングの脅威からアプリケーションを保護するための、もう1つの耐量子KEMをもたらすプロジェクトです。ぜひ、お手元の環境でお試しください。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/announcing-mcwolf-classic-mceliece-support-with-wolfssl