РефератыАстрономияRSRSA алгоритмів кодування з відкритим ключем

RSA алгоритмів кодування з відкритим ключем

Реферат на тему:


RSA – алгоритмів кодування з відкритим ключем


Перший алгоритм кодування з відкритим ключем (Public Key Encryption, далі PKE) було запропоновано Вітфілдом Діффі та Мартіном Хелманом у Стендфордському університеті. Вони, а також незалежно від них Ральф Меркл, розробили основні його поняття у 1976 році. Перевага PKE полягає у відсутності потреби секретної передачи ключа.


PKE базується на нерозв’язності проблеми розкладу натурального числа на прості множники.


RSA схему шифрування було запропоновано у 1978 році та названо іменами трьох його винахідників: Роном Рівестом (Ron Rivest), Аді Шаміром (Adi Shamir) та Леонардом Адлеманом (Leonard Adleman). RSAналежить до класу алгоритмів кодування з відкритим ключем.


У 80-х роках криптосистема переважно використовувалася для забезпечення секретності та достовірності цифрових даних. Усучасному світі RSAвикористовується в web – серверах та браузерах для зберігання таємності даних що передаються по мережі, .


Схема RSA базується на обчисленні виразів зі степенями. Відкритий текст шифрується блоками, довжина кожного із яких менша за деяке число n
.


Алгоритм генерації ключа


A

повинен згенерувати відкритий та секретний ключі:


1. Згенерувати два великих простих числа p
та q
приблизно однакової довжини;


2. Обчислити n
= p
* q
, fi
= (p
– 1) * (q
– 1);


3. Вибрати натуральнеe
, 1 < e
< fi
, взаємно просте з fi
;


4. Використовуючи розширений алгоритм Евкліда, розв’язати рівняння


d
* e
º 1 (mod fi
).


Відкритий ключ: (n
, e
). Секретний ключ: d
.


Схема шифрування

RSA


B

шифрує повідомлення m
та надсилає A

.


1. Шифрування. В

робить наступні дії:


а) отримати відкритий ключ (n
, e
)від А

;


б) представити повідомлення у вигляді натурального числа m з проміжку [1..n
];


в) обчислити c
= me
modn
;


г) надіслати шифротекст c
до А

.


2. Дешифрування. Для отримання повідомлення m
із шифротксту c
А

робить наступні дії:


а) використовуючи секретний ключ d
, обчислити m
= cd
modn
.


Теорема.

Шифр c декодується правильно.


Оскільки p
та q
– прості числа, то j (p
* q
) = j (n
) = (p
-1) * (q
-1), де j – функція Ейлера. З умови вибору ключа d
маємо: d
* e
modj(n
) = 1, або d
* e
= j (n
) * k
+ 1 для деякого натурального k.


cd
modn
= (m
e
)d
modn
= m
(
e
*
d
)
modn
= m
^ (
j
(
n
) *
k
+ 1)
modn
= (m
j
(
n
)
modn
) k
*
m
= 1 k
*
m
= m
, оскільки за теоремою Ейлера m
j
(n
)
mod n
= 1.


Означення.
RSA

системою

називають функцію RSAn
,
e
(x
) = xe
modn
та обернену їй RSA-1
n
,
e
(y
) = yd
modn
, де e
– кодуюча, а d
– декодуюча експонента, x
, y
Î Zn
*
.


Приклад


1. Оберемо два простих числа: p
= 17, q
= 19;


2. Обчислимо n
= 17 * 19 = 323, fi
= (p
- 1) * (q
- 1) = 16 * 18 = 288;


3. Оберемоe
= 7 (НСД(e
, fi
) = 1) та розв’яжемо рівняння 7 * d
º1 (mod 288), звідки d
= 247.


Побудовано RSAсистему: p
= 17, q
= 19, n
= 323, e
= 7, d
= 247.


Відкритий ключ: n
= 323, e
= 7, секретний ключ: d
= 247.


1. m
= 4. Кодування: 47
mod 323 = 234.Декодування: 234247
mod 323 = 4.


2. m
= 123. Кодування: 1237
mod 323 = 251.Декодування: 251247
mod 323 = 123.


Циклічна атака

За відомим шифром c
(c
= me
modn
) злодій, маючи відкритий ключ e
та n
, бажає знайти повідомлення m
.Він починає будувати послідовність чисел


c
, ce
, , , …


Оскільки обчислення відбуваються в групі Zn
*, то елемпнти послідовності знаходяться в межах від 0 до n
- 1. Отже існує таке натуральне k
, що с
= . Враховуючи що c
= me
modn
, маємо: me
= або m
= .


Таким чином для знаходження повідомлення m
за його шифром c
необхідно побудувати послідовність c
, ce
, , , …, , = c
, і взяти її передостаннє число.


Приклад

Розв’язати рівняння: m
7
mod 323 = 251.


e
= 7, n
= 323, c
= 251.

r />























k
0 251
1 310
2 47
3 4
4 234
5 123
6 251

З таблиці маємо:c
= = 251. Оскількиme
= , то m
= = 123.


Атака методом осліплення

Припустимо, А

має секретний ключ RSA системи, а Z

– злодій, який перехопив шифр c
і хоче декодувати його. При цьому А

відмовляє видати Z

вихідний текст m
. Тоді Z

обирає деяке значення b
ÎZn
*
, обчислює c
’ = be
* c
і просить А

дешифрувати його. А

погоджується дешифрувати c
’ своїм секретним ключем d
, оскільки зміст повідомлення c
’ йому ні про що не говорить і виглядає невинним. Отримавши m
’ = c
’d
modn
, злодій Z

обчислює m
= m
’ / b
і отримує шукане m
. Шифром m
дійсно є c
, оскільки me
= m
’e
/ be
= c
’de
/ be
= c
’ / be
= c
.


Така атака можлива, оскільки А

не знає повної інформації про шифр c
’, який дає йому злодій Z

.


Приклад.
Нехай А

має RSAсистему: p
=17, q
= 19, n
= 323, e
= 7, d
= 247.


Злодій Z

перехопив шифр c
= 234 і хоче знайти таке m
, що m
7
= 234 mod 323.


1. Z

обирає b
= 10 ÎZ323
*
,обчислює c
’ = 107
* 234 mod 323 = 14 і просить А

дешифрувати його.


2. A

обчислює m
’ = 14247
mod 323 = 40 і передає його Z

.


3. Z

знаходить шукане повідомлення обчислюючи


m
= 40 / 10 = 40 * 10-1
= 40 * 97 = 4 mod 323.


Таким чином 47
= 234 mod 323.


Прискорення дешифрування


За допомогою китайської теореми про лишки можна прискорити процес дешифрування, знаючи секретні прості числа p
та q
.


Алгоритм


Дешифрування. А

має декодуючу експоненту d
, а також p
та q
(n
= p
* q
).А

отримує від В

шифр с
та повинен виконати операцію cd
(modn
).


1. Обчислити dp
= d
mod (p
- 1), dq
= d
mod (q
- 1)


2. Обчислити mp
= modp
, mq
= modq
.


3. Розв’язати систему лінійних порівнянь



Розв’язком системи буде декодоване повідомлення: m
= cd
(modn
).


Приклад

Нехай RSA система має вигляд:p
= 17, q
= 19, n
= 323, e
= 7, d
= 247.


Для розв’язку рівняння m
7
mod 323 = 251(c
= 251) обчислимо 251247
mod 323:


1. dp
= 247mod 16 = 7, dq
= 247mod 18 = 13;


2., mp
= 2517
mod 17 = 4, mq
= 25113
mod 19 = 9;


3. Розв’яжемо систему лінійних порівнянь



Розв’язуючи її методом Гауса, отримаємо m = 123.


Отже 1237
mod 323 = 251.


Мала декодуюча експонента

Приклад
. Виберемо аовідомлення m
= 13 та зашифруємо його трьома різними RSAсистемами.


1. p
= 5, q
= 17, n
= 85, e
= 3, d
= 57,


m
3
mod 85 = 72;


2. p
= 11, q
= 23, n
= 253, e
= 3, d
= 169,


m
3
mod 253 = 173;


3. p
= 17, q
= 23, n
= 391, e
= 3, d
= 261,


m
3
mod 391 = 242;


Для знаходження повідомлення m
за відкритими ключами (ni
, ei
) та перехопленими шифрамиci
складемо систему порівнянь



Одним із її розв’язків буде x
= 2197 = 133
. Тобто шуканим повідомленням буде m
= 13.


Неприховані повідомлення

Означення.
Повідомлення m
називається неприхованим
, якщо його шифр дорівнює самому повідомленню, тобто me
= m
(modn
).


Наприклад, повідомлення m
= 0 та m
= 1 завжди є неприхованимидля довільних значень e
та m
.


Твердження.
Кількість неприхованих повідомлень в RSAсистемі дорівнює


(1 + НСД(e
- 1, p
- 1)) * (1 + НСД(e
- 1,q
- 1))


Оскільки значення e
- 1, p
- 1 та q
- 1 – парні, то НСД(e
- 1, p
- 1) ³2, НСД(e
- 1,q
- 1)³2, а отже кількість неприхованих повідомлень завжди не менша за 9.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: RSA алгоритмів кодування з відкритим ключем

Слов:1463
Символов:10994
Размер:21.47 Кб.