
Практичні заняття № 6
з дисципліни «Прикладна криптологія»
Навчальні питання
Приклади розв’язку задач до 3 розділу асиметричні шифри.
ЗАДАЧА
3.11.1. Побудувати пару (Ek, Dk) для RSA
криптоалгоритму, якщо
(значення
Р і Q у табл. 3.11.1).
Таблиця 3.11.1 – Значення Р і Q
N |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Pп |
29 |
11 |
11 |
11 |
23 |
7 |
29 |
17 |
19 |
19 |
Qп |
11 |
17 |
23 |
13 |
17 |
23 |
7 |
7 |
7 |
11 |
Розв’язок задачі
Нехай Р=11 і Q=17.
Знаходимо модуль Nта значення функції Ейлера(N):
.
Порівняння виду:
,
запишемо у вигляді Діафантовогорівняння:
.
Вибравши випадково Ek= 37, ключ взаємопростий з функцією Ейлера, тобто (Ek, (N)) = 1 маємо:
.
Тепер представимо a/b у вигляді ланцюгового дробу:
;
160/37=4+12/37;
37/12=3+1/12;
12/1=12+0.
Таким
чином,.
Знаходимо рекурентне значення а1:
Розраховуємо
значення
якщо
Підставивши значення а1, маємо:
Таким
чином, пара
складає
RSA ключову пару.
Перевірка
Підставивши значення ключів Ek =37та Dk = 13 маємо:
.
Задача 3.11.3 Зашифруйте направлено та розшифруйте повідомлення М застосовуючи RSA та використовуючи дані відносно параметрів та ключів, що наведені в таблиці 3.11.3.1. Ключову пару генеруйте знаючи один із ключів, що наведений в останній строчці таблиці 3.18.
Таблиця 3.11.3.1 – Параметри та ключі до задачі 3.11.3.
N |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Mi |
3 |
4 |
2 |
2 |
3 |
2 |
3 |
2 |
3 |
4 |
Pп |
29 |
11 |
11 |
11 |
23 |
7 |
29 |
17 |
19 |
19 |
Qп |
11 |
17 |
23 |
13 |
17 |
23 |
7 |
7 |
7 |
11 |
Ej /Dj |
-/7 |
-/11 |
-/3 |
-/5 |
-/3 |
7/- |
11/- |
13/- |
5/- |
3/- |
Розв’язок.
Розв’яжемо задачу для варіанта № 9: Mi = 3, Pn = 19, Qn = 7, Ej = 5.
-
Як відомо, у RSA-криптосистемі відкритий і особистий ключі зв’язані наступним співвідношенням:
ED
1 (mod ((N)))
(1)
Знайдемо значення N та функції Ойлера від N:
N
= PQ
= 19
7
= 133; (N)
= (P-1)
(Q-1) = 6
18
= 108.
Необхідно розв’язати рівняння (1) відносно D:
5D
1 (mod 108).
Представимо
рівняння у вигляді:108x
+ 5
y
= 1.
Розв’яжемо його методом ланцюгових дробів.
Кількість
кроків
= 3.
y
= Dj=
=
= -
.
=
= 21;
=
+ 1 = 21
1
+ 1 = 22;
=
+
= 22
1
+ 21 = 43;
=
+
= 43
2
+ 22 = 112.
y
= - 43 mod 108 = 65
Dj
=
65.
Зробимо перевірку, підставивши Dj у рівняння (1):
565
1 (mod 108);
325
1 (mod 108);
1
1 (mod 108).
-
Виконаємо направлене зашифрування і розшифрування повідомлення Mi = 3.
ЗАДАЧА 3.11.6. В RSA системі відкритим ключем направленого зашифрування є число EJ=47, а модуль перетворення N = 11303. Знайдіть особистий ключ розшифрування DJ.
Розв’язок
Спочатку нам потрібно факторизувати число N. Використаємо для цього метод квадратичного решета.
Далі знайдемо функцію Ойлера:
Для
знаходження
потрібно розв’язати рівняння
.
Розв’язуємо це діафантове рівняння,
використовуючи ланцюгові дроби:
Перевіримо результат:
Отже
ЗАДАЧА
3.11.7 Знайдіть
середнє число ітерацій
розвязку
діафантового рівняння при побудові
ключової RSA
пари (Ek
, Dk)(
дивись (3.13),
),
якщо Ek
= =2512
+ k
256,
k
– номер реєстрації.
Діафантове рівняння – це рівняння виду:
,
де
– цілочисельні коефіцієнти,
– невідомі.
При побудові ключової RSA пари (Ek , Dk) нормоване діафантове рівняння матиме вигляд:
,
де
– функція Ейлера,
– деяке число,
– відкритий ключ,
– особистий ключ.
При
відкритий ключ
.
Формула,
для знаходження середнього числа
ітерацій
розв’язку
діафантового рівняння має вигляд:
(ітер).
Задача 3.11.8 Знайдіть відкритий ключ Y асиметричної пари (x, Y) в скінченному полі GF(23) , якщо первісний елемент М=15, а особистий ключ х = 20.
Розв’язок
Спочаткуперевіримо, чи є М=15 первісним елементомGF(23). Для цього він повинензадовільняти вимогам:
-
або
;
-
, де а – один з множників канонічного розкладу числа Р.
Проведеморозрахунки для заданихзначеньР та М:
-
перша умовавиконується.
Далізнайдемоканонічнийрозклад числа
Р та перевіримо другу умову:
23 - 1 = 22 = 2 ∙ 11- отже, а1 = 2 і а2 = 11.
Таким чином умов 2 такожвиконується, а, отже, М – первіснийелемент у поліGF(23)/
Відкритий ключ Yасиметричної пари (x, Y) можна знайти за формулою Y = МХmodN. Підставимо задані значення M, x та N:
Y = 1520mod23 = 332525673007965087890625mod 23 = 9
ЗАДАЧА 3.11.11 Зашифруйте та розшифруйте повідомлення М=(13,17), використовуючи направлений шифр в групі точок ЕК, якщо Р=23, a=1, b=1 (крива y2=(x3+x2+1)mod23), G=(17,20), n=7.
Решение:
Отправитель сообщения выбирает случайное (k=3).
Расчитывают одноразовый открытый ключ
C1=k*G=3*(17;20)
λ=(3+a)/2y1(mod
23)=(3*17*17+1)/40(mod
23)=848/40(mod
23)=1
2G=(13;7)
λ=(y2-y1)/(x2-x1)(mod 23)=(7-20)/(13-7)(mod 23)=9
3G=(5;19)
Одноразовый открытый ключ=(5;19)
Q=d*G-открытый ключ получателя
d-долговременный собственный ключ (d=2)
Q=2G=2*(17;20)=(13;7)
C2=M+k*Q=(13;7)+3*(13;7)
2(13;7)=(5;4)
3(13;7)=(17;3)
Получателю
посылают открытый ключ
и зашифрованный текст
Расшифрование :
Получатель
вычисляет d*=
2(5;19)
-
d*
=
(11;22)- (17; 3)= (11;22)+(17;-3)=(11;22) + (17;20)
ЗАДАЧА 3.11.12.
Сформуйте пропозиції та реалізуйте алгоритм направленого шифрування в групі точок еліптичних кривих, якщо порівняння кривої має вигляд:
y2=(x3+x+6)mod11, G=(2,7),
особистий ключ хi=7.
Знайдіть відкритий ключ Аi користувача. Виробіть криптограму СМ , якщо М=(10,9), k=3. Сформуйте пропозиції та здійсніть розшифрування криптограми СМ.
Розв’язок задачі
Направлене шифрування повідомлення М буде здійснюватися наступним чином:
С2 = M + kQ
де k — сеансовий ключ (обирається випадково при початку нового сеансу)
Q — відкритий ключ користувача А, котрому адресується повідомлення.
Також обчислюється відкритий ключ сеансу:
С1 = kG
де G — базова точка.
Таким чином криптограма складається з двох точок на еліптичній кривій: (С1, С2).
Розшифрування відбувається наступним чином:
Користувач А, котрому була адресована криптограма впевнюється, що пара точок (С1, С2) належать еліптичній кривій. Далі отримується початкове повідомлення як:
M’ = C2 - dC1 = M + kQ - dkG = M + kdG - dkG = M
Таким чином криптоперетворення є зворотнім та однозначним.
Тепер нехай рівняння кривої має вигляд y2 = x3+x+6, а базова точка G=(2,7).
Здійснимо шифрування повідомлення М = (10,9) згідно алгоритму, наведеного вище, використовуючи ключ сеансу k=3. Розрахуємо відкритий ключ абонента:
Q = dG = 7(2, 7) = (7, 2)
Далі зашифруємо повідомлення:
C2 = M+kQ = (10, 9) + 3(7, 2) = (10, 9) + (3, 5) = (10, 2)
А також відкритий ключ сеансу:
C1 = kG = 3(2, 7) = (8, 3)
Таким чином, зашифроване повідомлення представляє собою пару точок (С1, С2) = ((8, 3), (2, 7)).
Тепер розшифруємо повідомлення:
M’ = C2 - dC1 = (10, 2) - 7(8, 3) = (10, 2) - (3, 5) = (10, 9)
Як видно, М та М’ співпадають, отже розшифрування відбулося вірно.
ЗАДАЧА 3.11.12. Обґрунтуйте пропозиції та реалізуйте алгоритм направленого шифрування в групі точок еліптичних кривих, якщо рівняння кривої має вигляд:
y2=(x3+x+6)mod11, G=(2,7), особистий ключ ni=7. Знайдіть відкритий ключ Аi користувача.
Виробіть криптограму С(М) , якщо М=(10,9), k=3. Зробіть пропозиції та здійсніть розшифрування криптограми С(М).