
- •Введение в высшую алгебру.
- •Группы.
- •Кольца.
- •Подгруппыи смежные классы.
- •Идеалы и классы вычетов.
- •Классы вычетов.
- •Идеалы и классы вычетов целых чисел.
- •Изоморфность.
- •Мультипликативная группа поля Галуа.
- •Основные положения теории чисел
- •Теорема Ферма.
- •Функция Эйлера.
- •Теорема Эйлера.
- •Классификация методов шифрования.
- •Пример обмена информацией по методу Эль-гамаля.
- •Алгоритм обмена сообщениями по Эль-гамалю (модификация дифи).
- •Алгоритм rsa
- •Алгоритм Диффи-Хеллмана. Открытое распределение ключей.
- •Вычислительные алгоритмы для криптологии. Алгоритм Евклида.
- •Расширенный алгоритм Евклида.
- •Модульные алгоритмы.
- •Модульное возведение в степень.
- •Нахождение числа, обратного по модулю.
- •Двоичный алгоритм Евклида.
- •Парадокс дней рождения.
- •Факторизация.
- •Вычисление числа по его вычетам.
- •АлгоритмМиллера-Рабина:
- •Вычисление длины периода последовательности (метод Флойда)
- •Полиномы.
- •Алгебра классов вычетов многочленов.
- •Поля галуа.
- •Поле Галуа для полиномов.
- •Свойства неприводимых многочленов.
- •Линейные переключательные схемы.
- •АлгоритмCrc:
- •Наиболее популярные магические полиномы:
- •Выбор полинома.
- •Типы ошибок:
- •Генераторы случайных последовательностей.
- •Постулаты случайности последовательностей Голомба.
- •Регистр с обратной связью.
- •Шифрование при помощи случайной последовательности (гамма-последовательности).
- •Потоковые шифры.
- •Генератор Греффе.
- •Генератор с нелинейным фильтром.
- •Сжимающий генератор.
- •Система блочного шифрования.
- •Информационная безопасность.
- •Подотчетность.
- •Гарантированность.
Алгоритм Диффи-Хеллмана. Открытое распределение ключей.
Алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищённый от подмены, канал связи. Этот ключ может быть использован для шифрования дальнейшего обмена с помощью алгоритма симметричного шифрования.
Все абоненты
открытой
сети знают пару открытых ключей: общий
ключ P (случайное простое
число) и q<P
– образующий по модулю P
(первообразный корень) – число, которое
возведенное последовательно в степень
дает все числа, меньшие p
и больше 0.Если период будет достаточно
большой у последовательности, то это
будет образующая.
Личные ключи
скрываются от всех.
Двумя абонентами публикуетсяшифровка
своего ключа: образующая q
в степени
и
.
При обмене ключами абоненты пересылают
именно эту степень.
Вычисляется общий ключ: абонент посылает обратно шифровку
.
Ключ получается равным на обеих сторонах. Далее этот ключ используется, например в RSA.
Достоинства методов с открытыми ключами:
Редкая смена ключей.
Имеется 1 ключ на абонента.
Для подтверждения подлинности абонента можно связаться по телефону.
Общий недостаток методов с открытыми ключами: не позволяется проводить идентификацию партнера. Далее начинает работать как один из адресатов, собирает статистику. Метод Диффи и Хеллмана в 30 раз быстрее, чем RSA. В 5 раз быстрее по сравнению с Эль-гамалем. И по криптостойкости тоже самое.
Вычислительные алгоритмы для криптологии. Алгоритм Евклида.
Алгоритм для нахождения НОД 2х целых чисел, одновременно не равных 0.НОД(a, b) = gcd(a, b).
Если оба числа делятся на некий делитель, то и их разность делится на это число (из большего вычитают меньшее). Разность имеет тот же НОД, что и об исходных числа.
,
=>
.
Разность двух чисел меньше большего числа, т.е. .
НОД можно получить:
Делить на все числа до половины меньшего из двух чисел.
Последовательно вычитая из большего числа меньшее до тех пор, пока остаток не будет меньше b. Делитель на каждом шаге будет сохраняться (т.е. число
). Этот способ предпочтительнее.
Многократное вычитание можно заменить делением. Получим НОД последовательным вычитаниемдо тех пор, пока остаток не будет меньше b. Дальше меняем местами b и остаток, продолжаем вычитания. Можем ускорить алгоритм: если у нас остаток – четное число, а вычитаемое – нечетное, то можно сделать сдвиг остатка на бит вправо.
Далее
— это остаток от деления предпредыдущего
числа на предыдущее, а предпоследнее
делится на последнее нацело, то есть
1 шаг.
Представим
Сколько бы раз b из a ни вычитать, все равно их разность содержит делитель.
|
2 шаг.
Из b вычитаем q1 раз остаток r1. Получаем,
что После двух шагов уменьшаем число минимум в 2 раза.
|
В конце получаем строку: 1=1*1+0.
Тогда НОД(a,b) =
,
последнему ненулевому члену этой
последовательности.
В r содержится НОД, как только 2 остатка сравняются, на последнем шаге остаток будет = 0, а на предпоследнем шаге остаток = НОД.
Пример:НОД(2401, 125).
2401 = 19*125+26.
125 = 26*4 + 21.
26 = 1*21 + 5.
21 = 5*4 + 1 (НОД=1)
5 = 1*5 + 0.