Научная статья на тему 'Применение дифференциального и линейного криптоалгоритмов для анализа стойкости криптографических систем'

Применение дифференциального и линейного криптоалгоритмов для анализа стойкости криптографических систем Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Бровкова Марина Борисовна, Оболонский Максим Олегович

Рассматривается применение дифференциального и линейного криптоанализа к блочным шифрам. Показано практическое вскрытие криптографического алгоритма ГОСТ 28147-89, сокращенного до трех раундов с помощью этих универсальных методов.

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

Application of differential and linear cryptanalysis is examined on sectional codes. Practical dissection of cryptographic algorithm is shown GOST 28147-89 brief to the 3th rounds by these universal methods.

Текст научной работы на тему «Применение дифференциального и линейного криптоалгоритмов для анализа стойкости криптографических систем»

УДК 003.26.09

М.Б. Бровкова, М.О. Оболонский

ПРИМЕНЕНИЕ ДИФФЕРЕНЦИАЛЬНОГО И ЛИНЕЙНОГО КРИПТОАЛГОРИТМОВ ДЛЯ АНАЛИЗА СТОЙКОСТИ КРИПТОГРАФИЧЕСКИХ СИСТЕМ

Рассматривается применение дифференциального и линейного криптоанализа к блочным шифрам. Показано практическое вскрытие криптографического алгоритма ГОСТ 28147-89, сокращенного до трех раундов с помощью этих универсальных методов.

Криптоанализ, блочные шифры, дифференциальный и линейный алгоритмы

M.B. Brovkova, M.O. Obolonsky DIFFERENTIAL AND LINEAR CRYPTOALGORITHMS APPLICATION FOR THE ANALYSIS OF FIRMNESS OF THE CRYPTOGRAPHIC SYSTEMS

Application of differential and linear cryptanalysis is examined on sectional codes. Practical dissection of cryptographic algorithm is shown GOST 28147-89 brief to the 3th rounds by these universal methods.

Cryptanalysis, block cipher, differential and linear algorithm

Актуальность задачи. Несколько десятилетий назад информация приобрела самостоятельную коммерческую ценность, не говоря уж о государственной тайне. Все больше предприятий и фирм хранят и передают данные о своей деятельности в электронном виде. Каждому сейчас уже известно, что для того чтобы иметь успех в обществе, в бизнесе необходимо обладать достоверной, своевременной информацией. Поэтому пользователям необходимо обеспечить свободный и быстрый доступ к электронным ресурсам, при этом соблюдая строгую конфиденциальность некоторой информации, приобретающей в связи с этим определенную ценность. Вообще защита информации представляет комплекс методов и средств, начиная от физического доступа и заканчивая программным доступом к интересуемым данным. Поэтому как таковая защита данных не сводится только к разработке эффективного криптоалгоритма, она должна поддерживаться на всех уровнях. К примеру, зачем тратить огромные средства для взлома криптоалгоритма, разрабатывая новые методы криптоанализа, если можно просто «купить» секретный ключ шифрования. Но основное бремя защиты информации продолжает лежать на криптоалгоритме.

В 2000 г. американский государственный стандарт шифрования DES, который на протяжении двух десятилетий был мировым стандартом шифрования, сменил новый криптоалгоритм США - AES (Advanced Encryption Standard). Причиной этого послужил небольшой ключ шифрования DES, который стал подвержен полному перебору и возможности дифференциального и линейного криптоанализа. Каждая страна в своем

арсенале имеет средства защиты информации, так, например, актуален вопрос выбора криптоалгоритма для Евросоюза.

Государство должно быть регулятором в области разработки программного обеспечения для защиты информации, поэтому 9 сентября 2000 г. Указом Президента Российской Федерации В.В. Путина была утверждена «Доктрина информационной безопасности РФ», в которой говорится о методах и средствах повышения безопасности в информационных сетях. До нее практически не существовало ясной государственной позиции по этой проблеме, и именно в ней на первое место ставится обеспечение информационной безопасности индивидуального, группового и общественного сознания. Критическое состояние предприятий национальных отраслей промышленности, разрабатывающих и производящих средства информатизации, телекоммуникации, связи и защиты информации, приводит к широкому использованию соответствующих импортных средств, что создает угрозу возникновения технологической зависимости России от иностранных государств. Поэтому важным направлением является разработка собственных средств и алгоритмов защиты информации.

В РФ все государственные и некоторые коммерческие организации обязаны использовать отечественный алгоритм шифрования ГОСТ 28147-89. Этот стандарт по закону является обязательным для организаций и компаний, которые используют шифровальную защиту для данных, загружаемых или передаваемых через компьютерные сети, отдельные компьютерные комплексы или компьютеры.

Он был изобретен в 1989 г. и спроектирован с большим запасом. Но с экспоненциальным ростом мощности вычислительной техники необходимо постоянно пересматривать существующие алгоритмы на стойкость. Кстати, еще нет сведений о вскрытии этого алгоритма, и он является действующим алгоритмом шифрования России. Он описан теоретически, но реализации этого алгоритма на конкретном языке программирования официально нет. Поэтому исходный текст реализации алгоритма будет взят из книги Брюса Шнайера «Прикладная криптография» [5] на языке

программирования С.

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

Алгоритм ГОСТ 28147-89 является блочным алгоритмом шифрования, основанным на схеме Фейстеля [3]. Криптостойкость любого алгоритма, построенного по этой схеме, определяется функцией F (основным шагом криптопреобразования) и количеством раундов шифрования. Целесообразно функцию F задавать достаточно простой, чтобы можно было легко реализовать алгоритм аппаратно для наилучшего быстродействия. А криптостойкость можно повысить количеством раундов. Будем рассматривать алгоритм ГОСТ 28147-89, сокращенный до трех раундов, с использованием случайно полученных блоков замен. Предположим, что блоки замен равносильны по своей структуре и в них нет фатально слабых мест. В качестве ключевой информации будем генерировать случайные ключи, при этом предполагая, что среди них нет тривиальных. Вообще, методы криптоанализа зачастую не позволяют найти правильный ключ, они лишь сокращают возможный полный перебор, который напрямую зависит от длины ключа.

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

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

Существуют криптосистемы, достигшие совершенной безопасности. Такой является криптосистема, в которой шифртекст не дает никакой информации об открытом тексте (кроме, возможно, длины). Теоретически показано, что такое возможно только, если число возможных ключей так же велико, как и число возможных сообщений. Другими словами, ключ не должен быть короче самого сообщения, не может использоваться повторно и должен храниться в абсолютной тайне. За исключением идеально безопасных систем, открытый текст неизбежно дает определенную информацию о соответствующем закрытом тексте. Чем избыточнее язык, тем легче его криптоанализировать. Несомненно, во всех существующих криптографических алгоритмах длина ключа меньше объема информации, которую требуется зашифровать, а, следовательно, в каждой паре открытый - закрытый текст возможно выделить статистические закономерности, зависящие от одного и того же ключа. На этих особенностях основаны современные методы криптоанализа, такие как дифференциальный и линейный.

Принципы дифференциального криптоанализа. Понятие дифференциального криптоанализа впервые было введено в 1990 г. Эли Бихамом и Ади Шамиром. Используя этот метод, Бихам и Шамир нашли способ атаки алгоритма БЕБ с использованием подобранного открытого текста, который оказался эффективнее полного перебора.

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

Пусть некоторый блочный шифратор с длиной блока N строится по схеме, приведенной на рис. 1.

У1=Х(2) У(2) Х(г)

У(г)

К(1) К(2) к(г)

Рис. 1. Общая схема дифференциального криптоанализа

Здесь К=(К(1),К(2),...К(г)) получается по некоторой схеме из К(0) или независимо и равновероятно выбираются для каждого цикла. Пусть Х(1) и Х’(1) - пара открытых текстов. Рассмотрим следующие разности:

АХ (1) = X (1) - X '(1);

ЛУ(0 = У (/) - У'(/).

Задача дифференциального криптоанализа заключается в том, чтобы найти такие АХ (1), что при случайном равновероятном выборе Х(1),К(1),К(2),...,К(г-1) с

вероятностью более 2- появится ЛУ(г -1). Пара (а, в) возможных значений вектора

(ЛХ(1), ЛУ(/)) называется дифференциалом /-го цикла.

Тогда дифференциальный анализ описывается моделью, представленной на рис. 2.

Х(1)

У(1)=Х(2) У(2) Х(г)

Х'(1)

Рис. 2. Модель дифференциального криптоанализа

Подключ последнего цикла шифрования можно найти, используя следующий алгоритм:

1. Выбираем дифференциал (г-1)-го цикла (а,в), для которого вероятность ((Р(ЛХ(1) = а, ЛУ(г -1) = в) большая.

2. Случайно выбираем Х(1) и подбираем Х’(1) так, чтобы ЛХ(1) = а . Пусть известны У(г) и У’(г).

3. Делаем предположение, что ЛУ (г -1) = в, и, зная У(г) и У’(г), находим К(г).

4. Повторяем п. 2 и 3, пока один подключ не начнет появляться чаще других.

Несмотря на кажущуюся простоту приведенного алгоритма, существует ряд

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

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

Рассмотрим один раунд криптографического преобразования алгоритма ГОСТ 28147-89 (рис. 3).

Пусть задана пара входов Х и Х’, с несходством ЛХ. Выходы У и У’ известны, следовательно, известно и несходство ЛУ. Известен вход в операцию <<11.

Необходимо отметить некоторое свойство операции сдвига:

(Х0 Х') << 11 =

= (Х << 11) 0 (Х' << 11). Следовательно, известны ЛА и ЛС. Значения на выходе сумматора по модулю 232 неизвестны, однако их несходство ЛВ известно и равно ЛА. Доказано, что для любого заданного ЛА не все значения ЛС равновероятны. Комбинации ЛА и ЛС позволяют предположить значения битов Х 0 К и Х'0К.

Несходство различных пар открытых текстов приводит к несходству получаемых шифртекстов с определенной вероятностью. Эти

Рис. 3. Один раунд криптографического преобразования

р,

рс

К1

К2

вероятности можно определить, построив таблицы для каждого блока замен. Таблицы строятся по следующему принципу: по вертикали располагаются все возможные комбинации ЛА, по горизонтали - все возможные комбинации ЛС, а на пересечении -число соответствий данного ЛС данному ЛА. Число наибольших совпадений указывает нам пару ЛА и ЛС, с помощью которой можно определить секретный ключ. Пара открытых текстов, соответствующих данным ЛА и ЛС, называется правильной парой, а пара открытых текстов, не соответствующих данным ЛА и ЛС - неправильной парой. Правильная пара подскажет правильный ключ цикла, а неправильная - случайный. Чтобы найти правильный ключ, необходимо просто собрать достаточное количество предположений. Один из ключей будет встречаться чаще, чем все остальные. Фактически, правильный ключ появляется из всех возможных случайных подключей.

Рассмотрим применение основных идей дифференциального криптоанализа для алгоритма ГОСТ 28147-89, сокращенного до трех раундов (рис. 4). Необходимо отметить, что в этом случае длина секретного ключа будет составлять 96 бит (по 32 бита на каждый раунд). Понятно, что атака полным перебором уже при такой длине ключа не имеет смысла.

Пусть правая часть разности открытых тестов Ря равна 0 (а=0). В этом случае выход Б-блока первого раунда тоже будет равен 0 (А=0). Тогда на вход второго раунда поступит левая часть Рь исходной разности (Ъ=Рь). Левая часть выходной разности Сь получается сложением по модулю два с выходом С F-функции третьего раунда и входа второго раунда, который, как мы уже определили раньше, равен левой части исходной разности. Таким образом, мы получаем, что Сь=Рь0С. То, что Рь и Сь известны, позволяет нам определить значение С. Таким образом, мы можем определить биты подключа третьего раунда шифрования.

Результаты. Для работоспособности данного алгоритма необходимо получить пары открытый - закрытый текст. Необходимо отметить, что пары должны иметь одинаковые правые части - именно такие пары мы будем называть выбранными. Вероятность перехвата сообщений с таким условием в режиме простой замены достаточно велика. Как только мы получили ключ шифрования 3-го раунда, то получить ключи шифрования 2-го и 1-го раундов не представляется сложным.

Естественно, важным параметром для рассмотрения является необходимое количество выбранных пар для полного и однозначного раскрытия секретного ключа. При атаке дифференциальным методом криптоанализа на алгоритм ГОСТ 28147-89, сокращенного до трех раундов, были получены следующие результаты (табл. 1).

Дадим некоторые комментарии к табл. 1. При использовании трех пар открытый-закрытый текст, обладающих вышеописанными различиями, мы определяем с помощью дифференциального криптоанализа 12 возможных ключей. Эти ключи имеют одинаковую вероятность. Теперь остается только осуществить полный перебор и выбрать один-единственный правильный ключ. При использовании четырех выбранных пар открытый-закрытый текст мы определяем 2 возможных ключа, один из которых правильный. Уже при использовании 5 выбранных пар ключ определяется однозначно. Следует отметить, что 5 пар

Кз

с

а

Рис. 4. Трехраундовый ГОСТ 28147-89

Количество выбранных пар 3 4 5

Количество возможных ключей 12 2 1

являются минимальным количеством, Таблица 1

при кот°р°м ключ определяется Результаты атаки

однозначно и к перебору прибегать не дифференциальным криптоанализом

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

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

Проблема заключается в том, что при дифференциальном криптоанализе необходимо использовать выбранные пары, а в данном случае с одинаковой правой частью. Это не всегда возможно. Вообще, можно использовать открытые - закрытые пары, обладающие любым различием, но оно должно быть известно.

Принципы линейного криптоанализа. Линейный криптоанализ базируется на знании криптоаналитиком открытого и зашифрованного текста при использовании блочных схем шифрования. Основная идея состоит в том, что существует возможность заменить нелинейную функцию ее линейным аналогом. Так как все зашифрованные тексты представлены в двоичном виде, то будем рассматривать случайную величину Б-{0,1}, для которой вероятность, что Б=1, равна Р(Б=1)=р, соответственно, вероятность Б=0 будет Р(Б=0)=1-р. Тогда Л(£) = |1 - 2р|.

Рассмотрим схему произвольного блочного шифра в /-м цикле. Пусть Г - функция шифрования, Х/ - блок открытого текста в /-м цикле, У/ - блок шифртекста, К/ - подключ, используемый в /-м цикле. Пусть У, Х/ ^Уп и К/ е Ут, где V - двоичный вектор, п - размер блока, т - размер подключа.

Обозначим через (Х,а) = Х1а1 0... 0 Хпап = Хя 0... 0 Хл = Х[/1,...,4] - скалярное

произведение двух двоичных векторов Х и а, где (ап,...,а/к) - единичные координаты

вектора а, а по сути дела сложение по модулю 2 битов вектора Х, соответствующих ненулевым битам вектора а.

Линейным статистическим аналогом нелинейной функции У/ = Г (Х/ ,У/) называется

случайная величина = (У/, аг.) 0 (Х{, вг-) 0 (К1, уг.), если вероятность Р(= 1) = р Ф ^2

для случайно выбранного открытого текста Х/.

Отклонение Л(£) = |1 - 2р| определяет эффективность линейного статистического аналога.

Для применения линейного криптоанализа необходимо решить следующие задачи:

1. Нахождение эффективного статистического аналога и вычисление его вероятности.

2. Определение ключа (или некоторых битов ключа) с использованием эффективного линейного статистического аналога.

Линейный криптоанализ алгоритма шифрования ГОСТ 28147-89. Наиболее эффективным является рассмотрение блока Г алгоритма, а именно находящихся в нем ^-блоков, так как в этом случае можно проследить зависимость выходных битов от входных в их всевозможных комбинациях.

Нелинейная функция, реализующая а-й £-блок, может быть записана в виде:

У = Га(Х 0 К),а = 1,...,8,Х,У,К е V,.

Линейным статистическим аналогом каждого из всевозможных уравнений может являться уравнение вида:

(У,у) = (Х',/), где Х1 = Х 0 К; 1 < / < 15; 1 < у < 15.

Обозначим через 8а(/,у), где а =1,...,8; / = 1,...,16;у = 1,...,16 - число Хе^ для а-го 8-блока ГОСТ таких, что для / и у выполняется равенство (У, у) = (Х,/) . В этом случае значение 8а(/, у) будет определять количество совпадений суммы по модулю 2 некоторых битов входных данных с суммой по модулю 2 некоторых битов выходных данных. Так как сумма по модулю 2 двух одинаковых бит в результате дает 0, то 8а(/, у) и будет, по сути дела, указывать, сколько раз из возможных 16 комбинаций выполняется формула 8^ = (У, а,) 0 (Хг., вг-) 0 (Кг., уг.) с результатом 0. Так как всего 16 возможных комбинаций,

то при 8а(/,у)=8 будем иметь Р(8 = 0) = ^^, а Р(8 = 1) = 1 - ^2 = 12. Поэтому, когда

8а Ф 8, можно сказать, что есть статистическая связь между входными и выходными битами а-го Б-блока. При этом, чем больше будет отклонение значения вероятности для каждой пары (/, у), тем более эффективным будет линейный аналог.

Пусть

8*(Л /): К(Л Л - 8 = тах К(1, у) - 81;

1 < / < 15; 1 < у < 15.

Тогда уравнение

( х , Г) 0 (У,/) = ( к , Г)

является эффективным линейным статистическим аналогом для а-го Б-блока в классе всех линейных статистических аналогов вида (У,у) = (X,/) с вероятностью:

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

Ра = к;(/\ у *)/16.

Таким образом, в ходе анализа мы прослеживаем всевозможные комбинации двоичных векторов / и у. Каждую пару векторов мы используем в качестве маски, которую накладываем на всевозможные пары вход-выход блока замены. Эти маски указывают нам биты входа и выхода соответственно, которые необходимо сложить по модулю 2, а затем сравнить полученные результаты.

Сгенерируем таблицу блоков замен случайным образом, при этом будем считать, что в них нет фатально слабых мест (табл. 2).

Таблица 2

Таблица замен для алгоритма ГОСТ 28147-89.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0

3 4 5 6 7 8 9 10 11 12 13 14 15 2 1 0

10 11 12 13 14 15 9 8 7 6 5 0 1 2 3 4

1 15 13 0 5 7 10 4 9 2 3 14 6 11 8 12

4 11 10 0 7 2 1 13 3 6 8 5 9 12 15 14

13 11 4 1 3 15 5 9 0 10 14 7 6 8 2 12

1 12 13 6 4 7 5 8 9 2 11 10 15 14 3 0

5 4 3 2 1 0 6 7 8 9 10 11 12 13 14 15

В качестве секретного ключа возьмем случайный ключ. В 16-ричной системе ключ будет иметь вид: С0СВС8СБ-Е020ЕЕЕЕ-Р8ЕВЕ020 - 96-битный ключ.

Проведем анализ первого блока замен. По аналогии можно провести анализ всех 8 блоков, но наглядно представим анализ блока Б0 (табл. 3).

Таблица 3

Анализ блока S0

І / і 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8

2 а а 0 а а а а а а а а а а а а

3 а 1б а а а а а а а а а а а а а

4 а а а 12 4 4 4 а а а а а а а а

б а а а 12 4 12 12 а а а а а а а а

б а а а 12 12 12 4 а а а а а а а а

7 а а а 4 4 12 4 а а а а а а а а

а а а а а а а а 14 б б б б б б б

9 а а а а а а а 10 2 10 10 10 10 10 10

10 а а а а а а а 10 10 10 2 10 10 10 10

11 а а а а а а а б б 14 б б б б б

12 а а а а а а а 10 10 10 10 14 б б б

13 а а а а а а а б б б б 10 2 10 10

14 а а а а а а а б б б б 10 10 10 2

15 а а а а а а а 10 10 10 10 б б 14 б

Теперь из этой таблицы необходимо выбрать пары с наибольшим отклонением. Для а-го блока максимальное отклонение равно max|Sa (i, j) - 8 . Заметим, что чем больше

отклонение, тем эффективнее аналог. Но эффективных аналогов с максимальным отклонением будет явно недостаточно для определения всех битов ключа, поэтому мы еще будем составлять чуть менее эффективные аналоги с максимальным отклонением max| Sa (i, j) - 6|. При этом эти аналоги будут также достаточно эффективными. В таблицах

выделены клетки с подходящим отклонением.

Рассмотрим отклонение S0(i, j)=0, где i=(0,0,0,1), а j=(0,0,0,1). Это говорит о том, что из всех возможных входных значений (от 0 до 15) и соответствующих им выходных значений 0 раз встречается совпадение четвертого входного бита и четвертого выходного бита. Тогда можно сказать, что для блока S0 верно уравнение: x4 Ф y4 = к4, где x4, y4 -входные и выходные биты для блока S0 соответственно, к4 - бит ключ также для блока S0. Заметим, что это отклонение выполняется с вероятностью р = 0/16 = 0, а эффективность

линейного статистического аналога A(S0) = |1 - 2 р| = несколько отклонений: 1. Аналогично

S0(i, j) = 0, где i = (0,0,1,0), а j = (0,0,1,1)

6, = Si(0 где i = (0,0,1,1), а j = (0,0,1,0)

4, = Si(0 где i = (1,0,0,0), а j = (1,0,0,0)

2, = Si(0 где i = (1,0,1,0), а j = (1,0,1,1)

4, = Si(0 где i = (1,1,0,0), а j = (1,1,0,0)

2, = Si(0 где i = (1,1,1,0), а j = (1,1,1,1)

Из выражений отклонений мы получим статистические аналоги для блока 80 (табл. 4).

Статистические аналоги блока So

Таблица 4

Статистические аналоги Вероятность p Эффективность A

*4 Ф У4 = k4 P=0 A = 1

Хз ф у4 ф Уз = к3 Р=0 Д = 1

х3 ф у3 ф х4 = к3 ф к4 Р=1 Д = 1

х ф Уі = к Р=14/16=0.875 Д = 0,75

х1 ф у1 ф х3 ф у3 ф х4 = к1 ф к3 ф к4 Р=2/16=0.125 Д = 0,75

х1 ф у1 ф х2 ф у2 = к1 ф к2 Р=14/16=0.875 Д = 0,75

х1 ф у1 ф х2 ф у2 ф х3 ф х4 = к1 ф к2 ф к3 ф к4 Р=2/16=0.125 Д = 0,75

Так как значение после выхода из 8-блока, согласно алгоритму, претерпевает операцию сдвига на 11 бит влево, а потом складывается по модулю 2 с левой частью исходного сообщения, то, если предположить, что входным значением в функцию Г алгоритма является X, а выходным У, то наша таблица для блока 80 будет преобразована в следующую таблицу (табл. 5).

Таблица 5

Статистические аналоги

Статистические аналоги Вероятность р Эффективность Д

X64 ф ¥53 ф Х32 = К32 Р=0 Д = 1

X63 ф 752 ф ^53 ф *31 = *31 Р=0 Д = 1

Х63 ф 752 ф Х64 ф Х31 ф X32 = К31 ф К32 Р=1 Д = 1

X61 ф 750 ф X29 = К29 Р=14/16=0.875 Д = 0,75

X61 ф 750 ф X29 ф X63 ф X32 ф 752 Ф Xзl ® X64 ® ф X32 = К31 ф К32 ф К29 Р=2/16=0.125 Д = 0,75

X61 ф 750 ф X29 ф X62 ф 751 ф X30 = К29 ф К30 Р=14/16=0.875 Д = 0,75

X61 ф 750 ф X29 ф X62 ф 751 ф *зо ф *63 ф 752 ф ф X31 ф X64 ф X32 = К29 ф К30 ф К31 ф К32 Р=2/16=0.125 Д = 0,75

Таким образом, мы составили линейные статистические аналоги для блока Бо. Наша задача состоит в том, чтобы найти биты ключа, а для этого нам необходимо знать значения левых частей найденных нами аналогов. Для их нахождения применяется следующий алгоритм.

Пусть N - число всех открытых текстов и Т - число открытых текстов, для которых левая часть линейного статистического аналога равна 0. Рассмотрим два случая.

Если Т > N/2, число открытых текстов, для которых левая часть аналога равна 0, больше половины, то есть в большинстве случаев в левой части аналога появляется значение, равное 0, то

а) если вероятность этого линейного статистического аналога р >1/2 - это говорит о том, что в большинстве случаев правая и левая части аналога равны, а значит, левая часть аналога, содержащая биты ключа, равна 0;

б) если вероятность этого линейного статистического аналога р < У - это говорит о том, что в большинстве случаев правая и левая части аналога не равны, а значит, левая часть аналога, содержащая биты ключа, равна 1.

Если Т < N/2, число открытых текстов, для которых левая часть аналога равна 0, меньше половины, то есть в большинстве случаев в левой части аналога появляется значение, равное 1, то

а) если вероятность этого линейного статистического аналога р > У - это говорит о том, что в большинстве случаев правая и левая части аналога равны, а значит, левая часть аналога, содержащая биты ключа, равна 1;

б) если вероятность этого линейного статистического аналога р < У - это говорит о том, что в большинстве случаев правая и левая части аналога не равны, а значит, левая часть аналога, содержащая биты ключа, равна 0;

Успех алгоритма возрастает с ростом N и А.

Используя вышеприведенный алгоритм, можем определить для первого уравнения таблицы *64 Ф 753 Ф Х32 = К32 следующее:

Если Т > N/2, то

*32 =

0, р > —

2

, 1

1, р < —.

Если Т < N/2, то

К 32 =

1, р >

0, р <

Так как в нашем случае р = 0, то, если Т > N/2, к32 = 1, иначе к32=0.

Таким образом, для определения битов ключа необходимо собрать некоторое количество статистики. Для этого случайным образом сгенерируем 50 открытых текстов и зашифруем их на секретном ключе. Значит, N=50. Составим таблицу для N и Т (табл. 6).

Таблица 6

Уравнения для бит подключа блока Б0

1

Статистические аналоги Вероятность р Т

*64 Ф 753 Ф *32 = К32 Р=0 50

Хбз Ф 752 Ф 753 Ф *31 = К31 Р=0 0

*63 Ф 752 Ф *64 Ф *31 Ф *32 = К31 Ф К32 Р=1 0

*61 Ф 750 Ф *29 = К29 Р=14/16=0.875 9

X61 Ф 750 Ф *29 Ф *63 Ф *32 Ф 752 ® *31 ® *64 ® Ф *32 = К31 Ф К32 Ф К29 Р=2/16=0.125 44

*61 Ф 750 Ф *29 Ф *62 Ф 751 Ф *30 = К29 Ф К30 Р=14/16=0.875 44

*61 Ф 750 Ф *29 Ф *62 Ф 751 Ф *30 Ф *63 Ф 752 Ф Ф *31 Ф *64 Ф *32 = К29 Ф К30 Ф К31 Ф К32 Р=2/16=0.125 9

Теперь остается построить уравнения для ключей (табл. 7).

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

Решая эту систему, получаем к=1101 - подключ для блока 80.

Проводя аналогичные построения эффективных статистических аналогов для остальных блоков и используя алгоритм нахождения правых частей аналогов, можно получить уравнения ключей для каждого блока. Хотелось бы отметить, что, возможно, уравнения не позволят найти все до единого бита ключа. В таком случае необходимо будет воспользоваться методом полного перебора для нахождения всех бит ключа.

Нахождение статистических аналогов для трех циклов ГОСТ 28147-89. Для нахождения эффективных линейных аналогов алгоритма ГОСТ 28147-89, состоящего из трех циклов, можно использовать тройные связанные суммы с наибольшим А. Рассмотрим некоторое базовые понятия:

Если 81... 8п - независимые бинарные случайные величины, тогда

А(8 ®... ® ) = I А($).

Тройной суммой 81 - для /-го раунда называют случайную величину вида = £ (Х/) Ф gi 7 ) Ф к (К), где £, gi, ^ - равновероятные булевы функции.

Последовательные тройные суммы £/+1 и - называются связанными, если £+1 = gi. Из этого следует, что 8г Ф Бм = £ (Хг) Ф gi (7) Ф Иг (К/) Ф £м (Х/+1) Ф gг+l (7М) Ф Им (Км)

где 7 = Хг+1.

То есть, говоря другими словами, в последовательных тройных суммах выход предыдущего раунда является входом следующего.

Если 81... 8п - связанные тройные суммы, то тогда 81 п = 81 Ф... Ф 8п =

п

= £ (Х1) Ф gn (7п) Ф £ ( К/ ), 81. 8п - называется п-раундовой тройной суммой.

i=1

Подставив в это уравнение, уравнение Si = (7 , аг- ) Ф (Х/ , Рг.) Ф (К/ , у 1), получим

п

81 п = 81 Ф...Ф8п = (Х1 Фа)Ф (7п Фв)Ф£(К/,у/) - которое выполняется с вероятностью

i=1

А(8 Ф...Ф8п) = I А(8).

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

Результаты. Хотелось бы сказать, что при недостаточном количестве пар

открытый-закрытый текст некоторое биты ключа могут определиться неверно. Это

следствие того, что успех вышеприведенного алгоритма зависит от вероятности р и количества N. Естественно, что чем больше будет N, тем точнее будут определены биты ключа. Приведем некоторую статистику по этому поводу (табл. 8).

Отсюда видно, что для безошибочного определения всех бит ключа оказалось достаточно 20 пар открытый - закрытый текст. Очевидно, что при дальнейшем увеличении N все биты ключа будут определяться верно. Эффективность

линейного криптоанализа повышается при использовании слабых блоков замен (то есть где отклонение равно 1).

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

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

Таблица 8

Результаты атаки линейным криптоанализом

Количество пар 5 10 20

Количество ошибочно определенных бит 3 1 0

Таблица 7

Уравнения для бит подключа

*32 = 1

*31 = 0

К32 ф *31 = 1

2 =1

*32 ф К31 ф *29 = 0

2 ф *30 = 0

*32 ф *31 ф *29 ф *30 = 1

дифференциальным методами. Здесь была произведена атака на алгоритм, сокращенного до трех раундов, то есть обозначено возможное применение этих методов, к тому же, с экспоненциальным ростом мощности вычислительной техники, это представляется все более и более реальным, так как алгоритм ГОСТ проектировался в 1989 году.

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

Хотелось бы отметить, что важным направлением развития эффективных методов криптоанализа является разработка систем анализа, не зависящих от какой-либо статистики. Так как в высокоэнтропийном мире криптографии этой статистики требуется достаточно много, соответственно и необходима большая вычислительная мощность машин для ее обработки. Первым шагом в этом направлении было применение слайдовой атаки. Здесь используется так называемый принцип самоподобия, и атака не зависит от количества раундов шифрования.

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

ЛИТЕРАТУРА

1. Biham E. Differential Cryptanalysis of the Full 16-round DES / E. Biham, A. Shamir // Crypto’92. Springer-Verlag. 1998. Р. 487.

2. Matsui M. Linear Cryptanalysis Method for DES Cipher, Advanced in Cryptology / M. Matsui // EUROCRYPT’93. Springer-Verlag. 1998. Р. 386.

3. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая.

Алгоритм криптографического преобразования. Введ. 1990-07-01. М.: Изд-во

стандартов, 1989. 28 с.

4. Доктрина информационной безопасности Российской Федерации. М.: Ось-89, 2004. 48 с.

5. Чмора А. Современная прикладная криптография / А. Чмора. M.: Гелиос APB, 2002. 256 с.

6. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си / Б. Шнайер. М.: Триумф, 2002. 861 с.

Бровкова Марина Борисовна -

доктор технических наук, профессор кафедры

«Программное обеспечение вычислительной техники и автоматизированных систем» Саратовского государственного технического университета

Оболонский Максим Олегович -

магистрант кафедры

«Программное обеспечение вычислительной техники и автоматизированных систем» Саратовского государственного технического университета Статья поступила в редакцию 28.01.08, принята к опубликованию 25.04.08

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