Материал: Раздел 2.Криптографические системы с открытым ключом

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Пусть имеется уравнение аx = b, из которого требуется найти x. Прологарифмируем левую и правую части уравнения. Получим:

x log a = log b, откуда , т.е. для степенного уравнения решение находится просто.

Если же имеется сравнение аx  b mod P, ( 1 )

в котором известны значения a, b, и P, то x находится в общем случае с помощью перебора. Задача решения сравнений вида ( 1 ) называется задачей дискретного логарифмирования. Несмотря на безусловные успехи последних лет в этой области, для произвольных модулей P решение близко к полному перебору. Если же P имеет порядка 100 десятичных разрядов, то и значения k1 и k2 имеют примерно тот же порядок и для решения сравнения требуется производить перебор около 10100 вариантов, что является нереализуемым ни за какое приемлемое время.

2.4. Криптосистема rsa

Наиболее широко распространенной системой с открытым ключом является криптосистема RSA (Rivest, Shamir, Adleman). Идея системы состоит в том, что очень сложно разложить произведение двух простых чисел на сомножители, т.е. найти эти сомножители. Сама же идея системы RSA исключительно проста.

Пусть p и q – два случайно выбранных простых числа (каждое примерно по 100 десятичных разрядов). Обозначим:

n = pq и j(n) = (p-1)(q-1), где j (n) – функция Эйлера от n.

Случайно выбирается большое число d >1, такое, что (d, j(n)) = 1, и вычисляется e, 1 < e < j(n), удовлетворяющее сравнению:

ed º 1 mod j(n).

Числа n, e и d называются соответственно модулем, экспонентой зашифрования и экспонентой расшифрования соответственно.

Числа n и e образуют открытый ключ, а p,q, j(n) и d секретную лазейку. При этом секретная лазейка включает в себя взаимозависимые величины. Так, если известно p (и, конечно, n и e), то остальные числа лазейки вычисляются просто:

q = n/p; j(n) = (p-1)(q-1); d находится из условия: ed º 1 mod j(n).

Зашифрование обеспечивается возведением числового фрагмента текста S в степень e по модулю n.

Расшифрование достигается возведением результата предыдущего шага в степень d.

При зашифровании получаем Se º C mod n. Здесь C – зашифрованный фрагмент текста.

При расшифровании Cd = Sed = S1+j(n)k = Sj(n)k S º S mod n. ( * )

Справедливость (*) легко видна, так как из сравнения ed º 1 mod j(n) следует, что ed = 1 + j(n)k, где k – некоторое целое.

Пример. Пусть p = 11, q = 13. Тогда n = 143, j(n) = 120.

Выберем d из условия: ( d, j(n)) = 1, например, d = 37, тогда из сравнения: ed º 1 mod j(n) находим e = 13. Действительно,

13*37 = 481 º mod 143.

Для зашифрования возьмем фрагмент текста, который закодирован, например, числом S = 42.

4213 º 3 mod 143, т.е. шифр фрагмента C = 3.

Для расшифрования возведем число 3 в степень 37:

337 º 42 mod 143. Таким образом, легальный получатель вычисляет значение исходного кода фрагмента/

2.5. Идея криптосистемы ЭльГамаля.

Идея ЭльГамаля [ 3 ] является аналогом идеи RSA и состоит в следующем. Алиса выбирает очень большое простое число P и число g – первообразный корень по модулю P. Вычисляет значение y  gx mod P. Открытыми ключами являются P, g и y. Число x является секретным ключом Алисы. Если Боб решает послать секретное сообщение m Алисе, он придумывает некоторое целое число k, вычисляет a  gk mod P и передает Алисе пару чисел b  m*yk mod P и a  gk mod P. Алиса возводит а в известную только ей степень x и решает сравнение:

(2)

В результате Алиса читает переданное ей сообщение m.

Пример. Пусть P = 113. Возьмем g = 3. Это число является первообразным корнем по модулю 113. Пусть Алиса выбрала x = 59. Вычислим y  359mod 113  86 mod 113. Открытыми ключами являются P = 113, g = 3 и y = 86. Секретным ключом Алисы является число x = 59. Боб хочет послать секретное сообщение Алисе в виде числа m = 92. Боб придумывает число k = 37 , вычисляет a  337 mod 113  24 mod 113 и b  92* 8637  7 mod 113 и посылает Алисе два числа a = 24 и b = 7. Алиса вычисляет: mod 113  mod 113  92 mod 113. Полученное сообщение полностью соответствует исходному.