回答:
PRNGのタイプを判別する単一の方法はありません。実際、暗号強度のPRNGの場合、その出力を真にランダムなものから区別することはできないため、出力を見ただけではそのようなPRNGのタイプを判別できません。
代わりに、あなたが一覧表示することを制度ごとに、そこにある種子を回復し、その出力から、将来のビットを予測する方法。その方法は、PRNGのタイプごとに異なります。したがって、自然なアプローチは次のとおりです。候補タイプごとに、そのタイプのPRNGで機能するシードを回復する方法を試し、成功するかどうかを確認します。もしそうなら、あなたはPRNGのタイプを理解しました。
より効率的または一般的な手法はないと思います。そして率直に言って、もっと効率的なものが必要だとは思いません。リストするタイプには、十分な出力があれば、それらを暗号解読するための非常に効率的なアルゴリズムがあります。したがって、「すべてのスキームを試す」アプローチを打ち負かすのは難しいだろうと私は思います。
これは、PRNGタイプのセットに暗号学的に弱いPRNGのみが含まれている場合、つまり、十分な過去の出力を指定して将来の出力を予測できる場合に機能します。
特定のタイプのPRNGに対してこれを行う方法の詳細については、その1つのタイプのPRNGに焦点を当てた別の質問をすることをお勧めします。リストしたPRNGタイプのいくつかのリソースは次のとおりです。
LFSR:非常に効率的なBerlekamp-Masseyアルゴリズムを参照してください。https://crypto.stackexchange.com/q/5293/351も参照してください。
線形合同ジェネレーター(LCG):モジュラー演算に基づいてシードを回復する非常に効率的な方法があります。https://security.stackexchange.com/q/4268/971を参照してください。
キャリーと乗算(MWC):十分な出力がある場合、出力がMWCジェネレーターと整合しているかどうかを簡単に確認できます。https://crypto.stackexchange.com/q/10359/351を参照してください。出力が少ない場合、それが可能かどうかはわかりません(シードと内部状態が非常に大きいため、情報理論上の理由から)。