ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

暗号理論コミュのブロック暗号プログラム時の問題の質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ブロック暗号でしばしば用いられる「初期化ベクトル(IV)」ですが、これは復合化の時にも同じものを用いる必要があります。

しかし、これを毎回手入力するのではなく乱数生成器で生成したものを使う場合、そのIVの情報はどのように保存すべきでしょうか?

単純に暗号文の先頭に埋め込むというのは、IVが簡単に知られてしまうので、できればIVは分からないようにしたいのですが。

コメント(11)

IPsec(ESP)ではIVはパケット先頭に見えてますね。cbcとかのときにはIVを隠すわけにはいかんのでしゃあないのではないかと思います。
itojunさん
回答ありがとうございます

では、IVは隠せないとして、1ブロック分増えてしまうIVを省略する良い手はないでしょうか?

自分では
平文・暗号文で比較して変化しないものとして、文字列長(バイト数)からIVを生成する方法
考えたのですが、文字列長によっては時間がかかりすぎてしまいます。
これまたESPの話になりますが、draft-ietf-ipsec-ciph-des-derived-00.txtというのがESPのパケットカウンタ(主にreplay attack防止用)をIVに使っています。パケットカウンタは
32bitなので、bit反転したのと繋ぎ合わせて64bit作ります。

でも結局これはRFCにはなりませんでした。なんでならなかったのはちょっとわかりません。暗号的に弱いのかどうかと言われるとわかりませんが、乱数と比べたら推測可能な要素が増えるので乱数の方がよさそうな感じがしますね。
そうなんですか
情報ありがとうございました
どのような状況で、暗号アルゴリズムや暗号利用モードに何を想定している分かりませんが、IVは秘匿する必要は必ずしもないと思います。
鍵さえ不明ならば暗号文から平文はわからないと言うものが今、主流のブロック暗号ですよね。
プログラム中にそのまま埋め込んでよいのではないでしょうか。
敢えて秘匿するのでしたら、もし、同一PC内で使用するなら、乱数生成器のシード値にHDDのシリアルナンバー等のPCの固有情報を使用すればよいのではないでしょうか。
>ぼん太さん
とりあえずDESを作っています
モードは複数選択できるようにしています

>鍵さえ不明ならば暗号文から平文はわからないと言うものが今、主流のブロック暗号ですよね。
それなら固定のIVを使ってもいいような気もするんですが、それの欠点ってなんなんでしょうか?
DESですか。まず、このアルゴリズムは主流ではありません。というか、何年か前にHWを用いた総当たりで鍵は解かれています(DESチャレンジ2か3だったかと?)。
今だったら、CRYPTREC推奨暗号のいずれかを使用しています。というか、HWやSW等の使用環境にもよりますが、AESか3DESが多く使われているのではないかと思われます。ここらを使用していればIV固定でも安全であると思います。
また、暗号利用モードにはその使用途に関して欠点があります。CBCが出ていたので例とすると、改竄に弱いことや暗号文一致攻撃が可能と言った欠点があります。2年くらい前にこれに起因するIPSecの脆弱性が発表されたと記憶しています。

僕は学生でDESをなんかに使おうとかいう気はないです
つかDESが破られたことくらいは知ってます

とりあえずIV固定でも危険度はあまり大きくはないんですね
ありがとうございました
あまりお役に立たなかったようですが、最後に一言だけよろしいですか?
DESを使う場合はIV固定は安全ではありません。
IV固定で安全=計算量的安全性を持つ
以上、失礼しました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

暗号理論 更新情報

暗号理論のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング