はてな人力検索より:
PHPのmcrypt関数で使用する初期化ベクトル(IV)とは公開されてはまずいものなのでしょうか?
参考:
- http://www.ciphersbyritter.com/NEWS6/CBCIV.HTM
- http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
- 『新版暗号技術入門 秘密の国のアリス』 結城浩
CBCモードにおいて、中間者攻撃によって初期化ベクトルのビットが反転させられると、復号された平文ブロックの対応するビットも反転する。よって攻撃者は最初の平文ブロックに限り、任意のビットを操作できることになる。攻撃者がメッセージの構造を熟知している場合、脅威となり得る。
それを防ぐためのも最も簡単な方法は、「初期化ベクトルを暗号化すること」である。
ではその初期化ベクトルを暗号化するための初期化ベクトルはどうすれば良いのだろう…と一瞬だけ悩んだが、初期化ベクトルはブロック長と同じ長さで、しかも毎回異なるランダムな値なのだから、どのように暗号化しても同じことか。
[...] へびにっき 樹上で暮らすヘビのように生きたい « CBCモードの初期化ベクトルは公開しても良いのか [...]
[...] 先日の続き。 [...]
[...] CBC モードにおいて、初期化ベクトルのビットが反転すると、平文の最初のブロックの対応するビットも反転する。だから初期化ベクトルはそのまま転送すべきではない。 [...]