Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы криптографии. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
706 Кб
Скачать

ГЛАВА 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(p1)(q1)+1 = xrp(q1)r(q1)+1 =

= xrp(q 1)xr(q 1)+1 xr(q 1)xr(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)(111)= 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