
php_mt_seed is a PHP mt_rand() seed cracker
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초 만에 수행합니다.