Вы находитесь на странице: 1из 9

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

Предложена Р.Л.Райвестом (Rivest), А.Шамиром(Shamir)


и Л.Адлманом (Adleman) (МТИ) в 1977г.
(1) N = PQ - модуль криптосистемы
(2) m = ϕ(P·Q) = (P −1) · (Q −1) - ф-ция Эйлера.
(3) L(N) = ϕ(N)/НОД(P−1,Q −1) – обобщ. ф-ция Эйл.
(4) X L(N) = 1modN – теорема Эйлера
(e,d) – ключевая пара, такая что
(5) e · d = 1modL(N)
и НОД(е, L(N)) = 1, НОД(d, L(N)) = 1,
Функция шифрования RSA:
(6) Y = Xe modN
(7) X = Yd modN – расшифрование
Один из ключей (например, е) – секретный, второй – открытый.
Он рассчитывается владельцем секретного ключа как
(8) d = e-1 modL(N)

Пример 1. P=5, Q= 7, N = PQ = 35,


ϕ(N) = 4*6 = 24, НОД((P-1),(Q-1))=2,
L(N) = 24/2 = 12.
По теореме Эйлера а12 = 1mod35,
a = 2, 212 = (26 )2 = (-6) 2 = 36 = 1mod35
Пространство ключей:
e,d  {5, 7, 11}.
Примем е = 5  d = e-1 mod12 = 5.
Получили ключи-близнецы (e = d).
При е = 7  d = e-1 mod12 = 7,
е = 11  d = e-1 mod12 = 11 = -1.
Вывод: все пары – ключи-близнецы
Пример 2. P=7, Q= 11, N= PQ = 77,
ϕ(N) = 6*10 = 60, НОД((P-1),(Q-1))=2,
L(N) = 60/2 = 30 = 2*3*5.
Пространство ключей:
e,d  {7, 11, 13, 17, 19, 23, 29}.
Примем е = 7  d = e-1 mod30 = 13. 1. (e,d) = (7,13)
e*d = 91 = 1mod30.
При е = 11  d = e-1 mod30 = 11 - близнецы
е = 17  d = e-1 mod30 = 23 2. (e,d) = (17,23)
e*d = 391 = 1mod30
е = 19  d = e-1 mod30 = 19 – близнецы
e*d = е2 =361 = 1mod30
е = 29  d = e-1 mod30 = 29 – близнецы
e*d = е2 =841 = 1mod30
Вывод: имеем 2 пары ключей (7, 13) и (17, 23)
Цифровая подпись RSA
Аутентификация – установление подлинности
отправителя сообщения
Целостность - обеспечение защиты от модификации и
подмены.
Хэш-код сообщения М – сжатый образ h(M) (короткий
блок размером в модуль N), имеет свойства
односторонней функции (невозможно подобрать
сообщение под известный хэш-код).
Хэширование производится отправителем и получателем
по известному алгоритму согласно принятому стандарту
Цифровая подпись (DS – digital signature) – это
короткий блок, полученный шифрованием хэш-
кода h(M) сообщения М секретным ключом еА
отправителя А.
Общесистемные параметры:
{N, dА , стандарт хэширования h(M)}
Алгоритм ЦП
Формирование ЦП:
А: 1. Вычисляет h(M);
2. Вычисляет h(M) еА modN = DS;
3. Отправляет DP ={M, DS} пользователю В.
Проверка ЦП (верификация):
В: 1. Вычисляет h(M);
2. Вычисляет (DS )dА modN = h(M)’;
3. Сравнивает h(M) = h(M)’ ???
Если равны – подпись верна, нет – подпись
отвергается.
Пример 3. P=5, Q= 11, N= PQ = 55,
ϕ(N) = 4*10 = 40, НОД((P-1),(Q-1))=2,
L(N) = 40/2 = 20 = 2*2*5.
Пространство ключей:
e,d  {3, 7, 9, 11, 13, 17, 19}.
Примем е = 7  d = e-1 mod20 = 3.
e*d = 21 = 1mod20. (e,d) = (7, 3)
Пусть хєш-код оказался равным h(M)=16
А. Формирование ЦП
1. h(M)= 16;
2. DS= 16 7mod55= 228 = 24 (26 )4 =16*92 92 = 36;
3. {M,DS=36}  пользователю В
В. Проверка ЦП
1. h(M)`= 16;
2. DS d mod55 = 363 mod55 = 16
А

3. Cравниваем 16 = 16 – подпись верна

Задание 1. Пользователь А (cтудент) выбирает


простые числа Р = 11 и Q = 13. Далее он
1). рассчитывает: N, ϕ(N), L(N), e, d;
2).представляет рез-ты преподавателю;
3). Для заданного преподавателем значения хэш-кода
h(M) формирует и проверяет ЦП
4). Сдает отчет преподавателю.