Генераторы псевдослучайных чисел
Для проверки любой последовательности на случайность обычно служит два следующих критерия: а) однородность деления: деление чисел в последовательности должна быть однородной, то есть частота появления в последовательности конкретного значения должна быть приблизительно одинаковой для всех значений; б) независимость: ни одно из значений последовательности не должно логично выводиться из других значений.
Критерии, по которому можно оценить качества любого генератора псевдослучайных чисел. 1. Генерирующая функция должна иметь большой период, то есть функция должна породить большое количество чисел, прежде, чем последовательность чисел начнет повторяться. 2. Генерируемая последовательность должна вести себя как случайная. В действительности эта последовательность не будет случайной, поскольку генерируется детерминированим алгоритмом, но существует множество статистических тестов, который можно использовать для того, чтобы оценить степень случайности поведения последовательности. 3. Генерирующая функция должна эффективно реализовываться в рамках 32 -битовой арифметики.
Алгоритм Лемера Предложен Лемером (Lehmer) в 1949 году и называется методом линейного сравнения Этот алгоритм имеет четыре следующих параметра: а) m – модуль сравнения (т > 0); б) а – множитель (0 < а < m); в) c – приращение (0 < c < т); г) Х 0 – начальное или порождающее число (0 < Х 0 < т). Последовательность случайных чисел получается с помощью итераций: При этом если т, а, c и Х 0 являются целыми, то будет полученная последовательность целых чисел из диапазона 0 <= Xn < т.
Выбираемые значения исходных параметров: m = 232 -1 A = 75 = 16807 Криптоанализ: Если известны X 0 , X 1, X 2 и X 3, то можно составить систему уравнений X 1=(a*X 0 + c) mod m , X 2=(a*X 1 + c) mod m , X 3=(a*X 2 + c) mod m.
Генератор Блюм-Шуба (Blum, Shub — BBS) Выбирается два больших простых числа, р и q, которые дають при делении на 4 в остатке 3, то есть: (р mod 4) = (q mod 4) = 3. Вычисляется n = р * q Выбирается случайное число s, взаимно простое с n,
Х 0 = s 2 mod n for i = 1 to Xi = (Хi-1)2 mod n Вi = Xi mod 2
Пример работы генератора BBS
Генераторы псевдослучайных кодов (ГПК) на основе регистров сдвига с линейными обратными связями LFSR – Linear Feedback Shift Register а) простота аппаратной и программной реализации; б) максимальное быстродействие; в) близкие к идеальным статистические свойства сформированных последовательностей; г) высокая достоверность контроля при выявлении случайных искажений в двоичных последовательностях.
Общая структура сдвигового регистра с обратной связью q 0 q 1 . . . qi . . . q. N-1 Функция обратной связи Период сдвигового регистра – длина получаемой последовательности до начала ее повторения
Возможная схема LFSR-генератора Только при определенных отводных последовательностях LFSR регистр пройдет через все 2 N -1 внутренних состояний (0 -е состояние – запрещенное). Такие LFSR являются LFSR с максимальным периодом. Результат максимально возможной последовательности называется М-периодом
Уравнение генератора LFSR: Q(t) и Q(t+1) – состояния регистра ГПК в моменты времени t и t+1 T – квадратная матрица порядка N вида , N – степень образующего многочлена Степень многочлена является длиной сдвигового регистра