- •Оглавление
- •ВВЕДЕНИЕ
- •1.1. Предмет криптографии и основные определения
- •1.2. Математические основы криптографии
- •1.3. Математическая модель шифра
- •1.4. Классификация шифров
- •1.5. Обзор истории криптографии
- •Появление шифров
- •Становление криптографии как науки
- •Криптография в Новое время
- •Научная криптология
- •2.1. Понятие подстановки
- •2.2. Математическая модель шифра подстановок
- •2.3. Сравнимость
- •2.4. Примеры классических шифров подстановок
- •2.5. Математическая модель шифра перестановок
- •2.6. Маршрутные перестановки как пример шифра перестановок
- •ГЛАВА 3 Характеристики открытых текстов. Вероятностный подход
- •3.2. Вероятностный подход к анализу текстов
- •Частоты букв европейских языков, в %
- •Частоты символов русского языка, в %
- •Сочетаемость букв русского языка
- •Чередование гласных и согласных для текста длиной 105 знаков
- •Буква
- •Буква
- •4.1. Теоретико-информационный подход к анализу текстов
- •4.2. Комбинаторный подход к анализу текстов
- •Современные симметричные криптосистемы
- •5.1. Математическая модель шифра замены
- •5.2. Классификация шифров замены
- •ГЛАВА 6 Принципы построения симметричных шифров
- •6.1. Принципы построения поточных шифров
- •6.2. Принципы построения блочных шифров
- •ГЛАВА 7 Математические основы асимметричной криптографии
- •7.1. История и основные определения асимметричной криптографии
- •7.2. Основы теории простых чисел
- •7.3. Функция Эйлера
- •ГЛАВА 8 Теоремы асимметричной криптографии и алгоритм RSA
- •8.1. Основные теоремы асимметричной криптографии
- •8.2. Алгоритм RSA
- •9.1. Задачи асимметричной криптографии
- •10.1. Понятие электронной подписи
- •10.2. Алгоритм электронной подписи на основе алгоритма RSA
- •ГЛАВА 11 Управление криптографическими ключами
- •11.1. Задачи управления криптографическими ключами
- •11.2. Генерация ключей
- •11.3. Хранение ключей
- •Заключение
- •Список рекомендованной литературы
ГЛАВА 7 Математические основы асимметричной криптографии
История и основные определения асимметричной криптографии. Основы теории простых чисел. Функция Эйлера.
7.1. История и основные определения асимметричной криптографии
Использование шифров с секретным ключом может быть безопасным только при условии сохранения ключа в секрете. Но в случае, когда секретную информацию нужно использовать совместно многими сторонами, а также в случае взаимного недоверия сторон, такие системы становятся потенциально опасными, так как требуют совместного использования секретных ключей. Решить эту проблему помогает использование асимметричных шифров.
Система шифрования называется асимметричной, если ключ расшифрования не совпадает с ключом зашифрования. Своим появлением асимметричные шифры обязаны ученым Стэнфорда Уитфилду Диффи и Мартину Хеллману, которые в середине 70-х годов исследовали проблему распределения секретных ключей. Они предложили простой алгоритм, который будет описан в одной из последующих лекций, позволяющий отправителю и получателю генерировать один и тот же секретный ключ, обмениваясь только несекретной информацией. В 1976 году результаты исследований были опубликованы в статье «Новые направления в криптографии», в которой указывалось на идею использования двух разных ключей для зашифрования и расшифрования, однако алгоритмом авторы на тот момент не располагали.
Идеей Диффи и Хеллмана заинтересовался профессор Массачусетского университета Рон Ривест. Он привлек к работе своих коллег – Ади Шамира и Лена Эдлмана – и совместно с ними в 1977 году разработал ал-
54
горитм, который мог осуществлять зашифрование и расшифрование, основываясь на идее Диффи и Хеллмана.
С середины 80-х годов началось активное распространение криптографических алгоритмов этого класса.
Асимметричные криптосистемы основываются на использовании односторонних функций.
Функция f (x): X →Y называется односторонней, если для нее выполняются два условия:
1.Существует быстрый алгоритм вычисления значений функции y = f (x);
2.Не существует быстрого алгоритма инвертирования функции f,
то есть вычисления значений x = f −1(y).
Односторонняя функция не является необратимой, обратная функция f −1(y) существует, однако задача ее нахождения имеет большую вычислительную сложность.
Частным случаем односторонней функции является функция с секретом – функция fk (x): X →Y , зависящая от параметра k и удовлетворяющая следующим условиям:
1.Для любого значения параметра k существует быстрый алгоритм вычисления значений y = fk (x).
2.Если параметр k известен, то существует быстрый алгоритм инвертирования функции, то есть вычисления значений x = fk−1(y).
3.Если параметр k неизвестен, быстрого алгоритма инвертирования функции не существует.
Используя функции с секретом, можно построить следующую схему асимметричного шифрования.
Получатель:
1.Выбирает функцию fk .
2.Сообщает отправителю структуру функции fk , оставляя в сек-
рете значение параметра k. Отправитель:
1.Вычисляет y = fk (x).
2.Отправляет получателю значение y.
55
Получатель:
1. Вычисляя fk−1(y), находит значение x.
При этом злоумышленник, перехвативший сообщение y, не может восстановить исходное сообщение x, даже если он знает структуру функции fk , так как ему неизвестно значение секретного параметра k.
7.2. Основы теории простых чисел
Для того чтобы понять принцип работы наиболее простого асимметричного криптоалгоритма – RSA (названного по имени создателей Ривеста, Шамира и Адлемана), нам придется вспомнить некоторые определения и теоремы, относящиеся к теории простых чисел.
Натуральное число p >1 называется простым, если оно не имеет натуральных делителей, кроме единицы и самого себя.
Любое натуральное число может быть однозначно представлено в виде произведения конечного числа простых множителей, что и утверждает первая теорема, которая будет нами доказана.
Теорема 7.1 (Основная теорема арифметики)
Любое натуральное число n однозначно (если не учитывать порядок множителей) представимо в виде произведения простых чисел:
n = p1 p2 pr , r ≥1,
где r – некоторое целое число, зависящее от n.
Доказательство
Докажем сначала существование разложения.
Рассмотрим последовательность натуральных чисел, начиная с еди-
ницы:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …
Хорошо видно, что каждое из натуральных чисел имеет наименьший делитель, отличный от 1, который является простым числом. Так, для чисел 4, 6, 8, 10, … – это число 2, для числа 9 – число 3, числа 2, 3, 5, 7 сами являются простыми.
56
Действительно, если бы наименьший делитель натурального числа не был бы простым, он сам делился бы на какое-либо число, следовательно не являлся бы наименьшим.
Итак, найдем наименьший делитель числа n, который обозначим p1 , и разделим на него n:
n = p1 n1 .
При этом может быть либо n1 – простое число, либо n1 не является простым. Если n1 простое, то существование разложения доказано. В случае если n1 не простое, продолжим доказательство.
Найдем наименьший простой делитель p2 числа n1 и разделим на него n1 :
n = p1 p2 n2 ,
где снова может быть либо n2 – простое, либо n2 – не простое.
Будем повторять этот процесс r раз до тех пор, пока число nr не станет простым. В этом случае мы переобозначим его, как pr , и запишем разложение:
n = p1 p2 p3 pr .
Но является ли такое разложение единственным?
Предположим, что существуют два различных разложения натурального числа n на простые множители:
n = p1 p2 p3 pr и n = q1 q2 q3 qs .
Для определенности будем считать, что s ≥ r .
Так как мы имеем разложения одного и того же числа, мы можем записать равенство
p1 p2 p3 pr = q1 q2 q3 qs . |
(7.1) |
Правая часть этого равенства делится на q1 , следовательно, и левая часть должна делиться на q1 . Это возможно только в одном из двух случаев: если один из множителей pi ,i =1, , r равен q1 или один из множителей pi делится на q1 . Второй случай невозможен, так как по построению все pi яв-
57
ляются простыми числами. Поэтому выберем тот множитель из левой части равенства (7.1), который равен q1 (пусть для определенности это будет p1 ), и разделим на него обе части равенства (7.1). В результате получим
p1 = q1 ;
p2 p3 pr = q2 q3 qs .
Повторяя рассуждения для q2 , получим, что p2 = q2 ;
p3 pr = q3 qs .
Продолжая шаг за шагом этот процесс, на последнем шаге мы получим равенство
1 = qs −r qs ,
что означает, что все оставшиеся qi (i = s −r, , s ) равны 1, чего не может быть, так как все простые числа qi по определению больше единицы. Сле-
довательно, s = r.
Таким образом, предположив, что существуют два различных разложения натурального числа n, мы пришли к выводу, что количество множителей в этих разложениях одинаково, и соответствующие множители первого и второго разложений равны между собой, что и доказывает единственность построенного разложения.
Естественно, простые множители в разложении натурального числа на простые числа могут повторяться. Если в разложении натурального числа n присутствует α1 простых множителей p1 , α2 простых множите-
лей p2 и так далее, то разложение натурального числа n на простые множители можно записать в виде
n = p1α1 p2α2 pkαk . |
(7.2) |
Разложение (7.2) называется каноническим разложением натурального числа.
Следующий вопрос, который нам необходимо выяснить, сколько всего существует простых чисел. Может быть их количество ограничено? На этот вопрос отвечает следующая теорема.
58
