ВОЕННА AКАДЕМИЯ “ГЕОРГИ СТОЙКОВ РАКОВСКИ”
1504, София, бул. “Евлоги и Христо Георгиеви” № 82
ФАКУЛТЕТ “КОМАНДНО - ЩАБЕН”
КУРСОВ ПРОЕКТ
по
Криптографски системи за защита на информация
РАЗРАБОТИЛ: ПРОВЕРИЛ:
Станимир Неновски доц. Емилия Големанова
Факултетен № С252142з
София
2022 г.
ЗАДАНИЕ ЗА Курсов проект
Потребител A и Потребител B използват RSA при зададени стойности за p, q и е.
Да се извърши криптиране и декриптиране на текста M при следната ситуация: Потребител A иска да изпрати тайно (скрито) съобщение на потребител B, който трябва да го прочете, т.е. цели се секретност.
За операцията „степенуване по модул“, при криптиране и декриптиране, да се използва методът „повдигни на квадрат и умножи“.
Намирането на d да се извърши чрез разширения алгоритъм на Евклид.
Потребител A и Потребител B се определят от последните две цифри на факултетния номер. При еднакви цифри, втората цифра се увеличава с единица. Пример:
203126 - Потребител A = 2 и Потребител B = 6
203122 - Потребител A = 2 и Потребител B = 3
Стойности за p, q, е и M на потребителя се определят от таблицата:
Потребител
|
p
|
q
|
e
|
M
|
0
|
5
|
11
|
17
|
5
|
1
|
7
|
11
|
13
|
6
|
2
|
5
|
13
|
11
|
7
|
3
|
7
|
13
|
23
|
8
|
4
|
3
|
17
|
19
|
9
|
5
|
5
|
17
|
17
|
5
|
6
|
3
|
11
|
13
|
6
|
7
|
5
|
11
|
23
|
7
|
8
|
7
|
11
|
17
|
8
|
9
|
5
|
13
|
13
|
9
|
Станимир Радков Неновски
|
С252142з
|
Определяне на потребител А и В
По така зададените стойности и факултетен номер С252142з:
потребител А=4
потребител B=2
Потребител А: p = 3, q = 17, e = 19, M = 9
Потребител B: p = 5, q = 13, e = 11, M = 7
По задание Потребител А изпраща текст на потребител B, следователно търсим ключовете на потребител B.
За потребител B:
n= p.q = 5.13=65
Използваме частен случай на Ойлеровата теорема:
ф(n) = (5-1).(13-1) = 4.12=48
e=11
Следва изчисление на обратния множител (d) на числото e при mod ф(n):
d= e-1 mod 48 = 11-1 mod 48.
Прилагаме разширен метод на Евклид:
48:11 = 4 (4) -> 4 = 48-4*11
11:4 = 2 (3) -> 3 = 11-2*4
4:3 = 1 (1) -> 1 = 4-1*3
3:1 = 3 (0)
1 = 4-1*3 = 4-(11-2*4) = 4-11+2*4 = 3*4-11 = 3*(48-4*11)-11 =
= 3*48-12*11-11 = 3*48-13*11
Проверка: (11*35) mod 48 = 385 mod 48 = 1
Изчисляваме публичният и частният ключ на потребител B:
PU(11; 65)
PR(35; 65)
Шифрираме текста М на потребител А :
C=Me mod n= 911 mod 65
Използваме метода „повдигни на квадрат и умножи“:
Представяме 11 като двоично, което е 1011=>
9(1) = 12 .9 mod 65 = 9 mod 65 = 9
9(10)= 92 mod 65 = 81 mod 65 = 16
9(101) = (162 .9) mod 65 = (256 .9) mod 65 = 2304 mod 65 = 29
9(1011) = (292.9) mod 65 = (841 .9) mod 65 = 7569 mod 65 = 29
Правим проверка с декриптиране:
M=Cd mod n
M = 2935 mod 65
35 се представя като двоично – 100011
29(1) = (12.29) mod 65 = 29 mod 65 = 29
29(10) = 292 mod 65 = 61
29(100) = 612mod 65 = 16
29(1000) = 162 mod 65 = 61
29(10001) = (612.29) mod 65 = 107909 mod 65 = 9
29(100011) = (92.29) mod 65 = 2349 mod 65 = 9
По условие задачата за:
Потребител А: M = 9 - задачата е вярна.
Сподели с приятели: |