- •Требования к алгоритмам шифрования
- •Симметричные криптосистемы
- •Блочные шифры
- •Сеть Файстеля
- •Общая характеристика гост 28147-89
- •Ключевая информация
- •Основной шаг криптопреобразования
- •Базовые циклы криптографических преобразований.
- •Основные режимы шифрования
- •Выработка имитовставки к массиву данных
- •Криптографическая стойкость гост 28147-89
- •Общая схема алгоритма.
- •Rijndael (aes). Основные параметры
- •Rijndael. Общая схема
- •Нелинейное преобразование
- •Выработка ключевых элементов
- •Основные требования к алгоритмам асимметричного шифрования
- •Криптоанализ алгоритмов с открытым ключом
- •Основные способы использования алгоритмов с открытым ключом
- •Алгоритм обмена ключами Диффи-Хеллмана
- •Протокол генерации ключей алгоритма Диффи-Хеллмана
- •Алгоритм rsa
- •Электронная подпись rsa
- •Алгоритм ЭльГамаля
- •Требования к хэш-функциям
- •Функция sha-1
- •Функция хэширования гост р 34.11 – 94
- •Электронная цифровая подпись
- •Прямая и арбитражная цифровые подписи
- •Симметричное шифрование, арбитр не видит сообщение:
- •Шифрование открытым ключом, арбитр не видит сообщение:
- •Российский стандарт цифровой подписи гост 34.10
- •Код аутентичности сообщения
Общая схема алгоритма.
Алгоритм представляет собой сбалансированную сеть Файстеля с начальной и конечной битовыми перестановками, конечная перестановка является обращением начальной. Схема преобразования данных при зашифровании блока изображена на рисунке 8.1.
IP
To
L0
R0
T'
f
(R0,
k1)
k1
L1
R1
f(R1,
k2)
k2
L2
R2
L16
R16
IP-1
Tш
Рис.8.1. Структурная схема преобразования данных по алгоритму DES |
З На последнем раунде происходит то же самое за исключением обмена значениями половин блока. Затем полублоки объединяются в полный
|
блок, в котором выполняется конечная битовая перестановка (IP–1), обратная начальной. Результат последней операции и является выходным значением цикла шифрования – зашифрованным блоком Tш. Шестнадцать 48-битовых ключевых элементов ki, 1 ≤ i ≤ 16, используемых в цикле шифрования, являются параметрами алгоритма и вырабатываются из 56-битового ключа в ходе рассмотренной ниже процедуры генерации ключевой последовательности. Процедура расшифрования блока данных идентична процедуре зашифрования с тем отличием, что ключевые элементы в ней используются в порядке, обратном порядку их использования при зашифровании. Таким образом, если при зашифровании ключевые элементы используются в порядке возрастания номеров
k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14, k15, k16,
то при расшифровании они должны использоваться в обратном порядке:
k16, k15, k14, k13, k12, k11, k10, k9, k8, k7, k6, k5, k4, k3, k2, k1.
Начальная и обратная ей конечная битовые перестановки алгоритма DES являются стандартными и должны включаться в реализацию алгоритма в неизменном виде.
С
хема
преобразования данных (функция шифрования)
приведена на рисунке 8.2.
по 4 бита
Рис. 8.2. Функция шифрования – схема преобразования данных
Н
а
вход функции шифрования поступает
32-битовая половина шифруемого блока
Ri-1,
и 48-битовый ключевой элемент ki
. Сначала 32-битовый блок данных расширяется
до 48 битов дублированием некоторых
двоичных разрядов (функция E).
Затем полученный расширенный блок
побитово суммируется по модулю 2 с
ключевым элементом (операция " ").
Полученный в результате суммирования
48-битовый блок данных разделяется на
восемь 6-битовых элементов данных,
обозначенных h1,h2,…,h8
соответственно, причем h1
содержит шесть самых старших битов
48-битового блока, h2 – шесть
следующих по старшинству битов и т.д.,
наконец, h8 – шесть самых
младших битов блока. Далее каждое из
значений hi
преобразуется в новое 4-битовое значение
ti с помощью
соответствующего узла замен (Si).
После этого полученные восемь 4-битовых
элементов данных вновь объединяются в
32-битовый блок в том же самом порядке
их старшинства. Наконец, в полученном
32-битовом блоке выполняется перестановка
битов (IP).
Результат последней операции и является
выходным значением функции шифрования.
В алгоритме DES ключевые элементы вырабатываются из ключа с использованием сдвигов и битовых выборок-перестановок. Таким образом, – и это очень важно, – ключевые элементы состоят исключительно из битов исходного ключа, "перетасованных" в различном порядке. Ключ имеет размер 64 бита, однако реально для выработки ключевых элементов используются только 56 из них. Самые младшие биты каждого байта ключа не попадают в ключевые элементы и служат исключительно для контроля четности.

ашифрование
64-битового блока данных Tо
(входной параметр алгоритма) начинается
с начальной перестановки битов в нем
IP. Затем шифруемый блок
разделяется на две 32-битовые части
(старшую - L0 и
младшую - R0 ), с
которыми выполняются 16 раундов
преобразования в соответствии с
архитектурными принципами сети
Файстеля. На каждом раунде старшая
половина блока модифицируется путем
побитового прибавления к ней по модулю
2 (операция ) результата вычисления
функции шифрования (f),
зависящей от младшей половины блока
(Ri–1)
и 48-битового ключевого элемента
(ki). Между раундами
старшая и младшая половины блока
меняются местами. Таким образом, на
каждом раунде кроме последнего младшая
половина блока становится старшей, а
модифицированная с помощью функции
шифрования старшая – младшей половиной
блока.