Разрушаване на линеен congruential Генераторът на случайни числа

Разрушаване на линеен congruential Генераторът на случайни числа
  • математика
  • скъсване
  • криптографията
  • Генератор на случайни числа
  • случайни числа

За целите на обучение, аз искам да се справи най-лесният PRNG.

Тя може да помогне дори и тези, които не знаят за еднакви генератора на линейната или за PRNG по принцип, защото въпрос на неправилно разбиране на текста на английски език и малко математика.

За да ви накратко: Има ли такова нещо като генератор на псевдослучайни номер. т.е. Ранди, ако по-лесно. "Псевдо-случайни", защото те не са случайни, но са подобни на тези. Един от внедряванията на генератора:

Когато Xn - е п-ти план на последователността. Променливите А, С и м - константи: а - коефициент, в - в растежа, m - модул. X0 - от първоначалната стойност.

Моите условия чупене:

1. Ние знаем, че генераторът е базиран на линеен congruential генератор.
2. Ние не знаем А, С и м.
3. Ние можем да получите всички от гледна точка на последователността.
Цел: Да се ​​определи, с, м (по-вероятно).

намерени в английската версия няколко метода. Имам нужда от някоя от тях, или друг, аз не знам.

На този сайт се реши този груба сила. Единственото нещо, което не е дадено за цялата последователност, както и всеки друг член. Поради това, както аз го разбирам, извършена PowerMod не е необходимо. Въпроси на този метод са, както следва:

1. Правилно ли съм разбрал, че вторият код се изпълнява, тъй като първите две резултатите раздаваха, и имаме нужда от един?
2. Издаването на модулната аритметика: как да се получи, че с = X2 - ((X1 * а)% м) (първият код)?
3. Защо м <10*M_START?
4. Какво ще се случи през втората код?

Ето - алгоритъм Plumstead му. И тук - алгоритъма Г. Marsaglia Моля, обяснете, който знае от математическа гледна точка ..