Научная статья на тему 'Использование детерминированной функции разбиения на множества для распараллеливания р-метода Полларда'

Использование детерминированной функции разбиения на множества для распараллеливания р-метода Полларда Текст научной статьи по специальности «Математика»

CC BY
293
67
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИСКРЕТНЫЙ ЛОГАРИФМ / МЕТОД ПОЛЛАРДА / ЭЛЛИПТИЧЕСКАЯ КРИВАЯ / POLLARD’S RHO METHOD / DISCRETE LOGARITHM / ELLIPTIC CURVE

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

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

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

Похожие темы научных работ по математике , автор научной работы — Качко Елена Григорьевна, Погребняк Константин Анатольевич

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

USING A DETERMINISTIC PARTITIONING FUNCTION FOR POLLARD’S RHO METHOD PARALELLIZATION

An improved method for parallelization of Pollard’s algorithm for solving the discrete logarithm problem in a group of elliptic curve points and in a multiplicative group of a Galois field for shared memory systems is suggested in the paper. Improvement of the method is achieved by constructing a deterministic partitioning function. Such a function allows to organize two independent load balancing computational threads for building a block of group elements of fixed length. Also we analyze advanced iteration functions for Pollard’s algorithm and build generic deterministic partitioning function.

Текст научной работы на тему «Использование детерминированной функции разбиения на множества для распараллеливания р-метода Полларда»

УДК 004.056.55

ИСПОЛЬЗОВАНИЕ ДЕТЕРМИНИРОВАННОЙ ФУНКЦИИ РАЗБИЕНИЯ НА МНОЖЕСТВА ДЛЯ РАСПАРАЛЛЕЛИВАНИЯ р-МЕТОДА ПОЛЛАРДА1 Е.Г. Качко, К.А. Погребняк

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

Ключевые слова: дискретный логарифм, метод Полларда, эллиптическая кривая.

Введение

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

Особый интерес представляют методы решения задачи дискретного логарифмирования. Для вычисления дискретного логарифма в группе точек эллиптической кривой наиболее эффективным считается р-метод Полларда, а для решения задачи логарифмирования в мультипликативной группе поля Галуа - метод решета числового поля [1]. Тем не менее, ввиду простоты и универсальности метода Полларда, его часто используют и в мультипликативной группе поля Галуа при небольшой характеристике поля.

Фактически, р-метод Полларда состоит из алгоритма построения псевдослучайной последовательности и алгоритма обнаружения коллизии.

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

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

Отметим, что р-метод Полларда решения задачи дискретного логарифмирования не зависит от структуры группы, поэтому, в дальнейшем будет выбрана аддитивная форма записи и описано изложение метода для группы точек эллиптической кривой, которое тривиальным образом переносится на случай мультипликативной группы поля Галуа.

1 Статья рекомендована к публикации программным комитетом международной научной конференции «Параллельные вычислительные технологии 2013»

1. Метод Полларда

Пусть задана группа точек эллиптической кривой, которая будет обозначаться как Е^р), такая что #Е(¥р) = и ■ ев/, где и - простое число, ев/ - небольшое натуральное число. Не ограничивая общности, можно предположить, что р > 3 и р - простое число. Обозначим подгруппу Е^р) порядка и через С и зафиксируем порождающий элемент Р.

Для произвольного элемента группы Q = хР задача дискретного логарифмирования заключается в нахождении элемента 1 < х < и.

1.1. Последовательный р-метод Полларда

Группа С представляется в виде объединения С = £1 и Б2 ... и , где Б,, - произвольные множества приблизительно одинаковой мощности, N - натуральное число. Функция итерирования / : С ^ С определяется как

Так как группа С - конечна, то последовательность {К^?=о - периодическая. Таким образом, найдутся два наименьших натуральных числа Ь и I, таких что Кг = К+. Фактически, I - означает длину периода последовательности.

Идея алгоритма детектирования цикла Флойда заключается в нахождении индекса го, такого что К^ = К2^, го < Ь + I при произвольно фиксированном начальном значении Ко.

Отметим, что

Это означает, что на каждой итерации производится сравнение Щ и К2i для 0 < г < Ь + I пока не будет обнаружена коллизия К^ = К2^.

Учитывая, что

Пусть К^1 = смР + Ъ^, тогда коэффициенты определяются следующим образом

К = / №-1)

К2г = / (/ №-1))

(1)

Кio ai0 Р + К Q

К2io = а2^ Р + Ъ2io Q

можно вычислить

a2i0

х = 7—ТТ~

Ъio Ъ2io

Отметим, что І0 зависит от начального значения R0 и определяет вычислительную сложность метода Полларда.

Заметим, что принадлежность Ri = (xi,yi) к подмножеству Sj, 1 < j < N на практике определяется либо младшими, либо старшими разрядами Ri.

Например:

j = v(Ri) = xi mod N + 1, где v : G ^ {1,... N} - функция разбиения группы на множества.

1.2. Параллельный р-метод Полларда с использованием детерминированной функции разбиения на множества

В работе [3] предложен параллельный p-метод Полларда для систем с общей памятью. Идея такого метода заключается в распараллеливании отдельно функции итерирования и алгоритма Флойда детектирования цикла.

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

Функция итерирования

Предвьнисленный блок элементов

/-------*--------N

Поток 1

l l l

Поток 2 2l 2l 2l 2l

Ґ ~\ Функция детектирования цикла

(N3 И l ^2l

' I4 Е l ^2l

' ^ и l ^-2l

S < о tr l ^2l

V J

Параллельный алгоритм Полларда с предвычисленным блоком

Функция итерирования распараллеливается на этапе вычисления последовательностей {Яг}т=0 и {^2г}т=о- Это достигается организацией вычислений последовательностей вида

{Ягш+] }і=0 и {Я2(і-т+і) }г=0

где ад - это размер блока вычислений, 0 < ] <м, I = 1"^] •

Результатом выполнения функции итерирования точек являются два множества точек {Яг}і=о и {Я2г}*=0, сравнение которых осуществляется по блокам, то есть

ад

Яг = Й2г, 1 < І < — ад

Яг = Й2г, ■— < І < М

Следует отметить, что вычисление точки Я2г, согласно формуле (1), требует последо-вального вычисления двух образов функции /. Так как функция является итеративной и определяется функцией разбиения группы на множества, то в общем случае нельзя свести

ее к явному представлению в виде композиционной функции. Это означает, что вычисление Яг в одном потоке является в два раза медленнее, чем вычисление Я2г в другом.

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

Определим детерминированную функцию £ : О ^ {1,.. .Ж} разбиения на множества

как

] = £(Яг) = г шоё N + 1. (2)

Такая функция разбиения абелевой группы на множества позволяет сделать предсказание траектории перехода и построить композиционную функцию.

Предложение 1. Пусть задана детерминированная функция разбиения группы на множества £(Яг) = г шоё N + 1, тогда вычисление Я2г может быть представлено как

Я2г — д(5г- 1^

где д : О ^ ° 5г-1 = Я2(г-1).

Доказательство. Определим функцию итерирования д следующим образом:

Г2(д + 5), 5 е 51

5г+1 = д(5г) = Ч + Р + ^, 5 € 52

[ 25г + Р> 5г е 53

По определению Я2г = / (/ (Яг-1)). Так как функция разбиения группы на множества представлена уравнением (2), то

{ 2(Я2(г-1) + ^

Я2г = Ч Я2(г-1) + Р + ^

[2Я2(г-1) + Р>

Следовательно, Я2г = = д(5г-1).

Таким образом, вычисление двух итераций функции / может быть сведено к вычислению одного образа функции д с использованием детерминированной функции разбиения группы на множества. □

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

76 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

1.3. Обобщение метода Полларда с детерминированной функцией

разбиения на множества на произвольную функцию итерирования

Рассмотрим известные модификации [1] функции итерирования для последовательного алгоритма Полларда, а именно, обобщенную функцию итерирования Полларда, функцию итерирования Теске и смешанную функцию итерирования Теске.

Обобщенная функция итерирования Полларда представляется в виде:

где , ^2 = і2^, іі,і2 - случайным образом выбранные числа, такие что 0 < іі,і2 <

п.

Предположим, что предварительно вычислено г значений ^ + £2^, І = 1..г.

Определим функцию V : О ^ {1..г}, тогда функция итерирования Теске может быть описана следующим образом:

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

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

2. Результаты моделирования p-метода Полларда с использованием детерминированной функции разбиения на множества

Для реализации описанных выше алгоритмов использовались: процессор Intel (R) Core (TM)2 Duo CPU E6850 3.00GHz, ОЗУ - 2Gb , ОС - Windows 7. Ограничение случаем для двуядерных процессоров вызвано тем, что итерируются параллельно не более двух последовательностей.

В таблице приведено время выполнения в секундах (£t) для последовательного и параллельного методов Полларда для систем с общей памятью. Временная оценка проводится в зависимости от длины блока согласно алгоритму на рисунке.

Отметим, что детерминированная функция разбиения группы на множества позволила при программной реализации использовать две независимых функции итерирования для вычисления R и R2j, использовать предвычисления в функции итерирования g для значения P + Q, а также отказаться от условных операторов при определении принадлежности

Ri+l = fpc(Ri)

Wl + Ri, Ri є Si

2Ri, Ri є S2

W2 + Ri, Ri є S3

Ri+l = fTA(Ri) = Ri ■ Wv(R.),v(Ri) є 1..r

Смешанная функция итерирования Теске записывается как:

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

v(Ri) є 1..r v(Ri) є 1..r

Таблица

Временные показатели методов Полларда

№ п/п Методы Полларда (с)

21 бит 27 бит

1 Классический метод 12.4141 1069.49

2 Параллельный метод ("№=1) 9.6856 890.812

3 Параллельный метод (№=4) 8.70438 765.313

4 Параллельный метод (№=8) 8.45161 786.541

5 Параллельный метод (№=128) 8.21501 810.267

6 Параллельный метод (№=512) 8.17755 726.259

7 Параллельный метод (№=1024) 8.1422 706.71

8 Параллельный метод (№=2048) 8.1446 702

9 Параллельный метод (№=4096) 8.21867 706.509

точки Яг множеству 5г, что позволило минимизировать потери, связанные с неправильным предсказанием переходов и в полной мере использовать параллельные вычисления.

Заключение

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

Следует отметить, что сравнение производилось для псевдослучайной функции итерирования и детерминированной для нескольких начальных значений. Такое сравнение не позволяет полноценно сделать вывод о степени ухудшения или улучшения статистических характеристик метода Полларда.

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

Отметим также, что анализировался только один алгоритм обнаружения цикла, а именно алгоритм Флойда [1]. Необходимо также проанализировать альтернативные алгоритмы, например, алгоритм Брента [1]. Структура алгоритма Брента смогла бы позволить построить конвейер вычислений, на котором при вычислении следующего блока точек ЭК на одном ядре, происходит поиск коллизии на другом.

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

Литература

1. Bai, S. On the efficiency of Pollard’s rho method for discrete logarithms / S. Bai, R. P. Brent // Fourteenth Computing: The Australasian Theory Symposium (CATS 2008), January 22-25, 2008, Wollongong, NSW, Australia, Proceedings. CRPIT, 77. Harland J. and Manyem P., Eds. ACS. P. 125-131.

2. Качко, Е.Г. Параллельный метод Полларда решения задачи дискретного логарифмирования в группе точек эллиптической кривой / Е.Г. Качко, К.А. Погребняк // Параллельные вычислительные технологии (ПАВТ-2012): труды международной научной конференции (Новосибирск, 26-30 марта, 2012 г.). - Челябинск: Издательский центр ЮУрГУ, 2012. - С. 723.

3. Горбенко, И.Д. Методы распараллеливания алгоритма Полларда решения задачи дискретного логарифмирования для систем с общей памятью / И.Д. Горбенко, Е.Г. Качко, К.А. Погребняк // Высокопродуктивные вычисления (HPC-UA’2012): труды международной научной конференции (Киев, 8-10 октября, 2012 г.). - Киев: НАНУ, 2012. -С. 152-157.

4. Горбенко, И.Д. Параллельный метод Полларда решения задачи дискретного логарифмирования в мультипликативной группе поля Галуа / И.Д. Горбенко, Е.Г. Качко, К.А. Погребняк // Современные проблемы информационной безопасности на транспорте (СПИБТ-2012): материалы всеукраинской научно-технической конференции с международным участием (Николаев, 29-30 ноября, 2012 г.). - Николаев: НУК, 2012. - С. 9-11.

Елена Григорьевна Качко, кандидат технических наук, профессор, кафедра «Программная инженерия», Харьковский национальный университет радиоэлектроники (г. Харьков, Украина), ekachko@gmail.com.

Константин Анатольевич Погребняк, кандидат технических наук, кафедра «Безопасность информационных технологий», Харьковский национальный университет радиоэлектроники (г. Харьков, Украина), iitkostya@gmail.com.

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