AES(Advanced Encryption Standard)は、いまインターネットで最も広く使われている 共通鍵暗号です。暗号化にも復号にも同じ16バイト(128bit)の鍵を使います。
A幕: 16バイトの箱
平文(state)
鍵
B幕: 10ラウンドの変換
SubBytes(1バイトずつ置き換え)→ShiftRows(行をずらす)→MixColumns(列を混ぜる)→AddRoundKey(鍵とXOR)を10回繰り返します。
1x
現在のラウンド鍵
S-box(SubBytesの対応表、先頭16行)を見る
C幕: 1ビットの雪崩
平文の1ビットだけを変えて、同じ鍵で暗号化するとどうなるか。
共通鍵暗号は計算が軽く、Wi-Fiの暗号化・ディスクの暗号化・httpsの本体データ部分など あらゆるところで使われています。ただし弱点があります――同じ鍵を相手と どうやって安全に共有するか、という「鍵配送問題」です。これは第5展示室で扱います。