Разрушаване на линеен congruential Генераторът на случайни числа
- математика
- скъсване
- криптографията
- Генератор на случайни числа
- случайни числа
За целите на обучение, аз искам да се справи най-лесният PRNG.
Тя може да помогне дори и тези, които не знаят за еднакви генератора на линейната или за PRNG по принцип, защото въпрос на неправилно разбиране на текста на английски език и малко математика.
За да ви накратко: Има ли такова нещо като генератор на псевдослучайни номер. т.е. Ранди, ако по-лесно. "Псевдо-случайни", защото те не са случайни, но са подобни на тези. Един от внедряванията на генератора:
Когато Xn - е п-ти план на последователността. Променливите А, С и м - константи: а - коефициент, в - в растежа, m - модул. X0 - от първоначалната стойност.
Моите условия чупене:
1. Ние знаем, че генераторът е базиран на линеен congruential генератор.
2. Ние не знаем А, С и м.
3. Ние можем да получите всички от гледна точка на последователността.
Цел: Да се определи, с, м (по-вероятно).
намерени в английската версия няколко метода. Имам нужда от някоя от тях, или друг, аз не знам.
На този сайт се реши този груба сила. Единственото нещо, което не е дадено за цялата последователност, както и всеки друг член. Поради това, както аз го разбирам, извършена PowerMod не е необходимо. Въпроси на този метод са, както следва:
1. Правилно ли съм разбрал, че вторият код се изпълнява, тъй като първите две резултатите раздаваха, и имаме нужда от един?
2. Издаването на модулната аритметика: как да се получи, че с = X2 - ((X1 * а)% м) (първият код)?
3. Защо м <10*M_START?
4. Какво ще се случи през втората код?
Ето - алгоритъм Plumstead му. И тук - алгоритъма Г. Marsaglia Моля, обяснете, който знае от математическа гледна точка ..