AES(Advanced Encryption Standard)

AES(Advanced Encryption Standard)とは

AES(Advanced Encryption Standard)とは、DESの後続として登場したブロック暗号化です。128/192/256ビットの鍵を利用し、128ビットのブロック暗号化です。

昔は共通暗号化方式もたくさんあり、どれを使って良いのかわからなかったため、一番良い標準になりえるものを決める大会が開かれました。

最終選考で残ったMARS、RC6、Rijndael、Serpent、Twofishの中から、厳しい選考の結果、最終的にRijndaelという暗号化方式が選出され、これを標準にしようということでAESと呼ぶことにしました。

今日使われている共通暗号化方式は大体これです。

SPN構造とは

AES(Rijindael)では、暗号化の構造としてSPN構造(Substitution Permutation Network Structure)が利用されます。

SPN構造において、SubBytes、ShiftRows、MixColumns、AddRoundKeyという4 種類の変換は行います。

この4つの変換を繰り返すことで信頼のある暗号文が出来上がります。

  1. SubBytes:各バイトをテーブルを使って変換
  2. ShiftRows:順番を入れ替え
  3. MixColumns:4バイトごとに行列演算
  4. AddRoundKey:ラウンド鍵を使って変換(XOR)
SubBytes
ShiftRows
MixColumns
AddRoundKey