セキュリティタスクを実行するために、疑似乱数ジェネレータの出力を使用している開発者と話します。共通の知識に基づいて、暗号的に安全な疑似乱数のみを使用する必要があることを知っています。
しかし、私はこれをさらに一歩進めたい-現在の方法が安全ではないという概念実証をどのように作成しますか?私は推測するでしょうこの特定のPRNGアルゴリズムからの出力の大規模なコレクションが必要です...しかし、それを除けば、他に何をする必要があるのかわかりません。使用する方法はありますか?シードまたはソルト(ある場合)を導出するための暗号解析ツール?このようなPRNGがセキュリティ監査ツールやスクリプトを使用して予測可能であることを証明または反証するにはどうすればよいですか?同じシードが使用されていると想定しています。
ここで発生している問題は、ブラックボックスのような方法で考えていることです(たとえば、大量の出力の収集)。これは、実際の攻撃者が行うことではありません。実際の攻撃者は、PRNGアルゴリズムと、それを使用するアプリケーションのコードを含め、内部に関する可能な限り多くの具体的な情報を入手し、特定の詳細を悪用して破壊します。
したがって、非常に人気のある標準ライブラリのPRNGを壊すことがいかに簡単であるかを示すプログラムを紹介することとは別に、ここで行う一般化は明らかではありません。 Stack Exchangeの回答で説明可能)PRNGコードを見て、その特定のコードを攻撃するものを理解しているだけです: