Научная литература
booksshare.net -> Добавить материал -> Криптография -> Алферов А.П. -> "Основы криптографии Учебное пособие" -> 80

Основы криптографии Учебное пособие - Алферов А.П.

Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии Учебное пособие — М.: Гелиос АРВ, 2002. — 480 c.
ISBN 5-85438-025-0
Скачать (прямая ссылка): osnovikriptografii2005.djvu
Предыдущая << 1 .. 74 75 76 77 78 79 < 80 > 81 82 83 84 85 86 .. 126 >> Следующая


§ 8.3).

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

Рассмотрим конкретные примеры систем шифрования с открытыми ключами.

§ 11.1. Шифрсистема RSA

Система RSA была предложена в 1978 г. [Riv78] и в настоящее время является наиболее распространенной системой шифрования с открытым ключом. Напомним ее определение, приведенное в гл. 2 (определение 4).

Пусть п = p-q — целое число, представимое в виде произведения двух больших простых чисел р, q . Выберем числа е и d из условия

e-d = l(mod (р(п))> (1)

где ф(п) = (р — 1) • (q -1) — значение функции Эйлера от числа п. Пусть k = (n,p,q,e,d) — выбранный ключ, состоящий из открытого ключа къ = (п9е) и секретного ключа

311
І лава 17

kp = (n,p,q,d) . Пусть M — блок открытого текста и С —

соответствующий блок шифрованного текста. Тогда правила зашифрования и расшифрования определяются формулами:

С = Ek(M) = Me(modп), Dk(C) = Cd(modn). (2)

Заметим, что в соответствии с (2) Dk (С) = M . Это выте-

кает из следующих рассуждений. Для любого целого числа M и любого простого р справедливо сравнение

Mp s М(mod р). (3)

В самом деле, (3) равносильно сравнению Mp -M = 0(mod р)

или сравнению

M(Mp-'-I) = 0(modр). (4)

Если НОД(М,р) = р, то р делит M, и поэтому M = 0(mod р), откуда следует (4). Если же НОД(М, р) = 1, то, согласно малой теореме Ферма (см. Приложение 3), Мр~х = l(modр), откуда также следует (4).

Согласно (1), существует целое число г, такое, что e-d = r • (р(п) + 1. Отсюда и из (3) получаем следующую цепочку равенств и сравнений:

Cd =(Me)d =Med =Mr ^(A7)+l = Mr{p~m~])+] =

= Mrpiq-l) -M-rq+r+l =(MPYiq-{) -M'rq+r+l = (5) = Mr(4~]) ¦ M-r4+r+' = M(mod p).

312
Системы с открытыми ключами

Аналогично можно показать, что

Cd = M mod q . (6)

Поскольку р и q — разные простые числа, то на основании известных свойств сравнений из (5), (6) получаем:

Cd =Mmodzj.

Отсюда и следует корректность определения (2).

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

Пример

Зашифруем аббревиатуру RSA, используя р = 17, <7 = 31. Для этого вычислим п = pq = 527 и ср(п) = (р-\)(q -1) = 480 . Выберем, далее, в качестве е число, взаимно простое с (р{п), например е = 7. С помощью алгоритма Евклида найдем целые числа и и V, удовлетворяющие соотношению е • и + (pin) -v = l:

480 = 7-68 + 4,

7 = 4-1 + 3,

4 = 3-1 + 1,

1 = 4-3-1 = 4-(7-4-1)-1 =

= 4-2-7-1 = (480-7-68)-2-7-1 =

= 480-2-7-137,

V = 2, и = -137.

313
І лава 11

Поскольку -137 = 343(mod480),то d = 343. Проверка:

7 • 343 = 2401 s l(mod480).

Теперь представим данное сообщение в виде последовательности чисел, содержащихся в интервале 0,526 . Для этого буквы R9S и А закодируем пятимерными двоичными векторами, воспользовавшись двоичной записью их порядковых номеров в английском алфавите:

R = IS = (10010), S = 19 = (1001 IlA = I = (00001).

Тогда RSA = (100101001100001). Укладываясь в заданный интервал 0,526, получаем следующее представление:

RSA = (100101001),(100001) = (M1 = 297, M2 = 33).

Далее последовательно шифруем M1 и M2:

C1 = Ek (M1) = Мхе = 2977 (mod 527) = 474.

При этом мы воспользовались тем, что

2977 = ((2972 )3 297)(mod527) = = ((2003(mod527)297)(mod527), C2 = Ek(M1) = М2е = 337(mod527) = 407.

В итоге получаем шифртекст: ух = 474, у2 = 407.

При расшифровании нужно выполнить следующую последовательность действий. Во-первых, вычислить

314
Системы с открытыми ключами

Dk(Cl) = (C1)mI mod527).

Отметим, что при возведении в степень удобно воспользоваться тем, что 343 = 256 + 64 + 16 + 4 + 2 + 1. На основании этого представления получаем:

4742 ? 174(mod527), 4744(mod527) s 237, 4748 (mod 527) = 307,47416 (mod 527) = 443, 47432 (mod 527) = 205, 47464 (mod 527) s 392, 474128 (mod 527) = 307, 474256 (mod527) = 443,

в силу чего

47 4 343 (mod 527) = Э (443 • 392 • 443 • 237 • 174 • 474)(mod527) = 297.

Аналогично

407343 (mod 527) = 33.

Возвращаясь к буквенной записи, получаем после расшифрования RSA.

Проанализируем вопрос о стойкости системы RSA. Нетрудно показать, что сложность нахождения секретного ключа системы RSA определяется сложностью разложения числа п на простые множители. В связи с этим нужно выбирать числа р и q таким образом, чтобы задача разложения числа п была достаточно сложна в вычислительном плане. Для этого рекомендуются следующие требования:

315
І лава 11

1) числа р и q должны быть достаточно большими, не слишком сильно отличаться друг от друга и в то же время быть не слишком близкими друг другу;

2) числа р и q должны быть такими, чтобы наибольший

общий делитель чисел р — 1 и q — 1 был небольшим; желательно, чтобы НОД(/? -1, q -1) = 2 ;
Предыдущая << 1 .. 74 75 76 77 78 79 < 80 > 81 82 83 84 85 86 .. 126 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed