Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000278.doc
Скачиваний:
73
Добавлен:
30.04.2022
Размер:
1.38 Mб
Скачать

4.3. Криптографическая система гост 28147-89

Используемая в Российской Федерации криптосистема определена в стандарте ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования данных» (в 1989 г. с этого алгоритма был снят гриф секретности, хотя он был разработан значительно раньше). Стандарт обяза­телен для организаций, предприятий и учреждений, применяющих криптографическую защиту данных, хранимых и передаваемых в сетях ЭВМ, в отдельных вычислительных комплексах и ЭВМ.

Этот алгоритм криптографического преобразования дан­ных предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации.

В алгоритме ГОСТ 28147-89 используется ключ шифрования k длиной 256 бит, который может рассматриваться как массив из восьми 32-битных элементов k0, k1, …, k7 (внутренних ключей). Дополнительным ключевым элементом алгоритма является таблица замен S, представляющая собой матрицу из восьми строк и шестнадцати столбцов, элементы которой – целые числа от 0 до 15. Каждая строка таблицы замен должна содержать 16 различных чисел. Таким образом, общий размер таблицы замен составляет 512 бит.

Таким образом, алгоритм шифрования данных представляет собой 64-битовый блочный алгоритм с 256-битовым ключом.

При описании алгоритма используются следующие обо­значения: L и R - последовательности битов; LR - конкатенация последовательностей L и R, в которой биты последовательности R следуют за битами последовательности L; + - операция побитово­го сложения по модулю 2; [+]- операция сложения по модулю 232 двух 32-разрядных двоичных чисел; {+} - операция сложения двух 32-разрядных чисел по модулю 232 -1.

Два целых числа а, b, где 0 <= а, b<= 232-1,

а= (а32а31 ... a2a1), b = (b32, b31 b2, b1),

представленные в двоичном виде, т.е.

а= а32231 + а31230 +...+ а221 + a1,

b = b32231 + b31 230+...+ b221 + b1,

суммируются по модулю 232 (операция [+]) по следующему правилу:

а [+] b = а + b, если а + b < 232,

a [+] b = a + b- 232 если а + b > 232.

Правила суммирования чисел по модулю 232- 1:

а {+} b = а + Ь, если а + b < 232- 1,

a {+} b = a + b-(232-1), если а + b >= 232-1.

Алгоритм предусматривает четыре режима работы:

  • шифрование данных в режиме простой замены;

  • шифрование данных в режиме гаммирования;

  • шифрование данных в режиме гаммирования с обратной свя­зью;

  • выработка имитовставки.

Режим простой замены.

Для реализации алгоритма шифрования данных в режиме простой замены используется только часть блоков общей крипто­системы (рис. 23). Обозначения на схеме:

N1, N2 - 32-разрядные накопители;

CM1 - 32-разрядный сумматор по модулю 232 ([+]);

СМ2 - 32-разрядный сумматор по модулю 2 (+);

R - 32-разрядный регистр циклического сдвига;

КЗУ - ключевое запоминающее устройство на 256 бит, состоящее из восьми 32-разрядных накопителей Х0, X1, X2, ..., Х7;

S - блок подстановки, состоящий из восьми узлов замены (8-блоков замены) S1, S2, S3, ..., S7, S8.

Рис. 23. Схема реализации режима простой замены

Зашифрование открытых данных в режиме простой замены.

1. Открытые данные, подлежащие зашифрованию, разби­вают на 64-разрядные блоки Т0.

2. Процедура зашифрования 64-разрядного блока Т0 в режиме простой замены включает 32 цикла (i = 1...32).

3. В ключевое запоминающее устройство (КЗУ) вводят 256 бит ключа К в виде восьми 32-разрядных подключей (чисел) Кi:

К=К7К6К5К4К3К2К1Ко.