AES
読み:エイイーエス
外語:AES: Advanced Encryption Standard

 米国政府が採用した新標準の慣用暗号方式暗号化アルゴリズム。
目次

経緯
 米国政府では2000(平成12)年現在、1977(昭和52)年策定のDESを使うよう決められていた。しかしDESは既に古いアルゴリズムであり、コンピューター技術の発達により、56ビットの鍵長ではブルートフォースアタック(総当たり攻撃)で数日で暗号解読可能になってしまった。
 そこでDESを3回使う3DESなどを利用すると共に、新しい標準を1997(平成9)年9月より公募した。
 世界中より15の共通鍵暗号の応募があり、1999(平成11)年春には、最終的に5つの候補に絞られた。
 結果、2000(平成12)年10月にRijndaelがAESとして利用されることとなった。

特徴

AESとRijndael
 AESはRijndaelであるが、Rijndaelとして設計されたうちの一部が端折られている。
 128ビット、192ビット、256ビットの鍵長が使え、8ビットのマシンでも比較的高速に暗号化や復号ができる。
 128ビットのブロック長のブロック暗号である。
 Rijndaelでは、128、160、192、224、256ビットからブロック長が選択できたが、AESでは常に128ビットである。

暗号化操作
 AESはブロックサイズが128ビットで、8ビットごとの4×4マスの行列となる。入力された平文は、8ビットごとに区切られ、各マスに収められる。
 そして、同じマスサイズに拡張された暗号鍵と排他的論理和を取り、初期化処理を行なう。
 この結果に対し、SubBytes()、ShiftRows()、MixColumns()、AddRoundKey()、という4種類の行列操作を順に行ない、これを1ラウンド(1暗号化操作)とする。行なう回数は、鍵長ごとに決められており、次のラウンド数-1をメインストリームで行なう。
 鍵長(ビット)ブロック長(ビット)ラウンド数(回)
AES-12812812810
AES-19219212812
AES-25625612814
 そして、最終ラウンドは、SubBytes()、ShiftRows()、AddRoundKey()だけを行ない、最終的な出力を得る。
 AESの暗号化処理は、かなり単純であるといえる。

主なプロトコル
 AESを暗号に採用している代表的なプロトコルに、次のようなものがある。

再検索