Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математические основы криптологии..pdf
Скачиваний:
102
Добавлен:
05.02.2023
Размер:
6.01 Mб
Скачать

Вычисление дискретных логарифмов (когда заданы a, y и n) примерно такая же труднорешаемая задача, как и разложение на множители.

Определение. Односторонняя функция f: X Y называется односторонней функцией с ловушкой, если f -1(у) можно вычислить за полиномиальное время, имея некоторую дополнительную информацию, т. е. существует функция g(у,t), вычислимая за полиномиальное время и такая, что g(y,t) = f -1(у) для некоторой ловушки t.

Эффективное вычисление обратной функции возможно, если известен "потайной ход" (секретное число, строка или другая информация, ассоциирующаяся с данной функцией). В качестве примера однонаправленной функции с "потайным ходом" можно привести использование функции Эйлера в криптосистеме RSA.

Криптосистема RSA

Алгоритм RSA стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи. Основанная на этом алгоритме популяpная криптосистема RSA pазpаботана в 1977 году и получила название в честь ее создателей: Рональда Ривеста (в настоящее вpемя он возглавляет компанию RSA Data Security), Ади Шамира и Леонарда Эйдельмана.

В настоящее время RSA является наиболее распространенной криптосистемой с открытым ключом — стандартом де-факто для многих криптографических прложений. Статус де-факто послужил причиной включения криптосистемы RSA в принятые ранее криптографические стандарты, например в финансовые стандарты США и Франции, австралийский стандарт управления ключами и многие другие. Криптосистема RSA применяется в различных протоколах Internet. В криптографические стандарты, действующие на территории России, RSA не входит, что осложняет ее применение с точки зрения правовых норм. Тем не менее, выбор этой криптосистемы признается оправданным отечественными авторами [8].

Основные определения и теоремы

Надежность алгоритма основывается на трудновычислимых задачах факторизации (разложения на множители) больших чисел и вычисления дискретных логарифмов. Определения и теоремы из алгебры, использованные при создании данной криптосистемы рассмотрены в приложении. Приведем здесь только основные утверждения.

1. Криптографические системы являются стойкими, если определенные их параметры являются простыми числами. Число а называется простым, если оно не имеет целых

340

делителей, кроме единицы. Числа а и b называются взаимно простыми, если их наибольший общий делитель НОД(а, b)=1.

2. Функцией Эйлера φ(n) называется число положительных целых чисел меньших n и взаимно простых с n.

Вычисление функции Эйлера φ(n) для больших n в общем случае представляет собой трудоемкую процедуру перебора всех чисел меньших n и проверки для каждого взаимной простоты с n. Однако, эта функция обладает следующими свойствами:

φ(p) = p -тест, 1 p – простого числа.

φ(a, b) = φ(а) φ(b) для любых натуральных взаимно простых а и b,

которые позволяют легко вычислить значение функции Эйлера φ(n) с помощью трех арифметических действий, если известно разложение числа n на простые сомножители p и q:

φ(n)=(p-тест,1)(q-тест,1).

3. В RSA используется теорема, которая носит название китайской теоремы об остатках, так как этот результат был известен еще в древнем Китае, где теорема была предложена китайским математиком первого века Сун Це. Она утверждает, что любое неотрицательное целое число, не превосходящее произведения модулей, можно однозначно восстановить, если известны его вычеты по этим модулям, и названа так потому, что результатом приведения числа а по модулю n является остаток от деления а на n.

Фактически в RSA используется следствие из этой теоремы, утверждающее, что если известно разложение числа n на простые множители n=n1n2...nk, где все ni попарно взаимно просты, и результат приведения числа x по модулю ni i=1,…,k одинаков, то результатом приведения числа x по модулю n будет то же число. То есть x,a – целых чисел

x a mod n x a mod ni i=1,…,k.

4. Теорема Эйлера. Если n>1, то х Zn* (х взаимно простого с n), выполняется сравнение

xφ(n) 1 mod n.

Следствие. х < n и взаимно простого с n можно легко вычислить обратный элемент x-1 в кольце вычетов Zn из сравнения

x-1 xφ(n)-1 mod n.

Малая теорема Ферма. x GF(p), х 0, выполняется сравнение

хр-тест,1 1 mod p.

Малая теорема Ферма является следствием из теоремы Эйлера, хотя исторически она была доказана раньше, затем Эйлер её обобщил.

Следствие 1: Если p — простое число, то х, взаимно простого с p:

341

xp = х mod p.

Следствие 2: если НОД(е,φ(n))=1 (е - простое относительно φ(n) ) то d-целое, такое, что

ed = 1 mod n.

На этих математических фактах основан алгоритм RSA.

Алгоpитм RSA

В криптосистеме RSA сообщение m, криптограмма c, открытый ключ Kо, и секретный ключ Кс, принадлежат множеству целых чисел Zn={0, 1, 2,..., n-1}. Множество Zn с операциями сложения и умножения по модулю n образует кольцо.

Модуль n определяется как составное число равное произведению n=p·q двух больших простых чисел p·и q. Модуль n является открытым параметром алгоритма, а чисела p·и q — секретными параметрами. То есть множители p и q хранят в секрете, а их произведение n известно всем, кто пользуется данной криптосистемой. Здесь используется односторонняя функция с ловушкой. Зная секретные параметры алгоритма p и q можно легко вычислить функцию Эйлера (n) по формуле

(n)=(p-l)(q-1),

тогда как вычисление (n) только по большому числу n является трудновычислимой задачей.

Функция Эйлера используется в RSA при вычислении ключей. Открытый ключ Кo = е выбирают случайным образом из множества Z* (n) — чисел меньших (n) и взаимно простых с (n).

Иначе условие е Z* (n) раносильно выполнению двух условий 1<Kо (n), и НОД(Ко, (n))=1,

которым должено удовлетворять случайно выбранное число Кo = е, чтобы оно могло служить открытым ключом в RSA.

Секретный ключ Kc = d вычисляют так, чтобы выполнялось условие Kc · Ко = е · d 1 mod (n). (*)

То есть, секретный ключ d является обратным элементом к открытому ключу е в множестве Z (n): d = е -1 mod (n). Решение сравнения (*) можно найти с помощью расширенного алгоритма Евклида.

Заметим, что d и n также взаимно простые числа. Вычисление секретного ключа по открытому является трудновычислимой задачей, если неизвестны секретные параметры

342

алгоритма p и q, так как при этом трудно вычислить значение функции Эйлера, то есть модуля, по которому приводятся результаты операций при вычислении ключей.

При выполнении шифрования и дешифрования вычисления приводятся по модулю n. Открытый ключ Ко и модуль n сообщают всем, с кем предполагают обмениваться сообщениями и используют для шифрования данных, а секретный ключ Кс хранят в секрете на стороне получателя и используют для дешифрования.

Преобразование шифрования определяет криптограмму c через пару (открытый ключ Ко, сообщение m) в соответствии со следующей формулой:

с Ко (m) = mКо mod n.

В качестве алгоритма быстрого вычисления значения c используют ряд последовательных возведений в квадрат целого m и умножений на m с приведением по модулю n.

Обращение функции с = mКо mod n, т.е. определение значения m по известным значениям с, Кo и n, является задачей дискретного логарифмирования и практически неосуществимо при

n 2512.

Однако задачу расшифрования криптограммы с, можно легко решить, используя секретный ключ Кc, по следующей формуле:

m = DKc (с) = сKc mod n.

Докажем, что в результате возведения криптограммы с в степень секретного ключа Кc получается исходный текст m. Процесс расшифрования можно записать так:

DKc(E(m)) = DKc(me) mod n= (me)d mod n= med mod n.

По условию выбора ключей

 

e · d 1 mod (n)

(*)

мы можем написать, что k такое что, с учетом свойств (n) : e·d = k · (n) +1 = k (p-тест,1)(q-тест,1) +1.

Подставим это выражение в показатель степени:

med m (m (p-тест,1)) k (q-тест,1) = (m(q-тест,1))k (p-тест,1).

По малой теореме Ферма (хр-тест,1 1 mod p, p – простое): med mod p m (1) k (q-тест,1) mod p = m mod p. Аналогично, заменив p на q, получим:

med mod q m (1) k (p-тест,1) mod q = m mod q.

Далее, по следствию из китайской теоремы об остатках так как n=pq: med mod n = m mod n, ч.т.д.

Таким образом, если криптограмму с возвести в степень Кс: 343