勘違いしてたけど、AESのブロック長は128bit固定。なのでIVも常に128bit。
鍵長は128,192,256から選べる。
鍵はデータとXORを取るために使うのに、なぜブロック長と鍵長が一致しなくてもいいのかが不思議だ。以下の記事から想像するに、↓のようにしているのかなと思う。
- 鍵の先頭から32bit分を取り出す
- ブロックを32bitずつ分けて1とのXORを取る
- 鍵から次の32bit分を取り出し、再度XORを取る。この繰り返し
AddRoundKeyの処理を詳しく書いてる資料がなかなか見付からないな。。