Научная статья на тему 'Применение алгоритмов решения проблемы булевой выполнимости к криптоанализу хэш-функций семейства MD'

Применение алгоритмов решения проблемы булевой выполнимости к криптоанализу хэш-функций семейства MD Текст научной статьи по специальности «Математика»

CC BY
493
70
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРИПТОГРАФИЧЕСКИЕ ХЭШ-ФУНКЦИИ / КОЛЛИЗИИ ДЛЯ ХЭШ-ФУНКЦИЙ / АЛГОРИТМЫ MD4 / MD5 / ЗАДАЧА О БУЛЕВОЙ ВЫПОЛНИМОСТИ / SAT / CRYPTOGRAPHIC HASH FUNCTIONS / COLLISIONS OF HASH FUNCTIONS / MD4 / BOOLEAN SATISFIABILITY PROBLEM

Аннотация научной статьи по математике, автор научной работы — Богачкова Ирина Александровна, Заикин Олег Сергеевич, Кочемазов Степан Евгеньевич, Отпущенников Илья Владимирович, Семёнов Александр Анатольевич

Задачи поиска коллизий криптографических хэш-функций семейства MD рассматриваются как варианты задачи о булевой выполнимости (SAT). Для построения SAT-кодировок алгоритмов MD4 и MD5 использована система Transalg автоматической трансляции алгоритмических описаний дискретных функций в булевы уравнения. Полученные кодировки оказались существенно экономнее известных аналогов. В построенные SAT-кодировки хэш-функций добавлены дополнительные условия, кодирующие известные разностные атаки на данные функции. Время решения SAT-задач, кодирующих поиск одноблоковых коллизий для функции MD4, составило в среднем менее 1 с на ПК средней производительности. Для решения SAT-задач, кодирующих поиск двухблоковых коллизий для функции MD5, использованы параллельные SAT-решатели и вычислительный кластер. В результате был выделен класс двухблоковых коллизий для MD5 с 10 первыми нулевыми байтами. Построено несколько десятков коллизий такого типа. Рассмотрена также задача обращения хэш-функции MD4 (поиск прообраза для фиксированного хэша). В процессе решения данной задачи разработана техника, использующая так называемые «переменные переключения». Использование переменных переключения позволило найти новые дополнительные условия (типа «условий Доббертина»), учёт которых ускорил решение проблемы обращения 39-шагового варианта MD4 в сотни раз.

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

Похожие темы научных работ по математике , автор научной работы — Богачкова Ирина Александровна, Заикин Олег Сергеевич, Кочемазов Степан Евгеньевич, Отпущенников Илья Владимирович, Семёнов Александр Анатольевич

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

Application of algorithms solving sat problem to cryptanalysis of hash functions of MD family

In this research, we consider the problems of searching for collisions in cryptographic hash functions from the MD family as variants of the Boolean Satisfiability problem (SAT). To construct the SAT encodings for MD4 and MD5 algorithms, we employ the Transalg system designed to automatically transform algorithmic descriptions of discrete functions to Boolean equations. For hash functions under consideration, the SAT encodings are much more compact than known analogues, because the several additional constraints based on the known differential attacks on these functions are used in these encodings. The solving time for the SAT instances, encoding the search for single block collisions for MD4, is on average less than 1 sec on an usual PC. To solve the SAT instances, encoding the search for two-block collisions for MD5, we employed parallel SAT solvers working on the computing cluster. As a result, we found a class of two-block collisions for MD5 with the first 10 zero bytes. We constructed several dozens of collisions of the proposed kind. Also, we considered the inversion problem for the MD4 hash function (the search for the preimage for a given hash value). To solve this problem, we developed a technique relying on the so called "switch variables". Each switch variable is responsible for an additional constraint on several Boolean variables included in the SAT encoding. If a switch variable takes the value of Truth then the corresponding constraint becomes enabled and should be taken into account by the SAT solving algorithm. Otherwise this constraint remains inactive. The use of switch variables made it possible to find new additional constraints (similar to "Dobbertin's constraints") and to improve the effectiveness of solving the inversion problem for 39-step MD4 by a hundredfold.

Текст научной работы на тему «Применение алгоритмов решения проблемы булевой выполнимости к криптоанализу хэш-функций семейства MD»

УДК 519.7, 004.832.25 DOI 10.17223/2226308X/8/54

ПРИМЕНЕНИЕ АЛГОРИТМОВ РЕШЕНИЯ ПРОБЛЕМЫ БУЛЕВОЙ ВЫПОЛНИМОСТИ К КРИПТОАНАЛИЗУ ХЭШ-ФУНКЦИЙ

СЕМЕЙСТВА MD1

И. А. Богачкова, О. С. Заикин, С. Е. Кочемазов, И. В. Отпущенников, А. А. Семёнов

Задачи поиска коллизий криптографических хэш-функций семейства MD рассматриваются как варианты задачи о булевой выполнимости (SAT). Для построения SAT-кодировок алгоритмов MD4 и MD5 использована система Transalg автоматической трансляции алгоритмических описаний дискретных функций в булевы уравнения. Полученные кодировки оказались существенно экономнее известных аналогов. В построенные SAT-кодировки хэш-функций добавлены дополнительные условия, кодирующие известные разностные атаки на данные функции. Время решения SAT-задач, кодирующих поиск одноблоковых коллизий для функции MD4, составило в среднем менее 1 с на ПК средней производительности. Для решения SAT-задач, кодирующих поиск двухблоковых коллизий для функции MD5, использованы параллельные SAT-решатели и вычислительный кластер. В результате был выделен класс двухблоковых коллизий для MD5 с 10 первыми нулевыми байтами. Построено несколько десятков коллизий такого типа. Рассмотрена также задача обращения хэш-функции MD4 (поиск прообраза для фиксированного хэша). В процессе решения данной задачи разработана техника, использующая так называемые «переменные переключения». Использование переменных переключения позволило найти новые дополнительные условия (типа «условий Доббертина»), учёт которых ускорил решение проблемы обращения 39-шагового варианта MD4 в сотни раз.

Ключевые слова: криптографические хэш-функции, коллизии для хэш-функций, алгоритмы MD4, MD5, задача о булевой выполнимости, SAT.

Хэш-функциями называются отображения вида х : {0,1}* ^ {0,1}c, где c — некоторая натуральная константа. Хэш-функции используются в целом ряде разделов Computer Science для ускорения работы с данными. В криптографии хэш-функции являются основой большого числа различных криптосистем и протоколов. В отличие от «обычных» хэш-функций, к криптографическим хэш-функциям предъявляются дополнительные условия, требующие, чтобы задачи, связанные с обращением этих функций, были вычислительно трудными. Более точно, трудной должна быть собственно задача обращения: по известному значению хэша у найти вход x (обычно некоторой фиксированной длины), такой, что х(х) = у. Стандартным является также требование сложности задачи поиска коллизий. Поскольку константа c фиксирована, то для произвольного n > c отображение х : {0,1}n ^ {0,1}c не может быть биективным. Если при этом х определена всюду на {0,1}n, то существуют такие различные xi,x2 G {0,1}n, что x(xi) = х(х2). В этом случае говорят, что пара сообщений xi,x2 образует коллизию. Итак, еще одно требование к криптографическим хэш-функциям состоит в том, что задача поиска коллизий должна быть вычислительно трудной.

Одной из наиболее распространённых основ для криптографических хэш-функций является конструкция Меркля — Дамгарда [1, 2]. В соответствии с данной конструкцией двоичный вход x разбивается на блоки фиксированной длины n (этот параметр за-

1 Работа выполнена при частичной поддержке грантов РФФИ (№14-07-31172 мол-а, 14-07-00403 а и 15-07-07891 а); стипендий Президента РФ СП-3667.2013.5, СП-1184.2015.5; Совета по грантам Президента РФ для гос. поддержки ведущих научных школ (НШ-5007.2014.9).

даётся в спецификации алгоритма). При необходимости исходное сообщение дополняется незначащей информацией для получения слова, длина которого кратна п. Пусть x — входное слово, разбитое на N блоков, каждый из которых имеет длину п:

x = Ml|... |MN

(подразумевается конкатенация блоков). Процесс построения хэша y = x(x) —это итеративная процедура вычисления «функции сжатия» (compression function):

Xi = f (Xi-i,Mi), г Е {1,..., N}, XN = y.

Для произвольного г Е {1,..., N} слово Xi имеет длину с, которая задаётся в спецификации алгоритма; там же задаётся начальное значение (Initial Value) Xo. Функция сжатия f — это обычно сложная функция, представляемая в виде суперпозиции «ра-ундовых» функций.

Наиболее известными криптографическими хэш-функции, базирующимися на конструкции Меркля — Дамгарда, являются представители семейств MD [3] и SHA. В хэш-функциях MD4 и MD5 с = 128, а длина одного блока входного сообщения равна 512 битам. На сегодняшний день, насколько можно судить из открытых источников, даже задача обращения MD4 не имеет эффективного решения для случайных 512-битных входов. Мы не рассматриваем здесь ситуации, связанные с подбором паролей, когда относительно короткий пароль или его «дубликат» можно восстановить по хэшу полным перебором или с использованием различных стратегий пространственно-временного компромисса, таких, например, как Rainbow-метод.

С другой стороны, хорошо известны примеры успешного построения коллизий для функций MD4 и MD5. Первыми работами, в которых продемонстрирован метод, позволяющий устойчиво порождать коллизии для этих функций, являются X. Wang с соавторами [4, 5]. В дальнейшем «метод Wang» неоднократно совершенствовался и модифицировался. К сожалению, мы не можем здесь перечислить все соответствующие ссылки, так как это займёт слишком много места. Метод Wang представляет собой разновидность разностной атаки и может рассматриваться как развитие идей дифференциального криптоанализа [6] (по крайней мере, именно так его позиционирует сама X. Wang). Суть метода Wang заключается в случайном выборе некоторого сообщения с последующей его модификацией, цель которой состоит в «подгонке» получаемой пары сообщений под дифференциальный путь. В [7] предложено использовать алгоритмы решения проблемы булевой выполнимости (SAT) для автоматизации этапа подгонки. С использованием SAT-решателя minisat в [7] довольно эффективно удавалось находить одноблоковые коллизии для хэш-функции MD4. Задача поиска двухблоко-вых коллизий для MD5 оказалась тем не менее весьма сложной (текст работы [7] не позволяет точно определить ни время, за которое удавалось находить коллизии для MD5, ни число найденных коллизий). Как это ни странно, но результаты работы [7] не получили дальнейшего развития. Это особенно удивительно в свете интенсивного развития технологий решения SAT-задач, наблюдаемого в последние годы [8].

Следующий шаг в использовании SAT-подхода для поиска коллизий хэш-функций семейства MD был сделан, по всей видимости, только в 2014 г. авторами настоящей работы. Полученные в этом направлении результаты опубликованы в [9]. Дадим краткое их описание. Во-первых, отметим основной недостаток работы [7], который состоит в том, что для построения SAT-кодировок использовались узкоспециальные средства кодирования схемных представлений булевых функций. В [9] для этой цели использована система Transalg [10] автоматической трансляции в SAT алгоритмов вычисления

дискретных функций. Полученные кодировки оказались существенно экономнее кодировок, построенных в [7]. Время поиска одноблоковых коллизий для MD4 составило менее 1 с в среднем в сравнении с 10 мин в [7]. При помощи параллельных SAT-решате-лей в [9] построены семейства двухблоковых коллизий для хэш-функции MD5. Более того, были выделены коллизии специального вида, а именно начинающиеся с 10 нулевых байт (10 примеров таких коллизий приведены в приложении к [9]).

Помимо перечисленного, рассмотрена задача обращения хэш-функции MD4. Ранее к этой задаче также применялся SAT-подход [11]. Однако, как уже отмечалось, до сих пор никому не удалось осуществить успешное обращение полнораундовой версии MD4. В этом смысле рекордное значение равно 39 шагам алгоритма (число шагов в неослабленной версии MD4 равно 48). Атака на версию MD4 с 39 шагами, описанная в [11], требовала около 8 часов работы решателя minisat. При этом в SAT-кодиров-ку добавлялись дополнительные ограничения на некоторые переменные сцепления. Эти ограничения выбирались похожими на ограничения, описанные в [12]. Мы разработали новую технику генерации дополнительных ограничений такого рода. Основная идея состоит в следующем. Пусть C — КНФ, кодирующая задачу обращения некоторой функции х, и X — множество переменных, фигурирующих в C. Предположим, что к C требуется добавить ограничения, задающие некоторый предикат над переменными из множества X, X Ç X. Пусть R(X) —формула, задающая данный предикат. Введём в рассмотрение новую переменную u ф X. Рассмотрим формулу C Л (u V R(X). Очевидно, что ограничение R(X) учитывается, когда переменная u принимает значение 1. При u = 0 ограничение R(X) не активно. Переменные типа u называются переменными переключения. В результате варьирования различных значений переменных переключения можно найти набор дополнительных ограничений, учёт которых позволит существенно повысить скорость решения SAT-задачи, кодирующей обращение рассматриваемой функции. При этом для работы с переменными переключения можно использовать различные техники «обучения», встроенные в современные SAT-ре-шатели. В частности, можно рассматривать значения переменных переключения как «assumptions» [13]. На данном этапе мы применили довольно простой механизм перебора значений переменных переключения. В результате найдены ограничения, отличающиеся от приведённых в [11]. Использование новых ограничений сократило время обращения 39-шаговой версии MD4 с нескольких часов до нескольких секунд. В ближайшем будущем мы планируем развивать технику работы с переменными переключения в направлении перебора существенно более широких (чем на текущий момент) множеств дополнительных ограничений.

ЛИТЕРАТУРА

1. Merkle R. A. Certified digital signature // LNCS. 1990. V.435. P. 218-238.

2. Damgard I. A. A design principle for hash functions // LNCS. 1990. V. 435. P. 416-427.

3. Rivest R. L. The MD4 Message Digest Algorithm // LNCS. 1991. V. 537. P. 303-311.

4. Wang X., LaiX., Feng D., et.al. Cryptanalysis of the hash functions MD4 and RIPEMD // LNCS. 2005. V. 3494. P. 1-18.

5. Wang X. and Yu H. How to break MD5 and other hash functions // LNCS. 2005. V.3494. P. 19-35.

6. Biham E. and Shamir A. Differential cryptanalysis of DES-like cryptosystems // J. Cryptology. 1991. V.4. No. 1. P. 3-72.

7. Mironov I. and Zhang L. Applications of SAT solvers to cryptanalysis of hash functions // LNCS. 2006. V. 4121. P. 102-115.

8. Biere A., Heule V., van Maaren H, and Walsh T. Handbook of Satisfiability. Amsterdam: IOS Press, 2009.

9. Богачкова И. А., Заикин О. С., Кочемазов С. Е., Отпущенников И. В., Семёнов А. А. Задачи поиска коллизий для криптографических хеш-функций семейства MD как варианты задачи о булевой выполнимости // Вычислительные методы и программирование. 2015. T. 16. С. 61-77.

10. Отпущенников И. В., Семёнов А. А. Технология трансляции комбинаторных проблем в булевы уравнения // Прикладная дискретная математика. 2011. №1. С. 96-115.

11. De D., Kumarasubramanian A, and Venkatesan R. Inversion attacks on secure hash functions using SAT solvers // LNCS. 2007. V.4501. P. 377-382.

12. Dobbertin H. The first two rounds of MD4 are not One-Way // Proc. 5th Intern. Workshop Fast Software Encryption. London, UK: Springer Verlag, 1998. P. 284-292.

13. Nadel A. and Ryvchin V. Efficient SAT solving under assumptions // LNCS. 2012. V. 7317. P. 242-255.

УДК 519.178 DOI 10.17223/2226308X/8/55

ВЫЧИСЛЕНИЕ ВЕРХНЕЙ ОЦЕНКИ ВЕРШИННОЙ ЦЕЛОСТНОСТИ ГРАФА НА ОСНОВЕ МИНИМАЛЬНЫХ СЕПАРАТОРОВ

В. В. Быкова, Ю. И. Кириллов

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

Ключевые слова: алгоритмы на графах, вершинная целостность графа, минимальные сепараторы.

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

Пусть G = (V, E) —простой связный граф с множеством вершин V и множеством рёбер E, при этом n = |V | ^ 1 —порядок графа G. Под вершинной целостностью (Vertex Integrity) графа G понимается числовой параметр I(G), вычисляемый по формуле

I (G)=min {|S| + w (G - S)}, (1)

где w (G — S) —порядок наибольшей компоненты связности графа G — S, который получается из G удалением всех вершин, входящих в S С V. Множество S, для которого достигается равенство в (1), принято называть I-множеством. В неполном связном графе G всякое I-множество является сепаратором этого графа [2]. Доказано [3], что задача вычисления вершинной целостности графа NP-трудная. Ввиду высокой вы-

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