Автор работы: Пользователь скрыл имя, 24 Апреля 2013 в 12:01, курсовая работа
На сегодняшний день не вызывает сомнения тот факт, что будущее информационных технологий неразрывно связано с совершенствованием методов и способов обеспечения конфиденциальности информации. Наиболее важным способом является криптография. Однако для обеспечения конфиденциальности криптографические алгоритмы должны обладать достаточной стойкостью. Данным вопросом занимается такая наука, как криптоанализ.
Введение 6
1 Теоретическая часть 7
1.1 Классификация криптоатак 7
1.2 Универсальные методы криптоанализа 14
1.2.1 Метод полного перебора 14
1.2.2 Атака по ключам 17
1.2.3 Частотный анализ 21
1.3 Методы криптоанализа блочных шифров 22
1.3.1 Статистический метод 23
1.3.2 Метод разностного (дифференциального) анализа 25
1.3.3 Метод линейного анализа 28
1.4 Методы криптоанализа поточных шифров 30
1.5 Криптоанализ по побочным каналам 36
1.5.1 Атака по времени 38
1.5.2 Атаки по мощности 39
1.5.3 Атаки по ошибкам вычислений 40
1.5.4 Атаки по электромагнитному излучению 41
2 Практическая часть 42
Заключение 47
Список использованных источников 48
Пусть некоторый блочный шифратор с длиной блока m задается отображением F:Ξ×(K1×…K2)→Y, где F=FR*FR-1*…*F2*F1. При этом ki∈Ki получаются по некоторой схеме из общего ключа k или выбирается независимо и равновероятно для каждого цикла. Пространство открытых текстов Ξ снабжено групповой операцией , и для каждого X∈Ξ в Ξ существует элемент X−1∈Ξ, обратный к X относительно операции . Выходной информационный блок (i −1)-го цикла является входным блоком i-го цикла, т.е. X (i) = Y(i −1), для 2≤i≤R; открытый текст X=X(1),
зашифрованный текст Y = Y(R).
Пусть одноцикловое преобразование Fj -криптографически слабое. Сделанное предположение вполне допустимо (идея Шеннона о суперпозиции простых шифров для получения сложного шифра). Под слабым криптографическим преобразованием F: Ξ×K →Y будем понимать такое криптографическое преобразование F(X,k)=Y, для которого по известным величинам Y=F(X,k), Y* = F(X*,k) и ΔX = X ⊗ (X*)−1 можно, не зная X и X*, определить множество K′, |K′| << |K|, такое, что k∈K′.
Пусть X и X* - открытые тексты. Два открытых текста определяют последовательность разностей ΔX(0), ΔX(1),…,ΔX(R), где ΔX(0)=ΔX=X⊗(X*)-1; ΔX(i) = X(i+1)⊗(X*(i+1))-1, 1≤i≤R-1; ΔX(R)=Y⊗(Y*)-1. Тогда для любого 1≤i≤R и любой пары (α,β) можно определить вероятность при условии, что вход X и все одноцикловые ключи ki выбраны случайно, независимо и равновероятно. Пара (α,β) возможных значений вектора (ΔX (0), ΔX (i)) называется дифференциалом i-го цикла.
Выберем пару (α,β), для которой величина принимает максимальное значение, и пару (X,X*), такую, что ΔX=α . Для одноциклового шифра FR , полагая ΔX(R−1) = β и зная истинные значения Y=F(X, k), Y*=F(X*, k), определим множество вероятных одноцикловых ключей K′. Если теперь эту процедуру провести для различных пар (X, X*), удовлетворяющих условию ΔX =α , то ключи, наиболее часто встречающиеся в множествах K′, можно считать кандидатами в истинный ключ R-го цикла шифрования. Ключ всей системы находим с помощью перебора оставшихся неизвестными разрядов ключа системы или с использованием особенностей процедуры выработки цикловых ключей из ключа всей системы.
Для того чтобы описанная процедура приводила к корректным результатам, необходимо, чтобы для данной системы шифрования выполнялась гипотеза о статистической эквивалентности (формула 2):
(2)
для почти всех значений частей ключа, используемых в циклах шифрования
(ω1,…,ωR-1), где Pr{θ} обозначает вероятность события θ.
Возможность эффективного применения метода разностного анализа существенно зависит от выбора групповой операции, относительно которой определяются разности Δ. Чаще всего в качестве таковой выбирается операция сложения булевых векторов. Однако в отдельных случаях неудачный выбор операции может приводить к нарушению гипотезы о статистической эквивалентности, в результате чего становится невозможным вычисление вероятностей.
Эффективность
метода разностного анализа
Почти сразу после появления первых работ по разностному криптоанализу начались поиски условий, при которых та или иная криптографическая система остается устойчивой по отношению к этому методу. Так как разностный анализ основан на использовании неравновероятности в распределении значений разности двух шифротекстов полученных из пары открытых текстов, имеющих некоторую фиксированную разность, то очевидно, что если все возможные значения разностей двух шифротекстов будут появляться с близкими (в идеале – с равными) вероятностями, то метод разностного анализа не сможет работать.
Подобно разностному анализу, линейный криптоанализ является комбинированным методом, сочетающим в себе поиск линейных стат. аналогов для уравнений шифрования, статистический анализ имеющихся открытых и шифрованных текстов, использующий также методы согласования и перебора. Этот метод исследует статистические линейные соотношения между отдельными координатами векторов открытого текста, соответствующего шифротекста и ключа и использует эти соотношения для определения статистическими методами отдельных координат ключевого вектора.
На сегодняшний день метод линейного криптоанализа позволил получить наиболее сильные результаты по раскрытию ряда итерационных систем блочного шифрования, в том числе и системы DES. В отличие от метода разностного анализа, метод линейного криптоанализа в неявном виде появился еще в работе, где он успешно применялся при анализе системы блочного шифрования FEAL.
Пусть имеется блочный шифр , отображающий при фиксированном ключе k∈ вектор открытого текста p∈ в вектор шифротекста c∈. Предполагается, что открытый текст выбирается случайно и равновероятно, а подключи в каждом раунде независимы друг от друга. Сложность атаки связана с количеством необходимых известных открытых текстов, т.к. для любой пары (открытый текст, шифротекст) требуется небольшое количество вычислений для реализации алгоритма.
Эта атака может быть проведена, если имеется только шифротекст. Мацуи были получены следующие результаты:
Метод линейного криптоанализа является частным случаем общего статистического метода и основан на использовании выражений вида (формула 3):
(Y(t1), a) ⊕ (Y(t2), b) = (k, c), (3)
где a,b∈, c∈, 0≤t1<t2≤R (при этом пару векторов (a,b) называют линейной характеристикой), - скалярное произведение векторов g и h одинаковой размерности. В методе линейного криптоанализа используют только те выражения типа (3), которые выполняются с вероятностью, отличной от 0.5.
Вероятность,
с которой выполняется
, (4)
где -0.5≤ε≤0.5. Число ε называют преобладанием (deviation, bias).
Рассмотрим простейший (но не самый эффективный) вариант метода линейного криптоанализа - алгоритм определения одного бита ключа, называемый также «алгоритм 1 Мацуи». Этот алгоритм использует выражение типа (3) при t1 = 0 и t2 = R, т.е. подставляются непосредственно открытый и зашифрованный тексты (формула 5):
(5)
где 1≤i≤N, (Xi,Yi) - пары открытого и зашифрованного текста, известные криптоаналитику. Метод линейного криптоанализа в данном варианте определяет линейную комбинацию (K, c) битов ключа. Подсчитывается мощность множества:
Процедура статистической классификации разбивает все пространство наблюдений M на две области M0 и M1 (M = M0∪M1): к области M0 относят все те наблюдения, для которых N0 ≥ , а к области M1 - те наблюдения, для которых N0< .
Алгоритм
использует принцип максимума
Улучшенный «алгоритм 2 Мацуи» представляет собой естественное обобщение алгоритма 1 и заключается в использовании выражений вида (3) при t2 > R и/или t1 > 0.
Таким образом, метод линейного криптоанализа сводится к построению таких векторов a,b∈, c∈ чтобы модуль ε в выражении (4) был как можно больше. При этом надежность и трудоемкость метода определяются этой величиной |ε|, т.е. для построенных векторов a,b∈, c∈ надо уметь оценивать |ε| в выражении (4).
Эту задачу метод линейного криптоанализа решает, используя итерационную структуру блоковых шифров. Первым шагом при этом является анализ в каждом раунде алгоритма шифрования нелинейных элементов. Для каждого нелинейного элемента вычисляют для всех a’∈, b’∈ вероятности при случайном равновероятном выборе X’ из . Для получения оценки на преобладание для всего алгоритма рассматривают последовательности «согласованных» линейных соотношений для соседних раундов (т.е. соотношения, когда выходная линейная комбинация предыдущего раунда совпадает с входной линейной комбинацией последующего раунда).
Поточные шифры преобразуют открытый текст в шифртекст шифрованный побитово. Простейшая реализация поточного шифра представлена на рисунке 1. Генератор гаммы выдает поток битов: k1, k2,…, ki, называемый ключевым потоком, или бегущим ключом, или гаммой. Гамма шифра и поток битов открытого текста p1, p2,…, pi подвергаются операции XOR , в результате чего создается поток битов шифротекста c1, c2,…,ci, где cj = pj⊕kj (этот режим шифрования называется гаммированием). При расшифровании для восстановления битов открытого текста над битами шифртекста и той же самой гаммой тоже выполняется операция XOR: pj = cj⊕kj.
Надежность схемы всецело зависит от генератора гаммы. Если он создает бесконечную строку нулей, шифротекст, очевидно, будет совпадать с открытым текстом, и вся операция бессмысленна.
Рисунок 1.
Значительная часть предлагаемых поточных схем состоит из унифицированных узлов и блоков, напоминая тем самым выставку поделок из детского конструктора. Основными деталями этого «криптографического конструктора» являются:
Регистры сдвига обеспечивают большой период и хорошие статистические свойства последовательностей, в то время как остальные детали «конструктора» используются для внесения элементов нелинейности в законы функционирования поточной схемы.
В синхронных поточных шифрах гаммирующая последовательность формируется независимо от потока открытого текста при зашифровывании и шифротекста при расшифровывании. Главное свойство синхронного поточного шифра – отсутствие эффекта размножения ошибок. Это свойство ограничивает возможность обнаружения ошибки при расшифровывании. Кроме того, противник имеет возможность производить управляемые изменения шифротекста, совершенно точно зная, какие изменения в результате произойдут в соответствующем открытом тексте.
Самосинхронизирующиеся поточные шифры, благодаря свойству восстанавливать информацию после потери синхронизации, являются наиболее распространенным видом шифрования в дипломатических, военных и промышленных системах связи. В таких шифрах каждый бит гаммы представляет собой функцию фиксированного числа предыдущих битов шифротекста. Наиболее распространенный режим функционирования самосинхронизирующихся поточных шифров – режим обратной связи по шифротексту.
Поточные шифры почти всегда работают быстрее и обычно обладают меньшей конструктивной сложностью, чем блочные шифры. Наиболее известный поточный шифр был разработан Р. Ривестом; это шифр RC4, который характеризуется переменным размером ключа и байт-ориентированными операциями. На один байт требуется от 8 до 16 действий, программная реализация шифра выполняется очень быстро. Независимые аналитики исследовали шифр, и он считается защищенным. RC4 используется для шифрования файлов в таких изделиях, как RSA SecurPC. Он также применяется для защиты коммуникаций, например, для шифрования потока данных в Интернет-соединениях, использующих протокол SSL.
Хотя
подавляющее большинство
Структура поточного ключа может иметь некоторые уязвимые места, которые позволят нападающему получить некоторую дополнительную информацию о ключе. Наиболее очевидно, если период поточного ключа (т.е. количество бит, после которых поточный ключ начинает повторяться) слишком мал, то нападающий может применить обнаруженные части поточного ключа для дешифрации других частей закрытого текста.
Другая опасность состоит в том, что одна или несколько внутренних выходных последовательностей – часто выходы отдельных регистры сдвига с линейной обратной связью – могут иметь корреляцию с объединенной гаммой и атакованы при помощи линейной алгебры. Такие атаки называют «корреляционными атаками», или атаками «разделяй и властвуй». Основная идея состоит в выявлении определенной корреляции между выходом генератора и одной из его составных частей. Используя эту информацию, можно собирать данные о других промежуточных выходах до тех пор, пока генератор не будет взломан. К поточным шифрам также применим линейный и дифференциальный криптоанализ.
Информация о работе Способы криптоанализа симметричных шифров