MT19937ランダムストリームをSHA512にパイピングすると、MTの状態が実際に回復不能になりますか?

Dec 05 2020

十分なサンプルを観察した後、メルセンヌツイスターの状態を回復するのは非常に簡単であることはよく知られています。しかし、MTから出てくるブロックをSHA512にパイプし、これを出力として与えるとどうなりますか。

SHA512が可逆的でないという数学的証明がないため、このシナリオでのMT状態の回復が不可能であることを証明する方法はおそらくありません。

  1. このセットアップでMT状態を取得し、次のブロックを予測できる実際的な方法はありますか?
  2. それとも、状態が回復しなくても予測はどういうわけか可能ですか?
  3. 内部でMTジェネレーターを使用するCSPRNG設計があることを読みました。それらはこのように機能しますか、MTストリームを取得して何らかの方法で難読化するだけですか、それとも完全に異なりますか?

ありがとうございました!

回答

4 MaartenBodewes Dec 05 2020 at 20:09

主な問題はMTシードサイズです。MTの状態は十分に大きいですが、シードは通常32ビットワードです。$w$。詳細については、こちらをご覧ください。

出力のSHAは、シードへのブルートフォース攻撃からユーザーを保護しません。攻撃者は、ストリームを生成してSHA計算を実行し、比較するだけです。

したがって、シードサイズを何らかの方法で拡張し、状態を初期化する必要があります。状態はかなり大きく、MTは期間が長いので、配管はすでにそこにあります。あなたができる場合は、単にそれを呼び出すMTは明白次の質問です。


  1. このセットアップでMT状態を取得し、次のブロックを予測できる実際的な方法はありますか?

はい、初期状態は一般的に小さなシードから派生しているためです。

  1. それとも、状態が回復しなくても予測はどういうわけか可能ですか?

それが起こっているとは思いませんが、初期状態を取得できれば、そこに行く必要はありません。

  1. 内部でMTジェネレーターを使用するCSPRNG設計があることを読みました。それらはこのように機能しますか、MTストリームを取得して何らかの方法で難読化するだけですか、それとも完全に異なりますか?

聞いたことがありませんが、大きな種を入力できない場合は困っています。


最後の質問は、あなたが終わったときにあなたが何かを得たかどうかということです。ハッシュ関数に基づくDRBGは多数存在し、バックエンドに高速PRNGを追加してもあまり意味がない場合があります。大規模な州は、多くの暗号学者や安全なソフトウェア/ハードウェア開発者にとってもうまくいっていません。