
Розв’язок
Спочаткуперевіримо, чи є М=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)
Як видно, М та М’ співпадають, отже розшифрування відбулося вірно.