Введение
В современном мире остро стоит вопрос о конфиденциальности данных при обмене ими и их хранении, которая достигает за счет все возможных способов шифрования. Однако при появление новых алгоритмов шифрования начинают проводиться работы по изучению способов нарушить конфиденциальность данных, то есть ищут атаки на них.
В наше время широко распространены блочные алгоритмы шифрования, такие как AES, “Кузнечик” и др. Одним из потенциально эффективных способов проведения атак на них является линейный криптоанализ. Основную концепцию данного метода изложил Мицуру Мацуи (Mitsuru Matsui) в работе “Linear Cryptoanalysis Method for DES Cipher” [1] в 90х годах. Суть данного метода будет изложена в разделе 2 данной статьи.
В качестве примера эффективного использования данного метода представлен линейный криптоанализ блочного алгоритма шифрования NUSH [2], краткая справка по которому будет приведена ниже.
Основы линейного криптоанализа
Как было написано выше суть линейного криптоанализа изложена в “Linear Cryptoanalysis Method for DES Cipher”. При использование линейного криптоанализа предполагается, что известна структура шифра и что криптоаналитик обладает достаточной статистической выборкой “шифротекст-открытый ключ”, полученной на одном ключе.
После выполнения перечисленных выше требований структуру алгоритма заменяют простой линейной функцией. Как правило анализ линейных функций куда проще, чем нелинейных функций самого шифра, что может свести задачу анализа шифра к анализу его линейной модификации. Далее из полученной системы функций криптоаналитик угадывает биты ключа с определенной вероятностью.
Пусть скалярное произведение двоичных векторов по модулю 2. И пусть открытый текст, шифротекст и ключ соответственно.
Определение 1
Линейным приближением шифра называется соотношение L:
которое выполняется с вероятностью Величина преобладанием линейного соотношения, а векторы - называются масками.
Из определения несложно видеть, что для увеличения вероятности отгадывания ключа требуется увеличивать преобладание.
По мимо этого для приведенного ниже примера нам потребуется знание леммы Мацуи.
Лемма Мацуи (Pilling-up лемма, лемма “О набегании знаков”)
Пусть где - независимые случайные величины, принимающие значения из . Пусть
где . Тогдаслучайная величина принимает значение 0 с вероятностью , где
Следствие 1: если , где то итоговое преобладание равно нулю.
Доказательство можно найти по ссылке.
NUSH
В 2000 году был объявлен европейский исследовательский проект для определения безопасных шифровальных алгоритмов NESSIE одним из участников, которого выступал блочный алгоритм симметричного шифрования, разработанный Анатолием Лебедевым и Алексеем Волчковым для российской компании LAN Crypto – NUSH. Алгоритм имеет несколько вариантов, отличающихся количеством раундов и длиной ключа (64, 128, 192 и 256 битов).
Его отличительной особенностью от других участников являлось отсутствие S- и P-блоков, а само шифрование проводилось только с использованием арифметических операций (XOR, AND и т.д.). В результате чего процесс шифрования ожидаемо проходит быстро. Это легко показать, если вспомнить, что сложность битовых операций , где k – битовая длина модуля.
Шифрование
Пусть — длина шифруемого блока открытого текста . После чего выбирается по расписанию (start key) на основе ключа К. Затем побитово добавляется к исходному тексту: . На следующем этапе происходит задаваемых уравнениями, в которых (subKey) - раундовые подключи, # — побитовая конъюнкция или дизъюнкция, выбираемая в соответствии с расписанием, известные константы, — циклический сдвиг вправо на j бит:
Последняя итерация отличается от основных только отсутствием перестановки после вычисления выражений в правых частях равенств:
Выход: зашифрованный блок
Расшифрование
На первом итерации происходит
После чего происходит итерация
Линейный криптоанализ NUSH
Из алгоритма шифрования, приведенного выше, следует, что с вероятностью 1 выполняется
Тогда обозначим через булевую функцию. Легко можно убедиться, что сложение по модулю два не изменяется соотношение вероятностей для или . Таким образом мы имеем линейную апроксимацию с или для :
Используя (1) и (2) получаем линейную апроксимацию раундовой функции с вероятностью
где если # “AND” и если # “OR”.
Теперь получим связь между внутренними значениями открытого текста, шифротекста и ключа.
Рассмотрим связь между и между открытым текстом и ключом. Из алгоритма шифрования получаем, что , зависит от , , и . Здесь
означает последние 5 бит . Следовательно зависит от , , , , и . И эту зависимость можно выразить через функцию
:
Можно получить связь для и для открытого текста с ключом. Действую аналогичным образом получим, что зависит только от , , , , и .И эту зависимость можно выразить через функцию :
Можно получить связь для и для открытого текста с ключом. Действую аналогичным образом получим, что зависит только от , , , , , , и . И эту зависимость можно выразить через функцию :
Теперь определим связь между и для открытого текста с ключом. Из алгоритма расшифрования известно, что
Следовательно зависит только от. А они в свою очередь выражаются через и через . Прослеживая и дальше связь между промежуточными значениями получим, что зависят от и от .
Резюмируя последние пару абзацев получим, что зависит от , , , , , , , , , , , , . И эту зависимость можно выразить через функцию :
А зависимость для можно записать через :
Теперь перейдем непосредственно к линейному криптоанализу. Принимая во внимание (3) заметим, что 29-раундовая линейная апроксимация
содержит вероятность согласно лемме Мацуи. Эта линейная апроксимация может быть записана через введенные ранее функции
Из расписания ключей NUSH известно, что (11) содержит -бит ключа. Восстановим их по алгоритму, приведенному ниже.
Шаг 1. Для каждого кандидата в ключи через обозначим кол-во открытых текстов, удовлетворяющих (11).
Шаг 2. Если максимальное значение из всех , тогда сохранить .
Шаг 3. Остальные биты ключа ключа восстанавливаются, используя урезанную линейную апроксимацию раундов или методом исключения.
Вывод
В статье представлена основная концепция линейного криптоанализа и рассмотрен пример его применения в анализе алгоритма шифрования NUSH.
Литература
1. Mitsuru Matsui, Linear cryptoanalysis method for DES cipher, Advances in Cryptogy-Eurocrypt’93, Berlin: Springer-Verlag, 1993, 386-397.
2. Wu Wenling & Feng Dengguo, Linear cryptoanalysis of NUSH block cipher, Science in China (Seria F), February 2002, Vol. 45, № 1.
3. M. Heys, A Tutorial on Linear and Differential Cryptoanalysis, Cryptologia, June 2001, Vol. 26 №3.
4. https://www.youtube.com/watch?v=nEHVfeaPjNw