ブロック暗号とAES
ブロック暗号は、秘密鍵を用いて固定サイズのデータブロックを暗号化します。Advanced Encryption Standard (AES) は、現代において主流のブロック暗号であり、展開されているほとんどの共通鍵暗号の基盤となっています。
Definition
ブロック暗号とは、固定長の平文ビットブロックを、同じ長さの暗号文ビットブロックにマッピングする、鍵付きの可逆関数です。AESは、128ビットブロックを操作し、128ビット、192ビット、または256ビットの鍵を使用する標準化されたブロック暗号です。
Scope
このトピックでは、ブロック暗号の構造とセキュリティについて扱います。これには、換字-順列ネットワークやFeistel構造、特にAESアルゴリズム、そして固定ブロックのプリミティブを任意の長さのメッセージに対応させるための運用モード(CBC、CTR、GCMなど)が含まれます。また、暗号解読攻撃(差分解読法、線形解読法)や、擬似ランダム順列としてのブロック暗号の概念についても考察します。ストリーム暗号と鍵なしハッシュ関数は別途扱われるため、ここでは除外します。
Core questions
- 大規模なブロックに対する安全な順列は、単純で分析可能なラウンド操作からどのように構築されるのでしょうか?
- AESがFeistelネットワークではなく、換字-順列ネットワークとして構成されているのはなぜですか?
- 運用モードは、ブロック暗号を任意の長さのメッセージに安全に拡張するためにどのように機能しますか?
- 差分解読法と線形解読法は、暗号の攻撃に対する耐性について何を明らかにしますか?
- ブロック暗号を擬似ランダム順列としてモデル化するとはどういう意味ですか?
Key concepts
- ブロックサイズと鍵長
- 換字-順列ネットワーク
- Feistelネットワーク
- S-box
- ラウンドと鍵スケジュール
- 運用モード(ECB、CBC、CTR、GCM)
- 差分解読法と線形解読法
- 擬似ランダム順列
Key theories
- 換字-順列ネットワーク
- AESは、非線形バイト換字(SubBytes)、線形混合(ShiftRows、MixColumns)、および鍵加算を組み合わせたラウンドを繰り返します。換字と順列を交互に行うことで、シャノンの混乱と拡散の目標が達成され、差分解読攻撃および線形攻撃に対する証明可能な耐性が得られます。
- 運用モード
- ブロック暗号単独では1つのブロックしか暗号化できません。CBC、CTR、および認証付きGCMなどのモードは、長いメッセージを安全に暗号化し、認証付きモードでは完全性を確保するために、ブロックをどのように連結またはカウントするかを規定します。
Mechanisms
AESは、128ビットのブロックを4x4バイト行列として配置し、10、12、または14ラウンド(それぞれ128ビット、192ビット、256ビット鍵の場合)で処理します。各ラウンドでは、SubBytes(固定の非線形S-box)、ShiftRows(バイト順列)、MixColumns(有限体上の線形変換)、およびAddRoundKey(鍵スケジュールからのラウンド鍵とのXOR)が適用されます。これらの組み合わせにより、数ラウンド内で強力な拡散が提供され、既知の暗号解読法に対する耐性が得られます。
Clinical relevance
AESは、展開されているシステムで遍く利用されています。TLSで保護されたウェブトラフィックのバルクデータ、フルディスク暗号化(BitLocker、FileVault、LUKS)、Wi-Fi(WPA2/WPA3)、VPN、および暗号化メッセージングを保護しています。ハードウェアAES命令(AES-NI)により、高スループットのリンクを透過的に暗号化するのに十分な速度が実現されています。
Evidence & guidelines
AESはNIST FIPS 197で規定されており、NSAのCommercial National Security Algorithm Suiteの下で、TOP SECRETまでの機密情報(192ビットまたは256ビット鍵を使用)の保護に承認されています。ブロック暗号のモードはNIST SP 800-38シリーズで標準化されています。古いDESは非推奨であり、AES-GCMおよびAES-CCMが推奨される認証付きモードです。
History
DES(1977年)がその56ビット鍵では弱くなりすぎた後、NISTは後継を選択するための公開国際コンペティション(1997年〜2000年)を実施しました。15の候補が公に暗号解読され、ベルギーの暗号学者Joan DaemenとVincent RijmenによるRijndael設計が選ばれ、FIPS 197(2001年)でAESとして標準化されました。DESに対して開発された差分解読法(BihamとShamir)および線形解読法(Matsui)は、AESの設計基準を形成しました。
Key figures
- Joan Daemen
- Vincent Rijmen
- Horst Feistel
- Eli Biham
- Adi Shamir
- Mitsuru Matsui
Related topics
Seminal works
- daemen2002
- nist2001aes
- katz2020
Frequently asked questions
- ECBモードを避けるべきなのはなぜですか?
- Electronic Codebook (ECB) モードでは、同一の平文ブロックは同一の暗号文ブロックに暗号化されるため、データ内の構造が漏洩します(画像暗号化時に顕著に現れることで有名です)。CTR、CBC、またはGCMなどの安全なモードは、初期化ベクトルまたはカウンターを使用することで、繰り返しが隠蔽されます。
- AES-256はAES-128よりも意味のあるセキュリティ向上をもたらしますか?
- どちらも古典的な攻撃に対して安全であると考えられています。AES-128はすでに、実行可能な総当たり攻撃の範囲を超えています。AES-256はより大きなセキュリティマージンを提供し、長期的な機密性とポスト量子暗号へのヘッジとして好まれます。これは、Groverのアルゴリズムが実効鍵長を半分にするに過ぎないためです。