Совершенствование инфокоммуникационного сопровождения банковской деятельностиРефераты >> Банковское дело >> Совершенствование инфокоммуникационного сопровождения банковской деятельности
Основное отличие алгоритмов симметричного шифрования друг от друга состоит именно в различных функциях обработки субблоков. Данная функция часто называется «основным криптографическим преобразованием», поскольку именно она несет основную нагрузку при шифровании информации. Основное преобразование алгоритма ГОСТ 28147-89 является достаточно простым, что обеспечивает высокое быстродействие алгоритма; в нем выполняются следующие операции (рис. 3.2).
Рис. 3.2 - Основное преобразование алгоритма ГОСТ 28147-89
Охарактеризуем данную схему преобразований алгоритма стандарта.
1. Сложение субблока с определенным фрагменом ключашифрования по модулю 232. Кх — это 32-битная часть («подключ») 256-битного ключа шифрования, который можно представить как конкатенацию 8 подключей: К = К0, К1, К2, К3, К4, К5, К6, К7. В зависимости от номера раунда и режима работы алгоритма, для данной операции выбирается один из подключей.
2. Табличная замена. Для ее выполнения субблок разбивается на восемь 4-битных фрагментов, каждый из которых прогоняется через свою таблицу замены. Таблица замены содержит в определенной последовательности значения от 0 до 15 (т.е. все варианты значений 4-битного фрагмента данных); на вход таблицы подается блок данных, числовое представление которого определяет номер выходного значения. Например, подается значение 5 на вход следующей таблицы: «13 0 11 74 91 10 143 5 122 15 8 6». В результате на выходе получается значение 9 (поскольку 0 заменяется на 13, 1 — на 0, 2 — на 11 и т.д.).
3. Побитовый циклический сдвиг данных внутри субблока на 11 бит влево.
Алгоритм ГОСТ 28147-89 имеет 4 режима работы:
1. режим простой замены;
2. режим гаммирования;
3. режим гаммирования с обратной связью;
4. режим выработки имитоприставок.
Все режимы используют одно и то же основное преобразование, но с разным числом раундов и различным образом.
Режим простой замены предназначен для шифрования ключей (существует множество схем применения алгоритмов симметричного шифрования, использующих несколько ключей различного назначения; в этих случаях требуется шифрование одних ключей на другие). В данном режиме выполняется 32 раунда основного преобразования. В каждом из раундов, как было сказано выше, используется определенный подключ, который выбирается следующим образом:
· К ((г — 1) % 8) - для раундов с 1 -го по 24-й (r обозначает номер раунда, а % - операция вычисления остатка от деления), т.е. К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2 и т. д.;
· К ( (32 – r) % 8) - для раундов с 25-го по 32-й, т.е. в обратном порядке: К7, К6, К5, К4, К3, К2, К1, К0.
Для расшифровывания информации в режиме простой замены также выполняется 32 раунда основного преобразования, но с использованием подключей по другой схеме:
· в прямом порядке в раундах с 1-го по 8-й;
· в обратном порядке в последующих раундах.
Для собственно шифрования информации используются режимы гаммирования и гаммирования с обратной связью. В данных режимах шифрование информации производится побитовым сложением по модулю 2 каждого 64-битного блока шифруемой информации с блоком гаммы шифра. Гамма шифра — это псевдослучайная последовательность, вырабатываемая с использованием основного преобразования алгоритма ГОСТ 28147-89 следующим образом (рис. 3.3).
3 сложение с констанциями 4
|
|
|
|
|
|
|
Рис. 3.3 - Режим гаммирования
В режиме гаммирования происходят следующие действия:
1. в регистры N1 и N2 записывается их начальное заполнение - 64-битная величина, называемая «синхропосылкой»;
2. выполняется зашифровывание содержимого регистров N1 и N2 (в данном случае - синхропосылки) в режиме простой замены;
3. содержимое N1 складывается по модулю (232 - 1) с константой С1 = 224 + 216 + 28 + 24, результат сложения записывается в регистр N1;
4. содержимое N2 складывается по модулю 232 с константой С2 = 224 + 216 + 28 + 1, результат сложения записывается в регистр N2;
5. содержимое регистров N1 и N2 подается на выход в качестве 64-битного блока гаммы шифра (т.е. в данном случае N1 и N2 образуют первый блок гаммы);
6. если необходим следующий блок гаммы (т.е. необходимо продолжить зашифровывание или расшифровывание), выполняется возврат к шагу 2.
Для последующего расшифровывания аналогичным образом вырабатывается гамма шифра и складывается с зашифрованной информацией. В результате получается исходная информация, поскольку известно, что:
А ? В ? В = А (3.5)
где А и В - любые последовательности одинаковой размерности
? - операция побитного сложения по модулю 2.
Ясно, что для расшифровывания информации необходимо иметь тот же ключ шифрования и то же самое значение синхропосылки, что и при зашифровывании. Существуют реализации алгоритма ГОСТ 28147-89, в которых синхропосылка также является секретным элементом, наряду с ключом шифрования. Фактически в этом случае можно считать, что ключ шифрования увеличивается на длину синхропосылки (64 бита), что усиливает стойкость алгоритма.