PR

 AESはAdvanced Encryption Standardの略で、TLSや無線LANなどの通信データの暗号化でよく使われる暗号化技術である。米国の国立標準技術研究所(NIST)は1997年、当時標準的に使われていた共通鍵暗号のDES(Data Encryption Standard)の安全性の低下から、DESに代わる共通鍵暗号を募集した。そのときに集まった応募案の一つ、「Rijndael」は暗号の解かれにくさ(強度)だけでなく、処理負荷や計算の速さでも評価され、2000年に選定された。これが、AESになった。

 共通鍵暗号は、データをやり取りする送信者と受信者が同じ暗号鍵を使って、データの暗号化や復号を実行する。送信者と受信者が異なる暗号鍵を使う公開鍵暗号よりも、一般に暗号化や復号の処理にかかる負荷が低い。そのためTLSや無線LANの暗号化通信では、送信者と受信者が公開鍵暗号を使ってAESなどの共通鍵暗号の暗号鍵をやり取りし、処理の負荷が小さい共通鍵暗号で通信データを暗号化する。

 これらの暗号化通信では、共通鍵暗号の解読を防ぐために、定期的に暗号鍵を更新する仕組みなどが取り入れられている。

4種類の変換を繰り返す

 AESの特徴は、簡単な処理で実行できる4種類の変換をセットにして、このセットを複数回実行して暗号強度を高めている点だ。

 AESで使う4種類の変換は、「SubBytes」「ShiftRows」「MixColumns」「AddRoundKey」という。実際の処理では、この順番で変換する。

 16バイトごとに区切ったデータに対し、最初のSubBytesでは、1バイト単位で置換する。次のShiftRowsで、1バイト単位でデータの順序を入れ換える。次にMixColumnsで、行列演算を行う。最後のAddRoundKeyでは、128ビット、192ビット、256ビットのいずれかの暗号鍵を基に生成した鍵(ラウンド鍵)で変換する。AESでは、この一連の処理を複数回繰り返す。いずれの変換も単純な計算で、復号処理では逆の変換を行う。

[画像のクリックで拡大表示]