AES暗号化の定義と全体像
AES暗号化(Advanced Encryption Standard)は、データを一定サイズのブロックに分けて暗号化する「ブロック暗号」です。暗号化と復号の両方に秘密鍵(鍵)が使われ、同じ鍵を知らない相手は元の内容を復元しにくくなります。AESは「アルゴリズム(計算手順)」と「使い方(モード、パディング、IVなど)」の組み合わせで、実際の挙動が決まります。
わかりやすい仕組み(ブロック処理とラウンド)
AESは、入力をブロック単位で処理し、ラウンドと呼ばれる反復計算を行います。鍵はラウンドごとの処理に反映され、同じ鍵であれば暗号化と復号が整合します。ブロック暗号としての基本は「1ブロックを変換する計算」が核にある点です。
ただし現実のデータは必ずしもブロック境界にきれいに収まりません。そのため、ブロック暗号をそのまま適用できる形に整える仕組み(パディング)が必要になります。また、複数ブロックをどう連結して扱うかは「暗号モード」で決まります。
重要な構成要素:鍵、モード、IV、パディング
AES暗号化を理解するうえで、次の要素はセットで考える必要があります。
- 鍵(秘密情報):AESの安全性は秘密鍵の保持と運用に強く依存します。鍵が漏れると、攻撃者は復号可能性を高めます。
- 暗号モード:同じ鍵でも、モードが違うと暗号化結果の性質(同一平文ブロックがどう見えるか、誤り伝播の仕方など)が変わります。
- IV(初期化ベクトル):多くのモードではIVが必要で、同じ平文を同じ鍵で暗号化しても毎回同じ見た目にならないようにする役割を持ちます。IVの扱い(生成、保存、再利用)が不適切だと望ましくない挙動につながります。
- パディング:平文がブロック長に合わない場合に、最後のブロックを埋めるためのルールです。パディング方式の選択や検証方法が、復号時の正しさやエラー処理に影響します。
差が出るポイント:AESは万能ではない(制限と注意)
AESそのものは「暗号化(機密性)」を担いますが、用途によってはそれだけでは足りません。代表的に次の制限・注意があります。
