- •Оглавление
- •ВВЕДЕНИЕ
- •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. Хранение ключей
- •Заключение
- •Список рекомендованной литературы
ГЛАВА 8
Теоремы асимметричной криптографии и алгоритм RSA
Основные теоремы асимметричной криптографии. Алгоритм асимметричного шифрования RSA.
8.1. Основные теоремы асимметричной криптографии
Основными теоремами теории чисел, которые обеспечивают возможность применения криптоалгоритмов с открытыми ключами, являются теорема Эйлера и следующая из нее малая терема Ферма.
Теорема 8.1 (Эйлера)
Если n – натуральное число, n >1, число a взаимно просто с n, то aϕ(n) ≡1(mod n).
Доказательство
Рассмотрим все возможные остатки отделения на n:
1,2,3, , n −1.
Выберем из этого ряда те числа, которые взаимно просты с n. По определению функции Эйлера таких чисел ровно ϕ(n). Обозначим их
a1, a2 , , aϕ(n).
Для любого i =1,2, ,ϕ(n) (ai , n)=1.
По условию теоремы число a взаимно просто с n: (a, n)=1.
Если мы умножим каждое из ai на a, то получим, что произведения aai также взаимно просты с n: (aai , n)=1.
Каждое из чисел aa1, aa2 , , aaϕ(n) сравнимо с соответствующим a j по модулю n:
aai ≡ a j (mod n), i =1,2, ,ϕ(n). |
(8.1) |
Перемножим сравнения (8.1)
62
j(n)
∏aai
i=1
j(n)
= ∏a j (mod n).
j=1
Так как обе части сравнения можно сократить на взаимно простое с
ϕ(n)
модулем число, разделив обе части сравнения на ∏ai , получим утвер-
i =1
ждение теоремы:
aϕ(n) ≡1(mod n).
Теорема 8.2 (Малая теорема Ферма)
Если p – простое число, и число a не делится на p, то a p −1 ≡1(mod p).
Доказательство
Доказательство этой теоремы сразу же следует из теоремы Эйлера и свойств функции Эйлера, доказанных в предыдущей лекции. Действительно, заменив в формулировке теоремы Эйлера натуральное число n на простое число p и вспомнив, что ϕ(p)= p −1, мы сразу же получим утверждение теоремы.
Наконец, сформулируем основную теорему, которая используется в асимметричных криптоалгоритмах.
Теорема 8.3
Пусть p и q – различные простые числа, n = pq , число d – произвольное число, взаимно простое с ϕ(n). Тогда существует целое число e такое, что
ed ≡1(mod ϕ(n)).
Доказательство
По условию теоремы (d ,ϕ(n))=1. Применим теорему Эйлера для чисел ϕ(n) и d:
d ϕ(ϕ(n)) ≡1(mod ϕ(n)).
Взяв в качестве числа e число e = d ϕ(ϕ(n))−1 , мы получим утверждение теоремы.
63
8.2.Алгоритм RSA
Вэтом разделе мы рассмотрим самый простой алгоритм асимметричного шифрования RSA, история создания которого уже упоминалась в главе 7.
Вспомним, что при построении математической модели шифра мы вводили обозначения: x – исходное сообщение; y – шифрованное сообщение; E – преобразование зашифрования; D – преобразование расшифрования. Необходимым требованием обратимости зашифрования являлось выполнение условия:
y = E(x); |
|
x = D(y)= D(E(x)). |
(8.2) |
Как уже упоминалось, в основе алгоритма RSA лежит вычислительная сложность задачи разложения большого числа на простые множители. Алгоритм состоит из следующих основных шагов.
Получатель:
1.Выбирает два различных больших простых числа p и q.
2.Вычисляет произведение n=pq.
3.Находит функцию Эйлера числа n по правилу: ϕ(n)= (p −1)(q −1).
4.Выбирает число d взаимно простое с ϕ(n).
5. Следуя теореме 11.3, подбирает число e такое, что ed ≡1(mod ϕ(n)).
6.Опубликовывает открытый ключ {e, n}.
7.Сохраняет в секрете ключ {d ,n}. Отправитель:
1.Зашифровывает сообщение x по правилу y = E(x)= xe (mod n).
2.Отправляет шифрованное сообщение y Получателю. Получатель:
1. Расшифровывает сообщение y по правилу x = D(y)= yd (mod n). О том, что алгоритм RSA действительно обеспечивает выполнение
условия (11.2) об однозначности расшифрования, утверждается следующая теорема.
64
Теорема 8.4
Если в алгоритме RSA y = E(x)= xe (mod n), то x = D(y)= yd (mod n).
Доказательство
Пусть x – произвольное целое число, p – простое число. Возможны два различных случая:
1.Числа x и p не являются взаимно простыми, то есть имеют общие делители, отличные от 1, следовательно, x ≡ 0(mod p).
2.Числа x и p взаимно просты, следовательно, по малой теореме
Ферма x p −1 ≡1(mod p).
В первом случае умножим левую и правую части сравнения x ≡ 0(mod p) на (x p −1 −1):
x(x p −1 −1)≡ 0(mod p).
Раскрывая скобки и перенося x в правую часть сравнения, получим:
x p |
≡ x(mod p). |
(8.3) |
Во втором случае вычтем |
из левой и |
правой частей сравнения |
x p −1 ≡1(mod p) единицу: |
|
|
x p −1 −1 ≡ 0(mod p).
Умножая левую и правую части полученного сравнения на x и перенося x в правую часть, также получим сравнение (8.3).
Далее, следуя алгоритму RSA, выберем числа d и e так, чтобы ed ≡1(mod ϕ(n)). По теореме о свойствах сравнений это означает, что существует такое целое число r, что
ed = r ϕ(n)+1. |
(8.4) |
Выпишем далее цепочку преобразований с учетом соотношений (8.3)
и (8.4).
yd = (xe )d = xed = xr ϕ(n)+1 = xr(p−1)(q−1)+1 = xrp(q−1)−r(q−1)+1 =
= xrp(q −1)x−r(q −1)+1 ≡ xr(q −1)x−r(q −1)+1(mod p)≡ xr(q −1)−r(q −1)+1(mod p)≡ x(mod p).
Аналогично можно показать, что yd ≡ x(mod q).
65
Так как p и q – различные простые числа, отсюда сразу же следует,
что
|
yd ≡ x(mod n). |
|
|
Действительно, в силу свойств сравнений: |
|
||
существует t |
>1 такое, что yd |
= t p + x и |
(8.5) |
1 |
|
1 |
|
существует t2 |
>1 такое, что yd |
= t2q + x . |
(8.6) |
Отсюда следует, что t1 p = t2q . Так как p и q – различные простые числа, это равенство выполнимо в том и только в том случае, если t1 делится на q, и t2 делится на p. То есть существуют t3 и t4 такие, что
t1 p = t3 pq и t2q = t4 pq .
Подставляя эти выражения в (11.5) и (11.6), получим выражения: yd = t3 pq + x
yd = t4 pq + x ,
из которых следует, что yd ≡ x(mod pq), что и требовалось доказать. В завершение приведем пример использования алгоритма.
Пример 8.1
Пусть исходным сообщением будет x=ВАБ=3 2 1 (мы заменили буквы русского алфавита на их порядковые номера в алфавите).
Получатель:
1.Выбирает два различных простых числа p=3 и q=11 (мы выбираем p и q достаточно малыми для облегчения вычислений).
2.Вычисляет произведение n=3 11=33.
3.Находит функцию Эйлера числа 33 по правилу:
ϕ(33)= (3 −1)(11−1)= 2 10 = 20 .
4.Выбирает число d взаимно простое с 20, например d=3.
5.Следуя теореме 11.3, подбирает число e такое, чтоe 3 ≡1(mod 20) например e = 7.
6.Публикует открытый ключ {7,33}.
7.Сохраняет в секрете ключ {3,33}.
66
Отправитель:
1. Зашифровывает сообщение x по правилу y = E(x)= x7 (mod33):
В7 ≡ 37 (mod33)≡ 2187(mod33)≡ 9 = И А7 ≡17 (mod33)≡1(mod33)≡1 = А
Б7 ≡ 27 (mod33)≡128(mod33)≡ 29 = Ь
Получатель:
1. Расшифровывает сообщение y по правилу x = D(y)= y3 (mod n):
И3 ≡93 (mod33)≡ 729(mod33)≡ 3 = В А3 ≡13 (mod33)≡1(mod33)≡1 = А
Ь3 ≡ 293 (mod33)≡ 24389(mod33)≡ 2 = Б.
67
