Научная статья на тему 'Дифференциальный криптоанализ блочного шифра mars'

Дифференциальный криптоанализ блочного шифра mars Текст научной статьи по специальности «Математика»

CC BY
742
107
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
БЛОЧНЫЙ ШИФР / ДИФФЕРЕНЦИАЛЬНЫЙ КРИПТОАНАЛИЗ / ADVANCED ENCRYPTION STANDARD / MARS / BLOCK CIPHER / DIFFERENTIAL ATTACK

Аннотация научной статьи по математике, автор научной работы — Пестунов Андрей Игоревич

Предлагается дифференциальная атака на шифр MARS, который является финалистом конкурса AES. Эта атака является более эффективной, чем ранее известные, и позволяет провести криптоанализ урезанной версии шифра MARS, использующей 752 бита подключей, в то время как лучшая из ранее известных атак позволяет провести криптоанализ урезанной версии шифра MARS, использующей только 682 бита подключей. Вероятность успеха предлагаемой атаки составляет более 99%, а ее сложность меньше сложности полного перебора ключей.

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

In this work we present a differential attack on MARS which breaks 8 core and 8 mixing rounds with preand post-whitening. This attack is based on a new 8-core round differential characteristic with probability 2-98 and allows to recover more subkeys bits than previously published attacks (752 instead of 682) faster than exhaustive key search. The success probability of the attack is more than 0,99. The attack requires 2105 chosen plaintexts, 2109 bytes of memory and 2231 encryptions.

Текст научной работы на тему «Дифференциальный криптоанализ блочного шифра mars»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

2009 Математические методы криптографии №4(6)

МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ

УДК 519.7

ДИФФЕРЕНЦИАЛЬНЫЙ КРИПТОАНАЛИЗ БЛОЧНОГО ШИФРА MARS

А. И. Пестунов

Институт вычислительных технологий СО РАН, г. Новосибирск, Россия

E-mail: pestunov@gmail.com

Предлагается дифференциальная атака на шифр MARS, который является финалистом конкурса AES. Эта атака является более эффективной, чем ранее известные, и позволяет провести криптоанализ урезанной версии шифра MARS, использующей 752 бита подключей, в то время как лучшая из ранее известных атак позволяет провести криптоанализ урезанной версии шифра MARS, использующей только 682 бита подключей. Вероятность успеха предлагаемой атаки составляет более 99%, а ее сложность меньше сложности полного перебора ключей.

Ключевые слова: блочный шифр, дифференциальный криптоанализ, Advanced Encryption Standard, MARS.

Введение

Блочные шифры являются важным элементом в современных системах защиты информации, поэтому в последние годы имели место несколько проектов, направленных на их исследование [1-3]. Одним из наиболее влиятельных проектов является Advanced Encryption Standard (AES) [1]. Типичный блочный шифр преобразует открытый текст, представленный в виде последовательности битов (нулей и единиц), по блокам фиксированной длины s, чаще всего s равно 64 или 128 бит. Секретный ключ также представляет собой битовую последовательность (обычно длиной 128 или 256), из которой по определенному для каждого шифра механизму получается набор из R подключей. Процедура шифрования носит итеративный характер и заключается в R-кратном выполнении некоторого относительно «слабого» преобразования, которое зависит от своего подключа и называется раундом шифрования. Раунды могут быть как одинаковыми, так и различными. Чем больше их выполнено, тем надежней, но медленней становится шифр, поэтому его создатель определяет такое количество раундов, которое обеспечивает и безопасность, и быстродействие алгоритма.

Исследовать безопасность криптоалгоритмов призван раздел криптологии, называемый криптоанализом. Криптоанализ блочных шифров подобен соревнованию между криптоаналитиками, которые стараются найти неизвестный секретный ключ для упрощенных версий шифра, по возможности более близких к исходному варианту. Например, для шифра, состоящего из 20 раундов, криптоанализ 12 раундов считается продвижением в анализе шифра, если ранее удавалось найти ключ только для версии шифра, состоящей из 10 раундов. Заметим, что знание всех подключей блочного шифра эквивалентно знанию секретного ключа, поскольку в шифровании участвуют именно подключи, а секретный ключ используется только для их вычисления. Алгоритм нахождения ключа или подключей называется атакой. Даже если атака такова,

что она не осуществима на практике, но ее сложность меньше сложности полного перебора ключей, это является важным сертификационным недостатком шифра [4].

На сегодняшний день не существует цельной теории, в рамках которой можно было бы гарантировать безопасность того или иного блочного шифра, поэтому силу шифра можно оценить только на основе предложенных атак на него. Например, 20-раундовый шифр, имеющий атаку на 5 раундов, может быть признан безопасным, а имеющий атаку на 19 раундов вряд ли выдержит атаки криптоаналитиков в ближайшие годы.

Для финалиста конкурса AES шифра MARS [5] подсчитывать количество раундов не совсем корректно, поскольку половина раундов этого 32-раундового шифра — раунды перемешивания — не снабжаются подключами и, следовательно, не несут в себе такой криптографической силы, как раунды ядра, снабженные двумя подключами. Кроме того, в шифре присутствуют процедуры пред-отбеливания (pre-whitening) и пост-отбеливания (post-whitening), которые также используют подключи. По этим причинам при сравнении атаки, представленной в этой работе, с ранее известными результатами подсчитывается не количество раундов, а количество раскрытых битов подключей.

В таблице показано, что новая атака позволяет атаковать такой вариант шифра MARS, который использует 752 бита подключей, в то время как лучшая из ранее известных атак — только 682. Отметим, что шифр MARS имеет 256-битовый секретный ключ, и все атаки, приведенные в таблице, действуют быстрее, чем полный перебор ключей такой длины.

Лучшие результаты криптоанализа шифра MARS

Найден- Раунды Отбеливания Сложность

ные биты подключей Всего Ядра Перемеши- вающие Пред- Пост- Блоки Память, байт Шифрова- ния Источ- ник

5бб 21 5 1б + + 23 2236 2232 [б]

5бб 21 5 1б + + o Ю 2 2197 2247 [б]

б28 12 б б + + 9 6 2 2 73 2197 [б]

б82 11 11 0 - - 265 269 2229 [7]

752 1б 8 8 + + 2105 2109 2231 Данная работа

Используемые обозначения:

A := B

a © b a Ш b a Щ b a В b

a <<< n

А присвоить В побитовый хог сложение по модулю 232 умножение по модулю 232 вычитание по модулю 232 поворот а влево на п бит

Sn —

(ao, a1, a2, a3) —

(ao, ?, ?, a3) —

31-й бит —

32-битовое слово, которое имеет 1 на п-й позиции и нули на остальных 128-битовый блок, поделенный на четыре 32-битовых слова блок, где некоторые слова неизвестны старший бит в слове

1. Краткое описание дифференциального криптоанализа

Основной объект, который исследуется в дифференциальном криптоанализе, — это пары блоков текста А и В с определенной разностью А®В [8]. Если информация о том, как связаны входная разность (между блоками открытого текста) и выходная разность (между блоками шифртекста), отсутствует, то все выходные разности равновероятны. Однако если (как-то) удается установить, что некоторая входная разность А;пр приводит к некоторой выходной разности Аои4 с вероятностью р большей, чем остальные, то это может быть использовано для отыскания подключей шифра. Пара (А;пр, Аои4) называется дифференциалом, а совокупность дифференциалов на различных раундах

называется характеристикой. Если Aout содержит неизвестные биты, то дифференциал называется усеченным [9]. Далее дифференциал обозначается так:

Ainp ^ Aout-

p

Например, для совершенного шифра со 128-битовым блоком при любой входной разности выходная разность примет некоторое фиксированное значение с вероятностью 2-128. Таким образом, если в процессе анализа шифра обнаружится, что определенная входная разность приводит к определенной выходной разности с вероятностью больше чем 2-128 (например, 2-100), то эта информация может быть использована с целью отыскания его подключей. Количество текстов, требуемых для реализации атаки, пропорционально 1/p.

2. Описание шифра MARS

Опишем шифр MARS в объеме, достаточном для понимания статьи (см. полную спецификацию в [5]).

Общая структура шифра MARS. MARS оперирует со 128-битовыми блоками, секретный пользовательский ключ имеет длину до 256 бит. Перед шифрованием этот ключ преобразуется в массив из сорока 32-битовых подключей K0,...,K3g. Каждый блок открытого текста A представляется в виде четырех 32-битовых слов (а0, а1, а2, а3) и подвергается следующим преобразованиям:

— пред-отбеливание: а0 := а0 Ш K0; а1 := а1 Ш K1; а2 := а2 Ш K2; а3 := а3 Ш K3;

— 8 прямых раундов перемешивания;

— 8 прямых раундов ядра;

— 8 обратных раундов ядра;

— 8 обратных раундов перемешивания;

— пост-отбеливание: а0 := а0 В K36; а1 := а1 В K37; а2 := а2 В K38; а3 := а3 В K39.

Описание функции E. Основную криптографическую силу шифру MARS придает функция E, которая в качестве аргументов принимает одно 32-битовое слово IN и два подключа: K + и Kх. На выходе эта функция дает три 32-битовых слова: L, M и R (рис. 1). Важно заметить, что подключи Kх на всех раундах имеют только 30 неизвестных бит, поскольку согласно алгоритму их получения два младших бита этих подключей всегда равны 1. Слова L, M и R в течение выполнения функции E преобразуются следующим образом:

R := ((IN <<< 13) И Kх) <<< 5;

M := IN Ш K +; L := M;

M := M <<< (R mod 32); M — выход;

L := S(L mod 512) ф R; (S — это S-бокс, отображающий 9 бит в 32 бита);

R := R <<< 5; L := (L ф R) <<< (R mod 32); L — выход; R — выход.

Раунды ядра шифра MARS. Каждый из 16 раундов ядра (рис. 1) осуществляет следующее преобразование блока: слово а0 вводится в функцию E (как IN) и затем поворачивается на 13 бит влево. Три выходных слова этой функции (R, M и L) изменяют оставшиеся три слова блока:

а1 := а1 Ш L; а2 := а2 Ш M; а3 := а3 ф R; (прямой раунд ядра); а1 := а1 ф R; а2 := а2 Ш M; а3 := а3 Ш L; (обратный раунд ядра); завершается раунд перестановкой слов: (а0, а1, а2, а3) := (а1, а2, а3, а0).

ao

13

a2

a3

<< <

E R

L П M

П г 1

—+ э—

ao

a1

a2

13

<<<

L E

M R Ф ■

г і

—г

1

<<

IN

K>

K+

S -Ф

<<<

R

M

Ф<<<

L

Прямой раунд ядра

Обратный раунд ядра

Функция E

і

<<< — поворот влево

® — побитовое сложение по модулю 2 <<< — поворот влево на п бит 8 — отображение 9 бит в 32

Щ — умножение по модулю 232 Ш — сложение по модулю 232

K>

подключ умножения

E — функция E

K + — подключ сложения

Рис. І. Раунды ядра и функция E шифра MARS

3. Дифференциальная характеристика для восьми раундов

Опишем построение дифференциальной характеристики

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

(0 0 0 218) 3re-Whitening + 3 rounds^ (218 q q q) 1 round (29 ? ? 231) 1 roundd

P=1/2 ’ ’ ’ p=1 ’ p=1 (1)

(? ,? ,? , 222) = (0 , 0 , 0 , 222) nnnnnd (222, 0 , 0 , 0) , p=2-96 p=1/2

которая покрывает 8 раундов ядра шифра MARS с вероятностью 2-98. Первые три раунда могут быть как прямыми, так и обратными, последние пять — только обратными. Эта характеристика получается путем объединения нескольких дифференциалов. Дифференциал 1. Построим дифференциал

(0, 0, 0, 218) pre-whitening + 3 roundsy (218, о, о, 0), (2)

Р=1/2

который покрывает пред-отбеливание и три раунда ядра (прямые или обратные — значения не имеет). Для этого рассмотрим пару блоков A и B с разностью (0, 0, 0, 218) на входе шифра перед пред-отбеливанием, т. е. а3 ф b3 = 218. В этом случае выходная разность после пред-отбеливания и трех раундов ядра будет ((а3 Ш z) ф (b3 Ш z), 0, 0, 0), где z — это сумма первого подключа и выходов функции E на трех расматриваемых раундах. Если а3 ф b3 = 218, то вероятность того, что (а3 Ш z) ф (b3 Ш z) = 218, равна 1/2 (данный вопрос рассматривался, например, в [10]). Этот дифференциал является начальным в (1).

Дифференциал 2. Аналогичные рассуждения позволяют построить следующий дифференциал:

(О, О, О, 222)

22 3 rounds

Р=1/2

(2 , О, О, О).

Этот дифференциал является заключительным в (1) Дифференциал 3. Дифференциал

(218, О, О, О)

p=1

(29, ?, ?, 231)

начинается с выходной разности (218, О, О, О) первого дифференциала и покрывает один обратный раунд ядра.

Для его построения заметим, что разность 218 находится в первом слове, которое попадает в функцию E. Эта разность поворачивается на 13 бит влево и становится равной 231. Далее она проходит через умножение на подключ с вероятностью 1, т. е. после умножения на подключ двух слов с разностью 231 они будут иметь такую же разность с вероятностью 1. За умножением следуют два поворота на 5 бит, т. е. суммарный поворот осуществляется на 10 бит, что приводит к разности (?, ?, 29) на выходе функции E.

Выходные разности для двух оставшихся слов M и L могут быть частично установлены, но после следующего раунда уже невозможно будет сказать ничего определенного, их точные значения в дальнейшем не требуются, поэтому считаем их неизвестными. В итоге после рассмотренного одного обратного раунда ядра получим выходную разность (29, ?, ?, 231).

Дифференциал 4. Дифференциал

(29, ?, ?, 231) 1 33uri,^> (?, ?, ?, 222) (5)

’ ’ ’ p=1 ’ ’ ’

начинается с выходной разности (29, ?, ?, 231) третьего дифференциала и покрывает

один обратный раунд ядра. Этот дифференциал получается, если проследить за пере-

становкой слов в обратном раунде ядра.

Объединение дифференциалов. Чтобы получить характеристику (1), необходимо объединить построенные дифференциалы. Перед этим заметим, что вероятность того, что (?, ?, ?, 222) = (О, О, О, 222), равна 2-96. Данный факт следует из того, что информации о неизвестной 96-битовой разности нет, поэтому можно лишь подразумевать, что она принимает любое значение с вероятностью 2-96 (подобные идеи использовались в [11] при построении атаки на AES).

Таким образом, вероятность характеристики (1) равна произведению вероятностей входящих в нее дифференциалов и 2-96, что составляет 2-98.

4. Атака на MARS

Опишем атаку на шифр MARS, состоящий из пред- и пост-отбеливаний, 8 обратных раундов ядра и 8 обратных раундов перемешивания. Таким образом, атакуется версия шифра, состоящая из отбеливаний и 16 раундов (с 17-го по 32-й). Данная версия шифра MARS использует 752 бита подключей. Атака, направленная на их отыскание, основана на дифференциальной характеристике (1).

Атака выполняется в два этапа: сначала — с целью определения подключей постотбеливания, затем — с целью определения подключей раундов ядра.

4.1. Атака на подключи п о с т - о т б е л и в а н и я

Для удобства рассмотрим четыре 32-битовых подключа для пост-отбеливания как один 128-битовый подключ. Первым и самым трудоемким этапом атаки является определение этого подключа. Положим также, что X = MARS(A) — это шифрование блока A в блок X с помощью шифра MARS, состоящего из пред-отбеливания, восьми раундов ядра, которые покрываются характеристикой, восьми обратных раундов перемешивания и пост-отбеливания.

Описание атаки. Атака работает наподобие шестислойного фильтра. Перебираются все возможные 2128 подключей пост-отбеливания и пропускаются через этот

фильтр. Решающее свойство фильтра заключается в том, что правильный подключ успешно проходит все шесть слоев, а ни один из неправильных подключей-кандидатов этого сделать не может. Атака реализуется в несколько шагов:

1. Сформировать 6 групп различных пар блоков Ab, Bb (b = 1,..., 6; i = 1,..., 2101) с фиксированной разностью Ab ф Bb = (0,0, 0, 218). Эта разность является входной разностью характеристики (1).

2. Для каждой из пар Ab, Bb запросить пару шифртекстов Xif = MARS(Ab) и Yif = MARS(Bb), полученные 6 • 2101 пар шифртекстов сохранить в памяти.

3. Перебрать все возможные значения искомого подключа key Е {0,..., 2128 — 1} и для каждого из них выполнить следующие действия:

а) b := 1;

б) с помощью пост-отбеливания подключом key и 8 обратных раундов перемешивания расшифровать сохраненные в памяти пары шифртекста из группы b и получить пары Pb и Qb;

в) если Pf ф Qb = (0, 0, 0, 222) для всех i = 1,..., 2101, то key — это неправильный подключ-кандидат. Отбросить его и перейти к п. 3, где выбрать следующий подключ-кандидат;

если хотя бы одна из пар обеспечивает условие Pb ф Qb = (0, 0, 0, 222), то перейти к п. г;

г) если b < 6, то b := b +1 и перейти к п. б; иначе — к п. д;

д) b = 6, и подключ-кандидат прошел все шесть слоев фильтра. Это правильный подключ.

Вероятность успеха атаки. Вычислим вероятность того, что все неправильные подключи-кандидаты отброшены, а правильный 128-битовый подключ остался.

Поскольку пара Xb, Yif, частично расшифрованная с неправильным подключом, не подчиняется дифференциалу

(0 0 0 218) рте - whitening + 8 rcnmds^ 22 0 0 0)

’ ’ ’ 8=2 - 98 ’ ’ ’ ’

то разность PbфQb принимает любое значение (включая и (222 , 0 , 0 , 0)) равновероятно, т. е. с вероятностью 2-128. Вероятность получить такую разность среди 2101 пар прибли-

0 — 27

зительно равна 2 27, а вероятность получить такую разность сразу в шести группах — 2-162. Значит, вероятность того, что хотя бы один неправильный подключ-кандидат из 2128 — 1 пройдет шесть слоев фильтра, составляет примерно 2-34.

Пара Xb, Yb, частично расшифрованная с правильным подключом, подчиняется указанному дифференциалу, следовательно, PbфQb = (0, 0, 0, 222) с вероятностью 2-98, и вероятность получить такую разность хотя бы раз среди 2101 пар равна примерно

0,999665 (см. распределение Пуассона [12]). Значит, вероятность получить такую разность во всех шести группах сразу приблизительно равна 0,99799.

Сложность атаки на подключи пост-отбеливания. Для реализации описанной части атаки необходимо примерно 2233 частичных 8-раундовых операций расшифрования, что эквивалентно 2231 операциям шифрования полным шифром MARS. Также требуются 2105 выбранных открытых текстов и 2109 байт памяти, чтобы их хранить.

4.2. Атака на подключи раундов ядра

После того как 128-битовый подключ пост-отбеливания установлен, все хранящиеся в памяти шифртексты необходимо расшифровать на пост-отбеливании и на 8 не

снабженных подключами обратных раундах перемешивания. После этого шифртек-сты оказываются зашифрованными с помощью шифра MARS, состоящего из пред-отбеливания и восьми раундов ядра. Применяя дифференциалы, образующие характеристику (1), нужно реализовать аналогичную атаку, перебирая подключи раундов ядра один за другим. Для определения подключа последнего раунда необходимо использовать дифференциал

(0 0 0 218) ore-w00—i— + 8 r—ndsd (о 222 о о)

p=2-98

для определения подключа предпоследнего раунда необходимо использовать дифференциал

(0 0 0 218) ore-иі0-—і— + 8 r—ndsd (Q Q 222 о)

p=2-98

затем —

(0 0 0 218) pre-whitening + 5 rounds^ (^ ^ ^ 222)

(, , , ) -= 1/2 >(■,■,■, ),

(0 0 0 218) Pre-whitening + 4 rounds) (29 ■ ■ 231)

( , , , ) -= 1/2 ( , ■, ■, ^

(0 0 0 218) pre-whitening + 3 rounds, (218 о о o)

( , , , ) o= 1/2 ( , , , ^

(0 0 0 218) Pre-whitening + 2 rounds (Q 218 o o)

( , , , ) o= 1/2 ( , , , ^

(0 , 0 , 0 , 218 ) 088--OoOooinO + 1 8--^ (0, 0, 218, 0),

P=1/2

(0 , 0 , 0 , 218 ) 088-o0uoooo^ (Q, Q, Q, 218).

P=1/2

После определения всех раундовых подключей подключи для пред-отбеливания вычисляются путем решения системы линейных уравнений.

Сложность атаки на подключи раундов ядра и сложность всей атаки.

В каждый раунд ядра вводятся два 32-битовых подключа, в одном из которых два младших бита всегда равны 1, следовательно, перебирать нужно 62-битовые подключи. Это существенно меньше, чем перебор 128-битовых подключей пост-отбеливания, поэтому сложность поиска раундовых подключей ничтожно мала по сравнению с поиском подключа пост-отбеливания, и суммарная сложность атаки определяется сложностью отыскания подключей пост-отбеливания.

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

Заключение

В данной работе описана атака на шифр MARS, которая является более эффективной, чем ранее известные. Эта атака основана на 8-раундовой дифференциальной характеристике.

ЛИТЕРАТУРА

1. http://csrc.nist.gov/encryption/aes — Advanced Encryption Standard (AES) project 1997-2000.

2. https://www.cosic.esat.kuleuven.be/nessie — New European Schemes for Signatures, Integrity, and Encryption Deliverables of the NESSIE project 2003.

3. http://www.cryptrec.go.jp/english/ — CRYPTREC project 2000-2002.

4. Schneier B. A self-study course in block-cipher cryptanalysis // Cryptologia. 2000. V. 24. No. 1. P. 18-34.

5. Burwick C. et al. MARS — a candidate cipher for AES // AES submission. 1999. http: //www.research.ibm.com/security/mars.pdf.

6. Kelsey J., Schneier B. MARS attacks! Preliminary cryptanalysis of reduced-round MARS variants // Proc. of the Third AES Candidate Conf. 2000. http://www.schneier.com/ paper-mars-attacks.pdf.

7. Kelsey J., Kohno T., Schneier B. Amplified boomerang attacks againts reduced-round MARS and Serpent // LNCS. 2001. V. 1978. P. 75-93.

8. Biham E., Shamir A. Differential cryptanalysis of DES-like cryptosystems // J. Cryptol. 1991. V.4. P. 3-72.

9. Knudsen L. Truncated and higher order differentials // LNCS. 1995. V. 1008. P. 196-211.

10. Biryukov A, Kushilevitz E. Improved cryptanalysis of RC5 // LNCS. 1998. V. 1403. P. 85-99.

11. Biryukov A. The boomerang attack on 5 and 6-Round reduced AES // LNCS. 2005. V. 3373. P. 11-15.

12. Боровков А. А. Теория вероятностей. М.: Наука, 1976. 352 с.

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