Применение инверсных лазеек для построения атак из класса «угадывай и определяй» на хеш-функции семейства MD4 | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/37

Применение инверсных лазеек для построения атак из класса «угадывай и определяй» на хеш-функции семейства MD4

Приведены новые атаки из класса «угадывай и определяй» для хеш-функций вида MD4-k, k > 39. Описываемые атаки основаны на концепции инверсной лазейки. Для решения задач криптоанализа, ослабленных подстановками угадываемых бит, используются SAT-решатели. Задача поиска инверсной лазейки, обеспечивающей атаку с относительно малой трудоёмкостью, ставится в форме задачи минимизации специальной псевдобулевой функции. Для её решения используются три метаэвристических алгоритма: алгоритм поиска с запретами, (1+1)-FEAp и специальный вариант генетического алгоритма. Перечисленные алгоритмы дают атаки на рассматриваемые функции с близкими оценками трудоемкости. Для функции сжатия полнораундового MD4 лучшие атаки строит генетический алгоритм.

Using inverse backdoors sets to construct guess-and-determine attacks on hash-functions md4.pdf 1. О понятии инверсной лазейки Понятие инверсной лазейки (Inverse Backdoor Set, IBS) введено в [1]. Кратко напомним его суть. Рассматривается задача обращения (поиска прообразов) произвольной функции вида f : {0,1}n ^{0,1}m, (1) заданной программой (алгоритмом) Mf. Более точно, требуется по произвольному 7 е е Range f найти такой а е {0,1}n, что f (а) = 7. Подход к решению данной задачи, используемый далее, относится к алгебраическому криптоанализу [2]. В соответствии с ним задачу поиска прообраза произвольного 7 £ Range f можно свести к решению системы алгебраических уравнений над GF(2) либо к поиску набора, выполняющего некоторую выполнимую КНФ. Далее нам потребуется понятие шаблонной КНФ (template CNF), введённое в [3]. Шаблонная КНФ Cf строится по представлению функции f в виде схемы Gf из функциональных элементов с n входами и m выходами над произвольным полным базисом, например над {Л, -}. Для перехода от схемы Gf к Cf используются преобразования Цейтина [4]. Пусть U - множество всех булевых переменных, присутствующих в Cf; X = {ж1, ... ,жп} - переменные, которые приписаны входу схемы Gf. Используем понятие подстановки произвольного значения Л £ {0,1} произвольной переменной u £ U в формулу Cf. Это понятие дается стандартным образом - например, в соответствии с [5]: то есть каждое вхождение переменной u в Cf заменяется на Л, после чего выполняются все возможные элементарные преобразования. В результате таких преобразований ряд не означенных ранее переменных могут принять конкретные значения. Будем говорить про такие значения, что они индуцированы соответствующей подстановкой. Пусть a £ {0,1}n - произвольный набор значений переменных из X. Как показано в [3], подстановка a в Cf индуцирует набор значений всех переменных из U \\ X, в том числе и набор значений 7 = (71,...,7m) переменных из Y = {y1,...,ym}, которые приписаны выходу схемы Gf. При этом имеет место f (a) = 7. Рассмотрим произвольное B С U \\ Y. Зададим на {0,1}n равномерное распределение и свяжем с выбранным случайно набором a = (a1,... , an) £ {0,1}n индуцированные подстановкой ж1 = a1, ..., жп = an наборы значений переменных из B и из Y, которые обозначим и соответственно. Обозначим через Cf/B,Ya/Y] КНФ, которая получена из Cf в результате подстановки в неё наборов в«, 7«. Зафиксируем некоторое число t > 0 и рассмотрим произвольный детерминированный алгоритм A решения SAT. Рассмотрим следующую величину: рд(t) = #{a £{0,1}n : A(Cf [ea/B,7a/Y]) ^ t}. (2) В числителе (2) стоит число таких a £ {0,1}n, что время нахождения алгоритмом A набора, выполняющего Cf [e«/B,7„/Y], не превосходит t; в знаменателе - общее число различных a. Таким образом, рд(t) -вероятность следующего события: случайное a индуцирует такие в«, 7«, что SAT в отношении КНФ Cf [e«/B,7a/Y] решается алгоритмом A за время ^ t. Множество B называется инверсной лазейкой с параметрами (t,pB(t), s), где s = |B|. В [1] показано, как на основе инверсной лазейки с данными параметрами построить атаку из класса «угадывай и определяй» на криптографическую функцию вида (1), трудоёмкость которой равна единицы в 8 соответствуют тем и только тем переменным из X, которые входят в B. По произвольному 8 £ {0,1}n строится множество B, после чего генерируется случайная выборка al,... , aN, aj £ {0,1}n, j £ {1,... , N}. Затем наблюдаются N значений случайной величины £: для каждого j £ {1,... , N} данная величина принимает значение £j = 1, если алгоритм A решает SAT для КНФ Cf [ва/B,Yaj/Y] за время ^ t, 3 PB (t) T = 2s •t Далее в [1] предлагается рассматривать задачу поиска инверсной лазейки B с относительно малой трудоёмкостью как задачу минимизации специальной функции Ф: {0,1}n ^ R. (3) Напомним, что функции вида (3) называются псевдобулевыми [6]. Множество B ищется среди всевозможных подмножеств множества X. Функция (3) определяется следующим образом. Предполагается, что произвольный 8 £ {0,1}n задаёт конкретное B: 1 n . в противном случае £j = 0. В роли оценки рв (t) используется величина - Е £j. Со 1N рв (t) - - Е £j N j=l P N j=l ответствующее значение функции (3) определяется как N ф(8) = 2«ад . t ■ 3N/^£j, (4) j=l где wt(8) -вес Хэмминга вектора 8. Заметим, что £ - случайная величина Бернулли, M[£] = рв (t), D[£] = рв(t)(1-рв(t)). Учитывая это и используя неравенство Чебышёва [7], можно показать, что для любого е > 0 имеет место 1 ^ е ^ 1 - 4- е2 • N' 1 N. то есть - Е £j позволяет оценить рв (t) с любой наперёд заданной точностью за счёт N j=l увеличения объёма выборки N. 2. Алгоритмы поиска инверсных лазеек Как следует из сказанного выше, имеет смысл искать инверсные лазейки с как можно меньшим значением функции (4). Поскольку функция (4) не задана аналитически, мы можем использовать для её минимизации только эвристические алгоритмы. В настоящей работе использованы следующие алгоритмы: алгоритм из [8], относящийся к классу алгоритмов поиска с запретами [9]; т.н. «быстрый эволюционный алгоритм» (1+1)-FEAe [10], а также специальный вариант генетического алгоритма [11]. Дадим краткое описание этих алгоритмов. Алгоритм поиска с запретами (далее - TS от Tabu Search) из [8] - это вариант локального поиска, который хранит все пройденные точки {0,1}n в специальных списках и запрещает повторно вычислять значения функции (4) в точке, в которой эта функция уже вычислялась. Многократное вычисление значений (4) в одних и тех же точках приводит к замедлению поиска, поскольку каждое такое вычисление требует существенного времени. К тому же, как показано в [9], такая стратегия позволяет алгоритму выходить из точек локального минимума (полнота при отсутствии ограничений по памяти). Алгоритм (1+1)-FEAe, описанный в [10], представляет собой усложнённый вариант известного эволюционного алгоритма (1+1)-EA [12]. Идея, лежащая в основе (1+1)-FEAe, состоит в том, чтобы использовать переменную вероятность мутации. В классическом (1+1)-EA вероятность мутации, то есть изменения произвольного бита в рассматриваемом слове a £ {0,1}n на противоположный, постоянна и равна 1/n. Если a - исходное слово из {0,1}n, а a' - результат случайной мутации a в соответствии с (1+1)-EA, то математическое ожидание случайной величины H(a, a') (расстояния Хэмминга между a и a') есть M[H(a,a')] = 1. Это свойство очень важно [13], поскольку оно означает, что в среднем данный алгоритм ведёт себя похожим на стандартный локальный поиск образом и соответственно имеет возможность приспосабливаться под «ландшафт» рассматриваемой функции. С другой стороны, этот алгоритм с ненулевой вероятностью переходит в произвольную точку гиперкуба {0,1}n. Однако (1+1)-EA имеет крайне плохую верхнюю оценку сложности в смысле меры, введённой в [14], - конкретно, данная оценка имеет вид nn и, таким образом, (1+1)-EA существенно менее эффективен (в данном смысле), чем простой случайный поиск. В алгоритме (1+1)-FEAp вероятность мутации зависит от поведения специальным образом определённой случайной величины. В зависимости от значений параметра в алгоритм (1+1)-FEAe может демонстрировать различные сочетания основных свойств. Наиболее интересным с практических позиций является значение в = 3, так как в этом случае верхняя оценка сложности (1+1)-FEA3 в смысле [14] есть 0(n3 • 2n), притом Z (2) что M[H(a,a')j ~ -- ~ 1,3685 (здесь ( -дзета-функция Римана). С(3) Ещё один алгоритм, использованный для минимизации (4), - это специальный случай генетического алгоритма, который описан в [11] (далее - GA от Genetic Algorithm). В данном алгоритме по набору векторов P = {Л1,... , Xм}, Лг Е {0,1}n, i Е {1,... , M}, строится новый набор P = {Л1,... , Xм} в соответствии с несколькими базовыми концепциями теории генетических алгоритмов. Начальный набор из M векторов строится либо случайным образом, либо как результат работы других алгоритмов, например (1+1)-EA. Часть наборов в P состоит из лучших по значению целевой функции элементов P. Другая часть наборов в P есть результат стандартных (1+1)-EA мутаций над несколькими наборами, случайно выбранными из P. Наконец, оставшиеся наборы из P получаются в результате операции двухточечного кроссовера [15] над наборами, случайно выбираемыми из P. Для каждого элемента P вычисляется значение функции (4). 3. Атаки на основе инверсных лазеек на функции вида MD4-k, k > 39 Везде далее под MD4-k понимается функция сжатия, задаваемая первыми k шагами известного алгоритма хеширования MD4 [16]. В основе предлагаемых атак лежит идея дополнения уравнений криптоанализа функций вида MD4-k ослабляющими ограничениями. Данная идея высказана Г. Доббертином в [17] и адаптирована к использованию SAT-решателей в [18]. В [19] описан алгоритм, позволяющий генерировать ослабляющие ограничения «типа Доббертина» автоматически. С использованием данного алгоритма построена рекордная по трудоёмкости атака на функцию MD4-39. В дальнейшем при помощи подхода из [19] были построены новые атаки для функций вида MD4-k до k = 48 включительно. В частности, атака такого типа на полнораундо-вую функцию сжатия MD4, представленная в [20], показывает, что данная функция не обладает свойствами случайного оракула. Атаки, описанные в [19-21], эксплуатируют общую идею перехода от задачи обращения функции MD4-k к задаче обращения вспомогательных функций вида gMD4-k : {0,1}d ^{0,1}128, (5) таких, что d ^ 512. Через Л в (5) обозначен булев вектор, задающий ослабляющие ограничения «типа Доббертина». Генерируя при помощи алгоритма из [19] различные Л, можно строить нетривиальные атаки на функции вида MD4-k. В рамках настоящей работы мы использовали описанные в п. 2 метаэвристические алгоритмы для поиска инверсных лазеек в задачах обращения следующих функций: gMD4-40 : {0,1}128 ^ {0,1}128, gMW48 : {0,1}128 ^ {0,1}128, gM3D4-48 : {0,1}96 ^ {0,1}128, gM5D4-48 : {0,1}64 ^ {0,1}128. ( ) Более подробную информацию о векторах Ai, A3 и А5 и перечисленных функциях можно найти в [20]. Заметим, что если х G {0,1}128 - значение любой из функций (6) и x - прообраз х в смысле этой функции, то от x можно эффективно перейти к MD4-прообразу х. Результаты построения инверсных лазеек описанными алгоритмами и оценки трудоёмкости соответствующих атак из класса «угадывай и определяй» в применении к функциям (6) приведены в таблице. Алгоритм gmd4-40 gmd4-48 gmd4-48 gMd4-48 TS 1 (t = 100) TS 2 (t = 200) (20) 4,4e+10 (15) 2,4 e+9 (100) 4,5e+34 (98) 2,7e+34 (66) 1,2 e+24 (63) 7,2e+23 (28) 7,8e+12 (1+1)-FEA3 1 (t = 100) (1+1)-FEA3 2 (t = 200) (23) 2,8e+11 (20) 9,1 e+10 (104) 2,1 e+35 (100) 1,1 e+35 (65) 6,7e+23 (б4) 5,7e+23 (28) 1,1 e+13 GA 1 (t = 100) GA 2 (t = 200) (22) 1,7e+11 (21) 1,5e+11 (100) 2,0e+34 (63) 3,6e+23 (27) 3,5e+12 Комментарии к таблице. В первом столбце приведено название алгоритма. В ряде случаев процесс поиска лазейки разбивался на два этапа: на первом этапе использовалось значение t = 100 с (см. (4)), затем с лучшей найденной точки запускался этот же алгоритм c параметром t = 200 с. В последующих столбцах приведено число переменных в соответствующих лазейках и значения функции (4) для этих лазеек. Каждое такое значение даёт оценку времени выполнения атаки из класса «угадывай и определяй» в секундах для соответствующей функции вида (6) на одном ядре используемого процессора (в нашем случае - на одном ядре AMD Opteron 6276). По результатам экспериментов можно сделать вывод о том, что все сравниваемые алгоритмы дают атаки с близкими оценками трудоёмкости. Для полнораундовой версии функции сжатия MD4 атаки с наименьшей трудоёмкостью строит генетический алгоритм c M =10. Все вычислительные эксперименты по поиску инверсных лазеек для функций вида (6) проводились на вычислительном кластере «Академик В. М. Матросов» Иркутского суперкомпьютерного центра [22].

Ключевые слова

задача поиска прообразов криптографической хеш-функции, атаки из класса «угадывай и определяй», инверсные лазейки, SAT, preimage attack on hash function, guess-and-determine attacks, MD4, inverse backdoor sets, SAT

Авторы

ФИООрганизацияДополнительноE-mail
Грибанова Ирина АлександровнаИнститут динамики систем и теории управления им. В. М. Матросова СО РАНмладший научный сотрудникthe42dimension@gmail.com
Семёнов Александр АнатольевичИнститут динамики систем и теории управления им. В.М. Матросова СО РАНкандидат технических наук, доцент, заведующий лабораториейbiclop.rambler@yandex.ru
Всего: 2

Ссылки

Semenov A., Zaikin O., Otpuschennikov I., et al. On cryptographic attacks using backdoors for SAT // Proc. 32nd AAAI Conf. 2018. P. 6641-6648.
Bard G. Algebraic Cryptanalysis. Springer Publishing Company, Inc., 2009. 356 p.
Semenov A., Otpuschennikov I., Gribanova I., et al. Translation of algorithmic descriptions of discrete functions to SAT with application to cryptanalysis problems // Log. Methods Comput. Sci. 2020. V. 16. Iss. 1. P. 29:1-29:42.
Цейтин Г. С. О сложности вывода в исчислении высказываний // Записки научных семинаров ЛОМИ АН СССР. 1968. Т. 8. С. 234-259.
Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем. М.: Наука, 1983. 360 с.
Boros E. and Hammer P. L. Pseudo-Boolean optimization // Discrete Appl. Math. 2002. V. 123(1-3). P. 155-225.
Феллер У. Введение в теорию вероятностей и ее приложения. Т. 1. М.: Мир, 1964. 500c.
Semenov A. and Zaikin O. Algorithm for finding partitionings of hard variants of Boolean satisfiability problem with application to inversion of some cryptographic functions // SpringerPlus. 2016. V. 5 (1). P. 1-16.
Glover F. and Laguna M. Tabu Search. Norwell: Kluwer Academic Publishers, 1997. 401 p.
Doerr B., Le H., Makhmara R., et al. Fast genetic algorithms // Proc. GECCO'17. 2017. P. 777-784.
Pavlenko A., Semenov A., and Ulyantsev V. Evolutionary computation techniques for constructing SAT-based attacks in algebraic cryptanalysis // LNCS. 2019. V. 11454. P. 237-253.
Muhlenbein H. How genetic algorithms really work: Mutation and hill climbing // Proc. PPSN-II. 1992. P. 15-26.
Wegener I. Theoretical aspects of evolutionary algorithms // ICALP 2001. LNCS. 2001. V. 2076. P. 64-78.
Droste S., Jansen T., and Wegener I. On the analysis of the (1+1) evolutionary algorithm // Theor. Comput. Sci. 2002. V. 276 (1-2). P. 51-81.
Luke S. Essentials of Metaheuristics. Second Edition. 2015. 261 p. https://cs.gmu.edu/ ~sean/book/metaheuristics/Essentials.pdf.
Rivest R.L. The MD4 message digest algorithm // CRYPT0'90. LNCS. 1990. V. 537. P. 303-311.
Dobbertin H. The first two rounds of MD4 are not one-way // FSE 1998. LNCS. 1998. V. 1372. P. 284-292.
De D., Kumarasubramanian A, and Venkatesan R. Inversion attacks on secure hash functions using SAT Solvers // FSE 2007. LNCS. 2007. V.4501. P. 377-382.
Gribanova I. and Semenov A. Using automatic generation of relaxation constraints to improve the preimage attack on 39-step MD4 // Proc. 41st Intern. Convention MIPRO 2018. Opatija, 2018. P. 1174-1179.
Грибанова И. А., Семёнов А. А. Об аргументации отсутствия свойств случайного оракула у некоторых криптографических хеш-функций // Прикладная дискретная математика. Приложение. 2019. №12. С. 95-98.
Gribanova I. A. and Semenov A. A. Parallel guess-and-determine preimage attack with realistic complexity estimation for MD4-40 cryptographic hash function // Труды XIII Меж-дунар. конф. «Параллельные вычислительные технологии», Калининград, 02-04 апреля 2019. С. 8-18.
Иркутский суперкомпьютерный центр СО РАН. http://hpc.icc.ru.
 Применение инверсных лазеек для построения атак из класса «угадывай и определяй» на хеш-функции семейства MD4 | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/37

Применение инверсных лазеек для построения атак из класса «угадывай и определяй» на хеш-функции семейства MD4 | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/37