Файл: Российский стандарт блочного шифрования гост 28147 89.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 24
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Российский стандарт
блочного шифрования
ГОСТ 28147 - 89
Этот ГОСТ был принят в 1989 году и с тех пор практически не изменялся.
Алгоритм шифрования был разработан в КГБ СССР еще в конце 70-х годов, однако он создавался с достаточно большим "запасом прочности". По криптостойкости он на порядок превосходил американский DES, впоследствии замененный на тройной (Triple DES), а потом на AES. Таким образом, и на сегодняшний день криптостойкость российского стандарта вполне удовлетворяет всем современным требованиям. Вторая причина большого распространения ГОСТа 28147-89 – законодательство. Государственные организации и многие коммерческие структуры обязаны использовать для защиты данных сертифицированные средства защиты. Однако получение сертификата возможно только в том случае, если "в указанных криптосредствах реализованы криптографические алгоритмы, объявленные государственными или отраслевыми стандартами Российской Федерации". 1. Практические алгоритмы, отвечающие непосредственно за шифрование (дешифрование) массивов данных.
2. Алгоритмы более низкого уровня, называемые циклами.
3.Основная функция криптопреобразования.
Иерархия алгоритмов
Режимы шифрования
Циклы
Основная функция криптопреобразования
Ключ является массивом из восьми элементов по 32 бита. Все восемь элементов ключа используются отдельно и рассматриваются как 32-битные целые числа без знака. Размер ключа 32*8=256 бит или 32 байта.
Таблица замен представляет собой матрицу размером 8×16. Строки матрицы называются узлами замен. Каждый узел замены должен содержать произвольную перестановку набора значений от 0 до 15.
Сихропосылка – 64 бита (начальное заполнение) передается в открытом виде, но в алгоритме шифрования используется результат преобразования начального заполнения
Ключевая
информация
Основная функция
преобразования
N, k
S = (N2 + k) mod 232
Sm= T[m] [Sm] : m [0,7]
S <<ц = 11
S N1
N1 = N2; N2 = S
N
На входе функции — две величины N и k. N — блок преобразуемой последовательности данных, состоящий из двух частей: старшей (N2) и младшей (N1), k - 32-битный элемент массива ключа.
Старшая часть преобразуемого блока данных складывается по модулю 232 с элементом ключа.
Результат предыдущего шага подвергается преобразованию посредством таблицы замен.
Результат замены подвергается циклическому сдвигу влево на 11 разрядов.
Значение предыдущего шага побитово складывается посредством операции «XOR» с младшей частью преобразуемого блока.
Старшая часть преобразуемого блока переходит на место младшей, а на ее место помещается результат предыдущего шага.
Возврат значения N.
Основная функция
преобразования
Блок данных (32 бита) разбивается на восемь блоков по 4 бита: S=S0...S7.
Далее каждый блок Si меняется на значение таблицы замен, находящееся на i строке, в Si столбце.
Преобразование
по таблице замен
Циклы
криптопреобразования
N = ОФ (N, Kj)
N1 N2
N, K
N
j[0,31]
Пошаговая схема циклов «З» и «Р»
На входе цикла две величины N и К. N — 64-битный блок преобразуемой последовательности данных. К — 256-битная ключевая последовательность.
На вход основной функции преобразования подается кодируемая последовательность и 32 битный блок ключа. Этот шаг выполняется 32 раза.
Старшая и младшая часть кодируемой последовательности меняются местами.
Возврат 64-битного блока N.
Отличие циклов «3» и «Р» друг от друга состоит в последовательности перебора частей ключа.
Для цикла «3» эта последовательность такова:
S[32] = {0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7,0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0}
Для цикла «Р» такова:
S[32] = {0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0,7, 6, 5, 4, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0,}
Циклы
зашифрования
(расшифрования)
основная функция преобразования вызывается не 32 раза, а только 16;
отсутствует шаг 3 — обмен значениями между старшей и младшей частью кодируемого блока не происходит;
последовательность перебора частей ключа для выработки имитовставки выглядит так:
S [16] = (0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7).
Цикл выработки
имитовставки
Режимы использования
Прямая замена
Гаммирование
Гаммирование с зацеплением
Прямая замена
Nш i = «З» (N0 i, Kj)
N0, K
Nш
i[0, n-1]
Схема шифрования
в режиме прямой замены
На входе: N0 — последовательность открытых данных и К— ключ.
Последовательный перебор всех 64-битных блоков исходного массива данных, подача их на вход цикла «3», последовательная запись полученных зашифрованных блоков в массив выходной информации Nш.
Возврат массива зашифрованных данных Nш.
Прямая
замена
- Шифрование двух одинаковых блоков даст идентичный результат.
Если длина шифруемого блока данных не кратна 64 битам, ее надо дополнить до требуемой длины.
Недостатки режима
прямой замены
Гаммирование
Si = «З» (Si, K)
N1 S
N, K, S
N
i[0, n-1]
S = «З» (N, K)
Si = Генератор (Si-1)
На входе: N - исходная последовательность данных, К – ключ и S - синхропосылка.
Синхропосылка подвергается шифрованию в режиме прямой замены с ключом.
Генерируем очередное значение гаммы по рекуррентным формулам на основе ее предыдущего значения (для первого раза это синхропосылка). Сгенерированное значение гаммы шифруется методом прямой замены с ключом.
Очередной 64-битный блок исходных данных складывается посредством операции «XOR». При этом старшая часть блока складывается со старшей частью гаммы, а младшая — с младшей.
Возврат обработанного блока данных.
Гаммирование
Гаммирование
Для старшей части формула генератора гаммы такова:
Для младшей части формула генератора гаммы такова:
Первый же элемент гаммы получается из синхропосылки посредством прямой замены.
Гаммирование
с зацеплением
Гаммирование
с зацеплением
N
N, K, S
S = Ni
i[0, n-1]
S = «З» (S, K)
Ni S
Схема шифрования в режиме
гаммирования с зацеплением
На входе величины N - исходная последовательность данных. К - ключ и S - синхропосылка.
Синхропосылка подвергается шифрованию алгоритмом прямой замены с ключом, в результате чего получается значение гаммы.
Очередной 64-битный блок исходных данных складывается посредством операции «XOR» с гаммой.
Результат предыдущего шага используется для получения очередного элемента гаммы.
Возврат обработанного блока данных.
Гаммирование
с зацеплением
Имитовставка — двоичная контрольная комбинация, которая зависит от открытых данных и ключевой информации.
Цель использования имитовставки — обнаружение искажений в массиве шифруемых данных.
Выработка
имитовставки
без ключевой информации невозможно нахождение имитовставки для заданного открытого массива данных;
без ключевой информации невозможен подбор данных под заданную имитовставку.
Эти свойства позволяют использовать имитовставку для контроля целостности данных.
Выработка
имитовставки
Выработка
имитовставки
N, K
I
i[0, n-1]
I = 0
I = «И» (I Ni, K)
Схема алгоритма
выработки имитовставки
- На входе величины: N — исходная последовательность данных, К—ключ.
Начальное значение имитовставки обнуляется.
Имитовставка складывается с очередным 64-битным блоком входных данных посредством операции «XOR». Результат подвергается преобразованию циклом «И» с ключом. Результат присваивается имитовставке.
Возврат значения имитовставки.
Выработка
имитовставки
Основные различия между DES и ГОСТ 28147-89