AES(Advanced Encryption Standard)
AESというのはDESに代わって新しく定められた共通鍵暗号標準です
厳しい審査の元、多くの暗号化アルゴリズムから5つが選び抜かれました
MARS, RC6, Rijndael, Serpent, Twofish
この中でもっとも優秀であったのはRijndaelで、晴れてAESに選定されました
このRijndaelは複雑な仕組み(SPN構造)で暗号化を行います
入力:128ビットとします(128~256まで32bit単位で選択)
①SubBytes
256個の換字対応表を元に、1バイトごとに変換を行います
②ShiftRows
バイト単位に規則的にごちゃまぜする。
③MixColumns
4バイトの値に対してビット演算を行う
④AddRoundKey
ラウンド鍵とXORする
以上です。疲れましたか? これ1ラウンドです(笑)
見ての通り複雑な暗号化をしていますが、実はこれには数学的構造が用いられています
それってどういうことか? 数式で表せるなら、数学で解読できちゃいます
けど、あくまでこれは可能性で今の所不可能です。
解読できちゃってたらAESとして今も使われてるわけないよね(笑)