Файл: Российский стандарт блочного шифрования гост 28147 89.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 65
Скачиваний: 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, kS = (N2 + k) mod 232
Sm= T[m] [Sm] : m [0,7]S <<ц = 11S N1N1 = N2; N2 = SN На входе функции — две величины N и k. N — блок преобразуемой последовательности данных, состоящий из двух частей: старшей (N2) и младшей (N1), k - 32-битный элемент массива ключа. Старшая часть преобразуемого блока данных складывается по модулю 232 с элементом ключа. Результат предыдущего шага подвергается преобразованию посредством таблицы замен. Результат замены подвергается циклическому сдвигу влево на 11 разрядов. Значение предыдущего шага побитово складывается посредством операции «XOR» с младшей частью преобразуемого блока. Старшая часть преобразуемого блока переходит на место младшей, а на ее место помещается результат предыдущего шага. Возврат значения N.Основная функцияпреобразованияБлок данных (32 бита) разбивается на восемь блоков по 4 бита: S=S0...S7. Далее каждый блок Si меняется на значение таблицы замен, находящееся на i строке, в Si столбце.Преобразованиепо таблице заменЦиклыкриптопреобразованияN = ОФ (N, Kj)N1 N2N, KNj[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, KNшi[0, n-1]Схема шифрованияв режиме прямой замены На входе: N0 — последовательность открытых данных и К— ключ. Последовательный перебор всех 64-битных блоков исходного массива данных, подача их на вход цикла «3», последовательная запись полученных зашифрованных блоков в массив выходной информации Nш. Возврат массива зашифрованных данных Nш.Прямаязамена
Возврат обработанного блока данных.Гаммированиес зацеплениемИмитовставка — двоичная контрольная комбинация, которая зависит от открытых данных и ключевой информации. Цель использования имитовставки — обнаружение искажений в массиве шифруемых данных. Выработкаимитовставки без ключевой информации невозможно нахождение имитовставки для заданного открытого массива данных; без ключевой информации невозможен подбор данных под заданную имитовставку. Эти свойства позволяют использовать имитовставку для контроля целостности данных. ВыработкаимитовставкиВыработкаимитовставкиN, KIi[0, n-1]I = 0I = «И» (I Ni, K)Схема алгоритмавыработки имитовставки
Sm= T[m] [Sm] : m [0,7]S <<ц = 11S N1N1 = N2; N2 = SN На входе функции — две величины N и k. N — блок преобразуемой последовательности данных, состоящий из двух частей: старшей (N2) и младшей (N1), k - 32-битный элемент массива ключа. Старшая часть преобразуемого блока данных складывается по модулю 232 с элементом ключа. Результат предыдущего шага подвергается преобразованию посредством таблицы замен. Результат замены подвергается циклическому сдвигу влево на 11 разрядов. Значение предыдущего шага побитово складывается посредством операции «XOR» с младшей частью преобразуемого блока. Старшая часть преобразуемого блока переходит на место младшей, а на ее место помещается результат предыдущего шага. Возврат значения N.Основная функцияпреобразованияБлок данных (32 бита) разбивается на восемь блоков по 4 бита: S=S0...S7. Далее каждый блок Si меняется на значение таблицы замен, находящееся на i строке, в Si столбце.Преобразованиепо таблице заменЦиклыкриптопреобразованияN = ОФ (N, Kj)N1 N2N, KNj[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, KNшi[0, n-1]Схема шифрованияв режиме прямой замены На входе: N0 — последовательность открытых данных и К— ключ. Последовательный перебор всех 64-битных блоков исходного массива данных, подача их на вход цикла «3», последовательная запись полученных зашифрованных блоков в массив выходной информации Nш. Возврат массива зашифрованных данных Nш.Прямаязамена
- Шифрование двух одинаковых блоков даст идентичный результат.
Если длина шифруемого блока данных не кратна 64 битам, ее надо дополнить до требуемой длины.
Возврат обработанного блока данных.Гаммированиес зацеплениемИмитовставка — двоичная контрольная комбинация, которая зависит от открытых данных и ключевой информации. Цель использования имитовставки — обнаружение искажений в массиве шифруемых данных. Выработкаимитовставки без ключевой информации невозможно нахождение имитовставки для заданного открытого массива данных; без ключевой информации невозможен подбор данных под заданную имитовставку. Эти свойства позволяют использовать имитовставку для контроля целостности данных. ВыработкаимитовставкиВыработкаимитовставкиN, KIi[0, n-1]I = 0I = «И» (I Ni, K)Схема алгоритмавыработки имитовставки
- На входе величины: N — исходная последовательность данных, К—ключ.
Начальное значение имитовставки обнуляется.
Имитовставка складывается с очередным 64-битным блоком входных данных посредством операции «XOR». Результат подвергается преобразованию циклом «И» с ключом. Результат присваивается имитовставке.
Возврат значения имитовставки.