- •11. Сжатие информации. Арифметическое кодирование
- •13 Алгоритм Евклида
- •14. Введение в теорию чисел. Функции Эйлера
- •15. Введение в теорию чисел. Модульная арфиметика
- •16. Введение в теорию чисел. Методы построения простых чисел.
- •17. Построение последовательностей псевдослучайных числа. Линейный конгруэнтный метод
- •18. Методы генерирования псевдослучайных чисел. Недостатки классических генераторов псевдослучайных чисел
- •19. Современные алгоритмы генерации псевдослучайных чисел.
- •20. Проверка статистических гипотез. Общая схема.
- •21. Проверка статистических гипотез. Критерий Пирсона.
- •22. Статистическая оценка качества последовательностей псевдослучайных чисел. Тесты серий.
- •26. Одноалфавитные и многоалфавитные шифры замены.
- •28. Механизация шифрования.
- •29.Потоковые шифрующие системы.
- •30.Стандартные системы шифрования. Алгоритм des.
- •32.Криптография с открытым ключом.
- •33. Криптография с открытым ключом. Алгоритм rsa
- •34.Криптография с открытым ключом. Алгоритм Диффи-Хеллмана.
- •35.Шифрование на базе эллиптических кривых.
- •36.Криптографические системы на базе эллип-тических кривых. Ана-лог rsa
- •37.Криптографические системы на базе эллип-тических кривых. Ана-лог алгоритма Диффи-Хеллмана.
- •38. Элементы теории сложности. Машина Тьюринга.
- •39. Элементы теории сложности. Функции вычислимые по Тьюрингу.
- •40. Защита программного обеспечения от обратного проектирования.
- •41.Запутывающие преобразования программ.
- •42.Алгоритмы разделения секрета
17. Построение последовательностей псевдослучайных числа. Линейный конгруэнтный метод
«Случайность» проявляется в «последовательностях независимых случайных чисел»: Каждое число получено самым произвольным образом;Без связи с другими членами последовательности; Может оказаться в последовательности на любом месте
Линейный конгруэнтный метод
(cхема предложена Д.Лехмером (1949))
Задаются числа: m, модуль, m> 0; a, множитель, 0 <= a<m; c, приращение, 0 <=с <m
Х0, начальное значение, 0 <= Х0 <m
Желаемая последовательность случайных чисел {Xn}:
Xn+1 = (aXn + c) modm, n >= 0 - Линейная конгруэнтная последовательность
Конгруэнтная последовательность ВСЕГДА образует «петли» - цикл, повторяющийся бесконечное
число раз. (Cвойство всех последовательностей вида Xn+1 = f(Xn) ).
Задача - сделать этот цикл - max длины Т.е. задача выбора параметров m, X0, a, c
При с=0 - мультипликативный датчик: Xn+1 = (aXn) mod m
При с=1 - смешанный датчик
Выбор модуля m. m - должно быть достаточно большим, т.к. период не больше m Даже для последовательности из 0,1 нельзя брать m=2 !!!! Вычисления (aX0+c) modm должны проходить быстро. Удобно использовать m = (длине слова компьютера): 2е для е-разрядной машины
Однако лучше 2е 1 : 2е -1 или 2е +1
Теорема. Длина периода Линейной Конгруэнтной Последовательности равна m т. и тт., когда c и m - взаимно простые числа; b = a - 1 кратно р для любого простого p, являющегося делителем m;
b кратно 4, если m кратно 4
Комбинированные генераторы
Генератор на основе объединения путем сложения по mod 232 двух генераторов: запаздывающего генератора Фибоначчи и генератора на основе умножения с переносом
Период 2^127
Квадратичный конгруэнтный метод Хn+1 = (dXn2+aXn+c) modm
Период длины m т. и т.т., когда c и m взаимно простые числа; d и a-1 кратны всем нечетным простым делителям m; d четное и d a-1(mod 4), если m кратно 4; d a-1(mod 2), если m кратно 2; или d 0 или а1 и сd 6(mod 9), если m кратно 9
18. Методы генерирования псевдослучайных чисел. Недостатки классических генераторов псевдослучайных чисел
1)сравнительно короткий период генерируемой последовательности;2) зависимость между соседними последовательными значениями;3) неравномерность распределения значений
«Псевдослучайные» - из того, что если известно i-е число, то по формуле мы однозначно вычислим (i+1)-й элемент. Из рекуррентной природы формулы следует, что при одном и том же x0 мы получим при повторной генерации ту же самую последовательность. Все арифметические алгоритмы генерации псевдослучайных последовательностей периодичны, то есть существует некоторое p∈N, для которого выполняется xi = xi + pn при любом натуральном n.
Любой генератор псевдослучайных последовательностей должен быть инициализирован случайной величиной, неким внешним источником случайных значений. Такими «аппаратными» генераторами в ПК могут выступать, например, электрические шумы в полупроводниковых устройствах, а также текущее количество выполненных процессором тактов или текущее значение
времени.
Комбинированные генераторы
Генератор на основе объединения путем сложения по mod 232 двух генераторов: запаздывающего генератора Фибоначчи и генератора на основе умножения с переносом
Период 2^127
Квадратичный конгруэнтный метод Хn+1 = (dXn2+aXn+c) modm
Период длины m т. и т.т., когда c и m взаимно простые числа; d и a-1 кратны всем нечетным простым делителям m; d четное и d a-1(mod 4), если m кратно 4; d a-1(mod 2), если m кратно 2; или d 0 или а1 и сd 6(mod 9), если m кратно 9
Генератор на основе объединения путем конкатенации двух 16-битных генераторов на основе умножения с переносом.
Период 2^16
Генераторы на основе умножения с переносом
Период
2^160
Период а*231-1
Реализация на Pascalлин. конг. мет.
Constx :LongWord = 10;
Function LCM:LongWord;
Begin
x = (1664525*x+1013904223) mod exp(32*ln(2))
LCM = x
End;
Begin
writeln(LCM)
End.
