Рекуррентная процедура вычисления представляющих многочленов, в алгоритме шифрования, основанном на гиперэллиптической кривой

ПРИКЛАДНАЯ АЛГЕБРА

УДК 511.3, 621.391

С. И. Алешников

РЕКУРРЕНТНАЯ ПРОЦЕДУРА ВЫЧИСЛЕНИЯ ПРЕДСТАВЛЯЮЩИХ МНОГОЧЛЕНОВ В АЛГОРИТМЕ ШИФРОВАНИЯ,

ОСНОВАННОМ НА ГИПЕРЭЛЛИПТИЧЕСКОЙ КРИВОЙ

Рассматривается вывод рекуррентных формул для коэффициентов многочленов, представляющих дивизоры на гиперэл-липтической кривой. Вычисления по данным формулам повышают эффективность алгоритмов шифрования, основанных на представлении единичных сообщений точками якобиана используемой кривой.

The article examines the rollout of recurrent formulas for factors of the polynominals representing divisors on a hyperelliptic curve. Calculations within these formulas increase the efficiency of algorithms of the encryption based on presentation of unit messages by points of the Jacobian of the used curve.

Известны криптосистемы с открытым ключом, в которых используются алгебраические кривые над конечным полем в частности, эллиптические кривые [1; 4; 7] и гиперэллиптические кривые [2; 3; 6]. При этом в системах на эллиптических кривых единичные сообщения открытого/зашифрованного текста маркируют точками кривой, имеющими координаты в основном конечном поле. В качестве шифрующей и дешифрующей функций используются операции взятия кратного точки. Единичные сообщения в системах на гиперэллиптических кривых маркируются редуцированными дивизорами, причем координаты точек носителя дивизора также берутся из основного конечного поля. В качестве шифрующей и дешифрующей функций используются операции взятия кратного редуцированного дивизора.

Эффективность таких систем обусловлена тем, что при обеспечении примерно одинаковой степени защиты данных в них требуется на порядок меньшая длина ключа по сравнению, например, с широко распространенной системой RSA. Кроме того, до настоящего времени не разработаны эффективные алгоритмы взлома таких систем.

Основными недостатками указанных систем являются сравнительно низкая скорость вычислительных процедур вследствие большого количества арифметических операций над элементами основного конечного поля при сложении точек и дивизоров и большой объем используемой памяти арифметического устройства. Что, однако, не играет существенной роли, если системы используются для защиты данных в файлах, а не в открытой сети.

65

Вестник РГУ им. И. Канта. 2007. Вып. 10. Физико-математические науки. С. 65 — 69.

66

В открытой же сети такие системы могут использоваться для обеспечения электронной цифровой подписи пересылаемых сообщений. На сегодняшний день число работ, в которых предлагаются эффективные алгоритмы вычислений на эллиптических кривых, уже весьма велико.

Для гиперэллиптических кривых встречаются лишь частные результаты, затрагивающие вычислительный аспект. Именно поэтому проблема повышения вычислительной эффективности таких систем весьма актуальна, так как именно ее решение может существенно расширить область применения криптосистем на гиперэллиптических кривых и перевести их из разряда теоретических изысков в плоскость практического применения.

Анализ существующих атак [2; 3; 6] выделяет класс «подходящих» гиперэллиптических кривых: число точек якобиана должно делиться на большое простое число І ~ 1040, І не должно делить ¡к - 1 для малых к (1 < к < 2000/log2q), где с] - число элементов конечного поля констант, род g кривой не должен превосходить 4.

Согласно [6], мы рассматриваем гиперэллиптическую кривую С над конечным полем Б?, определяемую уравнением

у2 + й(% = Лх1

где 1г(х) и Цх) — многочлены степеней /г > » и сі (';>/ = 2° + 1. Пусть К = Б? - алгебраическое замыкание поля Б?. Точки кривой с координатами из Б? называются Б ¡¡-рациональными. Дивизоры на кривой С - формальные конечные линейные комбинации с целыми коэффициентами 2 тРР точек кривой. Они образуют абелеву группу D относительно покомпонентного сложения. Степень дивизора есть сумма 2 тР его коэффициентов. Дивизоры степени нуль образуют подгруппу D0 группы D дивизоров. Главные дивизоры образуют подгруппу Р в D0. Факторгруппа V0/Р обозначается ] и называется якобианом кривой С. Класс эквивалентности дивизора О из D0 в ] обозначается [О]. Классы из / также называются точками.

Если Р = (и, V) точка кривой С и а — автоморфизм поля К над Б?, то Ра = (а(и), а (о)) — также точка кривой. Дивизор О = 2 трР определен над Б?, если Оа = 2 тРРа равен О для любого автоморфизма а поля К над Б?. Множество т всех классов дивизоров в /, имеющих представителей, которые определены над Б?, является подгруппой группы / и называется Б ¡-рациональным якобианом кривой С. Каждый класс из /(Б?) содержит единственный представитель - редуцированный дивизор. /(Б?) является конечной абелевой группой.

Пусть Р0 — фиксированная Б?-рациональная точка кривой С. Единичное сообщение исходного текста маркируется сначала целым числом т. Затем числу т сопоставляется элемент хт конечного поля Б?. Далее вычисляется ут є Б?, такой, что точка Рт = (хга, уга) лежит на кривой С. Точке Рт сопоставляется класс [Рга — Р0] є /(Б?). Процедура демаркировки обратна процедуре маркировки.

Шифровальный ключ есть целое число е, взаимно простое с числом точек N рационального якобиана /(Б?). Шифрующая функция имеет вид

Ра еР = Р + Р + ... + Р (е слагаемых),

Рекуррентная процедура вычисления представляющих многочленов

где P — точка якобиана /(Fq). Дешифровальный ключ d есть целое, такое, что ed = 1 (mod N). Дешифрующая функция имеет вид

Q a dQ = Q + Q +...+ Q (d слагаемых),

где Q £ /(Fq).

Эффективность вычислений в якобиане определяется способом представления дивизоров и их алгоритмом редукции. Всякий полуре-дуцированный дивизор D, представляющий точку якобиана /(Fq), согласно [8] может быть записан в виде наибольшего общего делителя

D = Z mi

главных дивизоров div a(x) и div(b(x) - y), где a(x) и b(x) - многочлены над Fq, a(x) = П (x - u , )mi . Для каждой точки P, = (u,, v,) существует единственный многочлен b,(x) £ K[x], удовлетворяющий условиям:

1) deg b, < m,;

2) b,(u,) = v,;

3) (x - u, )т | b2 (x)+ b,(x)h(x) - f(x).

Этот многочлен ищется так. Если P, = (u,, v,) - специальная точка, то bk(x) = v,. Если P, = (u,, v,) - обыкновенная точка, то многочлен b,(x) ищется в виде

b,(x) = Со + Cl(x - u) + C2(x - u)2 +...+ Ck-l(x - u)k-1,

где k = m,. Ясно, что Со = b,(u,) = v,. Обозначим t = x - u,. Тогда x = t + u,. Положим n(t) = h(t + u,), <p(t) = f(t + u,), p,(t) = bk(t + u,). Тогда

p,(t) = Со + Clt + C2t2 +...+ Ck-ltk 1 и сравнение 3) можно переписать так:

Р2 (О + Р,(tМО = 9(t) (mod tk).

Оно означает, что коэффициенты многочленов в левой и правой частях сравнения совпадают вплоть до номера k — 1. Это дает систему уравнений для Со, С1, С2, ..., Ck-1:

_ = Ф1 -П1С0 __ = Ф2 -П1С1 -П2 С0 - С1 _ = Фз -П1С2 -П2С1 -ПзС0 - 2С1С2

С1-----------, С2-------------------, Сз--------------------------------,

2Со + По 2Со + По 2Со + По

_ = ф4 -П1С3 - п2С2 -П3С1 - п4Со - 2c1c3 - С2 С4------------------------------------------,

2со + По

причем если j > 4, то Cj считают равными

= фj -n1Cj-1 -n2Cj-2 -••• -пjC0 - C1Cj-1 - С2Cj-2 -••• - Cj-2С2 - Cj-1С1

j 2со + По ,

где / ?' k - I. В случае же, если дивизор D редуцирован, то к - I < g.

Если, вдобавок, char Fq = 2, то коэффициенты вычисляют следующим образом:

С1 = (ф1 + П1_о)/По, С2 = (ф2 + П1_1 + П2С0 + с2)/по,

С3 = (ф3 + П1_2 + П2С1 + П3Со)/по, С4 = (ф4 + П1_3 + П2С2 + П3С1 + П4Со + )/по,

68

причем если / > 4 и / нечетно, то с считают равными С = (ф/ + П1С-1 + П2С;-2 +...+ п/Со)/по, если / > 4 и / четно, то с/ = (ф/ + П1С/-1 + П2О-2 + ...+ щсо + с 2/2)/'Ло- Если род g = 2, то коэффициенты вычисляют так:

С1 = (ф1 + П1С0)/По, С2 = (ф2 + П1С1 + П2С0 + с2)/По, Сз = (фз + П1С2 + П2С1)/По,

С4 = (ф4 + П1С3 + П2С2 + С2 )/По, С5 = (1 + И1С4 + П2С3)/По, причем если / > 5 и / нечетно, то С считают равными

С/ = (И1С;-1 + Н2С/-2)/ио, если / > 5 и / четно, то С/ = (п1С/-1 + П2С/-2 + С у/гУпо- Если, кроме того, дивизор О редуцирован, то вычисляют только Со, С1. Если род g = 3, то коэффициенты вычисляют следующим образом:

С1 = (ф1 + П1Со)/по, С2 = (ф2 + П1С1 + П2Со + С2)/по,

Сз = (фз + П1С2 + П2С1 + ПзСо)/по, С4 = (ф4 + П1С3 + П2С2 + ПзС1 + с| )/по,

С5 = (ф5 + п1С4 + п2С3 + пзС2)/по, Сб = (ф6 + п1С5 + п2С4 + пзСз + С^ )/по,

С7 = (1 + п1Сб + п2С5 + пзС4)/по, причем если / > 7 и / нечетно, то с считают равными С/ = (п1С/-1 + п2С/-2 + пзС/-з)/по, если / > 7 и / четно, то С/ = (п1С;-1 + п2С/-2 + пзС/-3 + /2 )/по- Если, вдоба-

вок, дивизор О редуцирован, то вычисляют только со, с1, с2.

Если сЬаг > 2, то Н(х) = о и, значит, п(0 = о. Тогда коэффициенты вычисляют следующим образом:

с = ф1 с = ф2 - С1 с = ф3 - 2с1с2 с = ф4 - 2с1с3 - с2 С1 = —----, С2---- ----, Сз---- ------, С4 =

2со 2со 2со 2со

причем для / > 4 коэффициенты с считают равными

с - С1С/-1 - С2С/-2 - ••• - С/-2С2 - С/-1С1

' 2со

Если род g = 2, то deg ф = deg/ = 5, и коэффициенты вычисляют так:

С1 = _^, С2 = , сз = фз - 2С1С2

2со 2со 2со

с = ф4 - 2с1с3 - с2 с = 1 2с1с4 2с2с3

с4 _ , с5

2Со 2Со

причем для / > 5 коэффициенты с/ полагают равными

= С1С,-1 + С2С]-2 + ••• + С] - 2С2 + С-1С1

С/ =

2С0

Рекуррентная процедура вычисления представляющих многочленов

Если, вдобавок, дивизор О редуцирован, то вычисляют только со, с1. Если род g = 3, то deg ф = deg / = 7, и коэффициенты вычисляют следующим образом:

Если же дивизор О редуцирован, то вычисляют только С0, С1, с2.

По китайской теореме об остатках для многочленов ищется единственный многочлен Ь(х) є К[х], degx Ь < 2 т„ такой что

Предыдущие формулы для с/ являются рекуррентными и позволяют быстро подсчитывать многочлены я(х) и Ь(х) в процессе их использования в алгоритмах сложения и редукции, чем достигается существенная экономия памяти. В сочетании с алгоритмами «быстрой» арифметики в конечных полях [5] их применение дает возможность построить достаточно эффективную систему защиты данных, обеспечивающую высокую степень защиты [8].

1. Elliptic curves in cryptography / I. F. Blake, G. Seroussi and N.P. Smart. London Mathematical Society Lecture Note Series. 265. Cambridge University Press, 1999.

2. Frey G. Application of Arithmetical Geometry to Cryptographic Constructions. IEM Universität GH Essen. Preprint N 2. 2000.

3. Handbook of elliptic and hyperelliptic curve cryptography. Henry Cohen &Gerhard Frey. Chapman & Hall/CRC, 2006.

4. Hankerson D., Menezes A., Vanstone S. Guide to Elliptic Curve Cryptography. Springer-Verlag New York, 2004.

5. Jungnickel D. Finite fields: structure and arithmetics. Mannheim; Leipzig; Wien; Zürich: BI-Wiss.-Verl., 1993.

6. Koblitz N. Algebraic Aspects of Cryptography. Springer-Verlag, 1998.

7. Menezes A. Elliptic curve public key cryptosystems. Kluwer Academic Publishers, 1993.

8. Патент РФ. Заявка № 2006104426/09(004794) кл. H 04K 1/00, H 04L 9/30 (принято решение о выдаче).

c _ Ф5 2c1c4 2c2c3 _ Ф6 - 2c1c5 - 2c2c4 - c3

5 _ , t-6 ,

69

c1cj-1 + c2cj - 2 + ••• + cj - 2 c2 + cj-1c1 2c0

b(x) = bi(x) (mod (x - u f1' ) для всех i.

Список литературы

Об авторе

С. И. Алешников — канд. техн. наук, доц., РГУ им. И. Канта, elliptec@mail.ru.