wolfCrypt に残っていた liboqs への依存を解消しました。wolfCrypt のどのアルゴリズムも外部ライブラリを必要としなくなり、ラッパー層もビルドへの組み込みもリンク時の依存も不要になりました。
これにより、組み込み、RTOS、Linux カーネル、サーバー、セキュアブート、ハードウェアを利用する各環境に向けて設計したネイティブの耐量子暗号実装への移行を完了しました。
liboqs が不要になった理由
liboqs は、規格や実装がまだ発展途上だった時期に耐量子暗号アルゴリズムを試すための有用な手段でした。
耐量子暗号のエコシステムが成熟するにつれ、wolfSSL は liboqs 経由の実装を、最適化したネイティブの wolfCrypt 実装へ置き換えてきました。NIST が標準化したアルゴリズムはすでにネイティブコードへ移行しており、ステートフルなハッシュベース署名も wolfCrypt がネイティブに提供していました。
最後まで liboqs を使用していたのが Falcon です。Falcon を wolfCrypt に直接実装したことで、liboqs を必要とするモジュールはなくなりました。
ネイティブ実装として新たに追加した FrodoKEM
FrodoKEM は、wolfCrypt のネイティブ耐量子暗号のラインアップに最近追加したアルゴリズムの一つです。
ML-KEM と並ぶもう一つの格子ベースの鍵カプセル化メカニズムであり、耐量子暗号への移行にあたってアルゴリズムの多様性を確保したい組織にとって、特に検討に値するアルゴリズムです。
wolfCrypt は FrodoKEM-640、FrodoKEM-976、FrodoKEM-1344 に対応し、AES 版、SHAKE 版、一時鍵向けの eFrodoKEM 版も提供します。メモリ使用量を抑えるオプションや、x86-64 と ARM 向けの最適化も用意しており、組み込み機器やリソースの限られたシステムでも FrodoKEM がより現実的な選択肢になります。
最後の依存を解消した Falcon
Falcon は、wolfCrypt で最後まで liboqs を経由していた実験的なアルゴリズムでした。
新しいネイティブ実装は Falcon-512 と Falcon-1024 に対応し、高速化機構を備えた x86-64 や AArch64 のシステムから Linux カーネルモジュール、Cortex-M マイコンまで、幅広いプラットフォームで動作します。
Falcon は、NIST が FIPS 206 として策定中の耐量子デジタル署名アルゴリズム FN-DSA の基礎でもあります。この規格が確定するまで、現在の Falcon API は実験的な位置付けです。
ネイティブの Falcon 実装は、組み込み環境での移植性も向上させています。32 ビット ARM Cortex-M33 でのテストでは、wolfCrypt は Falcon-1024 の鍵生成、署名、検証を完了しました。liboqs が使用する PQClean の clean 実装は、同じターゲットで鍵は生成できたものの、生成した秘密鍵がいずれも検証を通らず、署名は完了できませんでした。
Falcon をネイティブ化したことで、対応する耐量子暗号アルゴリズムを減らすことなく liboqs を削除できました。
ネイティブで完結する耐量子暗号のラインアップ
wolfCrypt の耐量子暗号対応の中核は、NIST が 2024 年に標準化したアルゴリズムです。
- ML-KEM(FIPS 203):耐量子暗号による鍵確立
- ML-DSA(FIPS 204):格子ベースのデジタル署名
- SLH-DSA(FIPS 205):ステートレスなハッシュベース署名
これらの FIPS 標準アルゴリズムは、実運用の耐量子 TLS、セキュアな通信、証明書システム、ファームウェア署名など、長期にわたって使用される用途の基盤となります。
wolfCrypt は、NIST SP 800-208 で承認されたステートフルなハッシュベース署名アルゴリズムのネイティブ実装も備えています。
- LMS および HSS
- XMSS および XMSS-MT
これらはセキュアブートやファームウェア認証など、署名を管理された環境で行うシステムに特に適しています。
特定の要件や将来の規格に向けたアルゴリズムも加え、ネイティブのラインアップを揃えました。
- FrodoKEM:代替となる耐量子鍵カプセル化メカニズム
- Falcon:将来の FN-DSA に備えるためのアルゴリズム
実験から実運用へ
liboqs は、幅広い研究、相互接続性の検証、プロトタイピングのためのプラットフォームとして、引き続き重要な役割を果たします。liboqs プロジェクト自身のドキュメントでも、量子耐性のある暗号を試すためのソフトウェアと説明されており、機密性の高い実運用データの保護に用いることは推奨されていません。
実運用での導入には、これとは異なる要件があります。組み込みシステム、セキュアブート環境、RTOS アプリケーション、カーネルモジュール、ハードウェアを利用する製品では、フットプリントの制御、プラットフォームごとの最適化、予測可能なメモリ挙動、対象を絞ったテスト、そして暗号ライブラリ本体との直接的な統合が必要になります。
wolfCrypt のネイティブ実装は、この直接的な統合を次のような形で実現します。
- 暗号コールバックによるハードウェアおよびセキュアエレメントへのオフロード
- メモリ使用量とスタック使用量を抑えた構成、および検証専用の構成
- アーキテクチャごとの高速化
- カーネルで動作する実行パス
- wolfCrypt 全体で統一された API とテスト基盤
ネイティブに一本化した耐量子暗号対応
liboqs の廃止により、wolfCrypt は次の範囲をカバーする、統合された単一のネイティブラインアップを提供します。
- FIPS 203 ML-KEM
- FIPS 204 ML-DSA
- FIPS 205 SLH-DSA
- NIST SP 800-208 の LMS/HSS および XMSS/XMSS-MT
- ネイティブの FrodoKEM
- ネイティブの Falcon と将来の FN-DSA
耐量子暗号を、評価段階から組み込みや IoT、セキュアブート、TLS、カーネル、そして実運用の各環境へと進めるチームに対し、wolfCrypt は liboqs を必要とせずに完全なネイティブ対応を提供します。
もし弊社製品についてご質問があれば、お問い合わせ窓口info@wolfssl.jpまでご連絡をお願い致します。
原文:https://www.wolfssl.com/wolfcrypt-retires-liboqs-as-native-post-quantum-support-expands/