商用国家安全保障アルゴリズム (CNSA) について
商用国家安全保障アルゴリズム(Commercial National Security Algorithm、略称 CNSA)は、
アメリカ国家安全保障局(NSA)が公開した
暗号化アルゴリズムのセットです。これは、従来のNSA Suite B
暗号化スイートに代わるものであり、特にポスト量子
暗号への移行期間中に、最高レベルの
国家機密情報を保護するために設計されています。
CNSA 1.0 (2015年7月公開)
2015年7月に公開された最初のバージョンであるCNSA 1.0には、以下のアルゴリズムが含まれていました。
Advanced Encryption Standard (AES): 256ビット鍵を使用
楕円曲線ディフィー・ヘルマン鍵共有 (ECDH): P-384(384ビット鍵長)を使用
楕円曲線DSA (ECDSA): P-384を使用
SHA-2: 384ビット長の
ハッシュ関数を使用
ディフィー・ヘルマン鍵共有: 最低3072ビットの鍵長を使用
RSA[[暗号]]: 最低3072ビットの鍵長を使用
CNSA 1.0では、
RSA[[暗号]]の扱いが「サポート対象」から「レガシー」へと変更された点が注目されます。これは、将来的なポスト量子
暗号への移行を見据えた措置であると考えられます。また、Suite Bと同様に、
Digital Signature Algorithm (DSA) は含まれていませんでした。
CNSA 2.0 (2022年9月公開)
2022年9月には、ポスト量子
暗号アルゴリズムの最初の推奨を含むCNSA 2.0が公開されました。このバージョンでは、大幅な変更が加えられています。
Advanced Encryption Standard (AES): 256ビット鍵を使用(変更なし)
CRYSTALS-Kyber: レベルVパラメータを使用した鍵交換アルゴリズム
CRYSTALS-Dilithium: レベルVパラメータを使用したデジタル署名アルゴリズム
SHA-2: 384ビット長および512ビット長の
ハッシュ関数を使用
eXtended Merkle Signature Scheme (XMSS): 全てのパラメータをサポート
Leighton-Micali Signatures (LMS): SHA256/192を推奨
CNSA 1.0 から CNSA 2.0 への主な変更点
CNSA 2.0は、CNSA 1.0と比較して、以下の点が大きく異なります。
1.
ポスト量子アルゴリズムの導入: XMSS/LMSといったポスト量子アルゴリズムを、ソフトウェアおよびファームウェアの署名に分離して使用することが推奨されています。
2.
SHA-512の採用: SHA-2のバリアントとして、512ビット長
ハッシュ関数の使用が許可されました。
3.
CRYSTALS-Kyber および CRYSTALS-Dilithium の採用: これらのアルゴリズムは、標準規格が完成し、FIPSによって認定された実装がリリースされた後に義務付けられる予定です。これは、ポスト量子
暗号への移行を見据えた重要なステップです。
4.
RSA、ディフィー・ヘルマン鍵共有、楕円曲線暗号の廃止: CNSA 2.0では、これらの従来の
暗号アルゴリズムは廃止されました。
アルゴリズム詳細
以下に、CNSA 2.0およびCNSA 1.0で採用されたアルゴリズムの詳細をまとめます。
CNSA 2.0
暗号化: AES-256
鍵交換: CRYSTALS-Kyber (Level V)
デジタル署名: CRYSTALS-Dilithium (Level V)、XMSS, LMS
ハッシュ関数: SHA-2 (384-bit, 512-bit)
CNSA 1.0
暗号化: AES-256
鍵交換: ECDH (P-384), Diffie-Hellman (min 3072-bit)
デジタル署名: ECDSA (P-384)
ハッシュ関数: SHA-2 (384-bit)
まとめ
CNSAは、現代の
暗号技術の進化に対応し、ポスト量子時代においても国家安全保障を確保するための重要な取り組みです。特にCNSA 2.0では、従来の
暗号アルゴリズムからポスト量子
暗号アルゴリズムへの移行が明確に示されており、今後の情報セキュリティにおいて重要な役割を果たすと考えられます。これにより、より安全な情報通信環境が実現されることが期待されます。