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

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

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

Похожие темы научных работ по математике , автор научной работы — Байбурин Вил Бариевич, Оболонский Максим Олегович, Бровкова Марина Борисовна

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

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

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

БАИБУРИН Вил Бариевич

доктор физико-математических наук, профессор, заведующий кафедрой «Программное обеспечение вычислительной техники и автоматизированных систем» Саратовского государственного технического университета, руководитель учебно-научного центра по проблемам информационной безопасности Саратовского региона - СГТУ

ОБОЛОНСКИЙ Максим Олегович

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

БРОВКОВА Марина Борисовна

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

В,

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

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

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

Большинство алгоритмов шифрования -это блочные алгоритмы, основанные на схеме Фейстеля [7]. Криптостойкость любого алгоритма, построенного по этой схеме, определя-

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

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

мерностях, и слайдовый криптоанализ, основанный на принципе самоподобия.

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

Рис.1. Основной шаг криптопреобразования

Шаг 0. Определяет исходные данные для основного шага криптопреобразования.

N - преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N1) и старшая (части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать: N1, N 2). X - 32-битовый элемент ключа.

Шаг 1. Сложение с ключом. Младшая половина преобразуемого блока складывается

о 32

по модулю 2 с используемым на шаге элементом ключа, результат передается на следующий шаг.

Шаг 2. Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода:

¿=(£0, S1, S2, 53, S4, S5, S6, 57).

Шаг 3. Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11 бит в сторону старших разрядов и передается на следующий шаг. На схеме алгоритма символом 011 обозначена функция циклического сдвига своего аргумента на 11 бит в сторону старших разрядов.

Шаг 4. Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.

Шаг 5. Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.

Шаг 6. Полученное значение преобразуемого блока возвращается как результат

выполнения алгоритма основного шага крип-топреобразования.

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

Для изучения дифференциального и линейного криптоанализа будем рассматривать алгоритм состоящий из 3-х раундов и 96-битным секретным ключом:

Таблица замен для ал

C0CBC8CD-E020EFEE-F8EBE020.

Для изучения слайдовой атаки будем рассматривать алгоритм, состоящий из 32 раундов и 64-битного ключа:

C0CBC8CD-E020EFEE.

Таблица 1

ГОСТ 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

Дифференциальный криптоанализ.

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

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

На рис. 2 представлен один шаг дифференциального криптоанализа. Пусть задана пара входов X и X 'с несходством Ошибка! Объект не может быть создан из кодов полей редактирования.. Выходы Y и Y ' известны, следовательно, известно и несходство Ошибка! Объект не может быть создан из кодов полей редактирования.. Известен вход в операцию <<11. Необходимо

отметить некоторое свойство операции сдвига: (X 0 X') << 11 = (X << 11) 0 (X' << 11).

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

и X'0К,..

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

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

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

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

Рис. 3. Трехраундовый алгоритм

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

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

образом, мы можем определить биты под-ключа третьего раунда шифрования (рис. 3).

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

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

Таблица 2

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

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

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

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

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

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

Линейный криптоанализ. Линейный криптоанализ базируется на знании криптоа-налитиком открытого и зашифрованного текста при использовании блочных схем шифрования [3, с. 386.]. Основная идея состоит в том, что существует возможность заменить нелинейную функцию ее линейным аналогом. Так как все зашифрованные тексты представлены в двоичном виде, то будем рассматривать случайную величину S-{0,1} для которой вероятность того, что S=1, равна P(S=1)=p, соответственно вероятность того, что S=0, определиться как P(S=0)=1-p. Тогда

A(S) = |l - 2p\.

Рассмотрим схему произвольного блочного шифра в 7-м цикле. Пусть F - функция шифрования, X7 - блок открытого текста

в 7-м цикле, Y7 - блок шифртекста, K7 - под-ключ, используемый в 7-м цикле. Пусть X7, Y7 е Vn и K7 е Vm, где V - двоичный

вектор, n - размер блока, m - размер подклю-ча.

Обозначим через (X,a) = Xa ®..Xnan = X7i Ф...Ф Xik = X[7i,...,7k ] скалярное произведение двух двоичных векторов X и a, где (a71,...,aik) - единичные координаты вектора a, а по сути дела сложение по модулю 2 битов вектора X, соответствующих ненулевым битам вектора a .

Линейным статистическим аналогом нелинейной функции Yi = F(X7, Yi) называется случайная величина

Si = (Y a) e (Xi, д.) e (кг ,Yi),

если вероятность P(S7 = 1) = p Ф ^ для случайно выбранного открытого текста Xi .

Отклонение А(£) = |1 - 2р\ - определяет

эффективность линейного статистического аналога.

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

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

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

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

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

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

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

(У, у) = (х7),

где X' = X 0 К;1 < 7 < 15;1 < у < 15.

Обозначим через ¿а (7, у), где

а = 1,...8;7 = 1,...16;у = 1,... 16, - число X е V, для а-го S блока таких, что для 7 и у выполняется равенство (У, у) = (X, 7) . В этом случае

значение ¿а (7, у) будет определять количество совпадений суммы по модулю 2 некоторых битов входных данных с суммой по модулю 2 некоторых битов выходных данных. Так как сумма по модулю 2 двух одинаковых бит в результате дает 0, то ¿а (7, у) и будет по

сути дела указывать, сколько раз из возможных 16 комбинаций выполняется формула

¿7 = (У ) 0 (Xг , Д ) 0 (Кг ,у< )

с результатом 0. Так как всего 16 возможных комбинаций, то при ¿а (7, у) = 8 будем иметь

= 0) = у2, а = 1) = 1 - У2 = У2.

Поэтому, когда Ф 8 можно сказать, что есть статистическая связь между входными и

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

Пусть

*, j *): *, j *) - 8 = тах| 5а (I, j) - 8|; 1 < /' < 15;1 < j < 15,. Тогда уравнение

(х, I *) е (7, j *) = (к, I *)

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

является эффективным линейным статистическим аналогом для а-го 5-блока в классе всех линейных статистических аналогов вида (7, j) = (X, I) с вероятностью

Р = £(/ *, j *)/16.

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

а затем сравнить полученные результаты (табл. 3).

Далее, имея некоторое количество пар открытый-закрытый текст, мы можем определить левые части статистических аналогов (табл. 4).

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

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

При недостаточном количестве пар открытый-закрытый текст некоторое биты ключа могут определиться неверно. Успех алгоритма зависит от вероятности р и количества пар открытый-закрытый текст. Приведем некоторую статистику по этому поводу (табл. 5).

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

Х64 е 753 е Х32 = К32 Р=0 Д = 1

X 63 е 752 е 753 е х 3! = к 3! Р=0 А = 1

х63 е 752 е х64 е х31 е х32 = к 31 е к 32 Р=1 А = 1

Х61 е 750 е Х29 = К29 Р=14/16=0,875 А = 0,75

х 61 е 750 е X 29 е Х63 е Х32 е 752 е Х31 е Х64 е е Х32 = к31 е к32 е к 29 Р=2/16=0,125 А = 0,75

Х 61 е 750 е х 29 е Х62 е 75, е = к 29 е кад Р=14/16=0,875 А = 0,75

Х 61 е 750 е Х29 е Х62 е 751 е е Х63 е 752 е е х31 е х64 е х32 = к 29 е к 30 е к31 е к32 Р=2/16=0,125 А = 0,75

Таблица 3

Статистические аналоги для одного из блоков замен

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

Таблица 4

К 32 = 1

К 31 = 0

К 32 0 К31 = 1

К 29 =1

К 32 0 К31 0 К 29 = 0

К 29 0 К30 = 0

К 32 0 К31 0 К29 0 К30 = 1

Таблица 5

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

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

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

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

Слайдовый криптоанализ. Самый простой вариант слайдовой атаки рассчитан на анализ алгоритмов шифрования, состоящих из г раундов, каждый из которых содержит в себе функцию Е, зависящую от одного и того же подключа [2, с. 589; 4].

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

Рассмотрим применение слайдовой атаки к изучаемому блочному алгоритму. Сопоставим два процесса шифрования и дешифрования следующим образом:

Криптоанализ начинается с создания

2и/2 г

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

(N', Ы') = (Я, Ь 0 Е(К0 0 Я)) (Ь',Я') = (Ы 0 Е(К0 0 N),N) .

Эти уравнения дают нам условие отбора слайдовой пары: N' = Я и Я' = N.

Найдем одну слайдовую пару (табл. 6). Теперь из этой слайдовой пары получим ключ К0. Воспользовавшись равенством

Ы' = Ь 0 Е (К0 0 Я) , получим

Е (К0 0 Я) = Ь 0 Ы'. В нашем случае это

Е (К0) = 725612043. Применяя операцию сдвига на 21 бит влево, получаем

К о> К1>К о> К 0> К1

К1> К 0> К13....3 К 0> К1> К о

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

£ (К0) = 3244648446,

где S - поблочная замена. Так как блоки замен известны, то не составляет большого труда определить ключ шифрования К0 = 3234580685 = 0xC0CBC8CD , который является правильным.

Рис.4. Применение слайдовой атаки

Слайдовая пара

Таблица 6

X

У

X'

У'

1103431788325787278

725612043

9297776598831566270

0

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

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

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

К 0 ' К 1' К 2 ' К 3 ' К 4 ' К 5 ' К 6' К 7 ' К 0 ' К1'К 2 ' К 3 ' К 4' К 5' К 6' К 7' К 0' К1' К 2' К 3' К 4' К 5' К 6' К 7 К 7 ' К 6' К 5 ' К 4 ' К 3 ' К 2 ' К1' К 0-

Интерес возникает к обратному применению ключевой последовательности в последних восьми раундах. Заметим, что если применять ключевую последовательность в порядке:

К 0' К1' К 2' К 3' К 4' К 5' К 6' К 7' К 0' К1' К 2' К 3' К 4' К 5' К 6' К 7' К 0' К1' К 2' К 3' К 4' К 5' К 6' К 7', К 0' К1' К 2' К 3' К 4' К 5' К 6' К 7'

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

<А,В,С, ДДВ,С^>, и 2128 ключей вида <ДВ,С,ДДС,В,А>. Атака на алгоритм, ис-

пользующий такие ключи, становится абсолютно реальной.

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

Выводы. Были рассмотрены существующие универсальные методы криптоанализа, применяемые к блочным шифрам. Среди них линейный и дифференциальный, которые являются статистическими, то есть для определения правильного ключа шифрования необходимо собрать некоторую статистику, из которой сделать предположение о правильном ключе. Применение этих методов достаточно сложно и не всегда возможно из-за большого количества раундов шифрования. А тенденция к их увеличению наблюдается практически во всех современных алгоритмах шифрования RC6(20), MARS(32), SER-PENT(32), CAST(48), так как увеличение даже на 1 раунд требует экспоненциального роста усилий атакующего. В то время как известные методы дифференциального и линейного криптоанализа основаны главным образом на технике шифрования и изучения блоков замен, то слайдовая атака использует степень самоподобия, что является принципиальным отличием. Это позволяет атаковать шифры с большим количеством раундов - в нашем примере это 32.

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

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

эволюции - сознание человека.

* * *

1. Bili am E. Differential Cryptanalysis of the Full 16-round DES / E. Biham, Shamir A. Crypto'92, Springer-Verlag, 1998.

2. Birukov A. Slide Attacks / A. Birukov, D. Wagner. Eurucrypt'00.

3. Matsui M. Linear Cryptanalysis Method for DES Cipher, Advanced in Cryptol-

ogy /M. Matsui/ EUROCRYPT'93, SpringerVerlag, 1998.

4. Бабенко Л.К. Современные алгоритмы блочного шифрования и методы их анализа [Текст] / Л.К. Бабенко, Е.А. Ищукова.

- М.: Гелиос APB, 2006. - 376 с. - ISBN 585438-149-4.

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

- М.: Госстандарт СССР, 1989.

6. Чмора А. Современная прикладная криптография [Текст] / А. Чмора. - М.: Гели-ос APB, 2002. - 256 с. - ISBN 5-85438-037-4.

7. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си [Текст] / Б. Шнайер. - М.: Триумф, 2002. - ISBN 5-89392-055-4.

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