- •Виды атак на криптографические алгоритмы. Понятие стойкости.
- •Шифры замены. Математическая модель. Примеры.
- •Шифры перестановки. Математическая модель. Примеры.
- •Шифры гаммирования. Математическая модель. Примеры.
- •Принципы построения блочных шифров. Схема Фейстеля.
- •Шифрование в ячейке Фейстеля Расшифрование в ячейке Фейстеля Формирование группы
- •Алгоритм симметричного шифрования des.
- •Алгоритм симметричного шифрования гост 28147-99.
- •Алгоритм симметричного шифрования Rijndael.
- •4.Добавление ключа.
- •Алгоритмы симметричного шифрования idea и Blowfish.
- •Режимы выполнения алгоритмов симметричного шифрования.
- •Поточные криптосистемы. Принципы построения. Классификация. Проблема синхронизации.
- •Линейные конгруэнтные генераторы. Линейные регистры сдвига.
- •Поточные шифры. Отличия от блочных. Стойкость. Методы анализа.
- •Примеры поточных шифров на основе lfsr.
- •Примеры поточных шифров, использующих аддитивные генераторы:
- •Примеры поточных шифров на основе fcsr.
- •Математические методы криптоанализа: метод опробывания, методы на основе теории статистических решений.
- •Линейный криптоанализ.
- •Разностный криптоанализ.
- •Атаки на функции хэширования.
- •Функция хеширования md5.
- •Функция хеширования sha-1.
- •Функция хеширования гост 3411-94.
- •Функция хеширования стб 1176.1-99.
- •Общие положения электронной цифровой подписи. Задачи. Требования.
- •Прямая и арбитражная цифровая подписи. Примеры.
- •Стандарт электронной цифровой подписи dss.
- •Цифровая подпись на основе алгоритмов с открытыми ключами. Схема Фиата-Шамира.
- •Цифровая подпись Эль-Гамаля. Схема rsa.
- •Стандарт электронной цифровой подписи dss.
- •Стандарт электронной цифровой подписи гост-р 34.10-94.
- •Стандарт электронной цифровой подписи стб 1176.2-99.
- •Применение эллиптических кривых в криптографии. Алгоритм шифрования на основе эллиптических кривых.
- •Алгоритмы обмена ключами и электронной цифровой подписи на основе эллиптических кривых.
- •Стеганографические методы защиты информации. Основные понятия и определения. Области применения.
- •Общая модель стеганосистемы. Проблема устойчивости. Стегоанализ.
- •Методы сокрытия информации в неподвижных изображениях.
- •Методы сокрытия информации в текстовых данных.
- •Протоколы аутентификации. Двусторонняя аутентификация.
- •Протоколы аутентификации. Односторонняя аутентификация.
Математические методы криптоанализа: метод опробывания, методы на основе теории статистических решений.
Криптоанализ включает определение используемого языка, типа криптосистемы, ключа и исходного текста; обычно именно в этом порядке
Попытку раскрытия конкретного шифра с применением методов криптоанализа называют криптографической атакой на этот шифр. Криптографическую атаку, в ходе которой раскрыть шифр удалось, называют взломом или вскрытием.
Метод «опробывания» (полного перебора, brute force).
V – алфавит
N – его мощность(кол-во букв)
X = (x1, x2, …, xn) ϵ Vn
ko = (k1o, …, klo) ϵ K c Vln – ключ данного сеанса шифрования
f(●) – функция зашифрования
y = (y1, …, yn) ϵ VnN - шифр текст (С)
y = f(X, ko)
x = f-1(y, k) - расшифровка
Линейный криптоанализ.
Линейный криптоанализ изначально разрабатывался для атак на блочные шифры, но применим и к потоковым. Самим разработчиком было подробно изучено его применение к DES.
Криптоанализ происходит в два шага. Первый — построение соотношений между открытым текстом, шифротекстом и ключом, которые справедливы с высокой вероятностью. Второй — использование этих соотношений вместе с известными парами открытый текст — шифротекст для получения битов ключа.
Смысл алгоритма состоит в получении соотношений следующего вида:
где Pn, Cn, Kn — n-ые биты текста, шифротекста и ключа.
Данные соотношения называются линейными аппроксимациями. Для произвольно выбранных бит открытого текста, шифротекста и ключа вероятность справедливости такого соотношения P примерно равна 1/2. Такими соотношениями, вероятность которых заметно отличается от 1/2 можно пользоваться для вскрытия алгоритма.
Как и в дифференциальном криптоанализе, сначала криптоаналитик находит некое однораундовое соотношение, затем пытается распространить его на весь алгоритм. В отличие от дифференциального криптоанализа существуют алгоритмы поиска полезных соотношений. Два алгоритма были описаны Мицуру Мацуи, другие появились позже.
В блочных шифрах анализ преимущественно концентрируется на S-боксах, так как они являются нелинейной частью шифра. Наиболее эффективное однораундовое соотношение для алгоритма DES использует свойство таблицы S5. Второй входной бит таблицы равен результату операции XOR над всеми выходными битами с вероятностью 3/16 (смещение в 5/16 относительно 1/2). А для полнораундового DES известно соотношение, выполняющееся с вероятностью 1/2 + 2−24.
Линейный криптоанализ имеет одно очень полезное свойство — при определённых условиях можно свести соотношение (1) к уравнению вида:
Здесь отсутствуют биты открытого текста, то есть можно построить атаку на основе только шифротекста. Такая атака является наиболее практичной.
Разностный криптоанализ.
Дифференциальный
криптоанализ(ДКА) основан на изучении
преобразования разностей между шифруемыми
значениями на различных раундах шифрования.
В качестве разности, как правило,
применяется операция побитового
суммирования по модулю 2,
хотя существуют атаки и с вычислением
разности по
модулю
.
Является статистической атакой, в
результате работы предлагает список
наиболее вероятных ключей шифрования
блочного симметричного шифра.
На схеме представлено прохождение одного из этапов DES. Пусть X и X' - пара входов, различающихся на ΔX. Соответствующие им выходы известны и равны Y и Y', разница между ними - ΔY. Также известны перестановка с расширением и P-блок, поэтому известны ΔA и ΔC. B и B' неизвестны, но мы знаем, что их разность равна ΔA, т.к. различия XOR Ki c A и A' нейтрализуются. Вскрытие ключа основано на том факте, что для заданного ΔA не все значения ΔC равновероятны, а комбинация ΔA и ΔC позволяет предположить значения A XOR Ki и A' XOR Ki. При известных A и A' это дает нам информацию о Ki.
Таким образом, определенные отличия пар открытых текстов с высокой вероятностью вызывают определенные отличия получаемых шифротекстов. Такие различия называют характеристиками. Для нахождения характеристик составляется таблица, в которой строкам соответствуют возможные ΔX, столбцам - возможные ΔY, а на пересечении строки и столбца пишется, сколько раз заданное ΔY встречается для заданного ΔX. Различные характеристики можно объединять, и, при условии, что рассматриваемые этапы независимы, перемножать их вероятности.
Пара открытых текстов, которая соответствует характеристике называется правильной парой, а пара, не соответствующая характеристике - неправильной парой. Правильная пара указывает на правильный ключ рассматриваемого этапа, неправильная - на случайный ключ. Для нахождения правильного ключа этапа нужно собрать достаточное количество предположений - один из ключей будет встречаться среди правильных чаще, чем остальные. Зная вероятное значение Ki мы получаем 48 битов ключа шифрования K. Остальные 8 битов можно определить с помощью перебора.
Основные принципы построения асимметричных криптосистем. Стойкость.
Шифросистема RSA. Стойкость.
Шифросистема Эль-Гамаля. Стойкость.
Шифросистема на основе принципа «рюкзака».
Шифросистема Рабина. Стойкость.
Алгоритм обмена ключами Диффи-Хеллмана.
Хэш-функции. Требования. Типы функций хэширования.
Хеш-функция- преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины.
Требования:
- хеш-функция должна быть чувствительна к всевозможным изменениям в тексте M(вставка, выбросы, перестановки); - хеш-функция должна обладать свойством необратимости, то есть задача подбора документа M', который обладал бы требуемым значением хеш-функции, должна быть вычислительно неразрешима; - вероятность того, что значения хеш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала
Типы функций хэширования:
на основе какой-либо трудно вычисляемой математической задачи;
на основе алгоритмов блочного шифрования (многие из существующих алгоритмов являются стойкими)
разработанные с нуля(эффективная программная реализация);
