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

В алгоритмі з 6.11 обидва ці алгоритми використовуються сумісно. Розклади на прості множ­ники чисел вигляду 2т-1, необхідні для перевірки примітивності многочленів, наведено в табли­цях [13].

Незвідний над полем GF(2) многочлен f(t) має т різних коренів у полі GF(2m). Знайти один із цих коренів можна наступним чином.

Нехай deg() позначає степінь многочлена, що міститься в дужках.

  1. Приймають g(t) = f(t).

  2. Доки deg(g)> 1, виконують наступні дії:

    1. Обирають одночлен d(t) = ut з випадковим коефіцієнтом иє GF(2m);

    2. Виконують т-1 раз обчислення d(t) <- (d(t)2+ ut) mod g (f).

    3. Обчислюють найбільший спільний дільник 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.

  3. Маємо двочлен вигляду g-t + gQ. Тоді шуканий корінь дорівнює gog"J •

  1. Заміна базису

Основне поле можна задавати поліноміальними базисами з різними примітивними многочле­нами або оптимальним нормальним базисом. Тому при реалізації цього стандарту може виникнути потреба переходити від одного базису до іншого.

Нехай скінченне поле задано базисом В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~

  1. Еліптичні криві над скінченними полями

Еліптична крива над скінченним полем 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] і наймолодший розряд хР легко відновлюється за значенням сліду коефіцієнта А. Ці дві властивості дають змогу зображати точку еліптичної кривої у вигляді одного елемента основного поля. Таке зображення точок еліптичної кривої називається стиском точки.

  1. Обчислення в групі точок еліптичної кривої

Нехай Р = (хр, ур), РїО і 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 +Ур.


кщо Хр = 0, то 2Р=О. Якщо хр^0, то координати (xR,yR) подвоєної точки
R = 2P обчислюють ся за формулами:

2 S

*r =Хр +~г>

Хр

Ун = х2


+ Хр


+ — xR


+ Xr.



Для множення точки Р*О на велике ціле число можна використовувати способи, цілком анало­гічні тим, що застосуються для піднесення цілого числа до степеня к. Наприклад, якщо t 1

/с = ^/(;2' — двійкове зображення числа к, то точку Q = kP можна обчислити наступним чином: /=о

  1. Приймають Q *- О.

  2. Для і від t- 1 до 0 обчислюють Q<- 2Q; якщо fc, = 1, то додатково обчислюють Q<— Q + Р.

Як було відзначено вище, підвищити ефективність обчислень у групі точок еліптичної кривої можна за рахунок переходу до проективних координат. Це пов’язане з тим, що при додаванні й подвоєнні точок у проективних координатах не використовується операція обчислення оберне­ного елемента основного поля — найпрацемісткіша операція в скінченному полі.

  1. 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