- •Министерство образования и науки Российской Федерации
- •В.И. Аверченков, м.Ю. Рытов, с.А. Шпичак
- •Брянск Издательство бгту
- •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.3.4. Практические вопросы повышения надежности.
Совместно с алгоритмом шифрования данных целесообразно использовать алгоритм сжатия по следующим причинам:
Криптоанализ опирается на избыточность шифртекста, а сжатие файла перед шифрованием эту избыточность снижает;
Шифрование занимает много времени, а потому сжатие файла до шифрования ускоряет весь процесс.
Важно запомнить, что сжатие должно выполняться именно до шифрования. (Сжимаемость шифртекста можно использовать как неплохой тест алгоритма шифрования. Если шифртекст можно сжать, значит алгоритм не сишком надежен.)
Вырабатывать имитовставку можно до сжатия файла и сжимать вместе с ним с целью повышения стойкости шифра. (Имитовставка повышает избыточность текста.) Или же выполнять после шифрования, с целью ускорения процесса аутентификации сообщения.
Помехоустойчивое кодирование, повышающее избыточность текста, наоборот целесообразно применять после шифрования данных.
Последовательность применения имитовставки и кодирования приведена на рис.12.
Рис. 12. Практическое применение имитовставки в сочетании со сжимающим и помехоустойчивым кодированием
Контрольные вопросы
Назовите основные составляющие алгебраической модели шифра.
Для чего применяются вероятностные модели шифров?
Для чего применяются модели открытых текстов?
Назовите критерии на открытый текст.
В чем различие между теоретической и практической криптостойкостью шифров?
В чем различие между имитацией и подменой сообщения?
Назовите основные способы обеспечения имитостойкости.
Какие бывают виды искажений при передаче сообщения?
3. Принципы построения симметричных криптографических алгоритмов
3.1. Виды симметричных шифров. Особенности программной и аппаратной реализации.
3.2. Принципы построения блочных шифров.
3.2.1. Базовые шифрующие преобразования
3.2.2. Сеть Файстеля.
3.3. Современные блочные криптоалгоритмы.
3.3.1. Основные параметры блочных криптоалгоритмов.
3.3.2. Алгоритм DES.
3.3.3. Блочный шифр TEA
3.3.4. Международный алгоритм IDEA.
3.3.5. Алгоритм AES (Rijndael).
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. Режимы использования шифров.
3.1. Виды симметричных шифров. Особенности программной и аппаратной реализации.
Работа симметричных шифров включает в себя два преобразования:
C = Ek(m) и m = Dk(C),
где m – открытый текст, E – шифрующая функция, D – расшифровывающая функция, k – секретный ключ, C – шифртекст.
Функции зашифрования/расшифрования являются общеизвестными и стойкость всей системы зависит только от секретности ключа k. Этот принцип называют также принципом Керкгоффса.
Современные симметричные алгоритмы шифрования делятся на блочные и поточные.
Сравнительная характеристика основных особенностей блочных и поточных шифров приведена в таблице.
Таблица 5. Особенности блочных и поточных шифров
Блочные шифры |
Поточные шифры |
Работают во всех режимах шифрования |
Поддерживают не все режимы шифрования |
Тяжелы для математического анализа |
Простое проектирование и математический анализ |
Легко реализуются как аппаратно, так и программно |
Практически непригодны к программной реализации для битового потока. Бессмысленно использовать программный шифратор для шифрования каждого бита по отдельности. |
Имеют не очень высокое быстродействие |
Имеют высокое быстродействие |
Стойкость шифра зависит от длины ключа, количества раундов шифрования, размера блока и рассеивающих и перемешивающих характеристик алгоритма |
Стойкость шифра зависит от статистических характеристик и периода переполнения генератора ключевой последовательности |
Блочные шифры оперируют с данными путем фиксированного преобразования крупных блоков открытого текста, а поточные шифры оперируют с данными путем динамического преобразования отдельных цифр отрытого текста.
При применении различных режимов шифрования блочные шифры могут быть также реализованиы как поточные и наоборот.
Основой блочного шифра является алгоритм преобразования, основой поточного шифра – генератор ключевой последовательности. В таблице приведен сравнительный перечень особенностей блочных и поточных шифров.