
php_mt_seed is a PHP mt_rand() seed cracker
php_mt_seed é um quebrador de sementes (seed cracker) do mt_rand() do PHP. No modo de invocação mais trivial, ele encontra possíveis sementes dada a primeira saída de mt_rand() após possível semeadura com mt_srand(). Com modos de invocação avançados, ele também é capaz de corresponder múltiplas saídas de mt_rand(), não primeiras e/ou inexatas, a possíveis valores de semente.
O algoritmo mt_rand() do PHP mudou ao longo dos anos desde sua introdução no PHP 3.0.6. O php_mt_seed 4.0 suporta 3 grandes revisões do algoritmo: PHP 3.0.7 a 5.2.0, PHP 5.2.1 a 7.0.x, e PHP 7.1.0+ (pelo menos até o mais recente no momento em que este texto foi escrito, que é o PHP 7.2.0beta3).
O php_mt_seed usa reimplementações otimizadas para ataque dos algoritmos mt_rand() do PHP. Ele é escrito em C com intrínsecos SIMD opcionais (SSE2, SSE4.1/AVX, XOP, AVX2, AVX-512, bem como MIC) e OpenMP. Em uma CPU moderna de quatro núcleos, ele é capaz de pesquisar todo o espaço de sementes de 32 bits em menos de um minuto. No Xeon Phi de segunda geração, ele faz o mesmo em 3 segundos.