Ця властивість теж дає змогу легко побудувати ефективний алгоритм перевірки примітивності многочленів.
В алгоритмі з 6.11 обидва ці алгоритми використовуються сумісно. Розклади на прості множники чисел вигляду 2т-1, необхідні для перевірки примітивності многочленів, наведено в таблицях [13].
Незвідний над полем GF(2) многочлен f(t) має т різних коренів у полі GF(2m). Знайти один із цих коренів можна наступним чином.
Нехай deg() позначає степінь многочлена, що міститься в дужках.
Приймають g(t) = f(t).
Доки deg(g)> 1, виконують наступні дії:
Обирають одночлен d(t) = ut з випадковим коефіцієнтом иє GF(2m);
Виконують т-1 раз обчислення d(t) <- (d(t)2+ ut) mod g (f).
Обчислюють найбільший спільний дільник h(t) многочленів g(f) і d(t). Якщо deg (ft) = 0 або deg (ft) = deg (g), то переходять до кроку 2.1. Якщо 2deg(ft) > deg(g), то g(t) <- g(t)/h(t}, інакше приймають g(f) = ft(f). Переходять до кроку 2.1.
Маємо двочлен вигляду g-t + gQ. Тоді шуканий корінь дорівнює gog"J •
Заміна базису
Основне поле можна задавати поліноміальними базисами з різними примітивними многочленами або оптимальним нормальним базисом. Тому при реалізації цього стандарту може виникнути потреба переходити від одного базису до іншого.
Нехай скінченне поле задано базисом В1( якому відповідає многочлен p^(t) (примітивний многочлен у разі поліноміального базису або нормальний многочлен у разі оптимального нормального базису) та базисом В2, якому відповідає многочлен р2(0 (примітивний многочлен у разі поліноміального базису або нормальний многочлен у разі оптимального нормального базису). Для переходу від базису до базису В2 обчислюють корінь и многочлена p-i(f) в базисі В2, а потім в базисі В2 обчислюють елементи ик= ик, 0 < к < т- 1, якщо базис В1 поліноміальний, або елементи ик= и2, 0 < к < т- 1, якщо базис Вд оптимальний нормальний. З цих елементів будують матрицю U. що складається з їх розкладів у базисі В2:
|
“о |
|
uoo |
|
и = < |
|
• = - |
... |
... ... |
|
... |
|
^m-1,0 |
••• ^Л1-1,Л7-1 ( |
|
Vm-1. |
|
|
|
Ця матриця є матриця переходу від базису В} до базису В2, а обернена матриця LT1 є матриця переходу від базису В2 до базису В1; тобто елемент поля в базисі В} (позначимо його х) та базисі В2 (позначимо його у) пов’язані співвідношенням
у= xU, x = yU~
Еліптичні криві над скінченними полями
Еліптична крива над скінченним полем GF(2m) є множина пар (х,у) елементів цього скінченного поля, що задовольняють афінне рівняння еліптичної кривої в нормальній формі Вейєршт- расса
у2 + ху = х3 + Ах2+ В,
де A, Be GF(2m), В* 0, разом із приєднаною нескінченно віддаленою точкою О. Пара (х, у) елементів основного поля називається афінними координатами точки еліптичної кривої. Нескінченно віддалена точка О не має афінних координат. Елементи (А, В) основного поля називаються коефіцієнтами рівняння еліптичної кривої. Координати точки Р еліптичної кривої позначають (хР, уР). Число точок еліптичної кривої (враховуючи і нескінченно віддалену точку) називається порядком еліптичної кривої.
Поряд з афінним зображенням еліптичних кривих і точок на них відомі проективні зображення еліптичних кривих і точок на них декількох типів. Класичне проективне рівняння Вейєрштрасса має вигляд:
y2z + xyz = х3 + A x2z + Bz3,
а точками проективної еліптичної кривої є трійки елементів основного поля (x:y:z), що задовольняють це рівняння, причому хоча б одна з цих координат відмінна від нуля. Використання двокрапки у запису проективних координат позначає, що трійки координат, отримані одна з Іншої множенням на ненульовий елемент основного поля, відповідають тій самій проективній точці еліптичної кривої (і також задовольняють проективне рівняння Вейєрштрасса). У проективному зображенні нескінченно віддалена точка має координати (0:1:0). Для переходу від афінних координат до проективних використовуються співвідношення:
(х,у)^ (х:у: 1);
О ->(0:1:0).
Для переходу від проективних координат до афінних використовуються співвідношення:
якщо z = 0, то (x:y:z)—> О;
якщо z* 0, то (x:y:z) -> (xz-1,yz-1).
Перехід до проективних координат часто дає змогу підвищити ефективність обчислень у групі точок еліптичної кривої [14].
Точки еліптичної кривої утворюють скінченну абелеву групу відносно операції додавання точок. Правила виконання цієї операції наведено в наступному розділі. Сума точок Р і Q еліптичної кривої позначається P + Q, при цьому Р + Q = Q + Р. Нейтральним (або нульовим) елементом цієї групи є нескінченно віддалена точка О: для будь-якої точки Р еліптичної кривої виконується Р+О =О + Р. Точка (-Р), така, що (-Р) + Р = Р + (-Р) = О, називається точкою, протилежною для точки Р, її координати виражаються через координати точки Р таким чином: х_Р= хР, у_Р= хР+ уР. Точка 2Р-Р+ Р називається подвоєнням точки Р. Існує єдина точка порядку два, Р = (0,>/в). Сума k точок Р, k — натуральне число, позначається кР, операція обчислення цієї суми називається
множенням точки Р на натуральне число к. За означенням 0Р=О, (-к)Р = к(-Р), тому можна говорити про множення точки на довільне ціле число. Множення точки на ціле число — основна криптографічна операція, яка використовується у цьому стандарті. Еліптична крива з даним коефіцієнтом В*0 ізоморфна у полі непарного степеня т або еліптичній кривій з коефіцієнтами (0, В), або еліптичній кривій з коефіцієнтами (1,В). Тому в стандарті прийнято, що коефіцієнті дорівнює або 0, або 1
Нехай п — просте непарне число, що ділить порядок еліптичної кривої. Точка Р * 0 еліптичної кривої називається базовою, якщо її порядок дорівнює п, тобто пР = О і кР* О, 0 < к< п. Просте число п називається порядком базової точки. Порядок базової точки повинен задовольняти умову Менезеса-Окамото-Венстона [16,17], а саме, 2т**1 mod п для к=1 LM0V, де LMOV—деяке гра
ничне значення. Для скінченних полів, наведених у таблицях 1 і 2, достатньо прийняти LWOy = 32. Виконання цієї умови забезпечує високу криптографічну стійкість алгоритму обчислення й перевірки цифрового підпису, визначеного цим стандартом. Точки еліптичної кривої вигляду кР, к - 0 л-1, утворюють циклічну підгрупу групи точок еліптичної кривої. Ця циклічна підгрупа
є основною математичною структурою, в якій діють криптографічні алгоритми, встановлені в цьому стандарті.
Зображення точки Р еліптичної кривої парою координат (хР, уР) є надмірним, оскільки координата уР є один з двох розв’язків квадратного рівняння у + хРу - хр+ Ахр+ В . Якщо точка Р має простий порядок, а степінь поля — непарне число, то наймолодший розряд координати хР також надмірний, оскільки у цьому випадку tr(A) = tr(xP) [15] і наймолодший розряд хР легко відновлюється за значенням сліду коефіцієнта А. Ці дві властивості дають змогу зображати точку еліптичної кривої у вигляді одного елемента основного поля. Таке зображення точок еліптичної кривої називається стиском точки.
Обчислення в групі точок еліптичної кривої
Нехай Р = (хр, ур), РїО і Q = (x0, yQ), Q*O, P*Q — дві точки еліптичної кривої в афінних координатах. Сума цих точок R~P + Q обчислюється за такими правилами.
Якщо Q = — P, то R = O. Якщо Q*-P, то координати (xft, yR) точки R обчислюються за форму
лами:
Я
'Ур+Уо^ .Xp + Xq >
Ур + Уо
ХР+ Xq
+ Хр + Xq + А,
Ур+Уо ^Xp + XQ
ч
(хр +XR)+XR +Ур.
2 S
*r =Хр +~г>
Хр
Ун = х2
+ Хр
+ — xR
+ Xr.
Для множення точки Р*О на велике ціле число можна використовувати способи, цілком аналогічні тим, що застосуються для піднесення цілого числа до степеня к. Наприклад, якщо t 1
/с = ^/(;2' — двійкове зображення числа к, то точку Q = kP можна обчислити наступним чином: /=о
Приймають Q *- О.
Для і від t- 1 до 0 обчислюють Q<- 2Q; якщо fc, = 1, то додатково обчислюють Q<— Q + Р.
Як було відзначено вище, підвищити ефективність обчислень у групі точок еліптичної кривої можна за рахунок переходу до проективних координат. Це пов’язане з тим, що при додаванні й подвоєнні точок у проективних координатах не використовується операція обчислення оберненого елемента основного поля — найпрацемісткіша операція в скінченному полі.
9 Доведення правильності алгоритму перевіряння цифрового підпису
Основне криптографічне перетворення при обчисленні цифрового підпису виконується над елементом h основного поля, який обчислюється за результатом обчислення функції гешування. Якщо отримане повідомлення ідентичне оригінальному, то під час перевіряння підпису буде обчислено точно той самий елемент основного поля. Якщо цифровий підпис прийнято без спотворень, то для перевіряння цифрового підпису буде використана та сама пара цілих чисел (r, s), яка була отримана під час обчислення цифрового підпису. Під час перевіряння цифрового підпису обчислюють точку еліптичної кривої R = sP + rQ, де Р — базова точка еліптичної кривої, Q=-dP — відкритий ключ цифрового підпису, обчислений за базовою точкою Р з використанням особистого ключа цифрового підпису d. Крім того, s = e + rd, де е — одноразовий таємний параметр, який було використано для обчислення передпідпису (е, Рв). Тому
R = sP+ rQ = (е + rd)P- rdP = eP + rdP-rdP = eP.
Таким чином, координата xR точки R = (xr, yR) дорівнює Fe, тому у = hxR= hFg і після перетворення елемента у на ціле число f отримаємо ціле число г, тобто r ~ г, що й доводить правильність алгоритму перевіряння цифрового підпису.
Криптографічна стійкість цифрового підпису базується на дуже великій складності задачі дискретного логарифмування R = eP, Q--dP в циклічній підгрупі групи точок еліптичної кривої, що використовується в цьому стандарті.
ДОДАТОК Г
(рекомендований)
РЕКОМЕНДОВАНІ ЕЛІПТИЧНІ КРИВІ
Для реалізації цього стандарту можна використовувати еліптичні криві, наведені в таблицях Г.1 і Г.2. В поліноміальному базисі зображення коефіцієнта В відповідає рекомендованому примітивному многочлену. Символ «/» означає, що написання коефіцієнта В еліптичної кривої або її порядку п розділено на два рядки.
Таблиця Г.1 — Рекомендовані еліптичні криві в поліноміальному базисі
№ ч/ч |
т |
Еліптична крива |
1 |
163 |
А=1 B=5FF6108462A2DC8210АВ403925Е638А19С1455D21 n=400000000000000000002BEC12BE2262D39BCF14D |
2 |
167 |
А=1 В=6ЕЕЗСЕ ЕВ230811759F20518A0930F1А4315A827DAC n=3FFFFFFFFFFFFFFFFFFFFFB12EBCC7D7F29FF7701F |
3 |
173 |
А=0 В= 108576C80499DB2FC16ED DF6853BB B278F6B6FB437D9 л=800000000000000000000189В4Е67606Е3825ВВ2831 |
4 |
179 |
А=1 B=4A6E0856526436F2F88DD07A341E32D04184572BEB710 n=3FFFFFFFFFFFFFFFFFFFFFFB981960435FE5AB64236EF |
5 |
191 |
А=1 B=7BC86E2102902EC4D5890E8B6B4981FF27E0482750FEFC03 n=40000000000000000000000069A779CAC 1DABC6788F7474F |
6 |
233 |
A=1 B=06973B15095675534C7CF7E64A21BD54EF5DD3B8A0326AA936ECE454D2C n=1000000000000000000000000000013E974E72F8A6922031D2603CFEQD7 |
Закінчення таблиці Г.1
№ ч/ч |
т |
Еліптична крива |
7 |
257 |
4=0 B=1CEF494720115657E18F938D7A7942394FF9425C1458C57861F9EEA6ADBE3BE10 п— 800000000000000000000000000000006759213AF182E987D3E17714907D470D |
8 |
307 |
4=1 B=393C7F7D53666B5054B5E6C6D3DE94F4296COC599E2E2E241050DF18B6090BDC90186904968BB n=3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC079C2F3825DA70D390FBBA588D4604022B7B7 |
9 |
367 |
4=1 B=43FC8AD242B0B7A6F3D1627AD5654447556B47BF6AA4A64B0C2AFE42CADAB8F93D92394/ С79А79755437В56995136 n=40000000000000000000000000000000000000000000009C300B75A3FA824F22428FD28CE8812245/ EF44049B2D49 |
10 |
431 |
4=1 B=03CE10490F6A708FC26DFE8C3D27C4F94E690134D5BFF988D8D28AAEAEDE975936C66BAC536/ B18AE2DC312CA493117DAA469C640CAF3 n=3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA3175458009A8COA724F02/ F81AA8A1FCBAF80D90C7A95110504CF |