- •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.Алгоритмы разделения секрета
13 Алгоритм Евклида
Наибольшим общим делителем (НОД) для двух целых чисел m и n называется наибольший из их общих делителей. Пример: для чисел 70 и 105 наибольший общий делитель равен 35.
Наибольший общий делитель существует и однозначно определён, если хотя бы одно из чисел m или n не ноль.
Свойство нод
1.Основное свойство: наибольший общий делитель делится на любой общий делитель m и n.
2.Если m делится на n, то НОД(m, n) = n. В частности, НОД(n, n) = n
Наибольший общий делитель чисел m и n может быть определен как наименьший положительный элемент множества всех их линейных комбинаций, и поэтому (m,n) представим в виде линейной комбинации чисел m и n: НОД (m,n)=mu+nv Это соотношение называется соотношением Безу, а коэффициенты u и v (целые числа)— коэффициентами Безу. Коэффициенты Безу эффективно вычисляются расширенным алгоритмом Евклида.
Алгоритм Евклида для целых чисел
Пусть a и b — целые числа, не равные одновременно нулю, и последовательность чисел a, b, r1 > r2 > … > rn определена тем, что каждое rk – это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть
a = bq0 + r1
b = r1q1 + r2
r1 = r2q2 + r3
rk − 2 = rk − 1qk − 1 + rk
rn − 1 = rnqn
Тогда НОД(a,b), наибольший общий делитель a и b, равен rn, последнему ненулевому члену этой последовательности.
14. Введение в теорию чисел. Функции Эйлера
Теория чисел — раздел математики, изучающий целые числа и сходные объекты. В зависимости от используемых методов теорию чисел подразделяют на несколько подтеорий.
Функция Эйлера φ(n) = (произведение от i=1 до k) (pia(i-ое)-1(pi-1))
, где n — натуральное число, равна количеству натуральных чисел, не больших n и взаимно простых с ним. Названа в честь Эйлера, который впервые использовал ее в своих работах по теории чисел.
Теоре́ма Э́йлера в теории чисел гласит, что если a и m взаимно просты, то a φ(m) ≡ 1 (mod m), где φ(m) — функция Эйлера .
Свойства:
φ (pn)=pn-1(p-1), если p – простое число
φ(mn)= φ(m) φ(n)
φ(mk)=mk-1 φ(m)
Частным случаем теоремы Эйлера при простом m является малая теорема Ферма. В свою очередь, теорема Эйлера является следствием теоремы Лагранжа.
15. Введение в теорию чисел. Модульная арфиметика
Это такая арифметика, в которой при делении интересуются только остатком
Первоесвойство: (a + b) mod n = [(a mod n) + (b mod n)] mod n
Второесвойство: (a – b) mod n = [(a mod n) - (b mod n)] mod n
Третьесвойство: (a × b) mod n = [(a mod n) × (b mod n)] mod n
Сравнения
В криптографии мы часто используем понятие сравнения вместо равенства. Отображение Z в Zn не отображаются "один в один". Бесконечные элементы множества Z могут быть отображены одним элементом Zn. Например, результат 2 mod 10 = 2, 12 mod 10 = 2, 22 mod 10 = 2, и так далее. В модульной арифметике целые числа, подобные 2, 12, и 22, называются сравнимыми по модулю 10 (mod 10). Для того чтобы указать, что два целых числа сравнимы, мы используем оператор сравнения (). Мы добавляем mod n к правой стороне сравнения, чтобы определить значение модуля и сделать равенство правильным.
Система вычетов: Zn
Результат операции по модулю n — всегда целое число между 0 и n - 1. Другими словами, результат a mod n — всегда неотрицательное целое число, меньшее, чем n. Мы можем сказать, что операция по модулю создает набор, который в модульной арифметике можно понимать как систему наименьших вычетов по модулю n, или Zn. Однако мы должны помнить, что хотя существует только одно множество целых чисел (Z), мы имеем бесконечное число множеств вычетов (Zn), но лишь одно для каждого значения n
Система вычетов
Система вычетов [a], или [a]n, — множество целых чисел, сравнимых по модулю n. Другими словами, это набор всех целых чисел, таких, что x = a (mod n). Например, если n = 5, мы имеем множество из пяти элементов [0], [1], [2], [3] и [4], таких как это показано ниже:
[0] = {…., –15, 10, –5, 0, 5, 10, 15, …}
[1] = {…., –14, –9, –4, 1, 6 , 11, 16,…}
[2] = {…., –13, –8, –3, 2, 7, 12, 17,…}
[3] = {...., –12, –7, –2, 3, 8, 13, 18,…}
[4] = {…., -11, –6, –1, 4, 9, 14, 19,…}
Операции в Zn
Три бинарных операции (сложение, вычитание и умножение), которые мы обсуждали для Z, могут также быть определены для набора Zn. Результат, возможно, должен быть отображен в Zn с использованием операции по модулю
