概要

AES(Advanced Encryption Standard)は、米国 NIST が 2001 年に標準化した共通鍵ブロック暗号です。TLS・VPN・ファイル暗号化・ストレージ暗号化など、現代の暗号化インフラのほぼすべてに使われています。SC試験では「動作モードの特性」と「なぜ GCM が推奨されるか」が頻出です。

仕組みと動作原理

共通鍵暗号の基本

パラメータAES の仕様
ブロックサイズ128ビット(固定)
鍵長128・192・256ビットのいずれか
ラウンド数鍵長128で10ラウンド(192で12・256で14)

同一の鍵で暗号化と復号を行うため、「鍵を安全に共有する方法」が常に問題になります(鍵配送問題)。

動作モードの比較

ECB(Electronic Codebook)モード

同じ平文ブロック → 同じ暗号文ブロック。パターンが露呈するため使用禁止

CBC(Cipher Block Chaining)モード

各ブロックを前の暗号文ブロックと XOR してから暗号化。最初のブロックは IV(初期化ベクタ)と XOR。

特性評価
パターン隠蔽○(前ブロックに依存)
並列暗号化✗(シーケンシャル)
並列復号
改ざん検知✗(別途 MAC が必要)
主な脆弱性パディングオラクル攻撃

CTR(Counter)モード

カウンタ値を暗号化した値と平文を XOR。ストリーム暗号的に動作。

特性評価
並列暗号化・復号
ランダムアクセス
改ざん検知

GCM(Galois/Counter Mode) ← 現在の推奨

CTR モードに GHASH による認証タグを追加した **AEAD(認証付き暗号)**モード。

特性評価
機密性○(CTR ベース暗号化)
完全性・認証○(GHASHによる認証タグ)
並列処理
TLS 1.3 での使用◎(主要暗号スイート)

認証付き暗号(AEAD)の重要性

暗号化のみでは「改ざんされていないか」がわかりません。AEAD は暗号化と MAC(メッセージ認証コード)を一体化し、機密性+完全性+認証を同時に提供します。

暗号化のみ(CBC等):平文 → 暗号文 → 受信者は内容を復号できるが改ざんに気づけない
AEAD(GCM等):平文 → 暗号文 + 認証タグ → 受信者は認証タグで改ざん検知できる

鍵配送問題とその解決

共通鍵を安全に相手に渡す方法が問題です。

解決策仕組み
公開鍵暗号(RSA/ECDH)で共通鍵を配送TLS ハンドシェイクで使用
鍵交換アルゴリズム(Diffie-Hellman)安全でない経路でも安全に鍵を共有
事前共有鍵(PSK)帯域外で安全に共有済みの鍵を使用

SC試験での頻出ポイント

  • ECB モードが使用禁止な理由:同じ平文が同じ暗号文になりパターンが露呈する
  • CBC の IV(初期化ベクタ)の役割:同じ平文でも毎回異なる暗号文を生成するためのランダム値
  • GCM が推奨される理由:機密性と完全性を一つで実現(AEAD)
  • パディングオラクル攻撃:CBC モードの実装の欠陥を突いてパディングエラーの有無から平文を推測
  • AES-256 と AES-128 の使い分け:一般用途は AES-128 で十分な安全性。量子コンピュータ耐性が必要なら AES-256

よくある誤問・ひっかけパターン

誤り① 「CBC モードは改ざんを検知できる」→ 。CBC 単体では改ざん検知機能はありません。別途 HMAC などの MAC が必要です。

誤り② 「共通鍵暗号は公開鍵暗号より安全性が低い」→ 。鍵長が適切であれば安全性は十分です。処理速度が速いため実際のデータ暗号化に使われます。

誤り③ 「GCM の認証タグを検証せずに復号してもよい」→ 。認証タグの検証前に復号結果を処理すると改ざんデータを使うリスクがあります。

関連用語

重要キーワード

用語説明
ブロック暗号固定長ブロック単位で暗号化するアルゴリズム
動作モードブロック暗号を長いデータに適用するための方式(CBC・GCM等)
IV(初期化ベクタ)同じ平文でも異なる暗号文を生成するためのランダム値
AEAD暗号化と認証を一体化した方式。機密性・完全性を同時保証
認証タグGCMが生成する改ざん検知用のMAC値
鍵配送問題共通鍵を安全に相手に渡す方法の問題