для режима гаммирования безопасным является шифрование данных размером
231 блоков, т. е. 16 Гбайт;
для режима гаммирования с обратной связью безопасным является шифрование данных размером -у/264/3 блоков, т. е. ~ 18,475 Гбайт.
Таблица 2
Практические характеристики криптостойкости отечественных
режимов шифрования
Название режима шифрования Практическое значение AdvSnEd-cpa Значение а, обеспечивающее криптостойкость
Простой замены 1 1
Гаммирования < 4ст2/264 < 231
Гаммирования с обратной связью < 3ct2/264 < у/264/3
ЛИТЕРАТУРА
1. Bellare M. and Rogaway P. Introduction to Modern Cryptography. 2005. http://cseweb. ucsd.edu/~mihir/cse207/w-se.pdf
2. Goldwasser S. and Bellare M. Lecture Notes on Cryptography. 2001. http://cseweb.ucsd. edu/~mihir/papers/gb.pdf
3. Katz J. and Yehuda L. Introduction to Modern Cryptography. Boca Raton: Chapman& Hall/CRC, 2008.
УДК 519.7
О ВЫБОРЕ СЛАЙДОВЫХ ПАР В КОРРЕЛЯЦИОННОМ МЕТОДЕ КРИПТОАНАЛИЗА ШИФРА KeeLoq
О. Н. Лебедева
KeeLoq — блочный шифр, широко используемый в системах бесключевого удалённого доступа. Шифр был разработан профессором Г. Каном и запатентован ЮжноАфриканской компанией «Nanoteq» в середине 80-х. В 1995 г. фирма «MICROCHIP» приобрела KeeLoq у фирмы «Nanoteq» вместе с лицензионными правами.
Алгоритм KeeLoq [1] имеет 64-битный ключ и осуществляет шифрование 32-битных блоков открытого текста. В нём используются два регистра сдвига: один — длины 64 без функции обратной связи (для выработки подключа), другой — регистр сдвига длины 32 с нелинейной функцией обратной связи NLF от пяти переменных (непосредственно для шифрования). Блок открытого текста помещается в текстовый регистр. Шифртекстом является состояние регистра после 528 циклов с использованием регистра ключа. Пусть Vn = GF^ — множество всех n-битных слов; Y(i) = (y^i,... , Уо**) Е Е V32 и K3i) = (fcgg ,... , y(i)) Е V63 — соответственно состояния текстового регистра и регистра ключа после i тактов. Каждый цикл шифрования может быть описан следующим образом:
— вычисление очередного бита: ^ = NLF(y31, у2б , у2о , У2**, У3**) ® У 16 ® Уо** ® ^;
— сдвиг состояния текстового регистра: R3i+1) = (^,y31,... , У1*^);
— сдвиг состояния регистра ключа: K3 i+1) = (&0*\ ^бз,... , kl**).
Первый криптоанализ KeeLoq был опубликован только в феврале 2007 г. А. Богдановым [1]. Эта атака основана на слайдовой технике и линейном приближении нелинейной булевой функции, использующейся в KeeLoq. Криптоанализ имеет временную
сложность 252 и требует 16 Гбайт памяти. Позднее Богданов обновил свой метод, используя алгебраический криптоанализ для нахождения первых 16 битов ключа [2]. Улучшение привело к уменьшению временной сложности до 250,6.
В работе [1] Богданов описывает следующие шаги. Для каждого подключа К = = (к15,... , к0) и случайного 32-битного входа 10 € ^2 с помощью парадокса дней рождения угадывается промежуточный шифртекст О0 € ^2 после 64 циклов шифрования. Такая пара (10,00) называется слайдовой парой. Используя периодическую структуру ключа, в KeeLoq генерируются другие пары (/¿, О^) € (^32)2, г = 1,... , N — 1. Для успешной атаки их число должно быть около 28. Для каждого такого набора пар получаются линейные соотношения для неизвестных битов ключа с высокой вероятностью в связи с тем, что нелинейная функция обратной связи, использующаяся в KeeLoq, не является 2-устойчивой. Таким образом, можно определить (к47,..., к16) бит за битом. После этого решается треугольная система линейных уравнений для оставшихся битов ключа (к63,..., к48).
Отметим, что в методе А. Богданова для каждого подключа К1 = (к15,... , к0) по сути происходит полный перебор всевозможных пар (кандидатов на первую слайдовую пару (10, О0)) из случайного подмножества мощности 216 множества всех двоичных векторов длины 32 и для каждой такой пары (10,О0) выполняется корреляционный криптоанализ.
В данной работе предлагается на каждом шаге корреляционной атаки использовать найденные биты ключа для отсеивания неподходящих пар, а именно можно найти вероятностное соотношение между битами из правильной слайдовой пары и битами ключа, проверка которого позволяет для части неправильных пар остановить выполнение корреляционного криптоанализа уже на этом шаге. В этом соотношении используется линейное приближение нелинейной функции NLF, выполняющееся с вероятностью 5/8.
Например, связь бита у064) с битами на 16-м раунде выражается так:
»061) = у333) = N1^ (у332). у2Г. у2?2).»532).»132>) ® у162) ® у032) ® ^ =
= У(32) ф У(32) ф У(62) Ф у032) Ф к32 = У( 76) ф У( 56) Ф У317) Ф У( 66) Ф к32 = = у( 76) Ф у256) ф (у316).у266).у206) .у(16).у( 1 6)) Ф у(66) Ф У01 6) Ф к 16) ф у(66) ф кз2.
Таким образом, после того как будут найдены к16 и к32 на первом шаге корреляционной атаки, для отсеивания неправильных слайдовых пар используются биты ключа (к16. к15. .... к0) и к32.
На каждом шаге корреляционной атаки используется дополнительное соотношение для битов входного и выходного текста, что позволяет останавливать криптоанализ с вероятностью 5/8 для каждой пары, которая не удовлетворяет полученным соотношениям. Следующая таблица иллюстрирует этот процесс.
Шаг 0 1 2 15 16
Количество слайдовых пар 232 231 2 30 217 216
Найденные биты ключа 5 к о 2 3 6 7, к со со 6 4 ,0 3 7 4 31
Во второй строке указано количество пар, для которых будет выполняться следующий шаг корреляционного анализа. Например, изначально понадобится перебор
232 пар. Затем находятся биты ключа к16 и к32 на первом шаге корреляционной атаки, которые используются в соотношении между у064) и битами шифртекста после 16 циклов. Значит, можно не рассматривать пары, не удовлетворяющие этому соотношению.
Следовательно, число пар, для которых будет выполняться следующий шаг криптоанализа, сократится до 231, и т.д.
При выборе другого приближения нелинейной функции NLF можно добиться повышения вероятности нахождения правильной слайдовой пары.
В дальнейшем необходимо определить параметры улучшенного метода криптоанализа: временную сложность, требуемую память и т. д.
ЛИТЕРАТУРА
1. Bogdanov A. Cryptanalysis of the KeeLoq Block cipher // http://eprint.iarc.org/2007/ 055, 2007.
2. Bogdanov A. Attack on the KeeLoq Block Cipher and Authentication System // http:// rfidsec07.etsit.uma.es/slides/papers/paper-22.pdf, 2007.
УДК 519.7
О НЕВОЗМОЖНЫХ УСЕЧЁННЫХ РАЗНОСТЯХ XSL-АЛГОРИТМОВ БЛОЧНОГО ШИФРОВАНИЯ
М. А. Пудовкина
Идея использовать невозможные разности, т. е. разности с нулевой вероятностью, для определения ключа шифрования была предложена Л. Р. Кнудсеном [1] при анализе алгоритма блочного шифрования DEAL. Позже невозможные разности применялись для атак на алгоритмы блочного шифрования Skipjack [2], MISTY1 [3], AES [4], ARIA [5] и др.
Пусть Xх = X\0; S(X) — множество всех подстановок на множестве X; V — множество всех t-мерных векторов над GF(2); m = d ■ q; s0,...,sq—1 G S(Vd); Hd G G {Vd, GF(2d)}; a G Vd; нелинейное преобразование s : Vm А Vm есть s = (sq-1,..., S0), где Si G S(Vd); линейное преобразование a : Hd А Hd в стандартном базисе задаётся как
(aq— 1 ,i, . . . , a0,i) a (aq— 1 ,i, . . . , a0,i) ,
где a = (aij) — обратимая (q x д)-матрица над GF(2) (GF(2d)); a—1 = b = (bij);
A(j) = {i G {0,..., q — 1} : aji > 0} , B(j) = {i G {0,..., q — 1} : bji > 0} .
В работе рассматриваются алгоритмы блочного шифрования с раундовой функцией ge : Vm А Vm, заданной как age = (a ® в)s“ для всех в, a G Vm, и f(kl,...,kj) = = gk1 ... gkj — j-раундовая функция зашифрования. Предполагается, что раундовые ключи k1,... , ki выбираются случайно и равновероятно из Vm.
Зафиксируем номера координат {jb ... , jc} С {0,... , q — 1} , j < ... < jc. Положим
Л0'ъ ... , jc) = {a G Hd : ajt = ° t = 1,... , c} .
Множество разностей (Л(^,..., jc), Л(^,... , if)) называется невозможной усечённой разностью для преобразования v G S (Vm), если для любых векторов a G G ЛЛ ... , jc), в G Л(^,... , V) выполняется равенство pa,e(v) = 0, где
Pa,e(v) = 2—m ■ |{Л G Vm : (Л 0 a)v 0 Av = в}| .
В этом случае при v = f(k1,...,kj) будем использовать обозначение
Л(7ъ ... , jc) А? Л(il,... , V).