共通鍵暗号(AES) きょうつうかぎあんごう(えーいーえす)
AES共通鍵対称暗号ブロック暗号暗号化NIST
共通鍵暗号(AES)について教えて
共通鍵暗号(AES)とは
共通鍵暗号(対称暗号) とは、データの暗号化と復号に同一の鍵を使う暗号方式です。送り手と受け手が事前に同じ鍵を共有しておく必要があります。
AES(Advanced Encryption Standard) は、現在最も広く使われている共通鍵暗号アルゴリズムです。2001年にNIST(米国立標準技術研究所)が標準として採用し、前規格のDESを置き換えました。ベルギーの暗号研究者Vincent RijmenとJoan Daemenが開発した「Rijndael(ライニダール)」アルゴリズムが選出されています。
AESはブロック暗号の一種で、データを128ビット(16バイト)のブロックに分割して処理します。鍵長は128/192/256ビットの3種類があり、現在はAES-256が最も高いセキュリティとして推奨されています。
AESの主なパラメータと動作モード
| 項目 | 内容 |
|---|---|
| ブロックサイズ | 128ビット(固定) |
| 鍵長 | 128 / 192 / 256ビット |
| ラウンド数 | 10 / 12 / 14(鍵長に応じて) |
| 処理速度 | 非常に高速(ハードウェア支援あり) |
主な動作モード
| モード | 特徴 | 主な用途 |
|---|---|---|
| ECB | 同じブロックは同じ暗号文(危険) | 現在は非推奨 |
| CBC | 前ブロックの結果をXORして連鎖 | ファイル暗号化 |
| CTR | カウンターをXORで暗号化するストリームモード | 高速・並列処理向け |
| GCM | CTRモード+認証タグ付き(認証付き暗号) | TLS 1.3、APIトークン |
歴史と背景
- 1977年:DES(56ビット鍵)がNISTの前身NBS標準に。優れた暗号だったが鍵が短すぎた
- 1997年:NISTがDES後継の公募「AES競争」を開始。15候補がエントリー
- 2000年:Rijndaelが最優秀候補として選出される
- 2001年:FIPS PUB 197としてAESが正式採用
- 2003年:米NSAがAES-128/192/256を機密情報の保護に採用(AES-256はTop Secret対応)
- 現在:TLS、Wi-Fi(WPA2/WPA3)、BitLocker、ZIP暗号化など、あらゆる場面で使用
共通鍵暗号と公開鍵暗号の比較
実際のTLS通信では、最初に公開鍵暗号で「共通鍵」を安全に交換し、その後はAESで高速通信するというハイブリッド方式が使われています。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| FIPS PUB 197 | AESの仕様書(2001年制定) |
| NIST SP 800-38A | AESの動作モード(CBC, CTR等)の仕様 |
| NIST SP 800-38D | GCMモード(認証付き暗号)の仕様 |
| RFC 3602 | TLSでのAES-CBCの使い方 |
関連用語
- 公開鍵暗号(RSA・ECC) — AESと組み合わせて使われる非対称暗号
- ハッシュ関数 — 暗号化と並んで使われるデータ整合性の確認技術
- 保存時暗号化・転送時暗号化 — AESが実際に使われる場面の説明
- mTLS — AESを含む暗号スイートを使う相互TLS認証