Практическое занятие № 3. Занятие 3 Алгоритм симметричного шифрования гост 28147 89
Скачать 34.75 Kb.
|
Практическое занятие № 3 Алгоритм симметричного шифрования ГОСТ 28147 – 89 Алгоритм шифрования ГОСТ 28147-89 предусматривает 4 режима работы: режим простой замены; режим гаммирования; режим гаммирования с обратной связью; режим выработки имитовставки. Режим простой замены является основой для всех остальных режимов. Длина блока - 64 бита, длина ключа – 256 бит, количество подключей – 32, длина подключа - 32 бита, число циклов –32. Открытые данные, подлежащие шифрованию, разбиваются на 64-битные блоки, которые обрабатываются независимо друг от друга (так как блоки данных шифруются независимо друг от друга, при шифровании двух одинаковых блоков открытого текста получаются одинаковые блоки шифротекста и наоборот.). Схема обработки 64-битного блока показана на рисунках 3 и 4. Процедура шифрования 64-битного блока включает 32 цикла. В каждом цикле используется свой подключ, который вырабатывается из основного ключа. Размер массива открытых или зашифрованных данных, подвергающийся соответственно шифрованию или расшифрованию, должен быть кратен 64 битам, после выполнения операции размер полученного массива данных не изменяется. Режим простой замены применяется для шифрования короткой, ключевой информации. В режимах гаммирования вырабатывается гамма шифра блоками по 64 бита с применением ГОСТ в режиме простой замены. В первом режиме гамма не зависит от шифруемых данных, во втором – зависит от шифрблоков. Режим выработки имитовставки предназначен для обнаружения случайных или умышленных искажений данных. Имитовставка вырабатывается (с помощью первых 16 циклов ГОСТ в режиме простой замены) из открытых данных и ключа и добавляется при передаче по каналу связи к блокам зашифрованных данных. Пример. Пусть 32-битная последовательность имеет вид
Разобьем входную последовательность на 8 блоков по 4 бита. Шестой блок 1100 пропускаем через 6-ой узел подстановки по следующему правилу: преобразуем двоичное число 1100 к десятичному виду – 12. Заполнение 12-ой строки для 6-ого узла подстановки равно 9, что в двоичном виде есть 1001. Таким образом, 4-битный блок 1100 заменяется на 1001. Остальные блоки заменяются аналогично (см.табл. 2). Таблица 2. Пример замены методом подстановки
рис. 3. Алгоритм шифрования ГОСТ 28147-89 (режим простой замены). Знак обозначает сложение по модулю 2. рис. 4. Функция преобразования f(R,X) в алгоритме ГОСТ 28147-89. Таблица 3. Символы кириллицы (часть альтернативной кодовой таблицы ASCII)
Таблица 4. Блок подстановки в алгоритме шифрования ГОСТ 28147-89
Выполним первый цикл алгоритма шифрования ГОСТ 28147-89 в режиме простой замены. Для получения 64 бит исходного текста используем 8 первых букв из заданного сообщения: ИНФОРМАЦ. Для получения ключа (256 бит) используем любой текст, состоящий из 32 букв, например: СИНТез передаточной функции цепи. Первый подключ содержит первые 4 буквы: СИНТ Переводим исходный текст и первый подключ в двоичную последовательность (см. таблицу 3): исходный текст
первый подключ X0:
Таким образом, первые 64 бита определяют входную последовательность: L0: 11001000 11001101 11010100 11001110 R0: 11010000 11001100 11000000 11010110 Следующие 32 бита определяют первый подключ: Х0: 11010001 11001000 11001101 11010010 I. Найдем значение функции преобразования f(R0,X0) (см. рис.4) 1). Вычисление суммы R0 и X0 по mod 232 R0: 1101 0000 1100 1100 1100 0000 1101 0110 Х0: 1101 0001 1100 1000 1100 1101 1101 0010 1010 0010 1001 0101 1000 1110 1010 1000 2). Преобразование в блоке подстановки Результат суммирования R0+X0 по mod 232: 1010 0010 1001 0101 1000 1110 1010 1000 преобразуем в блоке подстановки (см. таблицу 4). Для каждого четырехбитного блока вычислим его адрес в таблице подстановки. Номер блока соответствует номеру столбца, десятичное значение блока соответствует номеру строки в таблице. Таким образом, четвертый блок (1000) заменяется заполнением 8-ой строки и четвертого столбца в таблице подстановки (1110). номера блоков 8 7 6 5 4 3 2 1 1010 0010 1001 0101 1000 1110 1010 1000 соответствующие номера строк в таблице подстановки 10 2 9 5 8 14 10 8 заполнение 3 4 6 15 14 9 8 6 результат 0011 0100 0110 1111 1110 1001 1000 0110 3) Циклический сдвиг результата п.2 на 11 бит влево 0111 1111 0100 1100 0011 0001 1010 0011 Таким образом, нашли значение функции f (R0,X0): 0111 1111 0100 1100 0011 0001 1010 0011 II. Вычисляем R1= f(R0,X0) L0. Результат преобразования функции f(R0,X0) складываем с L0 по mod2: L0: 1100 1000 1100 1101 1101 0100 1100 1110 f(R0,X0): 0111 1111 0100 1100 0011 0001 1010 0011 R1: 1011 0111 1000 0001 1110 0101 0110 1101 Задание: Выполните первый цикл алгоритма шифрования ГОСТ 28147 89 в режиме простой замены. Для получения 64 бит исходного текста используйте восемь первых букв сообщения, составленного из своих фамилии и имени(если фамилия меньше восьми букв). Для получения ключа (256 бит) используйте любой текст, состоящий из 32 букв. Первый подключ должен содержать первые четыре буквы этого текста. Кодировка символов кириллицы приведена в таблице 3. Блок подстановки алгоритма шифрования ГОСТ 28147 89 приведен в таблице 4. |