- •Конспект лекций
- •Волгоград 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 и Управление Ключом
- •Проблемы выполнения
Особенности программной реализации гост 28147-89
ГОСТ 28147‑89 описывает общий алгоритм шифрования, а также приводятся схемы реализации в виде операционного автомата. Такая схема не всегда подходит для программной реализации.
В частности, наиболее «неудобной» в реализации операцией оказалась операция замены в таблице замен. На рисунке (Рис. 2.8) показано действие этой операции. По сути, на вход таблицы замен подается 8 четырехразрядных двоичных чисел и на выходе получают 8 четырехразрядных чисел — значений из таблицы замен. Каждое число является индексом в массиве, где массив это строка таблицы. Т.е. если i‑ое число равно j, то оно заменяется на значение j‑ой ячейки i‑ой строки таблицы замен.
Рис. 2.8. – Работа таблицы замен
На практике гораздо удобнее пользоваться модифицированной таблицей замен. Если преобразовать таблицу по следующим формулам
, (2.4)
,
(2.5)
то таблица и процесс замены будут выглядеть как на следующем рисунке (Рис. 2.9).
Рис. 2.9. ‑ Работа модифицированной таблицы замен
В результате вместо 8 однотипных операций будет выполняться только 2 однотипные операции, что скажется возрастанием скорости работы блока замен приблизительно в 4 раза. На самом деле, из‑за того, что ячейка таблицы замен стала 16‑ти разрядной, и того, что в результате такой модификации стало возможным работать с косвеннорегистровой индексацией по базе, скорость возрастает более чем в 4 раза.
Стандарт шифрования данных des (Data Encryption Standard)
Американский национальный институт стандартов (American National Standards Institute, ANSI) одобрил DES в качестве стандарта для частного сектора в 1981 году (ANSI X3.92.) [50], назвав его Алгоритмом шифрования данных (Data Encryption Algorithm, DEA).
DES представляет собой блочный шифр, он шифрует данные 64-битовыми блоками. С одного конца алгоритма вводится 64-битовый блок открытого текста, а с другого конца выходит 64-битовый блок шифротекста. DES является симметричным алгоритмом: для шифрования и дешифрирования используются одинаковые алгоритм и ключ (за исключением небольших различий в использовании ключа).
Длина ключа равна 56 битам. (Ключ обычно представляется 64-битовым числом, но каждый восьмой бит используется для проверки четности и игнорируется. Биты четности являются наименьшими значащими битами байтов ключа.) Ключ, который может быть любым 56-битовым числом, можно изменить в любой момент времени. Ряд чисел считаются слабыми ключами, но их можно легко избежать. Безопасность полностью определяется ключом.
На простейшем уровне алгоритм не представляет ничего большего, чем комбинация двух основных методов шифрования: смещения и диффузии. Фундаментальным строительным блоком DES является применение к тексту единичной комбинации этих методов (подстановка, а за ней - перестановка), зависящей от ключа. Такой блок называется этапом. DES состоит из 16 этапов, одинаковая комбинация методов применяется к открытому тексту 16 раз (см. Рис. 2.10).
Рис. 2.10 DES.
Алгоритм использует только стандартную арифметику 64-битовых чисел и логические операции, поэтому он легко реализовывался в аппаратуре второй половины 70-х. Изобилие повторений в алгоритме делает его идеальным для реализации в специализированной микросхеме. Первоначальные программные реализации были довольно неуклюжи, но сегодняшние программы намного лучше.
DES работает с 64-битовым блоком открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняется 16 этапов одинаковых действий, называемых функцией f, в которых данные объединяются с ключом. После шестнадцатого этапа правая и левая половины объединяются и алгоритм завершается заключительной перестановкой (обратной по отношению к первоначальной).
На каждом этапе (Рис. 2.11) биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смещенного и переставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f. Затем результат функции f объединяется с левой половиной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая правая половина становится новой левой. Эти действия повторяются 16 раз, образуя 16 этапов DES.
Рис. 2.11
Если Bi - это результат i-ой итерации, Li и Ri - левая и правая половины Bi, Ki - 48-битовый ключ для этапа i, а f - это функция, выполняющие все подстановки, перестановки и XOR с ключом, то этап можно представить как:
Li = Ri-1
Ri = Li-1 f(Ri-1, Ki)
