Приложения шифров. Криптоанализ. Учебное пособие
.pdfКонтрольные вопросы
1.Что называется хэш-функцией?
2.ЭЦП – это идентификатор или аутентификатор? Поясните раз-
личия.
3.Приведите примеры аутентификаторов и идентификаторов че- ловека.
4.Выделите две основные части ЭЦП. Как они связаны с иденти- фикацией и аутентификацией?
5.На каком из ключей вы подписываете сообщение?
6.Сколько различных документов вы можете подписать с по- мощью хэш-функции, полагая ее идеальной? Как можно изменить это число?
7.В чем заключается основной недостаток ЭЦП RSA? Подготовь- те пример и продемонстрируйте его.
8.Подберите два различных текста с совпадающими хэш- значениями. Объясните результат.
9.Подберите два различных текста с совпадающими ЭЦП. Объяс- ните результат.
10.Приведите примеры аутентификаторов и идентификаторов, ис- пользуемых в паспорте гражданина.
11.Измените текст сообщения на один бит. Как изменится при этом хэш-значение?
12.Измените ЭЦП сообщения на один бит и прокомментируйте ре- зультат верификации.
13.Как с помощью ЭЦП защитить программу от проникновения вирусов?
14.Как провести аутентификацию пользователя, используя ЭЦП?
15.Приведите примеры аутентификаторов и идентификаторов ав- томобиля.
16.Какие виды действий с электронными документами можно про- контролировать с помощью ЭЦП?
21
2. КРИПТОАНАЛИЗ
Криптоанализом называется расшифрование зашифрованного тек- ста без знания ключа. Иногда криптоанализ и/или его результат назы- вают решением шифра. Приступая к рассмотрению криптоанализа, необходимо сделать следующие замечания.
1.Криптоанализ изначально ограничен некоторым множеством частных решений. Этот факт является следствием существования со- вершенных, идеальных и абсолютно стойких шифров по Шеннону [1],
содной стороны, и комбинаторной сложностью метода перебора как универсального метода криптоанализа – с другой стороны. По сути дела, методы криптоанализа основаны на ошибочном или неграмотном использовании шифров, тех или иных недостатках алгоритмов шифро- вания или их реализации.
2.Криптоанализ решает две задачи: расшифрование зашифрован- ного текста без знания ключа и определение стойкости шифра. Если первую из них можно назвать задачей чистого криптоанализа, то вто-
рую скорее следует отнести к тому, что можно было бы назвать крип-
тометрологией.
Это, во-первых, следует из различий в исходных данных, доступ- ных для каждой из задач. Для первой задачи допустимыми начальны- ми данными являются известность метода шифрования и наличие не- которого объема шифротекста. Для второй допускаются два варианта: наличие любого объема шифротекста и соответствующего ему откры- того текста, либо даже так – любого объема выбранного открытого текста и соответствующего ему шифротекста. С учетом того, что за- прет шифрования произвольной и стандартной информации – один из основных принципов шифрования, оба варианта второй задачи явля- ются модельными.
22
Задачи различаются не только исходными данными, но и решения- ми. Решение первой задачи – правильный открытый текст. Решение второй задачи – определение для конкретного шифра того объема от- крытого и зашифрованного текста, в том числе и специально выбран- ного, при котором может быть определен ключ шифра, и необходимых для этого условий, в которых это может быть сделано. Такая информа- ция важна как для задачи правильного решения шифра, так и для пра- вильного шифрования при использовании определенного шифра.
Если метод криптоанализа предназначен для решения первой зада- чи, то он должен отвечать двум основным требованиям:
1) кратно уменьшать минимальную существующую рабочую ха- рактеристику решения (рабочей характеристикой шифра по Шеннону называется средний объем работы, необходимый для определения ключа при имеющемся объеме шифротекста);
2) соответствовать реальным исходным данным.
Таковыми, как правило, являются следующие данные: наличие ограниченного (и весьма небольшого) объема шифротекста, зашифро- ванного на одном ключе, а также, возможно, знание шифра, использо- ванного при шифровании. Остальные варианты следует рассматривать как модельные. Действительно, если для нахождения 64-битового
ключа необходимо перехватить 250 связанных 64-битовых блока от- крытого текста и шифротекста, то возникает вопрос: когда это воз- можно, да и ключ в такой ситуации для чего нужен? Или другой вари- ант – в каких случаях возможен доступ к шифратору с одним и тем же ключом для генерации такого же по порядку величины количества свя- занных пар выбранного открытого текста и шифротекста? И если та- кой доступ все-таки возможен, то для чего необходимо узнать ключ такого шифратора?
2.1. Криптоанализ закрытых текстов
Для решения задачи криптоанализа используются методы перебо- ра, проб и ошибок; методы, основанные на частотных характеристиках текстов на естественных языках; словарные методы, в том числе метод вероятных слов. Для совершенных, идеальных и абсолютно стойких шифров методов решения по определению не существует.
23
Метод перебора
Метод перебора является универсальным методом решения дис- кретных задач. В том или ином виде он используется практически в каждом из методов криптоанализа. Основное препятствие к его приме- нению – комбинаторная сложность решения, быстро нарастающая с ростом переборного пространства задачи. Это приводит к вычисли- тельной неразрешимости задачи данным методом.
Здесь важно понимать, что для получения ответа по методу пере- бора лишь в отдельных случаях потребуется просмотреть все про- странство. В других случаях ответ будет получен сразу или почти сра- зу. В теории вероятностей под названием «парадокс дней рождений»
известен следующий результат [6]. Если множество Z мощностью 2n содержит пару (x, y), связанную отношением f(x) = y, то для произ-
вольного подмножества A Z мощностью 2n/2 с вероятностью боль- шей одной второй найдется хотя бы одна пара (x, y), связанная отно- шением f(x) = y. То есть для получения решения методом перебора потребуется просмотреть не более половины возможных вариантов, в среднем – и менее половины, если метод может быть остановлен при достижении правильного решения (распознавании его). Следует пони- мать, что это статистическая оценка, и она достижима лишь при значи- тельном числе постоянных испытаний.
В силу своей универсальности метод перебора позволяет устано- вить единую меру «переборной» стойкости шифра Р как мощности переборного пространства (как правило, ключей) практически для всех шифров. Данная мера легко позволяет получить оценку рабочей харак- теристики шифра на основе известной производительности используе- мых ЭВМ и их доступного количества. Последнее связано с тем, что перебор легко распараллеливается.
Переборная стойкость определяется максимально возможным пе- риодом повторяемости ключа, который будем называть его размером R в битах, по формуле
P = 2R.
Она измеряется в количестве возможных вариантов ключей, т. е. в штуках (ключах), и отличается от стойкости шифра по Шеннону (рас- стояния единственности), которая измеряется в единицах объема ин- формации – битах и которую будем называть длиной ключа L.
24
Так, длина ключа L шифра Виженера для английского языка, по Шеннону, равна 2R, где R – размер ключа в знаковых единицах [1]. Это означает, что для решения данного шифра необходимо и достаточно L = 2R знаковых единиц зашифрованного текста. С другой стороны,
мощность пространства ключей составит 26R при размере ключа R.
Следовательно, для шифра Виженера существует более эффективное, чем перебор, решение.
Система Цезаря имеет максимальный размер ключа R = 1, значения
которого выбираются из пространства 261 . В то же время она является
частным случаем системы Виженера и, следовательно, имеет длину ключа, равную 2×1 = 2. Для простой замены, также являющейся част- ным случаем системы Виженера, но с перемешанным алфавитом, мак- симальный размер «ключа» равен единице (R = 1), значения которого
выбираются из пространства (26!)1 (1026,3) . С другой стороны, дли-
на «ключа» простой замены для англоязычных текстов по оценке Шеннона составляет 53R = 53×1 = 53 знаковые единицы.
Переборная стойкость шифра и размеры ключа, достаточно просто определяемые, вполне могут быть использованы в качестве прибли- женной меры стойкости шифра. Однако шифры, для которых длина (как расстояние единственности) и размер ключа не сравнимы, допус- кают более эффективное, чем перебор, решение.
Возможности, которые предоставляет метод перебора для решения задачи, а особенно – для ее оценки, трудно переоценить. Имея оценку задачи, можно и необходимо спланировать, с одной стороны, процесс реального шифрования, с другой – процесс вскрытия шифра. И если
использование метода перебора для криптоанализа в общем случае практически невозможно, то локальное его применение в составе ме- тода проб и ошибок является оправданным и распространенным под- ходом. Но для этого необходимо сформулировать условия, при кото- рых перебор должен быть остановлен.
Метод проб и ошибок
Число переборов можно значительно сократить, если существует доступная информация, позволяющая разделять все пространство на непересекающиеся подмножества. На этом построен метод проб и ошибок. При разделении пространства выдвигается гипотеза, в каком
25
из подпространств находится необходимый объект, и осуществляется ее проверка. При ошибочном выборе делается переход в другое под- пространство, при правильном – новое разделение, но уже данного подпространства, и т. д. Метод дает минимальное число просмотров при делении исходного множества и каждого последующего подмно- жества на два. Ключевой в данном методе является информация, ис- пользуемая для разделения и проверки гипотез. Очевидно, что она свя- зана с упорядоченностью пространства, что крайне редко встречается в шифровании, более того, находится в прямом противоречии с его
принципами.
Когда возможность разделения переборного пространства все-таки существует, время криптоанализа может быть значительно сокращено. В [1] приводятся такие оценки. Если при полном переборе простран- ства шифра прямой замены для англоязычных текстов, мощность ко-
торого равна 26! 1026,3 , на получение ответа может понадобиться
3 106 лет при просмотре 1012 ключей в одну секунду, то при разделе-
нии этого пространства на 10 подмножеств, содержащих одинаковое количество ключей (когда правильное подмножество находится не бо- лее чем за 10 испытаний) и дальнейшем повторении процесса можно ожидать всего около 26 × 5 = 130 испытаний. При разделении на два подмножества понадобится не более 88 испытаний. То есть число ис- пытаний в этом случае будет равно по порядку размеру ключа в битах:
288= 1026,3 . Информацию о ключе при этом можно извлекать с любой
степенью детализации, вплоть до битовой – бит за битом. Но может получиться, что такая детализация приведет к тому, что само извлече- ние информации станет сложнее, чем переборный поиск ключа. Что и происходит, как правило, со стандартными шифрами.
Методы, основанные на частотных характеристиках текстов на естественных языках
Такие методы используют данные, характеризующие статистиче- ские связи в текстах на естественных языках: частоты (вероятности) встречаемости отдельных букв, биграмм, k-грамм, словари, таблицы сочетаемости букв, индекс совпадений и другие характеристики тек- стов (примеры подобных методов приведены в приложении).
Прямое использование данных методов для криптоанализа воз- можно лишь в случаях применения систем кодирования, например
26
простой замены. Для шифров требуются особые приемы, например тест Казиски для шифра Виженера [5]. Тест основан на простом наблюдении о том, что два одинаковых отрезка открытого текста, от- стоящих друг от друга на расстоянии, кратном размеру ключа R, будут одинаково зашифрованы. В шифротексте ищутся повторения длины не меньшей трех и расстояния между ними. Определяется наибольший общий делитель d этих чисел. Тогда R должно делить d. Чем больше повторений имеет текст, тем более вероятно, что R совпадает с d. Для уточнения значения R используется индекс совпадения. Индексом сов- падения называется вероятность того, что две случайно выбранные буквы для строки х совпадают. После этого формируется таблица, в которой каждая строка – простая замена. И из всех возможных сочета- ний находится решение. Похожая схема применяется и для шифра пе- рестановки.
В любом случае подобные методы необходимо рассматривать в единой системе с методом проб и ошибок и методом перебора. Напри- мер, если взять простую замену, то можно разделить все буквы ан-
глийского языка на четыре частотные группы с четко различающимися пределами частот [1]. Логарифм числа ключей в этом случае равен
log(2! 9! 9! 6!) = 14,28, т. е. простой подсчет частот знаков в тексте уменьшает неопределенность ключа на 12 десятичных единиц (показа- тель степени).
Другой пример – метод вероятных слов. В этом случае формиру- ется некоторое множество слов или словосочетаний, которые с боль- шой вероятностью могут встретиться в данном тексте, и каждое из них «продвигается» по тексту знак за знаком до наилучшей в некотором смысле позиции. Когда мы говорим о большой вероятности, то это означает «почти наверняка», при этом для самих вероятных слов или словосочетаний важнейшее значение имеет их длина. Наилучший слу- чай – когда она перекрывает размер ключа.
Подставляя вероятные слова в текст, получаем в локальной пози- ции текста сочетание «шифротекст – открытый текст», по которому вычисляются позиции ключа или весь ключ целиком. Вычисленный ключ применяется для расшифрования текста, и по результатам его
применения принимается решение о завершении или продолжении процедуры.
Криптоанализ как система метода проб и ошибок и перебора при наличии целевых критериев и ограничений образует метод поиска,
27
относящийся к группе методов оптимизации. Целевые критерии и ограничения формируются на основе статистики частотных характери- стик текстов на естественных языках, значимой для решения крипто- графических задач.
Шеннон сформулировал следующие требования к так называемой хорошей статистике [1]. Она должна:
1)просто вычисляться;
2)зависеть от ключа больше, чем от сообщения;
3)разделять пространство поиска и характеризовать подмноже- ство, где находится правильный ключ; давать информацию о значи- тельных объемах ключа, а не малую долю общего числа битов;
4)формировать простую и удобную в использовании информацию. Подсчет частот букв – униграмм – пример очень хорошей стати-
стики по Шеннону. Однако в современных условиях такой статисти- кой скорее всего является подсчет частот сочетаний букв, т. е. биграмм
[12].
Важной компонентой криптоанализа, значительно повышающей его эффективность, являются накопление результатов проведенных испытаний и их использование при последующем анализе текстов.
В строго идеальном шифре все статистики данной криптограммы не зависят от частного используемого ключа. Та как все стандартные шифры проектируются в приближении к совершенным, идеальным и абсолютно стойким шифрам по Шеннону [1], методы на основе ча- стотных статистик текстов, как правило, неприменимы для стандарт- ных шифров. Такие методы следует в первую очередь использовать для систем кодирования и классических (нестандартных) шифров с конечным ключом.
2.2. Криптоанализ с использованием открытого текста
Метод «встречи посередине» |
|
Пусть последовательно применяются два шифра |
С Е(Р, K) |
Е2 Е1(Р, K1), K2 , где K – объединение K1 и K2 |
длин m1 и m2 |
соответственно. Пара (С, Р) известна [6]. |
|
1. Шифруем Р с помощью Е1 при всех возможных значениях K1 , результаты сохраняются в массиве U1, U2, …, U2m1 .
28
2. Расшифровываем С с помощью Е2 для всех возможных значе- ниях K2 . Результаты сохраняются в массиве V1, V2, …, V 2m2 .
3.Анализируем U, V, формируя возможные пары K = (K1, K2) . Пара является возможной, если промежуточный шифротекст Ui сов- падает с шифротекстом Vj .
4.Повторяем шаги 1–3 для нескольких пар (С, Р), сокращая число возможных ключей.
Сложность метода полного перебора равна 2m1 m2 , но сложность
«встречи посередине» существенно меньше и равна a 2m1 b 2m2 , где a и b – некоторые константы. Метод наиболее эффективен при m1 m2 . Именно ввиду простоты данного метода в криптографии не
используют никакие двойные методы шифрования.
Линейный криптоанализ
Предложен М. Мацуи в 1992 г. в первую очередь для криптоанали- за шифра DES [6]. Для проведения линейного криптоанализа необхо- димо знать структуру шифра, а также иметь достаточный объем стати- стики, состоящей из пар открытого и шифротекстов, полученных на одном и том же неизвестном ключе.
Пусть Р, С, K – открытый текст, шифротекст и ключ некоторого блочного алгоритма с r раундами соответственно. Линейным прибли-
жением шифра называется соотношение L вида: < P, > < C, β > = = < K, γ >, которое выполняется с вероятностью 1/2 + ε, отличной от одной второй. Величина ε называется преобладанием линейного соот- ношения. Основная трудность линейного криптоанализа заключается в нахождении удачного линейного приближения. От этого зависит необ- ходимый для криптоанализа объем статистики. Для успешного анализа модуль ε должен быть как можно больше.
На основе анализа статистики пар открытого и шифротекстов уста-
навливается вероятностное соотношение для одного бита ключа или группы битов (более распространенный вариант). Для оценки качества данного статистического метода используется параметр надежности, который зависит от мощности статистики N (количества пар – табл. 2).
29
|
|
|
|
Т а б л и ц а 2 |
|
|
|
|
|
N |
1/4ε–2 |
1/2ε–2 |
ε–2 |
2ε–2 |
Надежность |
0,841 |
0,921 |
0,977 |
0,998 |
Кроме того, для работы метода необходимо, чтобы выполнялись три дополнительных предположения, удостовериться в справедливо- сти каждого из которых в реальности практически очень сложно, и из- вестно, что существуют шифры, для которых оно может не выполнять-
ся [6].
Для криптоанализа DES вероятностное соотношение в некоторых случаях выполняется как 1/ 2 57 / 237 . В среднем для нахождения
ключа DES этим методом потребуется приблизительно 243 пар откры- того и шифротекстов, причем успех (надежность) составит лишь 85 % случаев, т. е. ключ будет найден с вероятностью 0,85 [6].
Дифференциальный криптоанализ
Предложен Э. Бихамом и А. Шамиром в 1990 г. В основе метода лежит анализ пар открытых текстов (Р, Р1) и соответствующих им пар шифротекстов (С, С1) между которыми существуют определенные
разности или дифференциалы, а именно: a = P + P1, b = C + C1 [6].
1. Пара векторов (a, b)i называется i-м дифференциалом шифра,
если пара открытых текстов, отличающихся на вектор a, после i раун- дов шифрования может перейти в пару шифротекстов, отличающихся на вектор b. Вероятность i-го дифференциала P.
2.Выбираем наиболее вероятный дифференциал (r – 1).
3.При фиксированном неизвестном ключе собираем статистику из N четверок {P, P1, C, C1} таких, что P = a.
4.Предполагаем, что Сr 1 b . Для тройки Сr 1 b, С, С1 нахо-
дим список возможных значений ключа K.
5. Ключ, встречающийся в таких списках наиболее часто, принима- ем за основное решение.
Слайдовый метод
Предложен А. Бирюковыми и Д. Вагнером в 1999 г. Основная осо- бенность метода – его успешность не зависит от числа раундов в шиф- ре. Для его применения необходимо, чтобы шифр можно было разде-
30
