AES(Advanced Encryption Standard) えーいーえす
AESとは
AES(Advanced Encryption Standard/先進暗号化標準) は、アメリカ国立標準技術研究所(NIST)が2001年に標準化した共通鍵ブロック暗号です。「共通鍵」とは、暗号化するときと復号(解読)するときに同じ鍵を使う方式のこと。宅配ボックスの暗証番号を送り手と受け手の両方が知っているイメージです。
AESはそれ以前に使われていたDES(Data Encryption Standard) が解読されやすくなったことを受けて、世界公募で選ばれた後継規格です。ベルギーの研究者が開発した「Rijndael(ラインダール)」アルゴリズムが採用されました。Wi-Fi(WPA2/WPA3)、HTTPS通信、VPN、ストレージ暗号化など、私たちが日常的に使うほぼすべてのセキュリティ技術に組み込まれており、現代のデジタルセキュリティの基盤と言っても過言ではありません。
システム発注の場面では「どの暗号化方式を使っているか?」という確認が重要で、AES-256 が明示されていれば、現時点では最高水準のセキュリティが確保されていると判断できます。
AESの構造と鍵長
AESは128ビット固定のブロックにデータを区切り、鍵を使って複数回の変換処理(ラウンド)を繰り返して暗号化します。
| 種別 | 鍵長 | ラウンド数 | 用途例 |
|---|---|---|---|
| AES-128 | 128ビット | 10回 | 一般的な通信・アプリ |
| AES-192 | 192ビット | 12回 | 中〜高セキュリティ用途 |
| AES-256 | 256ビット | 14回 | 政府機密・金融・VPN |
鍵長とは? 金庫の鍵の「桁数」のようなもの。桁数が多いほど総当たり攻撃に強い。AES-256は2²⁵⁶通り(天文学的な数)の組み合わせがあり、現在のスーパーコンピューターでも解読は事実上不可能です。
覚え方
「AES=金庫の三段階グレード」
- AES-128:鍵が1本(十分安全)
- AES-192:鍵が1本半(より安全)
- AES-256:鍵が2本(最高水準)
数字が大きいほど「桁数の多い暗証番号」と覚えると直感的です。
4つの変換ステップ(ラウンド処理)
各ラウンドで以下の4つの処理を繰り返してデータを複雑に変換します。
1. SubBytes … 各バイトを別の値に置き換える(S-Boxによる置換)
2. ShiftRows … 行をずらして並び替える
3. MixColumns … 列を数学的に混合する
4. AddRoundKey … ラウンド鍵とXOR演算で結合する
この多段変換のおかげで、一部を解読しても全体が読めない強靭な構造になっています。
歴史と背景
- 1977年 — DES(56ビット鍵)がアメリカ標準暗号として採用
- 1997年 — NISTがDESの後継規格を公募開始。世界15カ国から21案が提出される
- 1998年 — ベルギーの研究者Joan DaemenとVincent Rijmenが開発した「Rijndael」が最終候補に
- 1999年 — 56ビットDESが56時間以内に解読されることが実証され、旧規格の危うさが明確に
- 2001年 — NISTがRijndaelをAESとして正式標準化(FIPS PUB 197)
- 2003年 — アメリカ政府が機密情報保護にAES-128/192/256を採用
- 2004年〜 — Wi-Fi規格(WPA2)、TLS、BitLockerなど主要技術に次々と採用が広がる
- 2010年代〜 — スマートフォンのストレージ暗号化にも標準搭載。事実上「世界の暗号化標準」に定着
AESと他の暗号方式の比較
| 方式 | 鍵の種類 | 速度 | 主な用途 | 現在の推奨 |
|---|---|---|---|---|
| AES | 共通鍵 | ◎ 高速 | ファイル暗号化・通信 | ✅ 推奨 |
| DES | 共通鍵 | ◎ 高速 | (旧)通信暗号化 | ❌ 非推奨 |
| RSA | 公開鍵+秘密鍵 | △ 低速 | 鍵交換・電子署名 | ✅ 用途限定で推奨 |
| ChaCha20 | 共通鍵 | ◎ 高速 | モバイル・TLS1.3 | ✅ 推奨 |
実務ポイント: AESとRSAはライバルではなく補完関係。RSAで安全に「共通鍵」を相手に渡し、実際の大量データはAESで高速暗号化する——という組み合わせが一般的です(TLSなどで使われるハイブリッド暗号)。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| FIPS PUB 197 | AESの正式規格(NIST発行、2001年) |
| RFC 3565 | AESをCMS(暗号化メッセージ構文)で使用するための仕様 |
| RFC 5116 | AES-GCMなどの認証付き暗号(AEAD)の仕様 |
| RFC 8439 | ChaCha20との比較参照で言及されることが多いAES-GCM関連 |
| IEEE 802.11i | Wi-Fi(WPA2)でAES-CCMPを採用した規格 |
関連用語
- DES(Data Encryption Standard) — AESの前身となった共通鍵暗号規格。現在は安全性が低いとして非推奨
- RSA — 公開鍵暗号方式。鍵交換や電子署名に使われ、AESと組み合わせて使われることが多い
- TLS(Transport Layer Security) — HTTPS通信を支えるプロトコル。内部でAESを使って通信を暗号化する
- [共通鍵