BC/NW 2009; №2 (15):11.6
ФУНКЦИИ СПАРИВАНИЯ В БИБЛИОТЕКЕ КЛАССОВ ДЛЯ ЭЛЛИПТИЧЕСКОЙ КРИПТОГРАФИИ
Болдырев А.Г., Фролов А.Б.
(ГОУВПО «Московский энергетический институт (технический университет)», Россия)
Работа выполнена при поддержке РФФИ, проект 08-01-00632а
Отображение спаривания использовалось ранее для сведения
задачи дискретного логарифмирования в группе точек эллиптической кривой к
аналогичной задаче в мультипликативной группе конечного поля [1]. В
Эллиптические кривые. Спаривание Вейля [3,4]. Уравнение в форме Вейерштрасса эллиптической кривой E над конечным полем Fq, где q - степень простого числа, имеет вид:
E: Y2+a1XY+ a3Y=X3 + a2X3+ a4X+ a6,
где коэффициенты являются элементами поля Fq . На множестве точек этой кривой, дополненном точкой O, называемой точкой в бесконечности, определяется операция сложения, обладающая свойствами операции абелевой группы. Порядок |E(Fq)| этой группы выражается формулой |E(Fq)|=q+1-t, где t - так называемый след Фробениуса. По теореме Хассе |t| £ 2Öq. Кривая E называется суперсингулярной, если след Фробениуса t кратен характеристике p поля Fq. Для вычисления порядка таких кривых известны замкнутые формулы. В теории спаривания E[n] обозначают множество точек n-кручения кривой E(), где - замыкание поля F. Наименьшее число k такое, что E[n]ÍE(Fk) называется множителем вложения, или множителем безопасности. Известно, что E[n] есть подгруппа группы E(Fk) и что ее структура изоморфна структуре прямой суммы Zn Å Zn . Обозначают E[n](E(F)) подгруппу группы E[n], являющуюся подгруппой группы E(Fq). Обозначим mn подгруппу корней n‑ой степени из единицы группы (Fqk )*. Спариванием Вейля называется отображение e:E[n]´ E[n]® mn, обладающее свойствами
билинейности:
e(S,T1+T2)=e(S,T1)e(S,T2); e(S1+S2,T)=e(S1,T)e(S2,T);
невырожденности :
"S $Q e(S,Q)¹1
и альтернированности:
"P e(P,P)=1.
Дивизором D на E называется формальная сумма D=SnP(P), nPÎZ. Множество ненулевых коэффициентов nP дивизора называется его носителем. Главным называется дивизор вида (f)= Sord f(P), где f есть рациональная функция на E, ord f (P) есть кратность функции f в точке P, nP>0. если P является нулем и nP <0, если P есть полюс. Дивизоры D и D’ эквивалентны, если D-D’ есть главный дивизор. Известно, что дивизор D=SnP(P) является главным тогда и только тогда, когда SnP=0 и SnPP =O. Главными являются дивизоры n(DPT)=(fPT)=n(P)-n(O) и n(DP)=n(fP)=n(P+R) - n(R). Для всякой рациональной функции f и дивизора D=SnP(P) с носителем, не пересекающимся с носителем дивизора (f) определена функция f(D)=Pf(P)nP, где перемножаемые элементы поля определяются носителем дивизора D.
По алгоритму Миллера значение функции fP(S) в точке S в зависимости от вида дивизора (fP) и принадлежности точки P группе E[n](E(F)) определяется следующим образом.
Используются следующие рациональные функции на E:
gP,Q(X) = l - Y+lX - функция такая, что l-Y+lX=0 - уравнение линии, проходящей через точки P и Q;
gP,P(X) = l - Y+lX - функция такая, что l-Y+lX=0 - уравнение касательной в точке P;
gQ(X)=X - a - функция такая, что X - a=0 - уравнение вертикальной линии, проходящей через точку Q=(a,b).
Алгоритм 1 (для точки).
Число n представляется в двоичном коде
n=(1,bt-1, …, bj, …, b0), bt=1, bjÎ{0,1}.
Принимаем f1=gP+R/gP,R в случае (fP)=DP ,
и f1=1 в случае (fP)=DPT; Z=P.
Для
j=t-1,…, 0
полагаем f=f2 gZ,Z(S)/g2Z(S), Z=2Z
(шаг удвоения в E[n](E(F)), если PÎE[n](E(F)), иначе в E[n]);
если bj=1, то полагаем
f=f1 f gZ,P(S)/gZ+P(S), Z=Z+P
(сложение в E[n](E(F)), если PÎE[n](E(F)), иначе в E[n]).
Возвращаемое значение есть f=fP(S)ÎFk* или 0.
С целью сокращения медленных операций деления используют алгоритм вычисления точки с отложенными операциями деления, возвращающий числитель N и знаменатель D такие, что fP(S)=N/D.
Алгоритм 2 (для точки). Число n представляется в двоичном коде
n=(1,bt-1, …, bj, …, b0), bt=1, bjÎ{0,1}.
Принимаем N1=gP+R, D1=gP,R в случае (fP)=DP ,
и f1=1 в случае (fP)=DPT; N=1; D=1; Z=P.
Для j=t-1,…, 0
полагаем N=N2 gZ,Z(S); D=g2Z(S), Z=2Z
(шаг удвоения в E[n](E(F)), если PÎE[n](E(F)), иначе в E[n]);
если bj=1, то полагаем
N=N1 N gZ,P(S); D=gZ+P(S); Z=Z+P.
(сложение в E[n](E(F)), если PÎE[n](E(F)), иначе в E[n]).
Возвращаемые значения суть N, DÎFk* или 0.
Примечание. Если в процессе вычислений по алгоритму 1 или 2 некоторая функции g принимает значение 0, то вычисления прерываются и возвращается значение 0.
Спаривание Вейля определяется формулой
e(P,Q)=[f_P(DQ)/fQ(DP)]^(q^k-1)/n,
где DP=(P+R1) -(R1); DQ=(P+R2) -(R2).
Его можно вычислить, четырежды применяя алгоритм 1 или 2 для точки к соответствующим точкам дивизоров (DP) и (DQ):
Алгоритм 1 (основной вариант алгоритма спаривания Вейля):
e(P,Q)= fP(Q+R2) fQ(R1)/fQ(P+R1) fP(R2). (1)
Алгоритм 2 (совмещенный вариант алгоритма спаривания Вейля) отличается от предыдущего тем, что циклы четырех исполнений алгоритма 1 для точки совмещаются, чем экономятся операции возведения в квадрат и умножения.
Алгоритм 3 (вариант с отложенными делениями) отличается от предыдущего тем, что в каждом цикле с использованием алгоритма 2 для точки также совмещенным образом вычисляются отдельно числители и знаменатели, а деление их заключительных версий осуществляется непосредственно перед завершением алгоритма, чем существенно сокращается (до одного) количество делений в конечном поле.
Последующие варианты (алгоритм 4 и алгоритм 5) вычисления спаривания Вейля предполагают разложение числа n в системе счисления по основанию 4 или 3 (т.н. тернарный алгоритм).
Примечание. Алгоритмы 1 - 5 спаривания Вейля возвращают значение 0, если это значение возникает при вычислении значение некоторой функции g. Поэтому они используются в качестве тела цикла
Пока e=0, выбрать случайно точки R1 и R2 и вычислить e=e(P,Q). Перед циклом инициализируется значение e=0. По окончании цикла вернуть e(q^k-1)/n.
Спаривание Тейта. Спаривание Тейта это билинейное невырожденное альтернированное отображение
eT : E[n](E(F))´ E[n](E(Fk))®mn.
Оно вычисляется по формуле fP(D(Q)), где (fP)=DPT=(P)-(O), D(Q)=(Q+R)-(R):
eT (P,Q)= [fP(DQ)](q^k-1)/n
Алгоритмы вычисления спаривания Тейта аналогичны рассмотренным выше алгоритмам 1 - 5 вычисления спаривания Вейля и отличаются от них тем, что исключены операции, связанные с «обработкой» знаменателя формулы (1), функция f1=1, операции удвоения точки и сложения точек в каждой итерации цикла осуществляются в группе Е[n](E(F)). Обозначим эти алгоритмы алгоритм 1T , …, алгоритм 5T .
Искажающие
отображения. Неальтернированные спаривания. Рассмотренные выше отображения
спаривания являются альтернированными, что не позволяет применить их в
криптографических протоколах, основанных на спаривании. Отображение спаривания,
используемое в них, билинейное, невырожденное и неальтернированное.
Использование так называемых искажающих отображений [5] y:E[n](E(Fk))®E[n](E(Fk)) и y:E[n](E(F))®E[n](E(Fk))
позволяет построить на основе спаривания Вейля и спаривания Тейта
соответственно неальтернированные спаривания Вейля : E[n](E(F))´E[n](E(F))®mn;
=e(P,y(Q)) и Тейта T:
E[n] (E(F))´E[n] (E(F))®mn;
T = eT(P, y(Q)). Ниже такие спаривания называются
модифицированными. При вычислении модифицированного спаривания как Вейля, так и
Тейта используются дивизоры DPT и DQT,
что упрощает алгоритмы. Во всех случаях f1=1. Основной алгоритм вычисления модифицированного
спаривания Вейля (алгоритм 1м) соответствует формуле
(P,Q)==[fP(Dy(Q) T)/fy(Q)[DPT)](q^k-1)/n) =
=[fP(y(Q))fy (Q)(O) / fy (Q)(P)fP(y(O))](q^k-1)/n) ,
а для суперсингулярных кривых
E1,0: Y2=X3+X, где pº3(mod 4),
E2,b: Y2+Y=X3+X+b, bÎ{0,1}, над полем GF(2m), при нечетном m,
E3,b: Y2=X3 - X+b, bÎ{-1,1}, над полем GF(3m), при mº±1(mod 12) или mº±6(mod 12)
он соответствует формуле
(P,Q)=[fP(y(Q))fy (Q)(O) / fy(Q)(P)](q^k-1)/n).
Здесь учтено, что fP(y(O))(q^k-1)/n=1.
При этом значения функций fP(S) и fy(Q)(S) в соответствующей точке вычисляются по алгоритму 1,
Алгоритмы 2м - 5м вычисления модифицированного спаривания Вейля отличаются от алгоритма 1м так же, как алгоритмы 2 - 5 вычисления спаривания Вейля отличаются от алгоритма 1.
Алгоритмы вычисления модифицированного спаривания Тейта соответствуют формуле
eT(P,y(Q))=fP(DQT)(q^k-1)/n=(fP(y(Q))/fP (y(O)))(q^k-1)/n, а для суперсингулярных кривых
Ei,b, i=1,2,3, bÎ{0,1} при i=1,2, bÎ{-1,1} при 1=3 они соответствуют формуле T(P,Q)=fP(y(Q))(q^k-1)/n. Она получается из предыдущей формулы, поскольку fP(y(O))(q^k-1)/n=1. Таким образом, вычисление модифицированного спаривания Тейта на указанных суперсингулярных кривых сводится к вычислению значения функции fP, такой, что (fP)=nDPT, в точке y(Q) и осуществляется по алгоритму 1 для точки, вычисление с отложенными делениями осуществляется по алгоритму 2 для точки.
Алгоритмы Дуурсма - Ли - Квона. Существенное упрощение модифицированных алгоритмов спаривания Тейта на суперсингулярных эллиптических кривых с распространением на гиперэллиптические кривые достигнуто в работах [6 -8]. Применительно к эллиптическим кривым E3,b известны три алгоритма Дуурсма-Ли-Квона: базовый, ускоренный и алгоритм без извлечения кубических корней [7,8]. В работе [8] укоренный алгоритм и алгоритм без извлечения квадратных корней обоснованы для кривых E2,b. Описания этих алгоритмов можно найти в книге [4].
Функции спаривания библиотеки MPEIAAL. В библиотеку MPEIAAL [9] включены следующие функции.
а) millerf_function_for_point_1_GF(p)(T) - вычисление значения fn(S) по алгоритму 1 для точки (T=0: (fn)=(P+R)-(R); T=1: (fn)=(P)-(O)). Вычисления на E[n](F), если PÎE[n] и на E[n](Fk), если PÎ E[n](Fk). Вход: E, n, k, P, Q. Выход: e(P,Q) Î Fk, F=GF(p);
millerf_function_for_point_1_GF(2m)(T) и
millerf_function_for_point_1_GF(3m)(T) - аналогичные функции применительно к эллиптическим кривым над полями GF(2m) и GF(3m).
б) millerf_function_for_point_2_GF(p) (T) - вычисление значения fn(S) по алгоритму 1 для точки (T=0: (fn)=(P+R) - (R); T=1: (fn)=(P)-(O)). Вычисления на E[n](F), если PÎE[n] и на E[n](Fk), если PÎ E[n](Fk). Вход: E, n, k, P, Q. Выход: N, D такие, что e(P,Q) Î Fk, F=GF(p).
millerf_function_for_point_2_GF(2m) (T) и
millerf_function_for_point_2_GF(3m) (T) - аналогичные функции применительно к эллиптическим кривым над полями GF(2m) и GF(3m).
в) weil_pairing_general (i)_GF(p), weil_pairing_general (i)_GF(2m), weil_pairing_general (i)_GF(3m) - вычисление спаривания Вейля по алгоритму i (i=1-5) на эллиптических кривых над полями GF(p2), GF(24m), GF(36m).
г) tate_pairing_general (i)_GF(p), tate_pairing_general (i)_GF(2m), tate_pairing_general (i)_GF(3m), - вычисление спаривания Тейта по алгоритму iT (i=1-5) - на эллиптических кривых над полями GF(p2), GF(24m), GF(36m).
д) weil_pairing_morif_general (i)_GF(p), weil_pairing_morif _general (i)_GF(2m), weil_pairing_morif _general (i)_GF(3m) - вычисление модифицированного спаривания Вейля по алгоритму iм (i=1-5) на эллиптических кривых над полями GF(p2), GF(24m), GF(36m).
e) weil_pairing_morif (i)_GF(p), weil_pairing_morif (i)_GF(2m), weil_pairing_morif (i)_GF(3m) - вычисление модифицированного спаривания Тейта на эллиптических суперсингулярных кривых над полями GF(p2), GF(24m), GF(36m).
ж) tate_pairing_morif_general (i)_GF(p), tate_pairing_morif _general (i)_GF(2m), tate_pairing_morif _general (i)_GF(3m) - вычисление модифицированного спаривания Тейта по алгоритму iм (i=1-5) на эллиптических кривых над полями GF(p2), GF(24m), GF(36m).
з) tate_pairing_morif (i)_GF(p), tate_pairing_morif (i)_GF(2m), tate_pairing_morif (i)_GF(3m) - вычисление модифицированного спаривания Тейта на эллиптических суперсингулярных кривых над полями GF(p2), GF(24m), GF(36m).
ж) tate_pairing_duursma-lee_general (i)_GF(3m), - вычисление модифицированного спаривания Тейта по базовому алгоритму Дурсма - Ли на эллиптических кривых над полем GF(3m).
з) tate_pairing_duursma-lee_accellerated (i)_GF(3m), - вычисление модифицированного спаривания Тейта по ускоренному алгоритму Дурсма - Ли на эллиптических кривых над полем GF(3m).
и) tate_pairing_duursma-lee_kwon (i)_GF(3m), - вычисление модифицированного спаривания Тейта по алгоритму Дурсма - Ли - Квона без извлечения кубических корней на эллиптических кривых над полем GF(3m).
к) tate_pairing_duursma-lee_accellerated (i)_GF(2m), - вычисление модифицированного спаривания Тейта по ускоренному алгоритму Дурсма - Ли - Квона на эллиптических кривых над полем GF(2m).
л) tate_pairing_duursma-lee_kwon (i)_GF(2m), - вычисление модифицированного спаривания Тейта по алгоритму Дурсма - Ли - Квона без извлечения квадратных корней на эллиптических кривых над полем GF(2m).
Заключение. С включением в библиотеку MPEIAAL описанных в настоящей статье функций, она может использоваться для реализации разнообразных протоколов, основанных на спаривании. Такими протоколами являются, в частности, протоколы согласования ключей для симметричных систем шифрования [2], шифрования с личностным ключом [10], короткой цифровой подписи [11], слепой цифровой подписи [12], цифровой подписи с личностным ключом [13] и др. При этом возможен сравнительный анализ эффективности их реализации в зависимости от выбора способов реализации спаривания, конечных полей и эллиптических кривых.
Авторы выражают благодарность д.ф.-м.н. профессору Гашкову С.Б. за помощь при подготовке настоящей работы.
Литература
1.
Okamoto
T., Pointsheval P. The Gap Problems: a new class of problems for the security
of cryptographic primitives, PKC 2001, LNCS 1992(2001), 104-118.
2. Joux A. One round protocol for
tripartite Diffie-Hellman. Lecture Notes in Computer Science 1838 (2000)
385-393.
3. Болотов А.А., Гашков С.Б., Фролов А.Б., Часовских А.А. Элементарное введение в эллиптическую криптографию: Алгебраические и алгоритмические основы. - М.: КомКнига, 2006.
4. Болотов А.А., Гашков С.Б., Фролов А.Б. Элементарное введение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых. - М.: КомКнига, 2006.
5. Verheul E. Evidence that XTR is more
secure than supersingular ellipticcurve cryptosystems J.Cryptology, 17(2004),
277-296.
6. Barreto P.S.M.L., Galbraith S., O
hEigeartaigh C., and Scott M. Efficient pairing computation on supersingular
abelian varieties Cryptology ePrint Archive, Report 2004/375, 2004.
7.
8. Kwon S. Efficient Tate pairing
computation for supersingular elliptic curves over binary fields Cryptology
ePrint Archive, Report 2004/303, 2004.
9.
Белова
А.Ю., Мамонтов А.И., Морозов С.В. Библиотека классов для эллиптической
криптографии, 17-я Международная Научно-техническая конференция
"Информационные средства и технологии". Москва, 2009. В наст. томе.
10.
Boneh
D., Franklin M. Identity Based encription from the Weil Pairing //SIAM J. on
Computing. 2003. 32,
586-615.
11.
Boheh D. Short signatures from Weil pairing/Boneh
D., Lynn B., and Shacham H.// J. of Cryptology, vol 7, (2004) 297-319.
12.
Boldyreva
A. Efficient Thrishold Signatere, Multisignature and Blind Signature Schemes Based
on the Gap-Gaffie-Hellman-Group Signature Scheme/ A.Boldyreva // PKC 2003,
LNCS2139, Springer-Verlag, (2003) 31-46,
13.
Hess
F. Exponent group signature schemes and efficient identity based signature
schemes based on pairings/F. Hess//Cryptology ePrint Archive, Report 2002/012.