シード・ランダム世代ではシードを予測できないようにする必要があります。なぜなら、可能なシードを合理的な量の異なる値に絞り込むことができれば、ブルートフォース攻撃が可能になるからです。PRNGの長さが十分に長い場合、なぜそれを強要できますか?
しかし、これは私を混乱させる。擬似乱数を生成するアルゴリズムを使用するとします。理論的にはある時点で繰り返されますが、実際にはこれは多くの人によるとほとんど見られません。 これが当てはまる場合、攻撃者が種子を50k種の種子に絞り込んだとしましょう(攻撃者は種子が50k種子の1種であることを知っています)。また、攻撃者はこのランダムジェネレータに基づいたログインクッキーも持っています(攻撃者はログインクッキーを作成するアルゴリズムを知っています)。
攻撃者がこれらの50kのシードのすべてのシード値をチェックし、その結果を自分のログインクッキーと比較して、使用されているシードを特定している場合...攻撃者によって生成されたログインクッキーがログインクッキーと同じ擬似ランダムシーケンスからの値?擬似ランダムジェネレータが、この特定のログインクッキーのサイクルの前にシーケンスの「最後の」番号を使用するとどうなりますか?これは、攻撃者がPRNGが生成する可能性のあるすべての可能な値を試す必要があるため、攻撃者が試行するたびに数十億回(またはそれ以上)試行するよう強制しませんか?
数値の擬似ランダムシーケンスは、サイクルが無限で無限に近い限り、すべてランダムです。
私は十分な質問をすることができます。
いつも「始まり」から始まるのではなく、シーケンスがランダムに選択されるようにPRNGを設計できないのですか?それはそれをより固定できないようにしますか? – AlexioPat
多くの簡単なPRNGは、予測可能な乱数の1つの大きな長いループであり、その種子はどこから始めるのかというランダムな選択肢です。そういうわけで、種を正確に推測すると、次に何が起こるかが正確に伝えられます。 – sh1