УДК 004.056.55
СТАТИСТИЧЕСКИЙ АНАЛИЗ БЛОЧНОГО ШИФРА MARS
А.И. Пестунов
Институт вычислительных технологий СО РАН Введение
Современная информатика широко использует различные системы защиты информации. Одним из наиболее распространенных вариантов является использование блочных шифров. Любой шифр представляет собой определенное преобразование (открытого) текста, которое зависит от секретного ключа. При использовании блочного шифра текст предварительно разбивается на блоки фиксированной длины, и эти блоки шифруются. Большинство современных блочных шифров включают в себя три алгоритма: развертывание пользовательского ключа в массив ключей, шифрование и дешифрирование. Шифрование состоит из нескольких относительно простых функций, называемых раундами шифрования, они повторяются R раз. На каждом раунде используются ключи из массива ключей. Для дешифрирования, как правило, требуется выполнить раунды в обратном порядке. Чем больше раундов выполнено, тем сложнее взломать шифр, но в то же время шифрование происходит медленнее. По этим причинам создатели шифра рекомендуют определенное количество раундов, обеспечивающее как надежность, так и быстродействие алгоритма.
Нет иного способа исследования надежности шифра, кроме как пытаться строить атаки на него. Построить атаку - это найти любые недостатки у шифра, главной же целью является поиск секретного ключа. Серьезные выявленные недостаггки свидетельствуют о небезопасности шифра и о его неприменимости на практике. Далеко не всегда удается построить атаку на все R раундов шифра, поэтому интерес представляет даже атака на Я, <R раундов, которая впоследствии, возможно, распространится и на весь шифр.
О важности такого рода исследований для нынешнего мира говорит то, что за последние годы пошли несколько конкурсов на стандарты шифрования: американский AES [1], японский CRYPTREC [2], европейский NESSIE [3]. В течение нескольких лет проходило исследование представленных алгоритмов с целью определения лучших. Одним из финалистов конкурса AES был шифр MARS [4]. На сегодняшний день этот шифр можно назвать малоисследованным, это объясняется тем, что его структура достаточно сложная: он состоит из 32 раундов четырех различных типов, по восемь каждого типа. На данный момент нет опубликованных результатов о реализованных атаках на MARS. Известные методы его взлома требуют нереальных вычислительных ресурсов.
В этой работе приводятся результаты исследования шифра MARS с помощью статистического теста "Стопка книг" [5]. Одним из требований, предъявляемым к блоковым шифрам является равномерность распределения зашифрованной последовательности, если шифруются различные блоки. Это значит, что любой бит принимает значение 0 или 1 с ве-
роятностью 1/2 независимо от других. Показано, что последовательность, зашифрованная с помощью 8 раундов этого шифра отличима от случайной на длине 2". В англоязычной литературе поиск статистических недостатков шифра называется Distinguishng attack.
Описание шифра MARS и обзор результатов
Шифр MARS оперирует с блоками длины 128 бит, размер пользовательского ключа может быть 128, 192 или 256 бит. Перед шифрованием пользовательский ключ преобразуется в массив из сорока 32 битных ключей. Для шифрования блока необходимо выполнить следующие действия:
1 Представить 128 битный блок в виде четырех 32 битных подблоков.
2. Сложить подблоки с первыми четырьмя ключами из массива ключей.
3 . Преобразовать блок с помощью восьми FORWARD MIXING раундов.
4. Преобразовать блок с помощью восьми FORWARD CORE раундов и массива ключей.
5. Преобразовать блок с помощью восьми BACKWARD CORE раундов и массива ключей.
6.Преобразовать блок с помощью восьми BACKWARD MIXING раундов.
7. Найти разность подблоков и последних четырех ключей из массива ключей.
Псевдокод процедуры шифрования можно записать так:
Y10J=XIÖJ+KEYS10J; Yl 1 J=X| 1 J+KEYSl 1 ];-
Y[2]=X[2]+KEYS[2]; Y[3]=X[3]+KEYS[3];
For i=0 To 7 Do Y=Fmix(i, Y);
For i=0 To 7 Do Y=Fcore(i, Y, KEYS[4+4*i]);
For i=0 To 7 Do Y=Bcore(i, Y, KEYS[20+4*i]);
For i=0 To 7 Do Y=Bmix(i, Y);
Y[0]=Y[0]-KEYS[36] ; Y[ 1 ]=Y[ 1 ]-KE YS[37];
Y[2]=Y[2]-KEYS[38];Y[3]=Y[3]-KEYS[39];
После выполнения описанных действий блок Y будет результатом шифрования блока X. Для расшифровки нужно произвести практически те же действия с немного измененными FORWARD CORE и BACKWARD CORE раундами.
Из имеющихся на сегодняшний день работ по криптоанализу шифра MARS можно выделить работу [б], в которой описаны атаки на шифр MARS и приведены конкретные требования вычислительных ресурсов для их реализации. В частности, для атаки на 8 раундов (по 2 каждого типа) шифра MARS требуется 225 открытых текстов, 2м байт памяти и 2й* шифрований. Приведена также атака на 21 раунд (16 MIXING и 5 CORE), требующая 8 открытых текстов, 2232 шифрований и 22Э6 байт памяти. В работах [7, 8] утверждается, что 12 раундов этого шифра небезопасны, но это только вычисление, основанное на теоретических результатах.
Краткое описание теста "Стопка книг"
Исследовать свойства шифра MARS мы будем с помощью теста "Стопка книг". Приведем его краткое описание. Тест "Стопка книг" предназначен для проверки гипотезы о том, что элементы выборки Z=(zrzr...,zfJ из алфавита А=/а;, av...,aj имеют равномерное распределение, т.е. они независимы и
Р(z„ = а,)= p°=\/S;n = i = 1 ,...,S.
Другими словами, элементы выборки имеют равномернее распределение. Перед тестированием в алфавите А фиксируется произвольный порядок, который меняется после анализа каждого выборочного элемента следующим образом: буква 2п получает номер 1; номера тех букв, которые были меньше номера этой буквы, увеличиваются на 1; у остальных букв номера нг меняются. Формально эту процедуру можно описать так:
пусть <0 (я) - номер буквы а е А после анализа элементов (2г...,гп1), тогда
со
1, если zn = а; м"(а)+1, если ©"(а)<©"(г,,) а>"(а)если ю"(а)>ш"(гл)
Такая конструкция похожа на стопку книг, если считать, что номер книги совпадает с ее положением в стопке. Книга извлекается из стопки и после чтения кладется наверх, ее номер становится первым. Книги, которые первоначально были над ней, сдвигаются вниз, а остальные остаются на месте. В отличие от многих других тестов (в частности, критерия хи-квадрат) здесь подсчитывается не частота встречаемости букв в выборке, а частота встречаемости номеров букв при описанном упорядочивании: перед тестированием множество всех номеров {1,...,5} разбивается на две (в общем случае может быть и больше) непересекающиеся части А1={1,...,А-} и А2={/Г+1,...Д}. Здесь
К - это параметр. Затем по выборке Ъ подсчитывается количество номеров щп (7п), принадлежащих подмножеству А,, т е. количество попаданий букв в "верхнюю часть" "стопки книг". (ЛГ— у^)—это, очевидно, количество попаданий в "нижнюю часть". Далее вычисляется статистика
NPI лг(1-/;) 1 1 "
и если х меньше критического уровня Хи-а, то гипотеза Н0 принимается, иначе - отвергается. Величина Х1.1-0 является квантилем распределения хи-квадрат уровня значи-
мости
(1 — а ) с одной степенью свободы. Степень свободы одна, так как множество индексов
разбивается на два подмножества
Исследование статистических свойств шифра MARS с помощью теста "Стопка книг"
Теперь опишем то, как составлялась выборка для экспериментов. Рассмотрим последовательность блоков А"., где и=0,1,2,3. Это блоки, у которых подблоке
номером и равен /', а остальные подблоки нулевые. Например, ^=(7,0,0,0), ^=(0,0,0,5). Обозначим за у * подблок зашифрованного блока Л* с номером v. Например, зашифровав Л°7, мы получим блок (У)07,У)17,У>'27,У-37). С помощью 100 случайных ключей сформируем 100 выборок вида (у"0, ...,yvv]) с фиксированными параметрами и и v. Для каждой из них вычислим величины х2 и посчитаем U95% и Uw_ означающее сколько раз из 100 эта величина превысила квантили распределения хи-квадрат уровней значимости соответственно 95% и 99%. Другими словами, сколько раз выборки не прошли тест.
Когда шифр состоит из однотипных раундов, то уменьшение количества раундов производится естественным образом: исследуется шифр, состоящий из одного раунда, двух, трех и т.д. Шифр MARS состоит из раундов различного типа, поэтому сократить их количество можно разными способами:
1. Шифрование происходит только с помощью FORWARD MIXING раундов;
2. Шифрование происходит только с помощью BACKWARD MIXING раундов;
3. Шифрование происходит только с помощью FORWARD CORE раундов;
4. Шифрование происходит только с помощью BACKWARD CORE раундов;
5. Производится симметричное сокращение раундов (по одному или по два раунда каждого типа).
В результате экспериментов было замечено, что наибольшие отклонения получаются при м=3. Значения V разные для разных модификаций шифра. В таблице показаны результаты описанных экспериментов.
R N U95% U99% x'av К S
FORWARD MIXING раунды и=3, v-2
2 2* 100 100 139.5 2« 8
4 г4 100 100 139.5 2' 8
6 2м 84 67 10.8 2" 24
8 2" 70 43 7.8 2" 32
BACKWARD MIXING раунды и=3, v=l
2 2' 100 100 139.5 2' 8
4 Y 100 100 139.5 2* 8
6 2« 100 99 29.5 2' 8
8 2й 41 25 4.4 2" 24
FORWARD CORE раунды u=3, v-3
1 2« 100 100 139.5 2« 8
3 2* 100 100 139.5 2* 8
5 2м 28 17 892.1 2" 32
BACKWARD CORE раунды u=3, v=0
1 2' 100 100 139.5 2* 8
3 2' 100 100 139.5 2* 8
S 2' 100 100 85.1 2* 8
Симметричное сокращение u=3, v=0
1+1+1+1 2* 100 100 139.5 2' 8
2+2+2+2 2" 51 29 6.1 2» 32
4К байт треб>ется для реализации теста "Стопка книг" на ЭВМ, х*т - средше значение величины зг вычисленное по 100 выборкам.
Литература
1. Advanced encryption algorithm (AES) development effort, http://csrs.nist.gov/ encrvp-tion/aes. 1997-2000.
2. CRYPTREC project. http://www.ipa.go.jp/securitv/enc/CRYPTREC. 2000-2002.
3.] New European Schemes for Signatures, Integrity, and Encryption, Deliverables of the NESSIE project, http://www.cosic.esat.kuleuven.ac.be/nessie. 2003
4. IBM Corporation. MARS - a candidate cipher for AES. 1998.
5. Рябко Б.Я., Пестунов А.И. "Стопка книг" как новый статистический тест для случайных чисел // Пробл. передачи информ. Т. 40, вып. 1, с. 73-78. 2004.
6.] J. Kelsey, В. Schneier. MARS Attacks! Preliminary Cryptanalysis of Reduced-Round MARS Variants. In proceedings of the Third AES Candidate Conference. 2000.
7. E. Biham, V. Furham. Impossible differentials on 8-Round MARS Core. In proceedings of the Third AES Candidate Conference. 2000.
8. E. Biham. A Note on Comparing AES Candidates. In proceedings of the Second AES Candidate Conference. 1999
Туйшдеме
Бул жумыста AES бащау мэреа MARS шифрыныц статистикалык, мэнт зерттеу нэтижесг emKisuiedi. Бул шифрда жарияланган бурынгы зерттеу жумыстарында бул шифр тек теориялыц тургыда бопгандыцтан, ресурстарды есептеу талабы бойынша жузеге аспады.
Resume
The investigation outcomes of the statistical characteristic cipher MARS - the finalist of the competition ASE is given in this work. It is shown that the consequence, which is coded with help of8 rounds of this cipher - is distinguished from a random with the help of statistical text "pile of books "in the length of218. The early published investigations ofthis cipher were only theoretical with unreal demands of computer powers.