AES / Rijndael (2001)(エーイーエス)
Joan Daemen / Vincent Rijmen 設計のブロック暗号。NIST 2001年標準化 (FIPS 197)・128/192/256bit 鍵・現代対称暗号のデファクト。
概要
AES (Advanced Encryption Standard) はJoan Daemen / Vincent Rijmen (ベルギー暗号学者) が「Rijndael」(発音「Rain-Doll」または「Rain-Dahl」) として開発、1998年NIST AES コンペティション (1997-2000・15候補→5最終→Rijndael 優勝) で2000年10月優勝・2001年11月26日FIPS 197 として標準化されたブロック暗号。SP-Network (Substitution-Permutation Network)・128bit ブロック・128/192/256bit 鍵で10/12/14ラウンド処理、現代対称暗号のデファクト。
AES 主要仕様
| 項目 | 仕様 |
|---|---|
| ブロックサイズ | 128bit (16 byte) |
| 鍵サイズ | 128 / 192 / 256 bit |
| ラウンド数 | 10 / 12 / 14 |
| 構造 | SP-Network |
| 動作モード | ECB (非推奨) / CBC / CTR / GCM (AEAD・主流) |
| HW加速 | Intel AES-NI / ARM AES / RISC-V K Ext |
| 用途 | TLS / Disk暗号化 / VPN / Wi-Fi |
NIST AES コンペティション (1997-2000)
DES (1977) の後継選定:
| 候補 | 設計者 | 結果 |
|---|---|---|
| MARS | IBM | 最終5候補 |
| RC6 | RSA Lab. | 最終5候補 |
| Rijndael | Daemen/Rijmen | 優勝 |
| Serpent | Anderson/Biham/Knudsen | 最終5候補 |
| Twofish | Schneier/Kelsey/Whiting | 最終5候補 |
審査基準: セキュリティ・性能・実装容易性・柔軟性・ライセンス。Rijndael は全方面で最高評価。
AES ラウンド処理 (1ラウンド)
- SubBytes: S-Box 非線形変換 (16 byte 個別置換)
- ShiftRows: 行シフト (1/2/3 byte ずらし)
- MixColumns: 列混合 (最終ラウンド省略)
- AddRoundKey: ラウンド鍵XOR
10/12/14 ラウンドで暗号強度を保証、現代も主要攻撃で実用的弱点なし。
動作モード比較
| モード | 用途 | 並列性 | 認証 |
|---|---|---|---|
| ECB | 非推奨 | 高 | なし |
| CBC | 旧TLS / Disk | 低 (シリアル) | なし |
| CTR | 高性能 | 高 | なし |
| GCM | TLS 1.3 / IPsec | 高 | あり (認証付AEAD) |
| XTS | Disk暗号化 (BitLocker) | 高 | なし |
| CCM | IoT (限定帯域) | 中 | あり |
現代TLS 1.3 / Disk暗号化はGCM / XTS が標準、CBC は廃止傾向 (BEAST / Lucky 13 / POODLE 攻撃源)。
ハードウェア加速 (AES-NI)
| プラットフォーム | 実装 | 速度 |
|---|---|---|
| Intel Westmere+ (2010-) | AES-NI 命令 | 3-5 GB/s |
| AMD Bulldozer+ (2011-) | AES-NI 命令 | 同 |
| ARM v8 | AES 拡張 | 1-3 GB/s |
| Apple Silicon M1-M4 | AES 専用ユニット | 5-15 GB/s |
| RISC-V K Extension | RVB / RVK | 専用設計 |
ソフトウェア (テーブルルックアップ) 比10-50倍高速、TLS / Disk暗号化のCPUオーバーヘッドを実質ゼロに。
主要採用先
| 用途 | プロトコル / 製品 |
|---|---|
| TLS 1.2/1.3 | AES-128/256-GCM (主流) |
| HTTPS | TLS 経由 |
| WireGuard | ChaCha20 / AES-GCM 選択 |
| IPSec | AES-CBC / AES-GCM |
| Wi-Fi WPA2/3 | AES-CCM |
| BitLocker | AES-128/256-XTS |
| FileVault 2 | AES-128-XTS |
| LUKS (Linux) | AES-XTS |
| ZFS Encryption | AES-256-GCM/CCM |
| AWS S3 SSE | AES-256 |
関連用語との違い
- vs DES / 3DES: 古い (DES 56bit) / 新 (AES 128+bit)
- vs ChaCha20: SW実装 (ChaCha) / HW実装 (AES)
- vs RSA / ECC: 対称 (AES) / 非対称 (公開鍵)
FAQ
Q1: AES-256 は AES-128 より安全? A: 量子コンピュータ対策で AES-256 推奨 (Grover アルゴリズムで AES-128 は実効64bit)。実用上はAES-128 も十分強い。
Q2: GCM vs XTS? A: GCM = 通信用 (TLS / VPN) 認証付・XTS = ストレージ用 (BitLocker / FileVault) 認証なし。用途別使い分け。
Q3: Rijndael の発音? A: 「Rain-Doll」(レイン・ドール) または「Rain-Dahl」(レイン・ダール)。Daemen / Rijmen の名前由来オランダ語発音。