- •Конспект лекций
- •Волгоград 2017 Рекомендуемая литература домашинные методы шифрования
- •История шифрования
- •Шифры замены
- •Шифр Цезаря
- •Шифр Цезаря с ключевым словом
- •Аффинная криптосистема
- •Шифр Полибия
- •Методы вскрытия одноалфавитных систем
- •Частотный анализ
- •Метод полосок
- •Многоалфавитные системы
- •Шифр Вернама
- •Шифр Виженера
- •Шифр c автоключом
- •Шифры перестановки
- •Простой столбцевой перестановочный шифр
- •Перестановочный шифр с ключевым словом
- •Комбинированное использование шифра перестановки и замены
- •Шифровальная машина «Энигма»
- •Системы блочного шифрования и симметричные шифры
- •Режимы шифрования блочных шифров
- •Алгоритм гост 28147-89
- •Простая замена
- •Выработка имитовставки к массиву данных
- •Особенности программной реализации гост 28147-89
- •Стандарт шифрования данных des (Data Encryption Standard)
- •Начальная перестановка
- •Преобразования ключа
- •Перестановка с расширением
- •Подстановка с помощью s-блоков
- •Перестановка с помощью p-блоков
- •Дешифрирование des
- •Режимы des
- •Однонаправленные функции
- •Однонаправленные хэш‑функции
- •Цифровые подписи
- •Алгоритм безопасного хэширования (Secure Hash Algorithm, sha) - скомпрометирован
- •Гост р 34.11‑94
- •Инфраструктура открытых ключей Основы инфраструктуры открытых ключей Идея криптографии с открытым ключом
- •Основные преимущества открытых ключей
- •Сертификат открытого ключа
- •Алгоритмы с открытыми ключами
- •Алгоритм цифровой подписи (digital signature algorithm, dsa)
- •Алгоритм цифровой подписи гост р 34.10-94
- •Система криптографической защиты в ос ms windows
- •Концепция криптопровайдера, интерфейс CryptoApi 1.0
- •Описание интерфейса CryptoApi 2.0
- •Варианты применения криптопровайдеров Защищенная файловая система (Encrypted File System).
- •Криптография при работе в сети.
- •Шифрование ip-трафика.
- •Защищенные соединения.
- •Шифрование и цифровая подпись сообщений электронной почты.
- •Подпись исполняемых модулей.
- •Обзор существующих отечественных криптопровайдеров России
- •Протокол tls/ssl
- •Элементы протокола Криптографические операции
- •Нмас и псевдослучайная функция
- •Протокол Записи
- •Состояния соединения
- •Фрагментация
- •Компрессия и декомпрессия
- •Защита полезной информации записи
- •Вычисление ключей
- •Протокол Рукопожатия
- •Протокол изменения шифрования
- •Криптографические вычисления
- •Архитектура семейства протоколов Ipsec
- •Обзор системы
- •Как работает iPsec
- •Где может размещаться iPsec
- •Безопасные Ассоциации
- •Базы данных безопасной ассоциации
- •Sa и Управление Ключом
- •Ручные технологии
- •Автоматические sa и Управление Ключом
- •Проблемы выполнения
Системы блочного шифрования и симметричные шифры
Схема Фейстеля
В литературе, посвященной криптографии схема Фейстеля (Н. Feistel) также часто называется конструкция Фейстеля (Н. Feistel), или сеть Фейстеля. Условимся полагать, что это синонимичные понятия. Рассматриваемый подход представляет собой разновидность итерированного блочного шифра.
При шифровании блок открытого текста разбивается на две равные части правую и левую. Очевидно, что длина блока при этом должна быть четной.
На каждом цикле одна из частей (например, левая) подвергается преобразованию при помощи функции f и вспомогательного ключа ki, полученного из исходного секретного ключа.
Результат операции суммируется по модулю 2 (команда процессора - XOR) с другой частью.
Затем левая и правая части меняются местами.
Схема конструкции Фейстеля представлена на рисунке 1.
Рис. 1.1 Принцип работы схемы Фейстеля
Преобразования на каждом цикле идентичны, но на последнем может не выполняется перестановка. Процедура дешифрования аналогична процедуре шифрования, однако ki выбираются в обратном порядке.
Рассмотренная схема лишь определяет подход, который может иметь различные реализации, выраженные в конечных алгоритмах. Так из наиболее известных алгоритмов, реализующих данную схему, можно выделить: DES, ГОСТ 28147-89, Lucifer, FEAL, Khufu, Khaire, JOKI, COST, CAST, Blowfish, и других.
Блочный шифр, использующий такую конструкцию, является обратимым и гарантирует возможность восстановления входных данных функции на каждом цикле. Сама функция f() не обязательно должна быть обратимой. При задании произвольной функции не потребуется реализовывать две различные процедуры — одну для шифрования, а другую для дешифрования. Структура сети Фейстеля автоматически позаботится об этом.
Существует еще одно объяснение идеи конструкции Фейстеля. В своих лекциях известный криптограф Дж. Мэсси (J. L. Massey) вводит понятие иволютивного отображения.
Так, некоторая функция является инволюцией, если f(f(x)) = x для всех х. Для такой функции область определения (множество аргументов х) и область значений (множество значений f(x)) совпадают.
Например, функция f(x) = −x является инволюцией, так как f(f(x)) = f( −x) = −(−x) = х. Другой пример инволюции: f(x) = хс, где с — некоторая константа. Действительно, f(f(x)) = f(xс) = хсс = х. Так как сс = 0, а х0 = х
Инволюция является полезным свойством при конструировании блочных шифров. Рассмотрим композиционный блочный шифр, включающий n последовательных криптографических преобразований ЕiK(*), 1 ≤ i ≤ n на ключе К. Тогда шифротекст С получается в результате преобразования
C = ЕKn(ЕKn−1(…ЕK1(P)…)), (2.1)
где Р — открытый текст. Если функция ЕK является инволюцией, открытый текст может быть восстановлен в результате преобразования:
P = ЕK1(ЕK2(…ЕKn(C)…)). (2.2)
Режимы шифрования блочных шифров
При использовании блочных шифров применяются различные режимы шифрования. Очевидно, что применение того или иного режима шифрования не должно отрицательно сказываться на эффективности и тем более криптостойкости блочного шифра. Режимы шифрования позволяют реализовать дополнительные, отсутствующие в исходной конструкции блочного шифра функции.
Стандарт режимов шифрования для блочных шифров (применительно к криптоалгоритму DES) опубликован в материалах Национального института стандартов США. DES включает шифрование в следующих режимах:
Электронной кодовой книги (Electronic Code Book, ЕСВ),
Сцепления блоков шифра (Cipher Block Chaining, СВС),
Обратной связи по шифротексту (Cipher Feedback, СFВ),
Обратной связи по выходу (Output Feedback, OFB)
Шифрование в режимах ECB и CBC
Криптостойкость режима ЕСВ не ниже, чем криптостойкость используемого блочного шифра. Недостаток заключается в том. что фиксированные блоки открытого текста (например, последовательность нулей длины l = nb бит, где b длина блока) будут соответствовать фиксированным блокам шифротекста. Следовательно, открытый текст может быть легко изменен путем удаления, реплицирования и перестановки блоков шифротекста. Скорость обработки блоков в режиме ЕСВ фиксирована и определяется эффективностью реализации блочного шифра. Режим ЕСВ допускает эффективное распараллеливание вычислений. Однако конвейерная обработка блоков в данном режиме невозможна.
В режиме СВС каждый i-й блок открытого текста суммируется по модулю 2 {операция XOR) с (i−1)-м блоком шифротекста и затем шифруется. Начальное значение (c0) задается вектором инициализации.
Криптостойкость режима СВС определяется криптостойкостью используемого блочного шифра. Применение режима СВС позволяет устранить недостаток режима ЕСВ: каждый блок открытого текста маскируется блоком шифротекста, полученным на предыдущем этапе. Таким образом, возможность изменения открытого текста при использовании режима СВС весьма ограничена — любые манипуляции с блоками шифротекста, за исключением удаления первого и последнего блоков, будут обнаружены. Скорость обработки в данном режиме не ниже производительности блочного шифра — задержка при выполнении операции XOR пренебрежимо мала. Процедура шифрования в режиме СВС с трудом поддается распараллеливанию, процедуру дешифрования распараллелить значительно проще.
Шифрование в режимах CFB и OFB
В режиме СFВ i-й блок шифротекста формируется путем шифрования (i−1)-го блока шифротекста и его суммированием (операция XOR) с i-м блоком открытого текста.
Режим СFВ можно задать таким образом, что обратная связь будет захватывать не целый n-битный блок, а только k бит предыдущего блока, k≤n. Начальное значение c0 так же, как в режиме СВС, задается при помощи вектора инициализации.
Криптостойкость СFВ определяется криптостойкостью используемого шифра. Фиксированные блоки открытого текста маскируются блоками шифротекста. Возможности изменения открытого текста те же, что и в режиме СВС. Если в режиме СРВ с полноблочной обратной связью имеется два идентичных блока шифротекста, результат, например, DES-шифрования на следующем шаге будет тем же. Скорость шифрования СFВ-режима с полноблочной обратной связью та же, что и у блочного шифра, причем возможности распараллеливания процедуры шифрования ограничены.
Режим OFB аналогичен СFВ, за исключением того, что суммируемые с открытым текстом биты генерируются независимо от открытого текста и шифротекста. Вектор инициализации s0 задает начальное значение последовательности блоков si. И каждый блок si получается путем шифрования предыдущего блока si−1. Открытый текст шифруется суммированием (операция XOR) i-го блока открытого текста с si из независимой последовательности блоков.
Обратная связь по выходу на k разрядов не рекомендуется из соображений криптостойкости. Режим OFB имеет следующее преимущество по сравнению с режимом CFB: ошибки, возникающие в результате передачи по каналу с шумом, при дешифровании не «размазываются» но всему шифротексту, а локализуются в пределах одного блока. Однако открытый текст может быть изменен путем определенных манипуляций с блоками шифротекста. Скорость шифрования в режиме OFB та же, что и у блочного шифра. Несмотря на то, что OFB-шифрование не поддается распараллеливанию, эффективность процедуры может быть повышена за счет предварительной генерации независимой последовательности блоков.
