Научная статья на тему 'КОМПАКТНЫЙ ТРАНСЛЯТОР АЛГОРИТМОВ В БУЛЕВЫ ФОРМУЛЫ ДЛЯ ПРИМЕНЕНИЯ В КРИПТОАНАЛИЗЕ'

КОМПАКТНЫЙ ТРАНСЛЯТОР АЛГОРИТМОВ В БУЛЕВЫ ФОРМУЛЫ ДЛЯ ПРИМЕНЕНИЯ В КРИПТОАНАЛИЗЕ Текст научной статьи по специальности «Математика»

CC BY
69
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРИПТОАНАЛИЗ / SAT-РЕШАТЕЛЬ / АТАКА "УГАДАЙ-И-ВЫЧИСЛИ" / CRYPTANALYSIS / SAT-SOLVER / GUESS-AND-DETERMINE ATTACK

Аннотация научной статьи по математике, автор научной работы — Софронова Дарья Алексеевна, Калгин Константин Викторович

Представлен транслятор, позволяющий преобразовывать описание криптографической задачи (криптоанализ шифра или хэш-функции, поиск APN-функций) в КНФ. В дальнейшем SAT-решатель устанавливает истинность формулы и находит набор, выполняющий КНФ. Отличительные особенности данной разработки - универсальность, малый объём исходного кода (300 строк С++), легко модифицируемая и расширяемая реализация.

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

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

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

A COMPACT TRANSLATOR OF ALGORITHMS INTO BOOLEAN FORMULAS FOR USE IN CRYPTANALYSIS

The program for converting the description of the cryptographic task to CNF is presented. A SAT solver establishes the truth of the formula and finds the values of the variables after that. Features of this development are universality, a small code size (300 lines of C++), easily modifiable and extensible implementation.

Текст научной работы на тему «КОМПАКТНЫЙ ТРАНСЛЯТОР АЛГОРИТМОВ В БУЛЕВЫ ФОРМУЛЫ ДЛЯ ПРИМЕНЕНИЯ В КРИПТОАНАЛИЗЕ»

Вычислительные методы в дискретной математике

135

УДК 519.7 DOI 10.17223/2226308X/13/40

КОМПАКТНЫЙ ТРАНСЛЯТОР АЛГОРИТМОВ В БУЛЕВЫ ФОРМУЛЫ ДЛЯ ПРИМЕНЕНИЯ В КРИПТОАНАЛИЗЕ1

Д. А. Софронова, К. В. Калгин

Представлен транслятор, позволяющий преобразовывать описание криптографической задачи (криптоанализ шифра или хэш-функции, поиск APN-функций) в КНФ. В дальнейшем SAT-решатель устанавливает истинность формулы и находит набор, выполняющий КНФ. Отличительные особенности данной разработки — универсальность, малый объём исходного кода (300 строк С++), легко модифицируемая и расширяемая реализация.

Ключевые слова: криптоанализ, SAT-решатель, атака «угадай-и-вычисли».

В основе одного из методов анализа симметричных шифров лежит использование SAT-решателей. По алгоритму, задающему криптографическую функцию, строится КНФ. Если для данной КНФ удаётся найти выполняющий набор, то имеем решение задачи криптоанализа. SAT-задача — задача определения выполнимости логической формулы [1]. SAT-решатель — программа, которая ищет набор значений переменных, на котором формула истинна. Известно, что эта задача NP-полная. Несмотря на это, для множества практических задач SAT-решатели определяют выполнимость формул с тысячами переменных за приемлемое время. Для проведения криптоанализа с помощью SAT-решателя необходим механизм представления криптографических алгоритмов в виде КНФ в формате DIMACS.

На данный момент существует несколько разработок, позволяющих на выходе получать КНФ. Приведём краткое описание двух разработок, специализирующихся на криптоанализе шифров — Grain of Salt [2] и Transalg [3].

Transalg универсален и позволяет сводить к задаче выполнимости не только криптографические задачи, но и некоторые задачи биоинформатики. Шифр описывается на специальном си-подобном языке, после чего строится КНФ. В настоящее время при помощи Transalg получены SAT-кодировки многих симметричных алгоритмов, а также хэш-функций [4]. Являясь полноценным транслятором, Transalg анализирует текст описания с помощью лексического, синтаксического и семантического анализаторов, что делает его достаточно сложным для модификации и расширения.

Grain of Salt (GoS)—программный комплекс описания поточных шифров на базе регистров сдвига и последующего автоматического проведения атаки «угадай-и-вычисли», который разработал автор cryptominisat [5] M. Soos. Данный вариант хорошо оптимизирован с помощью карт Карно, поэтому выходная КНФ имеет меньший размер по сравнению с КНФ, полученной без оптимизации. Построены SAT-кодировки шифров Grain, Trivium, Bivium, Cryptol и Hitag2 [2].

В данной работе представлен программный комплекс, универсальный, легко расширяемый, простой и понятный для пользователей (в том числе на уровне реализации). Под криптографическими задачами далее подразумеваем не только задачи анализа шифров и хэш-функций, но и задачи поиска APN-функций, определения EA-эквивалентности булевых и векторных функций.

1 Работа выполнена при поддержке Математического центра в Академгородке (г. Новосибирск), соглашение с Министерством науки и высшего образования Российской Федерации №075-15-20191613, и Лаборатории криптографии JetBrains Research.

136

Прикладная дискретная математика. Приложение

Основная идея заключается в том, что криптографическая задача (алгоритм или множество ограничений) описывается на языке С+—Н с использованием специальных классов varBool и varInt, у которых переопределены все операторы. Полиморфизм в С+—Н позволяет переопределить работу операторов для новых типов так, что при выполнении некоторых действий над данными происходит формирование КНФ (в зависимости от операций добавляются разные конструкции) или реальное исполнение алгоритма. Через указание параметров при компиляции можно получить реализацию исходного алгоритма или генератор, получающий на выходе КНФ. Кроме того, есть возможность задать значения определённых переменных varBool до генерации КНФ, например для частичного задания битов ключа при проведении атаки «угадай-и-вычисли». При использовании С-интерфейса SAT-решателя cryptominisat можно запускать решатель без промежуточной записи КНФ в файл. Работа программы построена на операциях, обрабатывающих новые типы и неявно формирующих КНФ на основе логики операций. Немаловажным плюсом является то, что большинство шифров описаны на языке С. Построение задачи криптоанализа таких шифров легко осуществляется в проекте заменой типов данных в коде. Аналогичным образом преобразуются алгоритмы, описанные на языке TransAlg. Программа является гибкой, использование возможностей языка С+—Н (циклы, условные операторы, классы, шаблоны) позволяет описывать алгоритмы разной сложности. На данном этапе с использованием транслятора и описанных в нём механизмов регистров сдвига построены SAT-кодировки шифров, описанных в [2], а также генератор А5/1.

ЛИТЕРАТУРА

1. Otpuschennikov I., Semenov A., Gribanova I., et al. Encoding cryptographic functions to SAT using TRANSALG system // Proc. ECAI'16. IOS Press, 2016. P. 1594-1595.

2. BiereA., Heule M., Maaren H., and Walsh T. Handbook of Satisfiability. IOS Press, 2009. 966 p.

3. 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.

4. Soos M., NohlK., and Castelluccia C. Extending SAT solvers to cryptographic problems // LNCS. 2009. V. 5584. P. 244-257.

5. Soos M. Grain of salt — an automated way to test stream ciphers through SAT solvers // Tools. 2010. V. 10. P. 131-144.

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