УДК 512.542
ОБ АЛЬТЕРНАТИВНЫХ СПОСОБАХ ЛОГАРИФМИРОВАНИЯ В КОНЕЧНЫХ ГРУППАХ
Д.Е. Островский
МГТУ им. Н.Э. Баумана, Москва, Российская Федерация e-mail: [email protected]; [email protected]
Задача взятия дискретного логарифма сегодня известна, как одна из наиболее вычислительно трудоемких. Не представлено ни одного алгоритма, способного решать ее за полиномиальное время. Это одно из немногих вычислительно-асимметричных преобразований, используемых в современной криптографии. Выполнена попытка упростить решение задачи с целью оценить обоснованность применения дискретного логарифма в асимметричных протоколах. Разработан табличный алгоритм вычисления дискретного логарифма в произвольной циклической группе порядка n, имеющий сложность y/n элементарных операций. Математическое ожидание трудоемкости алгоритма составляет sfn/2 элементарных операций. Поэтому некоторые показатели вычисляются быстрее остальных, причем они не обязательно по значению большие или маленькие, и анализ таких "небезопасных" показателей весьма затруднителен. На практике алгоритм может оказаться эффективнее алгоритма согласования. Для группы Zp — умножения чисел по простому модулю путем синтеза разработанного алгоритма с техникой факторных баз, применяемой в алгоритме Адлемана, получен алгоритм, имеющий субэкспоненциальную сложность Ln[ 1/2, \/3]. В настоящее время известны более эффективные алгоритмы, тем не менее, показатель математического ожидания трудоемкости может сыграть существенную роль на практике.
Ключевые слова: дискретный логарифм, циклические группы, группа Zp, отображение Ньютона, алгоритм Адлемана.
ON ALTERNATIVE WAYS OF TAKING THE LOGARITHM IN FINITE GROUPS
D.E. Ostrovskii
Bauman Moscow State Technical University, Moscow, Russian Federation e-mail: [email protected]; [email protected]
A task of taking the discrete logarithm is known today as one of most computationally complicated. There is no algorithm that can solve it in a polynomial time. This is one of the few computationally asymmetric transformations used in modern cryptography. An attempt is made here to simplify the problem solving, in order to assess the reasonableness of using the discrete logarithm in asymmetric protocols. A tabular algorithm for computing the discrete logarithm in an arbitrary cyclic group of the order n is designed that has a complexity of y/n elementary operations. An expectation of the algorithm complexity is yW2 elementary operations. Therefore some indicators are computed faster than others, they are not necessarily large or small in magnitude at that, and analysis of these "unsafe" indicators is rather hard. In practice, this algorithm may be more efficient than the matching algorithm. For the Zp group (multiplication of numbers modulo a prime), by synthesizing the developed algorithm with the technique of factor bases used in the Adleman's algorithm, an algorithm is obtained having a subexponential complexity of Ln[1/2, V3]. At the present time, more efficient algorithms are known; nevertheless the indicator of complexity expectation may play a significant role in the practice.
Keywords: discrete logarithm, cyclic groups, Zp group, Newton's map, Adleman's algorithm.
Задача вычисления дискретного логарифма в циклических группах по сей день не имеет эффективного решения. На вычислительной сложности этого преобразования основано подавляющее большинство алгоритмов асимметричной криптографии. Задача состоит в следующем. Пусть задана циклическая группа (О, •) с образующим (примитивным) элементом д, известен порядок группы огё(О) = п. Для некоторого к € О: к = ду, у € N требуется найти показатель степени у, в которую возведен образующий элемент.
В настоящее время самым эффективным алгоритмом решения такой задачи для случая произвольной циклической группы является алгоритм Сильвера-Полига-Хэллмана [1] (теорема В.И. Нечаева, 1965 г.). Алгоритм сводится к переходу для логарифмирования в подгруппы группы О простого порядка и достаточно эффективен в том случае, если порядок группы п не имеет больших простых чисел в разложении на множители.
Логарифмирование в подгруппах проводится с помощью алгоритма Гель-фонда-Шенкса, более известного как алгоритм согласования [2]. Его сложность составляет О (^р + р), где р — простой порядок подгруппы, в которой осуществляется логарифмирование.
Таким образом, в случае, если в разложении порядка группы на множители есть простое число, сравнимое с п, например п = 2р, задача вычисления дискретного логарифма потребует выполнения ~ ^р операций. При этом в памяти будут храниться 2^р элементов группы О. В современной криптографии требования к значениям наименьших простых делителей р составляют 250 бит, поэтому для взлома таких криптосистем потребуется ~ V2250 операций. Это число космических масштабов, собственно на этом и основана криптографическая стойкость асимметричных систем.
В настоящей статье предлагается еще один способ вычисления дискретного логарифма в произвольных циклических группах. Этот алгоритм не привнесет каких-либо улучшений, оценка сложности логарифмирования произвольного элемента группы по-прежнему будет составлять ^р, тем не менее, на любом шаге алгоритма после проведения к операций умножения можно успешно находить к2/2 показателей.
Как и хорошо известный р-метод Полларда [3, 4], алгоритм использует технику многократного итерирования отображений, но в отличие от р-метода справедлив для любых циклических групп, так как не использует каких-либо специфических свойств группы О, кроме свойства цикличности относительно операции " • ".
Алгоритм использует отображение ¥: Ок ^ Ок, к € М, которое в некоторых источниках называется отображением Ньютона. Пусть вектор V € Ок и V [г] € О — г-я координата вектора V. Тогда вектор ш = ¥(V) получается следующим образом:
- [г] = V [г] • V [г + 1], 0 < г<к - 1; (1)
ш [к - 1] = V [0] • V [к - 1].
Описание алгоритма. Постановка задачи. Для Ь = ау, требуется найти у. Порядок группы огё(О) = п. Сначала переходим в подгруппу простого
порядка р, где р — делитель п:
й = П; д = а^; Н = р
Теперь переформулируем задачу логарифмирования для этой подгруппы — необходимо вычислить х = ^^ Н, д — образующий в подгруппе.
Вычисляем все степени двоек, такие, что 2г < р. Возводим образующий
элемент д во все эти степени:
1 2 4 2к 7 1
д д д ... д , к = ^ р.
Каждый из получившихся элементов умножаем на дх = Н:
so :
hg1
hg
2
hg
4
hg
2k
(2)
Показатели элементов последовательности (2) запишем в виде последовательности
to :
x + 2'
o
x + 21
x + 2
2
x + 2k (mod p). (3)
К последовательности (2), интерпретируя ее как вектор V в соотношениях (1), применим отображение Ньютона и получим последовательность в1 = ¥ (во). Затем для всех % < к вычислим в^ = ¥ (в^). В итоге получим к + 1 векторов, которые запишем в виде матрицы Б:
S =
( so \
51
52
/ s[0][0] s[0][1] s[1][0] s[1][1]
s[2][0] s[2][1]
s[0][k] \ s[1][k] s[2][k]
(4)
\вк) \ в[к][о] в[к][1] ... в[к][к] у
В результате между элементами матрицы установятся следующие соотношения:
в [%] Ц] = в [% - 1] [}] • в [% - 1][? + 1] , 1 < % < к, 0 < ] < к - 1
в [%] [к] = в [% - 1] [0] • в [% - 1] [к] , 1 < % < к.
Каждый элемент матрицы Б есть образующий д, возведенный в некоторую степень. Обозначим ее через £[%][?] и запишем матрицу показателей Т:
/ \
T =
/
2o
21
2k
\
to 20 x x t[0][0] t[0][1] . .. t[0][k]
tl 21 x x t[1][0] t[1][1] . .[ t[1][k]
\tk) V 2k x x t[k][0] t[k][1] . .[ t[k][k] )
(5)
Соотношения для элементов матрицы Т следующие: t [i] [j] = t [i - 1] [j] + t [i - 1] [j + 1] (mod p), 1 < i < k, 0 < j < k - 1 t [i] [k] = t [i - 1] [0] +1 [i - 1] [k], 1 < i < k.
В результате, каждый элемент матрицы Т будет иметь вид
t [i] [j] = 2ix + 2*) mod p,
где коэффициентом при x будет двойка в степени номера строки, а свободным членом — некоторая сумма степеней двоек, взятая по модулю р.
В случае совпадения некоторых двух элементов в матрице S, их показатели на соответствующих позициях в матрице Т также совпадут. Если это будут элементы из разных строк, то коэффициенты при x будут различными. Поэтому, приравняв эти элементы, мы получим уравнение вида
2гx + ai = 2Jx + a2 (mod p) (6)
с известными коэффициентами ai и a2. Если ai = a2, то уравнение (6) будет иметь единственное, отличное от нуля решение. Тем самым, удастся вычислить искомый показатель x.
Пример. В качестве примера рассмотрим циклическую группу по умножению по модулю простого числа p = 503. Вычислим дискретный логарифм числа 318 по основанию 5.
p - 1 = 502 = 2 • 251; a = 52 = 25; b = 3182 = 21;
Матрица S
Для верхнего 78, соответствующий показатель равен:
22x + (0 + 2)+ (2+ 4) mod 251.
Показатель для 1: 22x + (2 + 4) + (4 + 8) mod 251.
Для нижнего 78: 23x + (0 + 2) + (2 + 4) + (2 + 4) + (4 + 8) mod 251.
Приравнивая показатели, получаем уравнение
22x + 8 = 23x + 26 (mod 251),
4x = 233 (mod 251).
По алгоритму Евклида 4а + 251b = 1;
4-1 = 63 (mod 251); x = 121 (mod 251): x = ? (mod 2); т.к. 318251 = 5251 = 502, log502 502 = 1 ^ x = 1 (mod 2).
Поэтому ответ: 318 = х = 121.
Поскольку размер матрицы Б невелик, возникает вопрос, всегда ли найдутся совпадающие элементы. Очевидно, что нет. Вычислим верхнюю границу числа показателей х, для которых в матрице Б всегда найдутся совпадения. Для этого будем считать, что каждой паре элементов из матрицы Т соответствует уникальное уравнение, имеющее ненулевое решение, отличное от остальных (кроме пар, лежащих в одной строке). Общее число таких пар
N(М - 1) к(к + 1)/;_ ^
max =
-(k + 1) = N2
(7)
22
N = (к + 1)2 — число элементов в матрице Т. Таким образом, верхняя граница показателей, для которых всегда найдется совпадение, соответствует квадрату числа элементов в матрице, а число элементов в матрице — это число умножений в группе, которые требуются для ее вычисления.
Чтобы оценить, насколько близко лежит реальное число показателей к верхней границе, потребуется подсчитать число линейно зависимых уравнений, которые дают одинаковые решения. Но сначала приведем результаты экспериментов, в которых перебирались все пары и проводился подсчет уникальных решений. Эксперименты проводились для различных р (табл. 1).
Таблица 1
Эксперименты для двумерной матрицы
Простой модуль k = log 2 Р Число различных показателей Верхняя граница, (max) Разность, А
17 623 14 13 037 23 625 10 588
114 553 16 32 592 39 304 6 712
(217 - 1) 131 071 16 33 898 39 304 5 406
573 402 943 29 388 439 391 500 3 061
992 421 757 29 388 473 391 500 3 027
1 742 359 279 30 443 664 446 865 3 201
(231 - 1) 2 147 483 647 30 441 006 446 865 5 859
Разность А также была получена в ходе экспериментов, как число решений, которые совпадали с уже найденными, и полностью соответствует значениям из табл. 1 (А = max минус число найденных различных показателей). Это очень важный момент, поскольку могли получиться решения, равные нулю, которые не учитывались. Но оказалось, что их ни при каких значениях р нет. Поэтому А — число линейно зависимых уравнений.
Теперь выполним теоретическую оценку. Линейный оператор отображения Ньютона (1) имеет квадратную матрицу следующего вида:
F =
V
1 1
0 0
0 1
1
0
0 0
1 0
0
0 1
(8)
/
Таким образом, г-я строка матрицы Т выражается через первую строку ¿о следующим образом:
и = ¿о¥г, 1 < г < к,
матрица ¥ имеет размер (к + 1) х (к + 1); J-й элемент строки ^ получается умножением ¿о на 3-й столбец матрицы ¥\
Поскольку одно уравнение составляется на основе двух элементов матрицы Т, то два уравнения будут линейно зависимы в том и только в том случае, если существует нетривиальная, равная нулю линейная комбинация из четырех элементов матрицы Т. Как было отмечено ранее, Т[г][3] = ¿0¥г[3], где ¥г\з] — 3-й столбец матрицы ¥\ Поэтому линейная комбинация из четырех элементов матрицы Т сводится к линейной комбинации из четырех столбцов матриц . Рассмотрим эти матрицы.
/
F2 =
0 1
2
1
1 3 3
F3 =
13
F4 =
0
10 4 1 6 4 4 6
14
: 1
V0 :
1 0
1 2
3 \
3 1
0
2 1
0 0 1
\
10 31
64 46 14 01
:0
10
41
. Fk.
Столбцы матриц получены следующим образом. Обозначим
«0 51 в2 ЙЭ ... вк
0
столбцы матрицы ^. Тогда столбцы матриц . соответственно выра-
жаются следующим образом:
(во + Я1) (в1 + 82) (в2 + вз) («3 + ^4) ... (во + вк) ,
(во + 281 + 82) (в1 + 2в2 + вз) (в2 + 2вз + в4) ... (в1 + 2во + 8к) , (8о + 381 + 382 + 83) (в1 + 3в2 + 3вз + в4) ... (в2 + 3во + 3в1 + вк) , (во + 4в1 + 6в2 + 4вз + в4) ... (вз + 4во + 6в1 + 4в2 + вк)
и т.д.
Отметим, что возможны две типовые ситуации линейной зависимости между четырьмя столбцами с участием следующих элементов (соответствующие элементы выделены жирным):
во; в1; в2; (во + 2в1 + в2)
и
во; вз; (в1 + в2); (во + 3 (в2 + вз) + вз).
Каждая типовая ситуация встречается (к + 1) х (к + 1) раз при последовательном перемещении по строкам и столбцам ввиду симметричности применяемых операций. Таким образом, общее число линейно-зависимых столбцов, а следовательно, и число линейно зависимых уравнений составляет
Атеор —
2 (к + 1)2.
Видно, что экспериментальное А всегда больше теоретического (см. табл. 1). Это связано с тем, что при выводе теоретического числа не учитывались приведения по модулю. Они как раз и увеличивают число линейно-зависимых уравнений.
Построение последовательностей большего размера, многомерные матрицы S и T. Чтобы увеличить общее число элементов N, распространим преобразование (1) на случай трехмерных массивов.
Сначала строится квадратная матрица Б [0]: (к + 1) х (к + 1) описанным способом построения матриц, с помощью отображения Ньютона, затем достраиваются к слоев квадратных матриц следующим образом:
Б МЫН— Б [г - 1]ЫМ • Б [г - 1] [з + 1] М , 1 < г < к, 0 < 3 < к - 1; 0 < ад < к; Б [г] [к] [ад] = Б [г - 1] [0] [ад] • Б [г - 1] [к] [ад] , 1 < г < к, 0 < w < к.
Оценим, как и в случае квадратной матрицы, верхнюю границу числа различных решений, которые можно получить, решая уравнения, составленные из всевозможных пар элементов с разными коэффициентами при х:
тах = ^^ - ^^(к + 1)2 = ^ - кз|~ (к6 - к4) - N 2.
22
Верхняя граница снова определяется как N2, N — число элементов в массиве. Результаты экспериментов с трехмерными массивами представлены в табл. 2.
Таблица 2
Эксперимент с трехмерными массивами
Простой модуль Число различных показателей Верхняя граница (max) Разность, А
115 351 339 92 916 501 193 444 524 100 528 023
573 402 943 264 890 324 364 095 000 99 204 676
724 321 489 280 872 622 364 095 000 83 222 378
992 421 757 298 719 546 364 095 000 65 375 454
1 324 324 513 369 115 716 443 290 080 74 174 364
1 548 023 513 377 469 238 443 290 080 65 820 842
1 742 359 279 383 145 258 443 290 080 60 144 822
Как следует из табл. 2 число линейно зависимых уравнений стало заметно больше, но по-прежнему число линейно независимых соответствует по порядку значению тах.
Преобразование (1) можно распространить на случай массивов произвольной мерности естественным образом:
Т [г][3] ... М= Т [г - 1][3] ... [ад] + Т [г - 1] [3 + 1] ... [ад] (тоё р);
1 < г < к, 0 < 3 < к - 1; 0 < ад < к;
Т [г] [к]... [ад] = Т [г - 1] [0]... [ад] + Т [г - 1] [к]... [ад] (тоё р);
1 < г < к, 0 < ад < к.
Обобщенный алгоритм логарифмирования в группе ^р на основе отображения Ньютона и алгоритма Адлемана. Поскольку элементами группы являются числа, воспользуемся возможностью представления числа в виде произведения простых множителей. Аналогичную технику факторизации использует алгоритм Адлемана [3, 5]. Описанный далее подход немного видоизменяет этапы этого алгоритма за счет применения приведенной техники сравнения пар в матрице. Неизменным остается использование факторной базы, способ построения которой несколько другой. Проведем поэтапное описание алгоритма. Вопрос о таких параметрах алгоритма, как размер факторной базы, мерность матрицы Б, рассмотрим несколько позднее, на этапе теоретических и экспериментальных оценок.
Требуется вычислить Ь в мультипликативной группе Обозначим порядок группы через п = р - 1.
1 этап. Составление факторной базы ¥. Для простых чисел р», начиная с 2, определяем порядок огё (р») в группе Если огё (р») = п, то добавляем это простое число в факторную базу: ¥ = ¥ и р». Иначе, переходим к следующему простому числу.
2 этап. Переход в подгруппу группы простого порядка г, в которой будем вычислять логарифм
п п п п
и = Ьп, д = аг, 01 = р[ , #2 = р2 ,..., д^| = р{рр р» € исходим из того, что р» = аХг, Ь = аХ; ж, ж» — неизвестные, г = 1 ^ |.
3 этап. Сначала представим p, в виде , выразив y,k через неизвестные x,,
p, = аХг = pkik = (axk)yik ^ yik = x^-1 modn. (9)
Поскольку Vk ord (pk) = n, то НОД (xk, n) = 1, поэтому существу-
ет x- 1.
Аналогичным образом представим b в виде pkk:
b = ax = pkk = (aXk)zk ^ zk = xx-1 modn. (10)
Теперь переходим к третьему этапу алгоритма. Подразумевая представление b = pkk, после перехода в подгруппу получаем аргумент логарифма h, а из pk — основание логарифма gk. Затем, подавая значения h и gk на вход соотношений (2), вычисляем многомерную матрицу Sk. Для всех значений k = 1... |F | вычисляются матрицы Sk. Также вычисляется матрица S для h и g.
4 этап. Для всех вычисленных матриц проводятся последовательные деления чисел из матриц на числа из факторной базы до тех пор, пока они не перестанут делиться.
5 этап. На основе совпадающих элементов в матрицах после деления составляются уравнения следующим образом. Пусть совпали два числа из матриц Sm и Sn. Это может быть одна и та же матрица. Обозначим число из матрицы Sm через v, а из матрицы Sn через w. Пусть в ходе делений на числа из факторной базы число v делилось на числа из F1 С F c набором степеней D1 С N|F|, а число w — на числа из F2 С F с набором степеней D2 С N|f|. Теперь представим эти числа через определенные переменные:
v = pmg1, degl = t [i] [j] [q] - ^ (ykm • D№) mod r,
k: pkeFi
где t [i] [j] [q] — элемент матрицы T, i, j, q— позиция v в матрице Sm, D1k — степень pk в разложении (t [i] [j] [q] = c1zm + c2 (mod r), где коэффициенты c1 и c2 определены, исходя из позиции i, j, q, как описано выше). Учитывая (10) выразим zm:
t [i] [j] [q] = c1xxm1 + c2 (mod r).
В итоге получаем
v = pmeg1, degl = dxxm1 + c2 — ^ ( ykmD1k) mod r.
k: PkSFi
Аналогичным образом для w имеем
w = pneg2, deg2 = csxx-1 + c4 — ^ ( yknD2k) mod r.
k: Pk€i2
Далее, зная, что pm = aXm, pn = aXn, запишем
v = axm-deg1, w = ax^deg2.
Учитывая, что v = w, приравниваем показатели и получаем следующее уравнение mod r:
Xm ( C1 XXm1 + C2 - ^ ( VkmDlk)
k: PkeFx
= Хп I СзЖЖп 1 + С4 - ^ ( Укп^2к)
\ к: рк
Подставив вместо укт и Укп соответствующие выражения, получаем:
CiXXm1 + С2 - (XkXm1Dlk)
k: PkeFx
= Xn ( C3xxn + C4 - (xkX- D2k) I (mod r)
..... „.-.
k: Pk€F2
Раскроем скобки:
С1Х + С2Хт - ^ (Хк^1к) =
к: PkG.Fi ^^
= СзХ + С4Хп - (Хк^2к) (тоё г). (11)
к: Pk€F2
Получили линейное уравнение от | + 1 неизвестного.
Аналогичным образом составляются еще | линейных уравнений вида (11). Таким образом, для решения логарифма необходима (|¥| + 1) пара совпадающих чисел среди матриц Б, Б1,..., Б^|.
6 этап. Решение системы из (|¥| + 1) линейных уравнений с (|¥| + 1) неизвестным и нахождение Х (тоё г).
7 этап. В остальных подгруппах группы 2р определяют Х (тоё г»), повторяя этапы 2... 6 для нахождения искомого Х (тоё п) (см. алгоритм Полига-Хэллмана [1]).
Сложность обобщенного алгоритма. Для оценки сложности алгоритма применим технику, которая использовалась для оценки сложности алгоритма Диксона для факторизации чисел [6]. В основе этой техники лежит теорема де Брейна-Эрдеша [7], которая утверждает следующее. Обозначим через Ф (п, М) — число натуральных чисел а < п, в разложении которых присутствуют только числа из факторной базы ¥ = {р» : р» < М}. Теорема утверждает, что
Т / п
Ф (п, М) = пи и, и = -——. у ' 1п М
Как и в описании алгоритма, п — это порядок мультипликативной группы 2р, наибольшее число в группе. В нашем случае, в отличие от алгоритма Диксона, требуется оценить не вероятность попадания в гладкое число (т.е. число, разложимое по факторной базе), а вероятность нахождения пары чисел, которые имеют общий делитель, взаимно простой со всеми числами из факторной базы. Тогда при попадании в такую пару после четвертого этапа алгоритма в матрицах найдется пара совпадающих чисел и составится уравнение. Рас-
X
m
считаем эту вероятность P и сравним ее с вероятностью P' попадания в гладкое число. Пусть W — множество чисел, меньших n, взаимно простых с числами из факторной базы F. W = {1 < a<n : Vp, € F, (a,p,) = 1}. Тогда
p = 2 ^ Ф2 (П,M) =
n2 deW 2
— 1 V (n1 _ V^ 1 ,1
= n2 \d) = 2- - ^^. (12)
dew , ,„ n \ -¡-т# dew / ., „ , ^ 4
ln n \ ln M
ln M
d
v
ln d \ ln M
ln M
Формула (12) получена следующим образом. Вероятность нахождения искомой пары чисел определяется как число пар, имеющих общий делитель из множества , отнесенное к общему числу всевозможных пар (и2/2). Вероятность попадания в гладкое число оценивается как
р=)=—ц^. (13)
7 1п и\ 1п М
ln M,
В сумме (12) присутствует слагаемое с d = 1, равное (P')2. Тем самым получаем нижнюю оценку для P :
(P')2 < P.
Чтобы получить более точную оценку, можно воспользоваться очевидным неравенством
ln n ln n
ln n \ ln Ai / ln n\ ln M 1 r^d < = при 1 < d < n.
ln My Vln m) P'
Заменив в (12) знаменатель с учетом неравенства, получим
(p')2 + (p')2 Е d2) <p.
d€W, J
X 1
Как известно, ряд Дирихле сходится и дает в сумме число, мень-
k=i k
п2
шее единицы (а именно,--1). Поэтому наша выборочная сумма будет
6
заведомо меньше единицы. Можно в итоге записать
p> (p')2(1 + с), с<(у-^ .
Теперь оценим значение ограничения факторной базы M, необходимой, чтобы вычислить логарифм с помощью обобщенного алгоритма, при условии, что используются матрицы размера dim. Порядок подгруппы, в которой
осуществляется логарифмирование, обозначим через г. Поскольку количество простых чисел в факторной базе можно считать равным Н = |——, то общее число элементов во всех Н Шш-мерных матрицах будет равно
N = Н (1п г + 1)а1т = М (1п г + 1)а'т .
Число всевозможных пар элементов в матрицах равно N2/2. Для простоты считаем, что все элементы в матрицах различны, к случаю совпадения чисел и наличия линейных зависимостей мы вернемся позднее. Поскольку необходимо составить Н + 1 уравнение, необходимо столько же совпадений после четвертого этапа. Чтобы попасть в одну совпадающую пару, число всевозможных пар элементов должно быть ~ 1/Р. Чтобы попасть в Н + + 1 совпадающую пару, число всевозможных пар должно быть не меньше (Н + 1)/Р. Поэтому
N2 > h±1. JM)2 r ± D^m >_2M_.
2 > P . ^ Vln M) (ln r ±ij > In M (P')2 (1± C).
0 1п п
М (1п г)2^1т 21пмп . (14)
1пМ (1п Г) > (1 + С) \1пМ) . (14)
Оценим М в стандартных обозначениях субэкспоненциальной сложности:
М = ехр ^С' (1п п)9 (1п1п п)1-9) , 0 <я< 1, С' — константа. Тогда неравенство (14) запишется следующим образом:
ехр (С' (1пп)9 (1п1пп)1-9 + 2ё1ш • 1п1пг - 1п1пМ^ >
> ехр(2!пП ^ 1^1]^)) ' С' ^ ((1п п)9 (1п1п п)1-9 + 2ё1ш • 1п1п г—
— я 1п1п п^ > | -2 1п п-;— | (1п1п п —я 1п1п п); —>■
/ \С' (1пп)9 (1п 1пп)1-^ ;
^С' (1п п)9 (1п 1п п)1-9 + 2ё1ш • 1п 1п г — я 1п 1п п^ >
> ( 2 (1С"— а) (1п п)1-9 (1п1п п)9) . (15)
Очевидно, что минимальное а, при котором выполняется неравенство (15), это я = 1/2.
Самая трудоемкая часть алгоритма — это этап 4, поскольку каждый элемент из матриц будет последовательно делиться на числа из факторной базы. Поэтому итоговая сложность алгоритма оценивается как
М \2„
S « О(hN) = —j (InГ + 1)
= О (exp (2 (ln M - ln ln M) ± dim • ln ln r)) =
= О (ехр ^2 (с' (1п и)9 (1п 1п и)1 9 — д 1п 1п и^ + ёш 1п 1п г^ =
= О (ехр ^2С' (1п и)9 (1п 1п и)1-9 + Шш 1п 1п г — 2д 1п 1п и) ) . (16)
Теперь главный вопрос заключается в том, что нельзя ли за счет ё1ш подобрать как можно меньший коэффициент С' так, чтобы выполнялось неравенство (15). Пусть ё1ш = С''(1п и)9. Тогда неравенство (15) запишется как
^С' + 2С'' ^ Г1-^ (1п и)9 (1п 1п и)1-9 — д 1п1п и) >
> (^ <'пи)1"'Оп.пи)») ;(с' + 2С''^) > ^.
Второе условие на коэффициенты вытекает из минимальности коэффициента при (1п и)9 (1п1п и)1-9 в выражении (16):
S = О^exp ^ ^2C' + C
„ ln ln r
(lnln n)1-q
x (ln n)q (ln ln n)1-q — 2g ln ln n
Таким образом, получаем соотношения на коэффициенты
' 'c'+2C- lnln r ^ >2(1—g)-
(lnln n)1-V C' '
min (W + C'' lnln Г1 ) = C. "V (lnln n) V
При q = 1/2 минимум C = л/3 ~ 1,73 достигается при C' = 1/\/3 и соот-
_'' 1 (lnln n)1-q
ветственно C'' = -. Таким образом, сложность оптимального
3 ln ln r
варианта алгоритма
S = О (exp(V3Vlnn • lnlnn — lnlnn)) = Ln 1/2, V3 Соответствующие параметры алгоритма следующие:
ln n ln ln n
M = exp
1 1п и • 1п1п и 3 1п 1п г '
где М — ограничение факторной базы, ё1ш — размер матриц в алгоритме.
При этом объем необходимой памяти при наименьшей вычислительной сложности составляет
O(N) = o(exp( (C- + C'X
x (In n)q (In In n)1-q — q In In n^ ^ =
= O ^exp ^= Vln n • In In n — 0,5 In In n^ = Ln [1/2,1,15] .
В основе приведенного алгоритма лежит сравнение двух элементов из набора массивов после их приведения по факторной базе. Возникает закономерный вопрос: дает ли выигрыш в сложности такое разбиение на пары? Ответ на этот вопрос можно получить, оценив сложность другого алгоритма, в котором после этапа приведения по факторной базе (этап 4) проводится поиск элементов, равных единице, т.е. разложившихся по факторной базе. Каждый такой элемент также даст одно уравнение. Чтобы оценить сложность, запишем аналогичное (14) неравенство, но уже для данного случая:
ln n
ЛГ - + 1 i,dim / ln n\ ln M
N>-P- ^(ln r+1)dim >(ьм) .
Проведя преобразования, аналогичные описанным ранее, получаем сложность алгоритма без разбиения на пары Ln [1/2, 2]. Следовательно, сравнение двух элементов на совпадение после приведения по факторной базе дает некоторый выигрыш, который особенно заметен на небольших n.
При оценке сложности считали, что в матрицах после этапа их построения (этап 3) не окажется совпадающих элементов. Но, вообще говоря, совпадения возможны. В случае совпадения каких-либо двух элементов по-прежнему можно составить уравнение вида (11), из которого будут исключены суммы по делителям из факторной базы. Следует иметь в виду, что некоторые из полученных уравнений могут оказаться линейно зависимыми. Подсчитать число линейно зависимых уравнений для многомерных матриц пока не представляется возможным из-за сложности теоретических выкладок, но вполне допустима экспериментальная оценка, аналогичная проведенной для трехмерных матриц. Следовательно, в алгоритме присутствует некоторая доля эвристики, обусловленная характеристиками применяемого отображения для генерации последовательности чисел. Был предложен лишь один из способов на основе отображения Ньютона над многомерными матрицами и показано, что для маломерных матриц число линейно зависимых уравнений незначительно. На момент написания статьи эксперименты с матрицами размера больше 3 не проводились.
Заключение. В настоящее время известны алгоритмы дискретного логарифмирования для числовых полей GF (p), которые имеют сложность Ln [1/3, const], n = p — 1, это алгоритмы на основе решета числового поля [8, 9]. Все они очень эффективны для больших n, асимптотически стремящихся к бесконечности. Для меньших n (n < 10100) существуют более эффективные алгоритмы, например алгоритм Копперсмита-Одлизко-Шреппеля (COS) [10], который имеет сложность Ln [1/2,1].
Приведенный алгоритм хуже по значению константы Ln [1/2, \/3], но, тем не менее, субэкспоненциальный. Также недостатком является требование к памяти Ln [1/2,1,15]. В то же время он прост, не требует каких-либо специальных стратегий и дополнительных алгоритмов, основан на элементарных операциях.
Возможно, описанные подходы найдут применение при логарифмировании в некоторых других группах, например, группе точек эллиптической кривой. Выделение общих "множителей" в паре точек вполне может иметь место. А потому может оказаться полезной техника построения последовательностей на отображении Ньютона.
Автор благодарит А.Н. Лебедева и Г.А. Лебедева за содействие в разработке алгоритмов и написании настоящей работы, полезные замечания и обсуждения.
ЛИТЕРАТУРА
1. Pohlig S.C., Hellman M.E. An Improved Algorithm for Computing Logarithms Over GF(p) and its Cryptographic Significance // IEEE, Transactions on Information Theory. 1978. Vol. 1. No. 24. P. 106-110.
2. Shanks D. The infrastructure of a real quadratic field and its applications // Proceedings of the Number Theory Conference. University of Colorado, Boulder. 1972. P. 217-224.
3. Глухов М.М., КругловИ.А., Пичкур А.Б., Черемушкин А.В. Введение в теоретико-числовые методы криптографии. СПб.: Лань, 2011. 400 с.
4. Pollard J.M. Monte Carlo methods for index computation (mod p) // Math. Comp. 1978. No. 32. P. 918-924.
5. Adleman L.M. A subexponentional algorithm for the discrete logarithm problem with applications to cryptography. Proceedings of the IEEE 20th Annual Symposium on Foundations of Computer Science. 1979. P. 55-60.
6. Dixon J.D. Asymptotically fast factorization of integers // Math. Comp. 36 (153). 1981. P. 255-260.
7. DeBruijn N.G., ErdosP. A combinatioral [sic] problem // Indagationes Mathematica. Vol. 10. 1948. P. 421-423.
8. Василенко О.Н.Теоретико-числовые алгоритмы в криптографии. М.: МЦНМО. 2003. 328 с.
9. Матюхин Д.В. Об асимптотической сложности дискретного логарифмирования в поле GF(p) // Дискретная математика. 2003. Т. 15. Вып. 1. С. 28-49.
10. Coppersmith D., Odlyzko A.M., Schroeppel R. Discrete logarithms in GF(p). Algorithmica. 1986. Vol. 1. P. 1-15.
REFERENCES
[1] Pohlig S.C., Hellman M.E. An Improved Algorithm for Computing Logarithms Over GF(p) and its Cryptographic Significance. IEEE, Transactions on Information Theory, 1978, vol. 1, no. 24, pp. 106-110.
[2] Shanks D. The infrastructure of a real quadratic field and its applications. Proc. Number Theory Conference. Un. of Colorado, Boulder, 1972. pp. 217-224.
[3] Glukhov M.M., Kruglov I.A., Pichkur A.B., Cheremushkin A.V. Vvedenie v teoretiko-chislovye metody kriptografii [Introduction to number-theoretic methods of cryptography]. SPb., Lan' Publ., 2011. 400 p.
[4] Pollard J.M. Monte Carlo methods for index computation (mod p). Math. Comp., 1978, vol. 32, no. 143, pp. 918-924.
[5] Adleman L.M. A subexponentional algorithm for the discrete logarithm problem with applications to cryptography. Proc. IEEE 20th Annual Symp. on Foundations of Computer Science. 1979. pp. 55-60.
[6] Dixon J.D. Asymptotically fast factorization of integers. Math. Comp., 1981, vol. 36, no. 153, pp. 255-260.
[7] De Bruijn N.G., Erdos P. A combinatioral [sic] problem. Indagationes Mathematica, 1948, vol. 10, pp. 421-423.
[8] Vasilenko O.N. Teoretiko-chislovye algoritmy v kriptografii [Number-theoretic algorithms in cryptography]. Moscow, MTsNMO Publ., 2003. 328 p.
[9] Matyukhin D.V. On the asymptotic complexity of discrete taking the logarithm in the field GF(p) Diskretnaya matematika [Discrete Mathematics and Applications], 2003, vol. 15, iss. 1, pp. 28-49 (in Russ.).
[10] Coppersmith D., Odlyzko A.M., Schroeppel R. Discrete logarithms in GF(p). Algorithmica, 1986, vol. 1, pp. 1-15.
Статья поступила в редакцию 27.12.2013
Дмитрий Евгеньевич Островский — студент 6-го курса кафедры "Информационная
безопасность" МГТУ им. Н.Э. Баумана.
МГТУ им. Н.Э. Баумана, Российская Федерация, 105005, Москва, ул. 2-я Бауманская,
д. 5.
D.E. Ostrovskii — 6-year student of "Information Security" department of the Bauman
Moscow State Technical University.
Bauman Moscow State Technical University, Vtoraya Baumanskaya ul. 5, Moscow,
105005 Russian Federation.