mcwolf ― wolfSSLによる耐量子暗号Classic McElieceのサポート

この度、耐量子暗号アルゴリズム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