Генераторы псевдослучайных чисел. Линейный конгруэнтный генератор

Примером генератора псевдослучайных чисел (ПСЧ) является линейный конгруэнтный датчик ПСЧ:

Тi+1 = (A*Ti + C) mod M, (1)

где M – модуль генератора, А и С – неотрицательные константы, меньшие модуля M, Т0 – начальное значение генератора. Величины А, С, Т0 образуют ключ генератора ПСЧ. Значение M обычно выбирается достаточно большим.

Такой датчик ПСЧ генерирует псевдослучайные числа с максимальным периодом повторения M, зависящим от значений А и С, при выполнении условий следующего утверждения.

Утверждение. Длина периода последовательности Ti, определяемой формулой (1), равна М в том и только том случае, если

1) С и М взаимно просты;

2) B = A – 1 кратно p для любого простого p – делителя M;

3) если M кратно 4, то и B кратно 4.

Для получения последовательности, принимающей значения из отрезка [0,1], нормируем последовательность Ti по формуле

Ri = Ti /M. (2)

Для оценки равномерности распределения последовательности R на отрезке [0,1] построим гистограмму. Для этого отрезок [0,1] разбиваем на t (например, t=8) равных частей и подсчитываем количество ПСЧ, попавших в каждый отрезок. В MathCAD используем функцию hist (t, R), которая возвращает вектор значений – количество ПСЧ, попавших в j -тый интервал.

Рисунок 1 – Гистограмма распределения последовательности из 64 ПСЧ на отрезке [0,1].

Контрольные вопросы

1. Дайте определение псевдослучайной последовательности.

2. Для какой цели применяют последовательности ПСЧ.

3. Опишите известные генераторы ПСЧ.

4. Какими свойствами должны обладать генераторы ПСЧ для использования их в криптографии.

5. Как оценить равномерность и случайность последовательности ПСЧ.

6. Какие методы применяют для улучшения качеств последовательности ПСЧ.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: