Научная статья на тему 'О применении метода Винера параллельного поиска коллизий к дискретному логарифмированию на кривых Эдвардса'

О применении метода Винера параллельного поиска коллизий к дискретному логарифмированию на кривых Эдвардса Текст научной статьи по специальности «Математика»

CC BY
214
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Чебышевский сборник
Scopus
ВАК
RSCI
Область наук

Аннотация научной статьи по математике, автор научной работы — Синицын Ф. А.

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

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

On application of Wiener’s parallel collision search algorithm to discrete logarithm problem on Edwards curves

This article demonstrates a way to solve discrete logarithm problem on Edwards curves using Wiener’s parallel collision search algorithm, taking into consideration the most efficient approaches and methods of optimization of this algorithm and curve arithmetic.

Текст научной работы на тему «О применении метода Винера параллельного поиска коллизий к дискретному логарифмированию на кривых Эдвардса»

ЧЕБЫШЕВСКИЙ СБОРНИК Том 11 Выпуск 1 (2010)

Труды VII Международной конференции Алгебра и теория чисел: современные проблемы и приложения, посвященной памяти профессора Анатолия Алексеевича Карацубы

УДК 511

О ПРИМЕНЕНИИ МЕТОДА ВИНЕРА ПАРАЛЛЕЛЬНОГО ПОИСКА КОЛЛИЗИЙ К ДИСКРЕТНОМУ ЛОГАРИФМИРОВАНИЮ НА КРИВЫХ ЭДВАРДСА

Ф. А. Синицын (г. Москва)

Аннотация

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

Abstract

F. A. Sinitsyn, On application of Wiener’s parallel collision search algorithm to discrete logarithm problem on Edwards curves.

This article demonstrates a way to solve discrete logarithm problem on Edwards curves using Wiener’s parallel collision search algorithm, taking into consideration the most efficient approaches and methods of optimization of this algorithm and curve arithmetic.

1 Эллиптические кривые в форме Эдвардса

Традиционный подход состоит в задании эллиптической кривой в канонической форме Вейерштрасса. Однако, существуют и другие формы задания эллиптических кривых. В частности, в 2007 году Гарольдом Эдвардсом ([1]) была предложена форма, позволяющая повысить эффективность вычисления суммы точек кривой по сравнению с формой Вейерштрасса. В данной работе рассматриваются эллиптические кривые в форме Эдвардса над полями вычетов.

Определение 1 ([2]). Пусть имеется конечное поле Zp,p > 2. Эллиптическая кривая в форме Эдвардса E(Zp) задается уравнением:

x2 + y2 = c2(1 + dx2y2),

где c,d Є Zp, cd(1 — c4d) ф 0 (mod p), d - квадратичный невычет по модулю p. В проективных координатах кривая задается уравнением:

(X2 + Y 2)Z2 = c2(Z4 + dX 2Y2)

Определение 2 ([2]), Закон сложения точек на кривой в форме Эдвардса:

Xly2 + ylX2 У1У2 — X1X2 \

(xl,yl) + (x2, У2)

c(1 + dXlX2yly2^ c(1 — dXlX2yly2) )

Этот закон задает структуру абелевой группы на множестве точек кривой в форме Эдвардса в объединении с бесконечно удаленной точкой, причем точка (0, с) - нейтральный элемент этой группы, и УР = (ж, у) противоположный элемент —Р = (-ж, у).

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

Сложение. Формулы для вычисления суммы точек (Х1 : У : ^) и (Х2 : У2 : ^2) на кривой в проективных координатах:

Хз = ад(^%2 — + У1)(х + УО — Х1Х2 — вд)

Уз = ^2(^2 + ^Х^У^К^У, — Х1Х2)

^з = с(^2^2 — ^Х^тах^2 + ^Х^УУО

Удвоение. Формулы для вычисления удвоенной точки (Х1 : У1 : ^1):

Хз = с((Х1 + У1)2 — X2 — У12)(Х2 + У2 — 2(с^)2)

Уз = с(Х2 + У2)(Х2 — У12)

^з = (Х2 + У2)(Х2 + У2 — 2(с^)2)

2 Задача дискретного логарифмирования и метод параллельного поиска коллизий

Дискретное логарифмирование на эллиптической кривой. Пусть Е (К) - эллиптическая кривая над полем К, и пусть известна точка Q, образующая циклическую подгруппу группы точек кривой. Порядок подгруппы ^) равен п. Также известна точка Р € ^). Задача дискретного логарифмирования в этом случае состоит в нахождении такого целого числа /, что Р = I ■ Q,

Для решения этой задачи в случае произвольной кривой, заданной в форме Эдвардса, автор применил метод, предложенный Винером в [4]. Этот вероятностный алгоритм является параллельной модификацией p-метода Полларда, идея которого основывается на "парадоксе" дней рождения.

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

Определение 3. ([4]) Пусть имеется конечное множество S, f : S ^ S -некоторое случайное отображение (итерационная функция). Тогда выделенным

S

ранее заданному свойству.

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

Метод параллельного поиска коллизий заключается в следующем. Имеется t процессоров; каждый процессор выбирает случайный стартовый элемент

x0 и вычисляет последовательность xi = f = 1, 2,: до тех пор, пока

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

Применение метода к решению задачи дискретного логарифмирования на кривой. Пусть E(Zp) - эллиптическая кривая над полем Zp, p - простое, p > 2. Точка Q - образующий элемент циклической подгруппы порядка n и точка P - некоторый эле мент (Q), Тогда для решения задачи дискретного логарифмирования, т.е. для нахождения целого l, такого, что P = l ■ Q, на t процессорах выполним параллельно следующие действия:

1. Выбрать случайные числа a0,b0 £ [0,n) и вычислить начальную точку Жо = aoQ + boP;

2. В цикле по i вычислять xi+1 = f (xi) до тех пор, пока не встретим выделенную точку (точку, имеющую заданное число нулевых младших бит в координате y);

3. Выделенную точку xk вместе с соответствующими коэффициентами ak, bk добавить в общий для всех процессоров список;

4, Если такая точка уже была добавлена в список ранее (другим или этим

же процессором), то найдена коллизия: xk = akQ + bkP = ajQ + bjP = Xj, Отсюда, если bk ф bj (mod n), то найдено решение: I = (mod гг);

5, В противном случае, начать заново с другой стартовой точкой,

/

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

(Q)

r Sl , ... , Sr

рируем 2r случайных чисел ui,vi Є 1, 2,r, i = 1, 2,...,r, Тогда итерационная функция примет вил:

кХг + + УгР, если Хг Е Бг.

При этом последовательности коэффициентов аг, Ьг задаются соотношениями:

В [8] показано, что при г ^ 16 поведение такой функции подобно поведению случайного отображения.

Оценка времени работы алгоритма. Как показано в [4], в силу «парадокса дней рождения», если в вычислении участвуют £ процессоров, оценка времени работы алгоритма равна (в шагах):

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

xi + ulQ + vlP, если xi Є Sb Xi + u2Q + V2P, если Xi Є S2,

(1)

(2)

условию 2к|д, Из п элементов выделенных будет п/2к штук, следовательно,

/ 7Г П

в = 7^/п = ^ —> Т « —V 2к. Выбор критерия выделенноети, таким обра-

к

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

Оптимизация метода параллельного поиска коллизий для кривых Эдвардса. Идея, позволяющая улучшить оценку времени работы рассматриваемого алгоритма в л/2 раз, предложена Винером в [5]. Имея некоторую точку на кривой, можно быстро вычислить и противоположную ей. Для кривой в форме Эдвардса:

-(Х,У) = (—Х,У)

Выделенной точкой будем считать точку, имеющую заданное число младших нулевых бит в двоичном разложении координаты у, Тогда, имея выделенную точку легко найти и — ^, которая тоже окажется выделенной (координаты у у ^ и —^ будат совпадать). Если Z = а^ + ЬР, то —^ = —(а^ + ЬР) = —а^ — ЬР, Т.к. логарифмирование проводится в подгруппе, порожденной Q и имеющей п

— Z = (п — а^ + (п — Ь)Р (3)

Так, найдя одну выделенную точку, мы автоматически получаем противоположную ей также выделенную точку и по формуле 3 находим ее разложение в виде линейной комбинации Р и Q (разложение требуется при собственно вычислении логарифма). Применив эти рассуждения на практике, получим воз-

г 2г

таких точек. Ожидаемое время работы алгоритма тогда оценивается как

/7ТП /Г) /7ТП

т _ V 2 !1 _ V 4 1 ~ --------- — ------ — ,

ь г

что означает прирост порядка л/2 раз по сравнению с оценкой 2.

3 Практическая реализация

Для иллюстрации работоспособности метода параллельного поиска коллизий применительно к решению задачи дискретного логарифмирования на кривых Эдвардса автором была разработана программная реализация данного алгоритма. Она представляет собой приложение на языке C++, которое выполняется параллельно в t потоков. Ниже представлены экспериментальные данные, которые были получены на персональной ЭВМ с процессором Intel Core 2 Quad Q6600 (4 ядра, 2.4 ГГц).

Логика работы приложения. Пользователь указывает характеристику конечного поля Zp, а также нужный размер порядка циклической подгруппы, в которой будет производиться дискретное логарифмирование (например, 40 бит, 60 бит, 130 бит и т.д.). Программа генерирует случайные кривые Эдвардса Е(Ър) над указанным полем до тех пор, пока не встретится подходящая кривая, удовлетворяющая поставленному условию на размер порядка подгруппы. Для этого программа вычисляет порядок группы точек кривой Эдвардса при помощи алгоритма Шуфа ([9]), разлагает его на простые множители и ищет сомножитель нужного размера. Если такого нет, генерируется другая случайная кривая. После того, как подходящая кривая найдена, программа находит точку подгруппу порядка п, находит точку Р

(используя переданное пользователем либо сгенерированное случайно значение логарифма) и стартует алгоритм параллельного поиска коллизий. По завершении алгоритма производится проверка правильности полученного значения.

Замечание 1. Кроме описанного режима «автоматической проверки», программа имеет «пользовательский режим», в котором, все данные о кривой, а, также точки Q и Р, задаются пользователем,.

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

силу того, что параллельный поиск коллизий - вероятностный алгоритм, для оценки его быстродействия и выявления некоторых закономерностей необходимо усреднять результаты нескольких запусков. Исследование проводилось следующим образом. При фиксированной характеристике поля р и фиксированном размере порядка циклической подгруппы генерировалось 8 случайных кривых Эдвардса, На каждой из них логарифмирование проводилось 10 раз, после чего данные о быстродействии усреднялись по всем запускам. Ниже представлены усредненные данные о производительности программы при р ~ 255,п ~ 236 и при разном числе потоков. Производительность измеряется числом «шагов» (т,е, вычислений итерационной функции f (жг) каждым потоком) а также временем работы алгоритма.

Из таблицы 1 видно, что с добавлением потоков эффективность метода растет линейно. Таким образом, автором экспериментально подтверждена теоретическая оценка 4,

Замечание 2. Заметим,, что, хотя, эффективность, измеренная в шагах алгоритм,а, растет линейно, время выполнения в какой-то момент перестает уменъша'тъся. Причину этого легко понять, вспомнив, что ресурсы ПК, на котором, за,пускалось приложение, ограничены 4-мя, процессорными ядрами.

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

Таблица 1: Зависимость быстродействия от числа потоков

Число потоков і Среднее число шагов алгоритма Среднее время выполнения

1 284230 5038 мс

2 142247 2010 мс

4 77397 1588 мс

8 34867 1281 мс

16 18125 1445 мс

32 7597 1185 мс

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

Таблица 2: Максимальные результаты на персональной ЭВМ

V (бит) п (бит) 1о§ (бит) Число потоков Число подмножеств разбиения ((^) Число шагов алгоритма Время

128 65 64 32 5000 151 млн 9.3 ч

128 67 66 32 5000 433.7 млн 28 ч

128 69 68 32 5000 665 млн 39.4 ч

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

74 70 69 32 300 999.5 млн 40.3 ч

74 72 71 32 1000 2.5 млрд 110.7 ч

76 74 73 32 5000 1.7 млрд 80.3 ч

78 76 75 32 5000 6.5 млрд 361 ч

По данным таблицы 2 мы видим, что сложность решения задачи дискретного логарифмирования растет с увеличением р и п, Отметим, что для п ~ 274 решение в данном случае было найдено быстрее, чем для п ~ 272, Это объясняется вероятностным (недетерминированным) характером алгоритма параллельного поиска коллизий.

В качестве примера реальных значений, вычисленных с помощью рассматриваемого алгоритма, можно привести следующие:

Поле Zp,p = 151115727451828646838283 ~ 78 бит

Кривая Эдвардса с параметрами:

с = 148695392332474349136443, і = 123668989960419820075136

Циклическая подгруппа порядка n = 37778931863003084334349 ~ 76 бит Координаты образующей Q этой подгруппы: xq = 124499968691278174477645 yq = 77267518048369489593130 Координаты точки P:

Хр = 25646794941492145893218 yP = 149697822820883998092424

Были найдены коэффициенты уравнения

26837714375043016294065■Q + 12301382736354047423524■P = 11049920284850180579284■Q + 23296951622759171733308■P (mod 37778931863003084334349)

и вычислено значение логарифма, равное 18889465931501542167174, СПИСОК ЦИТИРОВАННОЙ ЛИТЕРАТУРЫ

[1] Harold М. Edwards, A normal form for elliptic curves, // Bulletin of the American Mathematical Society 44 (2007), 393-422,

[2] Bernstein, D, J, and Lange, T, (2007c), Faster addition and doubling on elliptic curves, // in ASIACRYPT 2007, Vol. 4833 of LNCS, Springer, pp. 29-50.

[3] H. Hisil, K. Wong, G. Carter, E. Dawson (2009) Faster group operations on elliptic curves. //In Australasian Information Security Conference (AISC 2009), New Zealand, January 2009, volume 98, p 7-19.

[4] P. C. van Oorschot, M. J. Wiener, Parallel collision search with ervptanalytie applications, // Journal of Cryptology 12 (1999), 1-28.

[5] M. J. Wiener, E. J. Zuccherato, Faster Attacks on Elliptic Curve Cryptosystems, // Selected Areas in Cryptography’98 (1998), 190-200.

[6] Венбо Мао. Современная криптография. Теория и практика. - М.: Вильямс, 2005. - 768 с.

[7] Teske Е,, Speeding up Pollard’s rho method for computing discrete logarithms, //in Algorithmic Number Theory Symposium (1998), 541-553.

[8] Teske E,, On random walks for Pollard’s rho method, // Mathematics of Computation 70 (2001), 809-825.

[9] E. Schoof: Counting Points on Elliptic Curves over Finite Fields. // J. Theor. Nombres Bordeaux 7 (1995), 219-254.

Московский государственный институт электроники и математики (технический университет).

Поступило 13.05.2010

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