Научная статья на тему 'Разработка алгоритма кодирования алфавита точками эллиптической кривой'

Разработка алгоритма кодирования алфавита точками эллиптической кривой Текст научной статьи по специальности «Математика»

CC BY
412
76
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЭЛЛИПТИЧЕСКАЯ КРИВАЯ / БИЛИНЕЙНОЕ СПАРИВАНИЕ / СИСТЕМА ОСТАТОЧНЫХ КЛАССОВ / ПРИБЛИЖЕННЫЙ МЕТОД / ELLIPTIC CURVE / BILINEAR PAIRING / SYSTEM OF RESIDUAL CLASSES / APPROXIMATE METHOD

Аннотация научной статьи по математике, автор научной работы — Бабенко Михаил Григорьевич, Кияшко Екатерина Сергеевна, Кучеров Николай Николаевич

В статье описывается алгоритм кодирования алфавита точками эллиптической кривой с использованием операции билинейного спаривания.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Development of the algorithm coding alphabet by points of the elliptic curve

The paper describes the encryption algorithm alphabet by elliptic curve point with using operations of bilinear pairing.

Текст научной работы на тему «Разработка алгоритма кодирования алфавита точками эллиптической кривой»

ИНФОРМАЦИОННО-TE ЛЕКОММ УНИКАЦИОННЫЕСИСТЕМЫ

«наука. инновации. технологии», №1, 2013

УДК 621.391 М. Г. Бабенко [M. G. Babenko], Е. С. Кияшко [E. S. Kiyashko], Н. Н. Кучеров [N. N. Kucherov]

разработка алгоритма кодирования алфавита точками

эллиптической кривой1

Development of the algorithm coding alphabet by points of the elliptic curve

В статье описывается алгоритм кодирования алфавита точками эллиптической кривой с использованием операции билинейного спаривания.

The paper describes the encryption algorithm alphabet by elliptic curve point with using operations of bilinear pairing.

Ключевые слова: эллиптическая кривая, билинейное спаривание, система остаточных классов, приближенный метод. Key words: elliptic curve, bilinear pairing, system of residual classes, approximate method.

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

Алгоритмы кодирования алфавитов делятся на вероятностные и детерминированные.

Проанализируем вероятностный алгоритм кодирования алфавита точками эллиптической кривой E(Fp): y2 = x3 + ax+ b, где простое число и p > 3, предложенный в 1985 году Н. Коблицом [1].

Алгоритм 1. Кодирование алфавита точками эллиптической кривой

Вход. Простое число p, a,b £ Fp , M — мощность алфавита, который мы кодируем точками эллиптической кривой, и k — число, обычно принимающее значение k = 20 или k = 50.

Выход. Закодированный точками эллиптической кривой Pi алфавит, где i £ [0,...,M- 1].

1. i = 0.

2. Пока i < M, выполнять: 2.1. j = 1.

1 Работа выполнена при поддержке гранта РФФИ 12-07-31087- мол_а.

2.2. Пока j < к + 7, выполнять:

Г.. , лз - * ~ ^

2.2.1. Если

(i-k + jy+a(i-k + j) + b

= 1

, то

У

р

2.2.1.1. Po = (i - к + j, sqrtmod(i • к + j)3 + a(i - к + j) + b)).

2.2.1.2. Перейти к пункту 2.3. 2.2.2. j = j + 1.

2.3. i = i + 1.

3. Вывод Pi для всех i = 0,..., M- 1.

Функция sqrtmod(a) вычисляет корень квадратный из числа а по модулю р.

Рассмотрим алгоритм декодирования.

Алгоритм 2. Декодирование символа из точки эллиптической кривой

Вход. Точка Pt = (x,y) эллиптической кривой и число к. Выход. Число i ^ _ ^

1. Если х mod к > 0, то / = -

к

О 17 • x-xmodk 2. Если xmodк > 0, то / =-.

3. Вывод i.

Преимущество данного алгоритма состоит в том, что для вычисления числа I необходимо держать в памяти только точку Р1 = (х,у) и число к.

Недостатки:

1. Вероятность того, что I будет не закодировано, равна , а при большом выборе м вероятность не закодировать один из символов алфавита возрастает многократно. Например,

при М = 106 и к = 20 вероятность не закодировать алфавит

( 1 у

равна 1-11-— I =0.6, то есть вероятность не закодировать алфавит больше, чем вероятность закодировать его.

2. С помощью данного алгоритма можно закодировать алфавит, мощность которого равна что приблизительно в к раз меньше, чем количество точек на эллиптической кривой, согласно теореме Хассе.

Проведем анализ детерминированного алгоритма кодирования алфавитов точками эллиптических кривых, предложенного в работе [2].

Для рассмотрения детерминированного алгоритма кодирования алфавита точками эллиптической кривой введем понятие дуальных эллиптических кривых.

Определение 1. Две эллиптические кривые ЕаЬ : у2 = х3 + ах + Ь и Еа'Ь' : У2 = х3 + аХ + Ь \ заданные над конечным полем Рр, гдер — простое число,р > 3, а,Ь,аг,Ь' Е Рр, называются дуальными, если имеет место следующее соотношение:

а = V 2 а,

Ь' = V 3Ь. (1)

где V Е Рр — квадратичный невычет по модулю р.

Для дуальных эллиптических кривых справедлива следующая теорема.

Теорема 1 [2]. Пусть ЕаЬ(Рр) и Еа'Ь' (Рр) — две дуальные эллиптические кривые над конечным полем Рр, р ^ 2,3. Тогда

Алгоритм 3.

#ЕаЬР) + #ЕаЬ (Рр) = 2 р + 2.

Теперь перейдем к алгоритму кодирования.

Кодирование алфавита точками эллиптической кривой.

(2)

Вход. Простое число p, a,b, Е Fp , и M— мощность алфавита, который мы кодируем точками эллиптической кривой.

Выход. Закодированный точками эллиптической кривой алфавит, где i Е [0,..., M — 1], и эллиптическая кривая.

1. Выбрать число v так, чтобы оно являлось квадратичным невычетом в Fp.

2. Вычислить a' = (v2a) mod p.

3. Вычислить b' = (v3b) mod p.

4. соиП;егЕаЬ = 0, соиП;егЕа1У = 0.

5. Для всех i = 0,...,2M — 2 вычислить Лежандра:

— символ

5.1. если

5.2. если

'•з .Л

/ +Ш + 0

> 0, то соиП;егЕаЬ = соиП;егЕаЬ + 1;

Лз . L

< 0, то соиП;егЕаЪ. = соиП:егЕаЪ. + 1.

6. Если соиП;егЕаЬ > M, то 6.1. j = 0, i = 0.

6.2. До тех пор пока 7 Ф М, выполнять:

6.2.1. если

6.2.2. если

г +т + Ь

= \, то Р = (¡^ qrtmod(z3 + а1 + Ь) и у = у + 1;

V г У

г -з . л г +т + Ь

— О, то Р = (¡,0) и у = у + 1.

6.2.3 / = ^ + 1.

6.3. Вывести Рт и а,Ь Е Ер,

6.4. Иначе у = 0, / = 0.

6.5. До тех пор пока у Ф М, выполнять:

6.5.1. если

/ -3 • 7 ^

Г + ш + 6

, то

\ г У Р = (V/, дгШюсКУ /3 + + ,7 =7 + 1;

6.5.2. если

'■3 ■ ¡Л

I +Ш+0

= 0 то Р = 0>/,0) и] = ] + 1.

6.5.3. ¡ = ^ + 1.

6.6. Вывести Рт и а\Ь' Е ¥р. 7. Конец.

Рассмотрим применение алгоритма 3 к кодированию алфавита точками эллиптических кривых из работы [3], которые рекомендованы в США.

Пример 1. Рассмотрим эллиптическую кривую Р - 224:

Ь = 1184892892847913000025541784030870400969042560542457567237257953204,

р =26959946667150639794667015087019630673557916260026308143510066298881.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Найдем наименьший квадратичный невычет.

Числа 1, 4, 9 являются квадратичными вычетами ¥р, так как представимы в виде: 1 = 12, 4 = 22, 9 = 32.

Так какр имеет видр = 8t + 1, то из свойств символа Лежандра 2 является квадратичным вычетом в Ер, следовательно, и 8 является квадратичным вычетом в Ер.

Из того что р имеет вид р = Ш + 1 следует, что 3 является квадратичным вычетом в Ер, значит, и 12 является квадратичным вычетом в Ер.

Вычислив символ Лежандра для чисел 5, 7, 1, получим, что

(-] гп II (-] = 1, (- ОО

= = - — -

и У ч5у кРу 17; кР) [п)

= -1, следовательно,

наименьшим квадратичным невычетом в Ер, является 1, значит, V = 1. Найдем а' и Ь':

а = 26959946667150639794667015087019630673557916260026308143510066298518, V = 13415533685835094943309239497949924623436505000485149669206490379426.

Найдем, для каких значений I Е [0,...,14] значение выражения х3 — 3х + Ь является квадратичным вычетом в Ер, а для каких — невычетом в Ер.

Результат вычисления оформим в виде таблицы, где знаком «+» обозначается квадратичный вычет в Ер, а знаком «-» — квадратичный невычет в Ер .

Таблица принадлежности точек для эллиптической кривой Е(Р- 224)

/ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

ЕаЬ (/) - - - - + + - + - + + - - - -

Еа'Ь' (/V)

+ + + +

+ + + +

+

+

Из таблицы видно, что в столбце ЕаЬ содержится 5 знаков «плюс», а в столбце ЕаЬ их 10. Таким образом, кодирование будет осуществляться с помощью эллиптической кривой ЕаЬ.

0 0 ^ (0,1279570188126497932668843105780488063367322738598979018589176253518)

1 1 (11,1971866453389642034495285085943490889832546597648861537869726507668)

2->2^(22,10176453924036365050965551997058061005873692059388012107917705849824)

3^3^ (33,935 8909154562457968296926403 876945122102573 598146097889908812434060)

46->(66,5872410734584067682851047127369825126432009195932610333775123380536)

5 8 ->■(88,9706802960151090980705546055019489912031617355969047635105028325010)

6 -И 1 (121,8234000226559713240305693 7074926443 71471171482034903 525 856724774960)

7 —> 12 —> (132,761879028743502752492324034067527374200816791098118645995856457009)

Найдем #ЕаЬ . Так как

#ЕаЬ = 26959946667150639794667015087019625940457807714424391721682722368061, то, используя теорему 1, получим, что

#ЕаЪ, =26959946667150639794667015087019635406658024805628224565337410229703 = = З2•11 • 47•3015283•40375823•267983539294927•177594041488131583478651368420021457

Из того, что максимальный множитель в разложении #ЕаЪ равен 177594041488131583478651368420021457, следует, что ДЛЯ криптосистемы, построенной на эллиптической кривой ЕаЪ, задача дискретного логарифмирования решается методом Полларада [4] в

л--= 12320981886307475

V1775940414881315 83478651368420021457

раз быстрее, чем для криптосистемы, построенной на эллиптической кривой ЕаЪ.

Из примера видно, что детерминированный метод кодирования алфавита точками эллиптической кривой приводит к понижению криптостой-кости эллиптических кривых Р - 224, а также Р - 192 и Р - 256 на дуальные, но не криптостойкие кривые. Кривая Р - 384 заменяется на крип-тостойкую дуальную эллиптическую кривую, а кривая Р — 521 остается без изменений. Из всего выше сказанного следует, что при переходе от эллиптической кривой к дуальной эллиптической кривой уменьшается криптостой-кость данной криптосистемы. В связи с этим на эллиптическую кривую нужно накладывать дополнительные условия, что требует дополнительных временных затрат и ведет к увеличению времени для выбора одной кривой с нужными свойствами, а значит делает данный метод неудобным для частого применения.

Разработаем алгоритм кодирования точками эллиптической кривой устраняющей недостатки вышеуказанных алгоритмов. Для этого будем использовать операцию билинейного спаривания точек эллиптической кривой, аналогичную описанной в работе [5]. Для любой точки Р Е Е(Рр) выполняется следующие равенство: (п1 + 1)Р = О, где О — точка в бесконечности. Обозначим за Е(2() множество точек эллиптической кривой, которая задана уравнением у2 = х3 + ах + Ъ над полями Рр. Для построения спаривания важно знать структуру группы точек эллиптической кривой.

Ниже приведена теорема, описывающая структуру группы, когда эллиптическая кривая задана над полем Рр, где р — простое число, и порядок группы точек эллиптической кривой выражается формулой #Е (ОР (р)) = р

+ 1 - г.

Теорема 2 [6]. Если г2 = р, 2р, 3р, то группа циклическая. Если г 2 = 4р, то группа изоморфна _ 1 0 _ 1 в случае г = 2л/р или изоморфна +1 0 +1 в случае г = -2Лр. Если г = 0,р Ф 3(mod 4), то группа циклическая. Если г — 0, р = 3(mod 4), то группа или циклическая, или изоморфна 2р+1 Ф 2 2

2

Из теоремы 2 следует, что в случае, когда г 2 = 4р и г — четное число, группа точек Е(Рр) представляется в виде прямой суммы _ 1 0 _ 1 или +1 0 +1. Обозначим эти группы Е[1], где / = Лр - 1 или / = Лр + 1.

Так как Е[/] представляется в виде прямой суммы циклических групп, то можно зафиксировать некоторую образующую пару точек О и Н

таким образом, чтобы любую точку в E[/] можно было представить с их помощью. Рассмотрим точки Р = а^ + Ъ1Н и Q = а20 + Ъ2Н, принадлежавшие Е[/], где аьа2,^ьЪ2 е [0,/ - 1]. Для некоторых зафиксированных целых а,р е [0,1 - 1] определим функцию как : Е[/] X Е[/] ^ Е[/] и Ьав (PQ) = (а1 - b1)(аG + рН), исключая тривиальный случай, когда а и в одновременно равны нулю.

Пусть G1, G2 и G3 — три Абелевы группы. Билинейное спаривание является отображением е : G1 X G2 ^ G3 среди этих трех групп. Это отображение должно удовлетворять свойству билинейности: для а,в е G1, у,5 е G2, е(а + Р,у) = е(а,у) + е(Р,у), е(а,у + 5) = е(а,у) + е(а,5).

Следующая теорема показывает, что функция задает билинейное спаривание.

Теорема 3 [5]. Функция £а,р обладает следующими свойствами:

1. Тожде ственно сть.

Для всех Р е Е[/], Ьав (РР) = О.

2. Билинейно сть.

Для всех е Е[/].

ьа,в (Р + Q,R) = Ьа,в (РД) + Ьа,в Ш,К) и

А*,Р Ш + Д) = ¿а,Р (PQ) + Ьа.,в (РД)

3. Антисимметричность.

Для любых Р Q е Е[/], ¿а,р (PQ) = -Ьа.,в ©Р).

4. Невырожденность.

Для всех Р е Е[/], (Р О) = О. Кроме того,

если £а,р (PQ) = О для всех Q е Е[/], тогда Р = О.

называется спариванием, поскольку оно отображает Е[/] X Е[/] в Е[/] (аналогично традиционным спариваниям Вейля и Тейта). Приведем пример построения билинейного спаривания.

Пример 2. Пусть задана эллиптическая кривая Е(^5): у2 = х3 + 3х + 4 и F52 + F5 / (а2 + а +1). Тогда #Е(^2) = 27, и имеет место восемь торсионных точек третьего порядка: (-1,±(а + 3)), (2,±2), (а,±а), (4а + 4,± (а + 1)). Тогда билинейное спаривание можно задать с помощью следующих точек: G = (2,2) и Н = (а,а). 0G + 0Н = О, Ю + 0Н = (2,2), 2G + 0Н = (2, -2), 0G + 1Н = (а,а), 1G + 1Н (4 + 4а, + а), 2G + 1Н = (-1, -а, - 3), 0G + 2Н = (а,-а), 1G + 2Н (-1,а + 3), 2G + 2Н = (4 + 4а,4 + 4а), что изоморфно Z3 ф Z3.

Применяя данное билинейное спаривание и представляя полученную

информацию в виде х1 I х2, где x!, х2 — два ]-битных числа, вычислим Р = х1 G + х2 Н. Таким образом сообщение х1 1 х2 кодируется точкой Р. Для

информационно-телекоммуникационные системы

Разработка алгоритма кодирования алфавита точками эллиптической кривой

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

ЛИТЕРАТУРА

1. Коблиц Н. Курс теории чисел и криптографии. М.: ТВП, 2001. 254 с.

2. Лёвин В. Ю. Кодирование алфавитов точками эллиптических кривых // Интеллектуальные системы. Т. 11. 2009. C. 171-183.

3. Recommended Elliptic Curves for Federal Government Use. URL: http://csrc. nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf

4. Василенко О. Н. Теоретико-числовые алгоритмы в криптографии. М.: МЦНМО, 2003. 326 с.

5. Lee H.-S., A self-pairing map and its applications to cryptography // Applied Mathematics and Computation 151, 2004. Р. 671-678.

6. Болотов А. А, Гашков С. Б., Фролов А. Б. Элементарное введение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых. М.: КомКнига, 2006. 280 с.

7. Червяков Н. И., Авербух В. М., Бабенко М. Г., Ляхов П. А., Гладков А. В., Гапочкин А. В. Приближенный метод выполнения немодульных операций в системе остаточных классов // Фундаментальные исследования. 2012. № 6. Ч. I. С. 189-193.

ОБ АВТОРАХ

Бабенко Михаил Григорьевич, ФГАОУ ВПО «Северо-Кавказский федеральный университет», кандидат физико-математических наук, старший преподаватель кафедры высшей алгебры и геометрии Института естественных наук.

Кияшко Екатерина Сергеевна, ФГАОУ ВПО «Северо-Кавказский федеральный университет», старший преподаватель кафедры информационной безопасности Института информационных технологий и телекоммуникаций.

Кучеров Николай Николаевич, ФГАОУ ВПО «Северо-Кавказский федеральный университет», студент первого года обучения магистратуры по направлению «Математика» Института естественных наук.

Babenko Michail Grigorievich, doctorate in Physical and Mathematical Sciences, Assistant Professor on Department of Algebra and Geometry, INS, North-Caucasus federal university.

Kiyashko Ekaterina Sergeevna, аssistant Professor on Department of Information Security, ITT, North-Caucasus federal university. Kucherov Nikolaj Nikolaevich, student of the first year master's in «Mathematics», INS, North-Caucasus federal university.

i Надоели баннеры? Вы всегда можете отключить рекламу.