XTS-AES
OS X Lion の File Vault 2 の説明を見ていると、XTS-AES 128 という見慣れない記述が。気になって調べてみると、どうもディスク暗号化では標準的なモードらしい。というか、AES-CBC はディスク暗号化に関しては危険らしい。
PDF直リンクになるが、googleで日本語のTOPに来るのは、以下の資料。
http://www.securevm.org/svms2-slides/svms2-omote.pdf
また、英語の Wikipedia にはディスク暗号化について概要の記載がある。
http://en.wikipedia.org/wiki/Disk_encryption_theory
理解できた範囲で記述。まだ間違っている可能性あり。
最初のPDFに書かれている通り、IVが変更されて復号時に影響を受けるのはセクタの最初のブロックの復号時のみ。2つ目以降のブロックは、一つ前の暗号化ブロックとディスク全体で共通の鍵を元にして復号されるため、IVの変更の影響は受けない。
暗号化されたままセクタのデータを別のセクタにコピーしてしまえば、最初の暗号化ブロック以外は復号できてしまう。(スライド23ページで副作用があると書かれているのが最初の暗号化ブロックで、ここは一つ前の暗号化ブロックの違いにより正しく復号できない)
前提として、CBCのchainがセクタ単位で切れる、ということがある。ただし、そうでなければ、1セクタ書き換えるだけでも複数セクタにまたがった再暗号化が必要となるため、IOのパフォーマンスに悪影響があるはず。
また、復号化してRead可能なブロックと、暗号化したままでしかReadできないブロックが混在しているデバイスである必要がある。(こっちの前提が成立するのが難しい気がするが)
あとで以下の項目についても説明を書く。
- CTRモード
- XTSモードの詳細
- Watermarking attack http://en.wikipedia.org/wiki/Watermarking_attack
- Chosen Plain Text Attack http://en.wikipedia.org/wiki/Chosen_plaintext_attack