AESの定義と位置づけ

AES(Advanced Encryption Standard)は、対称鍵暗号(共通鍵暗号)として広く使われるブロック暗号です。暗号化と復号には同じ鍵(共有鍵)が使われ、データは一定の大きさのブロック単位に分割して処理されます。鍵長や処理手順(ラウンド)の設計により、同じ入力でも暗号文はランダムに見える形へ変換されます。

仕組みの基本モデル(直感)

AESの動作は、主に「鍵を使ってブロックを段階的に混ぜる」ことです。典型的には、ラウンドと呼ばれる繰り返し処理の中で、次のような変換が組み合わさります。

  • 置換(入力の性質を別の値へ写し替える)
  • 入力の拡散(ビットやバイトの関係をより広く結びつける)
  • 鍵に基づく加算(ラウンドごとに鍵情報を反映する) これにより、特定の鍵や平文の特徴が暗号文にそのまま残りにくくなります。ラウンド数や鍵長は設計上決まっており、一般に鍵長が長いほど攻撃の難度が上がる方向になります。

主要な構成要素(鍵長・ブロック処理)

AESはブロック暗号なので、ブロック境界ごとに処理が進みます。そのため、モード(後述)が適用されないと、同じブロックには同じ処理が反映されやすくなり、パターンが見えやすくなります。つまり「AESというアルゴリズム名」だけでは十分でなく、実際の安全性は「鍵長」「モード」「IV/ナンス」「パディング」「認証(完全性)をどう扱うか」に依存します。

モードと制限:何が安全性を左右するか

AES自体はブロック暗号です。実際の通信や保存では、データ全体をどうブロックへ写像するかを決めるモードが重要になります。

CBCなど:IV/初期化情報が必須になりやすい

CBCのようなモードでは、同じ平文でも暗号文が同一にならないようにするため、IV(初期化ベクトル)の扱いが重要になります。IVが毎回変わらない、予測できる、同じ値を繰り返すといった運用はリスクになります。

GCMなど:暗号化だけでなく「改ざん検出」を重視

GCMのように認証付きのモードでは、暗号化のほかに改ざん検出(完全性)を意識した仕組みが含まれます。