- •Министерство образования и науки Российской Федерации
- •В.И. Аверченков, м.Ю. Рытов, с.А. Шпичак
- •Брянск Издательство бгту
- •Isbn 978-5-89838-596-5
- •Редактор издательства т.И. Королева
- •Темплан 2011г., п. 57
- •1. Введение в криптографию 10
- •2. Стойкость криптографических систем 34
- •3. Принципы построения симметричных криптографических алгоритмов 61
- •4. Принципы построения асимметричных криптографических алгоритмов 98
- •5. Криптографические хэш-функции и электронно-цифровая подпись 133
- •6. Организация сетей засекреченной связи 160
- •7.Криптоанализ и перспективные направления в криптографии 183
- •Предисловие
- •1. Введение в криптографию
- •1.1. Краткая история развития криптографических методов.
- •1.2. Основные понятия криптографии
- •1.2.1. Термины и определения
- •1.2.2. Классификация шифров
- •1.2.3. Характер криптографической деятельности
- •Контрольные вопросы
- •2. Стойкость криптографических систем
- •2.1. Модели шифров и открытых текстов
- •2.1.1. Алгебраические модели шифров.
- •2.1.2. Вероятностные модели шифров.
- •2.1.3. Математические модели открытых сообщений.
- •2.2. Криптографическая стойкость шифров
- •2.2.1. Теоретико-информационный подход к оценке криптостойкости шифров
- •2.2.2. Практическая стойкость шифров.
- •2.3. Имитостойкость и помехоустойчивость шифров
- •2.3.1. Имитостойкость шифров. Имитация и подмена сообщения
- •2.3.2. Способы обеспечения имитостойкости
- •2.3.3. Помехостойкость шифров
- •2.3.4. Практические вопросы повышения надежности.
- •Контрольные вопросы
- •3. Принципы построения симметричных криптографических алгоритмов
- •3.1. Виды симметричных шифров. Особенности программной и аппаратной реализации.
- •3.2. Принципы построения блочных шифров
- •3.2.1. Базовые шифрующие преобразования
- •3.2.2. Сеть Файстеля
- •3.3. Современные блочные криптоалгоритмы
- •3.3.1. Основные параметры блочных криптоалгоритмов.
- •3.3.2. Алгоритм des
- •3.3.3. Блочный шифр tea
- •Var key:tLong2x2;
- •Var y,z,sum:longint; a:byte;
- •Inc(sum,Delta);
- •3.3.4. Международный алгоритм idea
- •3.3.5. Алгоритм aes (Rijndael)
- •InverseSubBytes(s);
- •InverseShiftRows(s);
- •InverseSubBytes(s) End;
- •3.4. Принципы построения поточных шифров
- •3.4.1. Синхронизация поточных шифрсистем
- •3.4.2. Структура поточных шифрсистем
- •3.4.3.Регистры сдвига с обратной связью
- •3.4.4. Алгоритм Берленкемпа-Месси
- •3.4.5. Усложнение линейных рекуррентных последовательностей
- •3.5. Современные поточные криптоалгоритмы
- •3.5.1. Алгоритм Гиффорда
- •3.5.2. Алгоритм a5
- •3.6. Режимы использования шифров
- •Контрольные вопросы
- •4. Принципы построения асимметричных криптографических алгоритмов
- •4.1. Математические основы асимметричной криптографии
- •4.1.1. Свойства операций
- •4.1.2. Функция Эйлера. Поле. Теоремы Эйлера - Лагранжа и Ферма
- •4.1.3. Конечные поля
- •4.1.4. Основные алгоритмы
- •Алгоритм разложения чисел на простые множители.
- •4.1.5. Алгоритмы нахождения нод и мультипликативного обратного по модулю
- •4.1.6. Китайская теорема об остатках
- •4.1.7. Символы Лежандра и Якоби. Извлечение корней
- •4.2. Примеры современных асимметричных шифров
- •4.2.1. Криптосистема rsa
- •4.2.2. Взаимосвязь компонентов rsa
- •Слабые моменты реализации rsa
- •4.2.3. Криптосистема Эль-Гамаля
- •4.2.4. Криптосистема Рабина
- •4.2.5. Рюкзачные криптосистемы
- •4.2.6. Шифрсистема Мак-Элиса
- •Контрольные вопросы
- •5. Криптографические хэш-функции и электронно-цифровая подпись
- •5.1. Криптографические хэш-функции
- •5.1.1. Блочно-итерационные и шаговые функции
- •5.1.2. Ключевые функции хэширования
- •5.1.3 Бесключевые функции хэширования
- •5.1.4. Схемы использования ключевых и бесключевых функций
- •5.2. Электронно-цифровая подпись
- •5.2.1. Задачи и особенности электронно-цифровой подписи
- •5.2.2. Асимметричные алгоритмы цифровой подписи на основе rsa
- •5.2.3. Алгоритм цифровой подписи Фиата – Фейге – Шамира
- •5.2.4. Алгоритм цифровой подписи Эль-Гамаля
- •5.2.5. Алгоритм цифровой подписи Шнорра
- •5.2.6. Алгоритм цифровой подписи Ниберга-Руппеля
- •5.2.7. Алгоритм цифровой подписи dsa
- •5.2.8. Симметричные (одноразовые) цифровые подписи
- •Контрольные вопросы
- •6. Организация сетей засекреченной связи
- •6.1. Протоколы распределения ключей
- •6.1.1. Передача ключей с использованием симметричного шифрования
- •6.1.2. Передача ключей с использованием асимметричного шифрования
- •6.1.3. Открытое распределение ключей
- •6.1.4. Предварительное распределение ключей
- •6.1.5. Схемы разделения секрета
- •6.1.6. Способы установления ключей для конференц-связи
- •6.2. Особенности использования вычислительной техники в криптографии
- •6.2.1. Методы применения шифрования данных в локальных вычислительных сетях
- •6.2.2. Обеспечение секретности данных при долгосрочном хранении.
- •6.2.4. Обеспечение секретности ключей при долгосрочном хранении
- •6.2.5. Защита от атак с использованием побочных каналов
- •7.1.2. Атаки на хэш-функции и коды аутентичности
- •7.1.3. Атаки на асимметричные криптосистемы
- •7.2. Перспективные направления в криптографии
- •7.2.1. Эллиптические кривые
- •7.2.2. Эллиптические кривые над конечными полями
- •7.2.3. Алгоритм цифровой подписи ec-dsa
- •7.2.4. Квантовая криптография
- •Контрольные вопросы
- •Приложение
- •Заключение
- •Список использованной и рекомендуемой литературы
- •Учебное издание
- •Аверченков Владимир Иванович Рытов Михаил Юрьевич Шпичак Сергей Александрович
2.2. Криптографическая стойкость шифров
Попытки противника по добыванию зашифрованной информации называют криптоатаками. В симметричных криптосистемах обычно рассматривают следующие криптоатаки:
Атака на основе шифртекста: криптоаналитик располагает шифртекстами отвечающими неизвестным открытым текстам различных сообщений. Требуется определить хотя бы одно из сообщений (или соответствующий ключ ki), исходя из необходимого числа m криптограмм, или убедиться в своей неспособности сделать это. В качестве частных случаев возможно совпадение ключей k1 = … = km или совпадение открытых текстов x1 = … = xm.
Атака на основе известного открытого текста: криптоаналитик располагает парами открытых и отвечающих им шифрованных текстов. Требуется определить ключ ki для хотя бы одной из пар. В частном случае, когда k1 = … = km, требуется определить ключ k или, убедившись в своей неспособности сделать это, определить открытый текст xm+1 еще оджной криптограммы ym+1 = Ek(xm+1), зашифрованный на том же ключе.
Атака на основе выбранного открытого текста: эта атака отличается от предыдущей лишь тем, что криптоаналитик имеет возможность выбора открытых текстов . Цель атаки та же, что и предыдущей. Подобная атака возможна в случае, когда криптоаналитик имеет доступ к шифратору передающей стороны, или в системах опознавания "свой-чужой".
Атака на основе выбранного шифртекста: эта атака отличается от второй атаки тем, что криптоаналитик имеет возможность выбора шифртекстов . Цель атаки та же, что и во втором случае. Подобная атака возможна, когда криптоаналитик имеет доступ к шифратору принимающей стороны.
Атаки на основе выбранных текстов считаются наиболее опасными. Иногда к указанным атакам добавляют и другие.
Правило Керкгоффса – компрометация системы не должна причинять неудобств ее пользователям (надежность определяется только секретностью ключа).
В криптографии различают два подхода к стойкости – теоретическую стойкость и практическую (или вычислительную) стойкость.
2.2.1. Теоретико-информационный подход к оценке криптостойкости шифров
Энтропия и избыточность языка
Свойства текстов изучаются методами теории информации, разработанной К. Шенноном. Ключевое понятие – энтропия, определяемая функцией от вероятностного определения и характеризующая количество неопределенности или информации в случайном эксперименте. Неопределенность и информация измеряются одной и той же мерой. Применительно к независимым испытаниям случайной величины с распределением вероятностей
энтропия H() определяется формулой
Единицей количества информации считается 1 бит. При pi = 1/n при всех , то
.
Мерой среднего количества информации, приходящейся на одну букву открытого текста языка (рассматриваемого как источник случайных текстов), служит величина H, называемая энтропией языка . вычисляется последовательными приближениями позначных моделей текста: H1, H2, … Hr.
Для каждого языка значение H стремится к определенному пределу (после r = 30 предел уже устанавливается):
.
при этом формула
определяет избыточность языка R. Разговорные языки имеют весьма большую избыточность. Избыточность текста в 75% означает, что при оптимальном кодировании текста (например использование кодов Хаффмена, Фано или других) его можно сжать до четверти без потери информации.
Энтропию можно определить и по другому. Для n-буквенного алфавита число текстов длины L, удовлетворяющих статистическим ограничениям, равно (при достаточно больших L) не как это было бы, если бы мы имели право брать любые наборы из L букв, а всего лишь
По сути это приближенное число осмысленных текстов длины L для данного языка . Исходя из этого можно определить энтропию языка формулой
Расстояние единственности.
При дешифровании криптограмм может возникнуть ситуация, в которой несколько найденных ключей дают осмысленный текст. Так, криптограмму WNAJW, полученную при помощи шифра Цезаря, порождают два открытых текста RIVER и ARENA, отвечающих величинам сдвига (ключам) 5 и 11 соответственно. Из этих ключей один является истинным, а другой ложным. Найдем оценку для числа ложных ключей. Для этого рассмотрим связь между энтропиями вероятностных распределений P(X), P(K), P(Y), заданных на компонентах X, K, Y произвольного шифра в см. лекция 2.
Назовем условную энтропию H(K / Y) неопределенностью шифра в по ключу. Она измеряет среднее количество информации о ключе, которое дает шифртекст. Аналогично вводится неопределенность шифра по открытому тексту H(X / Y). Эти величины являются мерой теоретической стойкости шифра.
Минимально возможным значением неопределенности H(X/Y) является 0.
,
это возможно только в тех случаях, когда или для всех x, y, то есть если при некоторых x, y. Это означает, что по данному y можно получить существенную информацию об x, что свидетельствует о слабости шифра. Идеальной является ситуация когда H(X / Y) = H(X). Именно в этом случае шифр можно было бы назвать совершенным.
Связь между энтропиями компонент шифра дает формула неопределенности шифра по ключу:
полученная К. Шенноном. Эта формула позволяет получить оценку среднего числа ложных ключей.
Введем обозначение K(y) = {k K : x X, Ek(x) = y} – множество ключей, для каждого из которых y является результатом зашифрования некоторого осмысленного текста длины L. Если мы располагаем криптограммой y, то число ложных ключей равно |K(y)| - 1, так как лишь один из допустимых ключей является истинным. Определим среднее число ложных ключей кL (относительно всех возможных шифртекстов длины L) формулой
.
Теорема. Для любого рассматриваемого шифра в с равновероятными ключами при достаточно больших значениях L в алфавите из n букв имеет место неравенство
.
где R - избыточность данного языка.
Назовем расстоянием единственности для шифра в натуральное число L0, для которого ожидаемое число ложных ключей кL равно нулю. По сути, расстояние единственности есть средняя длина шифртекста, необходимая для однозначного восстановления истинного ключа (без каких-либо временных ограничений на время его нахождения).
Непосредственно из предыдущего неравенства следует, что
откуда при кL = 0 получаем и, следовательно,
Минимально возможное значение в этом неравенстве и принимается за L0. Таким образом.
Например для шифра простой замены с параметрами n = 26, |K| = 26!, R = 0,5 (примерно соответствует английскому языку) получим оценку
Это значит что для шифра простой замены, для английского языка в среднем по криптограмме длиной около 40 символов можно однозначно определить открытый текст.
Для совершенных шифров типа одноразовых блокнотов расстояние единственности L0.
Теоретическая стойкость шифров
При анализе теоретической стойкости шифров отвлекаются от объема реальных затрат на дешифрование. Основным критерием является возможность получения на основе шифртекста вероятностной информации об открытом тексте или используемом ключе. Для теоретически стойких (совершенных) шифров сама задача дешифрования становится бессмысленной. Никакой метод криптоанализа, включая полный перебор ключей, не позволяет не только определить ключ или открытый текст, но даже получить о них какую либо информацию (за исключением длины открытого текста).
Априорная вероятность открытого текста – безусловная вероятность.
Апостериорная вероятность открытого текста – вероятность (по шифртексту) при условии использования соответствующего шифра.
Стойкость по отношению к атаке на основе единственного шифртекста. К. Шеннон назвал шифр совершенным, если шифртекст не дает никакой вероятностной информации об открытом тексте на языке вероятностной модели , определение совершенного шифра выражается следующим образом:
Определение. Назовем шифр в совершенным, если для любых x X, y Y выполняется равенство
p(x / y) = pX(x).
Утверждение. Если шифр в – совершенный, то
|X| ≤ |Y| ≤ |K|.
Теорема (К. Шеннон). Пусть в – шифр, для которого |X| = |Y| = |K|. Тогда шифр в – совершенный тогда и только тогда, когда выполняются два условия:
Для любых x X, y Y существует единственный ключ k K, для которого
Ek(x) = y;
Распределение вероятностей P(K) – равномерное, то есть для любого ключа
По сути, теорема описывает шифры табличного гаммирования со случайными равновероятными ключами.