
- •Введение в высшую алгебру.
- •Группы.
- •Кольца.
- •Подгруппыи смежные классы.
- •Идеалы и классы вычетов.
- •Классы вычетов.
- •Идеалы и классы вычетов целых чисел.
- •Изоморфность.
- •Мультипликативная группа поля Галуа.
- •Основные положения теории чисел
- •Теорема Ферма.
- •Функция Эйлера.
- •Теорема Эйлера.
- •Классификация методов шифрования.
- •Пример обмена информацией по методу Эль-гамаля.
- •Алгоритм обмена сообщениями по Эль-гамалю (модификация дифи).
- •Алгоритм rsa
- •Алгоритм Диффи-Хеллмана. Открытое распределение ключей.
- •Вычислительные алгоритмы для криптологии. Алгоритм Евклида.
- •Расширенный алгоритм Евклида.
- •Модульные алгоритмы.
- •Модульное возведение в степень.
- •Нахождение числа, обратного по модулю.
- •Двоичный алгоритм Евклида.
- •Парадокс дней рождения.
- •Факторизация.
- •Вычисление числа по его вычетам.
- •АлгоритмМиллера-Рабина:
- •Вычисление длины периода последовательности (метод Флойда)
- •Полиномы.
- •Алгебра классов вычетов многочленов.
- •Поля галуа.
- •Поле Галуа для полиномов.
- •Свойства неприводимых многочленов.
- •Линейные переключательные схемы.
- •АлгоритмCrc:
- •Наиболее популярные магические полиномы:
- •Выбор полинома.
- •Типы ошибок:
- •Генераторы случайных последовательностей.
- •Постулаты случайности последовательностей Голомба.
- •Регистр с обратной связью.
- •Шифрование при помощи случайной последовательности (гамма-последовательности).
- •Потоковые шифры.
- •Генератор Греффе.
- •Генератор с нелинейным фильтром.
- •Сжимающий генератор.
- •Система блочного шифрования.
- •Информационная безопасность.
- •Подотчетность.
- •Гарантированность.
Пример обмена информацией по методу Эль-гамаля.
Пусть есть два абонента А и В. Абонент А желает передать абоненту В сообщение: число 37. В середине есть канал, который постоянно перехватывает. Канал не надежен. Перед передачей А и В договариваются о том, что выбирают некий ключ, который не говорят ни кому. Ключ выбирается из диапазона от 1 до 155.
А выбирает ключ K1=133=85h. Открытый текст S0= 37.
В выбирает ключ K2=79=45h.
Если над сообщением дважды проделать операцию XOR, то получим исходное сообщение.
А составляет сообщение S1=S0xorK1=160.
В получает число, шифрует его S2=S1xorK2=EF, пересылает его обратно.
Абонент Ашифрует число S3=S2xorK1=60h.
В принимает число, S4=S3xorK2=25h=37.Получили расшифрованное сообщение.
У этого примера малая криптостойкость, каков бы ни был ключ.
Алгоритм обмена сообщениями по Эль-гамалю (модификация дифи).
Метод шифрования с открытым ключом.
Задается большое простое число , которое известно всем пользователям. Сообщения представляются целыми числами из интервала
и передаются последовательно.
- открытый ключ.
Пользователи A и B выбирают числа
взаимно простые с
(функцией Эйлера от ) и такие, что
. Это гарантирует, что при возведении в степеньрезультат никогда не будет = 1, иначе расшифровка была бы невозможна. – закрытые ключи.
Пользователи A и B вычисляют инверсии своих закрытых ключей
и
. (
)
Передача сообщений производится в два приема.
А имеет сообщение
, шифрует его своим ключом – возводит в степень
по модулю
, отправляет В сообщение
.
В получает
,
шифрует его своим ключом – возводит
в степень
по модулю
и отправляет А сообщение
.
А получает это число, снимает свой ключ – возводит сообщение в степень
по модулю , отправляет Всообщение
.
B, получив это число,
возводит его в степень
по модулю
и в результате получает сообщение
.
Доказательство: следует непосредственно из теоремы Эйлера.
(
=
= …
Недостаток: метод не позволяет производить идентификацию партнера.
Алгоритм rsa
Шифр RSA (Rivest, Shamir, Adleman)был предложен в 1978 г. и долгое время был принят за основу в стандартах США. Алгоритм:
Даны 2 очень больших простых числа и .
Вычисляется модуль – произведение этих чисел:
Вычислить функциюЭйлера
.
Выбирается случайное целое число
, взаимно простое с
. gcd(e, M) = 1.
Вычислятся число
, мультипликативно обратное к числу
по модулю .
Такое
что
.
Получаем, что пара
–открытый ключRSA. Сообщается всем людям в сети.
Пара
–закрытый
ключRSA.
Шифрование сообщения. Если S – сообщение, то шифр
.
Расшифрование.
.
ПримерRSA:
S = 2 (надо передать).
P = 5, Q = 7.
= 35.
=4
* 6 = 24
e = 11 – открытый ключ.
d* 11 = 1 mod 24. Если d = 11, то d*e = 121 = 24*5 + 1.
Шифруем:
Расшифровываем:
Доказательство:
R = (SE)D mod N = SE*D mod N =SM*K+1 mod N =S
SMmodN =1
Ч.т.д.
Для ускорения вычислений лучше брать открытый и закрытый ключ небольшими, но М – результат их перемножения всего на несколько разрядов меньше N, то есть один из них будет небольшим, но это угрожает раскрытием шифра. Методы факторизации помогают вскрыть RSA.
Для ускорения обработки больших чисел разработаны спецпроцессоры RSA. Но все равно слабое место метода – малое быстродействие. Используется при передаче сеансовых ключей. Далее используется что-то другое, к примеру простая замена.
Несимметричный метод – шифруется и расшифровывается разными ключами. Это были алгоритмы передачи сообщений.
Разработчики избегают использовать числа N, меньше, чем в 200 десятичных разрядов.