
php_mt_seed は PHP の mt_rand() シードクラッカーです。最も単純な呼び出しモードでは、mt_srand() によるシード処理後に得られる最初の mt_rand() 出力から、考えられるシードを特定します。高度な呼び出しモードでは、複数の、最初ではない、および/または完全一致ではない mt_rand() 出力を、考えられるシード値と照合することもできます。
PHP の mt_rand() アルゴリズムは、PHP 3.0.6 で導入されて以来、長年にわたって変更されてきました。php_mt_seed 4.0 は、このアルゴリズムの 3 つの主要なリビジョン(PHP 3.0.7 から 5.2.0、PHP 5.2.1 から 7.0.x、および PHP 7.1.0+(少なくとも本稿執筆時点の最新版である PHP 7.2.0beta3 まで))をサポートしています。
php_mt_seed は、PHP の mt_rand() アルゴリズムを攻撃向けに最適化した再実装を使用しています。C で記述されており、オプションで SIMD 組み込み関数(SSE2、SSE4.1/AVX、XOP、AVX2、AVX-512、および MIC)と OpenMP をサポートします。最新のクアッドコア CPU では、32 ビットのシード空間全体を 1 分以内に検索できます。第 2 世代 Xeon Phi では、わずか 3 秒で同じ処理を実行します。