СВЕДЕНИЕ ЗАДАЧ ФАКТОРИЗАЦИИ, ДИСКРЕТНОГО ЛОГАРИФМИРОВАНИЯ И ЛОГАРИФМИРОВАНИЯ НА ЭЛЛИПТИЧЕСКОЙ КРИВОЙ К РЕШЕНИЮ АССОЦИИРОВАННЫХ ЗАДАЧ «ВЫПОЛНИМОСТЬ»
Дулькейт Владимир Игоревич (аспирант, e-mail: vidulkeyt@mail. ru),
Омский государственный университет им. Ф.М. Достоевского
Аннотация
В работе предлагаются алгоритмы консервативного сведения задач факторизации, дискретного логарифмирования и логарифмирования на эллиптической кривой к задаче «ВЫПОЛНИМОСТЬ», проводится анализ работы современных алгоритмов решения задачи «ВЫПОЛНИМОСТЬ» (SAT - решателей) на полученных КНФ. Исследуется стойкость рассматриваемых задач к восстановлению полного ключа по его известным фрагментам.
Ключевые слова: КНФ, факторизация, дискретное логарифмирование, логарифмирование на эллиптической кривой, «ВЫПОЛНИМОСТЬ».
Введение
Одним из ключевых направлений криптографического анализа является проверка криптографической стойкости алгоритмов асимметричного шифрования, поскольку на их базе работает подавляющее большинство криптографических протоколов обмена ключами, цифровой подписи и т.д. В настоящее время для реализации данной проверки применяются в основном методы решета в поле чисел общего вида и различные модификации р- и ^-методов Полларда, базирующиеся на псевдослучайном блуждании по группе. Последние достижения в этой области свидетельствуют о стойкости известных алгоритмов, поскольку для решения задач «рабочих» размерностей (т.е. регламентированных требованиями безопасности) требуется на несколько месяцев задействовать вычислительный кластер категории самых верхних позиций списка «Топ-500».
Однако относительно недавно возникло и получило развитие совершено новое, альтернативное алгебраическому подходу направление криптоанализа
- логический криптоанализ. Суть подхода заключается в рассмотрении криптографического алгоритма как программы для машины Тьюринга. Подстановка открытого и шифрованного текстов в эту программу естественным образом приводит к задаче «ВЫПОЛНИМОСТЬ» для конъюнктивной нормальной формы (КНФ), часть выполняющего набора которой является ключом шифра. Идея такого подхода была впервые предложена Куком С. в 1997 году при поиске сложных задач для тестирования решателей КНФ [1].
Последующие исследования по логическому криптоанализу фокусировались на блочных и потоковых шифрах [2,3], генераторах двоичных последовательностей [4], а также некоторых аспектах криптоанализа Я8Л (криптостойкость основана на сложности задачи факторизации) [5,6]. При этом за границами исследований остались такие важные задачи, как дискретное логарифмирование и логарифмирование в группе точек эллиптической кривой, на основе которых строятся современные системы шифрования, протоколы обмена ключами и цифровой подписи (Б8Л, БСБ8Л и другие). В вопросе применения подходов логического криптоанализа для зада-
чи факторизации недостаточно полно освещены такие аспекты, как использование параллельных алгоритмов для поиска выполняющего набора КНФ, кодирующей исходную задачу, и адаптация алгоритмов кодирования под требования современных алгоритмов поиска выполняющего набора КНФ.
Таким образом, целью данной работы является построение и исследование свойств алгоритмов консервативного сведения задач факторизации, дискретного логарифмирования и логарифмирования на группе точек эллиптической кривой к задаче «ВЫПОЛНИМОСТЬ»; анализ работы современных SAT - решателей на полученных КНФ.
Сведение к задаче «ВЫПОЛНИМОСТЬ» позволит не только применять для решения изначально алгебраических задач алгоритмы решения задачи «ВЫПОЛНИМОСТЬ», но и получать качественно новые результаты, недоступные для алгебраических методов. Так, например, выделять наиболее вероятные биты ключа, распознавать определенные последовательности бит [7,8] и полностью восстанавливать ключ по некоторым известным его фрагментам.
1. Алгоритмы сведения к задаче «ВЫПОЛНИМОСТЬ»
Задача факторизации
Для перехода от задачи факторизации (разложения целого числа на два различных целых сомножителя) к задаче «ВЫПОЛНИМОСТЬ» (поиска выполняющего набора логической формулы) основной операцией, которую необходимо закодировать в виде КНФ, является операция умножения двух чисел, в основе которой лежит операция вычисления суммы по модулю 2 и переноса в старший разряд. Для построения соответствующих фрагментов КНФ предлагается использовать правило де-Моргана в сочетании со следующими выражениями, являющимися прямым следствием свойств совершенных КНФ:
N / \
® X = л (x?1 vx?2 v••• v xNN), (1)
,=1 ' {oJeMnV 12 N >’
где в левой части сумма по модулю 2, MN - множество двоичных векторов длины N, содержащих чётное число нулей.
N L f N L
v x5, v л ys = л I v x5, v v
i=1 j=1 j {pk }e ^ i =1 j
2l /{G,.,G}
1( y?j)p
(2)
При этом операция вычисления переноса представляется как сумма по модулю 2 в следующем виде:
c =0 (s © x л y л z © x л y л z), (З)
где s - литерал, равный сумме x © y © z , а c - бит переноса от этой суммы.
Построено три различных алгоритма кодирования операции умножения чисел в виде КНФ:
1. алгоритм на основе умножения «столбиком»;
2. алгоритм, использующий датчик псевдослучайных чисел для генерации нескольких КНФ, представляющих одну задачу факторизации;
3. алгоритм генерации З-КНФ.
Первый алгоритм фактически является записью обычного алгоритма умножения «столбиком», в котором на каждом шаге вместо вычисления промежуточной суммы или переноса происходит генерация соответствующего фрагмента КНФ.
Второй алгоритм генерирует несколько КНФ, представляющих одну задачу факторизации, что позволяет использовать параллельные схемы SAT -решателей [9]. В таких схемах параллельно работает несколько независимых решателей, каждый из которых ищет выполняющий набор своей индивидуальной КНФ. По окончании каждой итерации происходит циклический обмен решениями между решателями и начинается следующая итерация, в которой полученные решения являются начальными приближениями.
Генерация КНФ происходит в два этапа:
1. попарное сложение промежуточных векторов, составленных из произведений вида
N
у, Z 2
j-1-
j=1
Z 2
j-1„ -
= Уі Z 2
j=1
1Z 2
j-K
(4)
2
хі + 2У+і,
і=і і=і і=і
сложение двух произвольно выбранных векторов иг-, ик.
Представление операции умножения в виде 3-КНФ также базируется на алгоритме умножения «столбиком», при этом для кодирования сложения в одном разряде используется следующая система уравнений, каждое уравнение которой представляется в виде фрагмента 3-КНФ:
s1 = x © c, c1 = x л c, s = s1 © y c2 = S1 л y c' = c1 © c2
(4)
Отсутствие дополнительных, искусственных (т. е. не имеющих смысла, с точки зрения исходной зада-
чи) литералов в построенных КНФ является достоинством представленных схем кодирования.
Консервативность сведения задачи факторизации к задаче «ВЫПОЛНИМОСТЬ» обеспечивается путем включения в итоговую КНФ фрагментов, фиксирующих порядок сомножителей (q > p) и устраняющих тривиальные решения (1x n ).
Все рассмотренные алгоритмы обладают следующими свойствами:
1. трудоемкость есть o(n 2);
2. количество литералов в КНФ есть o(n 2);
3. количество дизъюнктов в КНФ есть o(n2).
Задача дискретного логарифмирования Задача дискретного логарифмирования формулируется следующим образом:
AX ° B mod P, (5)
где P - большое простое число, A такое, что (A,P)=1. Требуется найти число X, удовлетворяющее сравнению (5).
Идея процедуры сведения задачи дискретного логарифмирования основана на следующем равенстве:
AX(mod P) = (...(ax1 xA22)xA?...)xAxNN, (6)
где Ai = A2i-1 (mod P), а операция x означает умножение в поле GF(P):
UV ° ^(mod P) (7)
При кодировании выражения (7) в виде КНФ значения Ai вычисляются численно и соответствующие биты подставляются в КНФ. Таким образом, требуется закодировать N-1 (N - разрядность числа P) операций умножения в поле GF(P).
Для представления в виде КНФ левой части выражения (6) требуется реализовать кодирование в КНФ следующих операций:
1. возведения числа в степень, показатель которой может принимать только значения G или 1 (возведение в «однобитовую» степень);
2. умножения в поле GF(P) (7).
Кодирование в виде КНФ первой операции осуществляется следующим алгоритмом (на входе число A, содержащее N двоичных разрядов, и литерал b, отвечающий показателю экспоненты, вектор ci (i=1,...,N) литералов, отвечающих битам результата):
1. Если младший бит A равен G, то добавить в КНФ два дизъюнкта (c v Ь)л(c1 v b ), иначе, добавить в КНФ дизъюнкт (c1 ).
2. Для i=2,.,N, если i-ый бит A (нумерация бит с единицы, начиная с младшего) равен 1, то положить c,=b, иначе, добавить в КНФ дизъюнкт (c,). Вторая операция, которую необходимо закодировать в виде КНФ - умножение в поле GF(P), представима в виде следующей системы:
UV = QP + R, P > R,
(8)
где и и V - сомножители, Р - модуль поля ОР(Р), Я
- результат умножения, Q - целая часть от деления UV/P. Без ограничения общности используется нестрогое неравенство, т.к., с одной стороны его проще закодировать в виде КНФ, с другой - в рассматриваемой задаче UV ф 0(mod Р).
Перепишем систему (8) так, чтобы в каждом уравнении содержалось по одной бинарной операции:
' т = т,
QP = У, т = У + Я,
Р > Я,
(9)
где T и Y - дополнительные переменные связи между уравнениями.
Алгоритм кодирования в КНФ операции умножения в поле GF(P) строится на основе системы (9) с использованием генераторов КНФ для операций умножения, сложения и отношения «больше или равно».
Алгоритм сведения задачи дискретного логарифмирования к задаче «ВЫПОЛНИМОСТЬ» принимает на вход числа A, B, P, имеющие N разрядов в двоичной записи и связанные соотношением (5), а также вектор литералов {x,} i=1,...,N, отвечающих битам искомой экспоненты. Основные шаги алгоритма:
1. Вычислить A, = A2‘1 (mod P), при i=1,... ,N.
2. При i=1,...,N-1 и S1 = A*1 представить в виде КНФ следующее выражение:
S,+1 = S, x A* (modP) (10)
3. В полученную КНФ подставить биты P в качестве значений литералов p, и биты B в качестве значений SN.
Представленный алгоритм является консервативным, полиномиальным сведением задачи дискретного логарифмирования в простом поле по модулю, содержащему N двоичных разрядов, к задаче «ВЫПОЛНИМОСТЬ» и обладает следующими свойствами:
1. время работы алгоритма есть o(n3);
2. количество литералов в КНФ есть o(n3);
3. количество дизъюнктов в КНФ есть o(n3).
Задача логарифмирования в группе точек эллиптической кривой
Задача логарифмирования на эллиптической кривой формулируется следующим образом: дано две точки R, Q некоторой эллиптической кривой E(A, B, P), необходимо найти число k такое, что при
умножении на него точки Q результатом получим точку R:
R = kQ, R, Q є E(A, B, P) (11)
При этом в теории эллиптических кривых имеются следующие правила вычисления суммы двух точек [1G,11]:
1. (x, y)+O=(x, y);
2. (x, y)+(x, -y)=O;
3. (x,,yi)+(x2,y2)=fe,Уз), где
j x3 = l2 - x, - x2 (mod P)
[Уз =1(x, -x3)-у, (modP)'
Параметр X вычисляется следующим образом:
(12)
1 =
У 2 - Уі
(mod P), если (x,, y,) Ф (x2, y2),
Уз = 3xt - A 2 Уі
(mod P),
(1З)
иначе.
Точка О представляет нулевой элемент группы точек эллиптической кривой.
Для сведения данной задачи к задаче «ВЫПОЛНИМОСТЬ» воспользуемся следующим разложением, которое во многом аналогично выражению (6):
kQ = (...(к& + к2М)+ _) + кы {2"-1 QJ (14)
где к (/ = 1,... ,№) - биты искомой экспоненты.
Выражения, заключённые в фигурные скобки, не зависят от неизвестных величин, поэтому нет необходимости кодировать алгоритм их вычисления в виде КНФ.
Без ограничения общности можно считать, что точки 2^ отличны от точки О. В противном случае, начиная с некоторого номера, все слагаемые в правой части (14) равнялись бы О, что существенно упрощало бы решаемую задачу.
Однако в сумме (14) возможно появление О за счёт того, что отдельные к обращаются в нуль.
Итак, для представления правой части (14) в виде КНФ необходимо закодировать следующие операции:
1. сложение двух точек эллиптической группы;
2. деление в поле ОР(Р) (необходимо в (13) для представления X);
3. линейную комбинацию точек кривой:
aU + bV = cR,
(15)
где а, Ь и с могут принимать значение 0 и 1, и, V и Я точки эллиптической кривой.
Для представления в виде КНФ суммы двух точек эллиптической кривой от уравнений (12), (13) переходим к следующей системе уравнений:
2
12G
W = XV - Xv (mod P),
T = Yv - Yv (mod P),
L = T / W (mod P),
S = Xv + Xv (mod P),
K = LL(mod p), (16)
XR = K - S (mod P),
D = Xy - XR (mod P),
M = DL (mod P),
Yr = M - Yy (mod P),
где XU, YU, XV, YV, XR, YR - координаты точек, W, T, L, S, K, D, M - вспомогательные числовые переменные.
Для кодирования в виде КНФ операции деления предлагается следующий подход: строится КНФ представление операции умножения в поле GF(P) (7).
Далее в построенную КНФ подставляются значения битов U, R и P. Полученная КНФ, очевидно, является КНФ представлением для операции деления в поле GF(P).
Для кодирования в виде КНФ линейной комбинации двух точек используется следующая логическая функция:
r = (t л c)v(f л с ) (17)
Данная функция по построению обладает следующими свойствами:
1. если литерал с равен «истина», то значение литерала r есть значение t;
2. если литерал c равен «ложь», то значение литерала r есть значение f.
Воспользуемся следующей эквивалентностью: x = у ^ (xvу)л(x vу), а также законом дистрибутивности булевой алгебры для преобразования выражения (17) к следующему виду:
(r v (tf)v (tc)v (fc))л (r v (tc)v(fC)). (18)
Полученное выражение преобразуется в КНФ аналогично операциям сложения по модулю 2 и переноса с использованием (2) и правила де-Моргана.
Алгоритм сведения задачи логарифмирования в группе точек эллиптической кривой к задаче «ВЫПОЛНИМОСТЬ» принимает на вход: числа A B, P, имеющие N разрядов в двоичной записи и являющиеся параметрами эллиптической кривой; точки соответствующей эллиптической кривой Q и R, а также литералы kbk2,...,kN, отвечающие битам искомой экспоненты. Основные шаги алгоритма:
1. вычислить точки 2i-1Q, при i=1,.,N;
2. при i=1,...,N-1 и Si=Q и cj=ki генерировать КНФ эквивалентную следующему выражению:
ci+iSi+i = ciSi + ki I2, 1q}
-i+l
= c v k ;
(19)
в полученную КНФ подставить биты Р в качестве значений литералов р/ и биты Я в качестве
Представленный алгоритм является консервативным, полиномиальным сведением задачи логарифмирования на эллиптической кривой к задаче «ВЫПОЛНИМОСТЬ», обладающим следующими свойствами:
1. время работы алгоритма есть о(ж4), при этом
основной вклад вносит вычисление точек 2г-^, сама генерация КНФ за счёт эффективного кодирования деления в поле 0¥(Р) имеет трудоемкость о(ж 3);
2. количество литералов в КНФ есть о(ж 3);
3. количество скобок в КНФ есть о(ж 3).
2. Результаты вычислительных экспериментов, выводы
Для оценки практических свойств полученных алгоритмов были проведены следующие виды вычислительных экспериментов (использовалась
ПЭВМ со следующими характеристиками СРИ: 1,7ГГц; ЯЛЫ: 2ГБ):
1. Генерация КНФ для задач практически значимых размерностей (т. е. размерностей реально используемых в различных криптосистемах). Полученные результаты представлены в таблице 1. Таким образом, можно утверждать, что построенные алгоритмы действительно пригодны для сведения рассматриваемых задач актуальных размерностей к задаче «ВЫПОЛНИМОСТЬ».
Таблица 1. Сведение рассматриваемых задач к задаче «ВЫПОЛНИМОСТЬ»
Размер- ность задачи Количество литералов Количество дизъюнктов Время генерации (ч:мин:сек)
Задача факторизации
2G48 6,5E5 1,6E7 G:G8:G5
8192 1,GE7 2,6E8 5:59:5G
Задача дискретного логарифмирования
128 1,GE7 1,8E8 2:18:G8
152 1,7E7 3,GE8 7:12:G6
Задача логарифмирования на эллиптической кривой
7G 5,3E6 8,9E7 G3:G6:16
1GG 1,5E7 2,6E8 1G:24:GG
значений SN, i = 1,.,N.
а также значения всех 2i-1Q, при
2. Решение полученных экземпляров задачи «ВЫПОЛНИМОСТЬ» с помощью различных современных решателей (победителей конкурса SAT-Competition 2007 года [12]). Полученные результаты представлены в таблице 2. Из приведенных данных следует, что с помощью современных SAT - решателей общего назначения возможно решение задач весьма скромных размерностей, несопоставимых с размерностями, рекомендованными к использованию в криптографических приложениях.
З
Таблица 2. Решение полученных КНФ с помощью SAT-решателей, победителей конкурса SAT-Competition 2007
3. Исследование стойкости рассматриваемых задач к восстановлению полного ключа по его известным фрагментам. Было установлено, что для задачи факторизации сложность решения соответствующей задачи «ВЫПОЛНИМОСТЬ» существенно уменьшается при подстановке фрагментов ключа. Например, выполняющий набор для КНФ представления задачи факторизации числа размером 512 бит находится за 8 мин. после подстановки в неё значений 47% случайно выбранных битов ключа. Для задач дискретного логарифмирования и логарифмирования на эллиптической кривой такой закономерности обнаружено не было. Например, КНФ представление задачи дискретного логарифмирования размерности 24 бита после подстановки 50% случайно выбранных бит ключа ни один из использованных SAT
- решателей не смог решить за отведённые 4 часа, при том, что задача размерности 12 бит решается менее чем за 10 минут (см. табл. 2).
Литература
1. Cook S. A., Mitchel D. G. Finding hard instances for the satisfiability problem // A survey. DIMACS series in discrete mathematics and theoretical computer science. -1997. V. 5. - P. 151.
2. Massacci F., Marraro L. Towards the formal verification of ciphers: Logical cryptanalysis of DES // Proc. Third LICS Workshop on Formal Methods and Security Protocols, Federated Logic Conferences, 1999.
3. Susem M., Janicic P. Uniform reduction of cryptographic problems to SAT // Faculty of Mathematics, University of Belgrade, Serbia, 2009.
URL: http://argo.matf.bg.ac.yu/events/2009/slides/ (дата обращения: 12.10.2009).
4. Семенов А. А. Логико-эвристический подход в криптоанализе генераторов двоичных последовательностей // Труды международной научной конференции ПАВТ‘07. - 2007. - Т. 1. - С. 170-180.
5. Беспалов Д. В., Семёнов А. А. О логических выражениях для задачи 2-ФАКТОРИЗАЦИЯ // Вычислительные технологии. - 2002. - Т. 7.
6. Srebrny M. Factorization with sat - classical proposi-tional calculus as a programming environment // Faculty of Mathematics Informatics and Mechanics at the University of Warsaw. 2004.
URL: http: //www. mimuw. edu.pl/~mati/fsat-20040420.pdf (дата обращения: 06.07.2009).
7. Дулькейт В. И., Файзуллин Р. Т., Хмыкни И. Г. Непрерывные аппроксимации решения задачи ВЫПОЛНИМОСТЬ применительно к криптографическому анализу асимметричных шифров // Компьютерная оптика. - 2009. - Т. 33, № 1. - С. 86-91.
8. Дулькейт В. И., Файзуллин Р. Т., Хныкин И. Г. Алгоритм минимизации функционала, ассоциированного с задачей 3-sat и его практические применения // Компьютерная оптика. - 2008. - Т. 32, № 1. - С. 68-73.
9. Салаев Е. В., Файзуллин Р. Т. Применение метода последовательных приближений с инерцией к решению задачи Выполнимость // Вестник Томского Государственного Университета. - 2006. - Т. 17.
10. Столингс В. Криптография и защита сетей: принципы и практика. - М.: Вильямс, 2001.
11. Jurisic A., Menezes A. Elliptic curves and cryptography. // Dr. Dobb’s Journal. - April, 1997.
12. Sat competition [Сайт].
URL: http://www.satcompetition.org (дата обращения: 10.08.2009).
References
1. Cook S.A., Mitchel D.G. Finding hard instances for the satisfiability problem // A survey. DIMACS series in discrete mathematics and theoretical computer science. -1997. - V. 5. - P. 151.
2. Massacci F., Marraro L. Towards the formal verification of ciphers: Logical cryptanalysis of DES // Proc. Third LICS Workshop on Formal Methods and Security Protocols, Federated Logic Conferences. - 1999.
3. Susem M., Janicic P. Uniform reduction of cryptographic problems to SAT // Faculty of Mathematics, University of Belgrade, Serbia; 2009.
URL: http://argo.matf.bg.ac.yu/events/2009/slides/
4. Semenov A.A. Logical and heuristically approach in cryptanalysis of binary sequences generators // Proc. international scientific conference PAVT‘07. - 2007. - V. 1. - P. 170-180. - (in Russian).
5. Bespalov D.V., Semjonov A.A. About logical statements for 2-FACTORIZATION problem // Calculation technologies. - 2002. - V. 7. - (in Russian).
6. Srebrny M. Factorization with sat - classical proposi-tional calculus as a programming environment // Faculty of Mathematics Informatics and Mechanics at the University of Warsaw. 2004.
URL: http://www.mimuw.edu.pl/~mati/fsat-20040420.pdf
Алгоритм решателя Время решения (ч:мин:сек)
КНФ для задачи факторизации
Размерность задачи 80 96 112
march ks G:G1:45 G:G3:26 G:36:2G
picosat G:G1:4G G:1G:53 -
3-КНФ для задачи факторизации
Размерность задачи ss 96 104
vallst G:57:28 1:51:5G 4:26:34
picosat G:G2:18 2:21:39 5:26:48
КНФ для задачи дискретного логарифмирования
Размерность задачи 10 12 14
SatElite G:GG:14 G:G9:GG 1:16:46
rsat G:GG:33 G:G7:56 1:23:23
КНФ для задачи логарифмирования на эллиптической кривой
Размерность задачи s 10 12
rsat G:G6:51 G:49:42 >5:GG:GG
minisat G:G2:5G 1 :GG:41 >5:GG:GG
7. Dulkeyt V.I., Faizullin R.T., Khnykin I.G.
Continuous approximation of SAT decision as applied to cryptographic analysis of asymmetric ciphers // Computer Optics. - 2009. - V. 33, N 1. - P. 86-91. -(in Russian).
8. Dulkeyt V.I., Faizullin R.T., Khnykin I.G. Algorithm for minimization of functional associated with 3-SAT problem and its practical usage // Computer Optics. -2008. - V. 32, N 1. - P. 68-73. - (in Russian).
9. Salaev E.V., Faizullin R.T. Using the method of sequential approximations with inertia for solving SAT problems // Herald of Tomsk State University. - 2006. - V. 17. - (in Russian).
10. Stallings W. Cryptography and network Security. - Moscow: Williams, 2001 - (in Russian).
11. Jurisic A., Menezes A. Elliptic curves and cryptography. // Dr. Dobb’s Journal. - April, 1997.
12. Sat competition. URL: http://www.satcompetition.org.
REDUCTION OF FACTORIZATION, DISCREET LOGARITHM AND ELLIPTIC CURVE LOGARITHM PROBLEMS TO SOLVING ASSOCIATED SATISFIABILITY PROBLEMS
Vladimir Igorevitch Dulkeyt1 (post-graduate, e-mail: [email protected])
1 F.M. Dostoevsky Omsk State University
Abstract
The algorithms of conservative reduction of factorization, discreet logarithm and elliptic curve logarithm problems to satisfiability problem (SAT) were proposed. The capabilities of modern SAT -solvers for solving produced SAT instances were investigated. The resistance to whole key repairing by its fragments was investigated for considered problems.
Key words: CNF, factorization, discreet logarithm, elliptic curve logarithm, SAT.
Поступила в редакцию 2s.12.2009 г.