Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 6 Шифрование RSA.docx
Скачиваний:
17
Добавлен:
30.05.2015
Размер:
55.09 Кб
Скачать

Алгоритм rsa шифрования с открытым ключом (р.Ривест, а.Шамир, л.Адлеман, 1978 г.).

  1. Получатель генерирует открытый ключ – пару чисел n и e.

  • Выбираются два простых числа p и q, pq.

  • Определяется первая часть открытого ключа – число n = pq.

  • Определяется вторая часть открытого ключа – небольшое нечетное число e, взаимно простое с (p-1)(q-1)=φ(n) (любое с таким свойством).

Открытый ключ n и e сообщается всем отправителям сообщений.

  1. Получатель генерирует закрытый ключ: d=e-1mod(p-1)(q-1), то есть –обратный элемент дляв полеℤ*(p-1)(q-1), то есть =или

de1(mod(p-1)(q-1))

Закрытый ключ хранится в секрете.

  1. Отправитель шифрует сообщение, разбивая его на слова αi<n, (т.е. длина αi менее log2n двоичных разрядов) по правилу

βi=(αi )emod n. (1)

  1. Получатель расшифровывает сообщение с помощью закрытого ключа d по правилу

γi=(βi )dmod n. (2)

Теорема 1. При шифровании RSA дешифровка производится корректно, то есть γii.

Доказательство: Из алгоритма следует,

(1) βi=(αi )emod n βi(αi )e(mod n), 0 ≤ βi <n, (3)

(2) γi=(βi )dmod n γi(βi )d(mod n), 0 ≤ γi <n. (4)

Возведем обе части (3) в степень d: (αi )ed βid(mod n)≡ γi(mod n). С учетом транзитивности,

(αi )ed γi (mod n). (5)

Поскольку e и d – взаимно обратны по модулю (p-1)(q-1), то =, то есть =ed1(mod(p-1)(q-1)) следовательно,

ed=1+(p-1)(q-1)k, k. (6)

Докажем, что для любого x<n выполняется

xedx(mod p). (7)

а) Пусть x0(mod p), значит, x не кратен p, и, так как p – простое число, то (x, p)=1, следовательно, по теореме Ферма, xφ(p)≡1(mod p), то есть xp-1≡1(mod p). Тогда xed=x1+(p-1)(q-1)k=x(xp-1)(q-1)kx1(q-1)k(mod p)≡x(mod p).

б) Пусть x≡0(mod p), т.е. x кратен p. Возведем обе части сравнения в степень ed: xed≡0(mod p) и из транзитивности отношения сравнимости следует xedx(mod p).

Таким образом, для любого x < n выполняется (7).

Аналогично доказывается, что для любого x<n

xedx(mod q). (8)

Из (7) и (8) следует xedx(mod p), xedx(mod q). По теореме 4, (следствие теоремы об остатках), с учетом (p, q)=1 получаем xedx(mod pq), т.е. для любого x<n

xedx(mod n). (9)

Так как в алгоритме RSA двоичные сообщения αi имеет длину |αi|< log2n, то αi является двоичным числом, меньшим . Тогда

(9) ⇒ (αi)edαi(mod n),

(5) ⇒(αi)edγi(mod n).

С учетом транзитивности отношения сравнимости, αiγi(mod n). И так как αi<n и γi<n, то αi=γi. Теорема доказана.

Криптостойкость системы RSA объясняется сложностью разложения открытого числа n на простые множители. Эффективный алгоритм для этого найден лишь для отдельных случаев. Чтобы их избежать, выполняют требования:

а) p и q – достаточно большие, не слишком близки, но не слишком отличаются друг от друга;

б) желательно, чтобы НОД(p-1; q-1)=2 или был небольшим;

в) p и q – сильно простые числа (r сильно простое число, если r+1 имеет большой простой делитель, r-1 имеет большой простой делитель s и s-1 имеет большой простой делитель).

Недостатки системы RSA.

- медленная работа при больших e и снижение криптостойкости при малых e.

- разработаны и постоянно совершенствуются программы и компьютеры способные быстро разлагать большие числа на простые множители.