Основные современные криптографические методы защиты электронной документации. Методы кодирования и шифрования в криптографии, страница 14

В схеме DES есть три преобразования: E, S и P.

Преобразование Е расширяет 32-мерный вектор в 48-мерный. Оно задается некоторой таблицей. Фактически символы из R2 переписываются в R3,  некоторые из них по 2 раза.

Преобразования S1, S2,...S8 (так называемые  S-блоки) преобразуют 6-ти битовые вектора в 4-битовые вектора. Эти преобразования заданы 8-ю таблицами. Преобразование S – не просто перестановка и выборка координат, а достаточно произвольная замена.

Преобразование Р – это обычная перестановка координат 32-мерного вектора. Оно тоже задано таблицей.

Таким образом, преобразование F(Ki) функционирует следующим образом. Из накопителя R2 снимается заполнение, оно проходит через преобразование Е, полученный в R3 48-мерный вектор суммируется с Ki. Результат записывается в R4. Заполнение R4 проходит через преобразование S-блоков, перестановку Р, складывается с содержимым накопителя R1. Окончательный результат преобразований записывается в R2, а предыдущее заполнение R2 выталкивается в первый регистр R1.

Далее процедура повторяется 16 раз, но каждый раз на вход поступаетновая ключевая последовательность.

Зашифрование блока О = (О1, О2) открытого текста можно описать уравнениями шифрования:

Z = (Z1, Z2) = (H17, H16),

Ht+1 = Ht-1       F(Kt)Ht,

Н0 = О1, Н1 = О2.

Процедура расшифрования описывается уравнениями:

О = (О1, О2) = (H0, H1),

Ht-1 = Ht+1       F(Kt)Ht,

Н17 = О1, Н16 = О2.

5.3. БЛОЧНЫЙ ШИФР ГОСТ 28147- 89

Блочный шифр ГОСТ 28147 - 89 – Российский аналог американского стандарта шифрования DES – имеет похожую блок-схему (рис. 7):

 


........

S8

 

S1

 


                                                                     

 


Рис. 7

Блок-схема шифрования в стандарте ГОСТ 28147 89

Ключом алгоритма является таблица К = (К1,К2,....К8) из восьми 32-мерных двоичных векторов. Основными узлами схемы являются накопители (регистры R1–R5) длины 32, сумматор по молдулю 232, сумматор по модулю 2 (такой же как в DES), S – блоки, подстановка сдвига Т. Подстановка Т в схеме ГОСТ осуществляет сдвиг заполнения регистра по циклу.

На вход сумматора по модулю 232 поступает битовое заполнение регистра R2 и 32 знака ключевой таблицы, а с выхода сумматора снимается двоичная запись суммы по модулю 232, поступивших на вход сумматора чисел. Восемь преобразований   S  заменяют   поступающие    на  вход  полубайты   -4-мерные вектора на другие полубайты по заданным таблицам (здесь: вектор – двоичная запись числа, - от автора).

Процедура шифрования осуществляется следующим образом. Открытый текст разбивается на блоки по 64 бит.

Каждый блок открытого текста О = (О1,О2) шифруется по шифру простой замены:

Z = (Z1, Z2) = Г(К, О), где преобразование Г задается рекуррентным соотношением

Ht+1 = Ht-1      G(K1(t))Ht, t = 1, 2,......32,

Н0 = О1, Н1 = О2,

покоординатное суммирование 32-мерных векторов в (F2)32.

(Z1, Z2) = (H33, H32),

1(t) = 1, 2,....8, 1, 2,.....8, 1, 2,......8, 8, 7,.......1.

G – преобразование (F2)32         (F2)32.

На вход преобразования подается свой 32-мерный ключевой вектор. Первые 24 цикла подаются в прямой последовательности, а последние 8 циклов – в обратной. Таким образом, на вход узла преобразования усложнения 32 бита ключа поступают в следующем порядке:

В первой итерации – 1-я строка, во 2-й итерации      – 2 строка,

..........

в 8-й итерации        – 8 строка, в 9-й                         – 1 строка,

..........

в 24-й                       – 8 строка,   в 25-й                       – 8 строка 

............

в 32-й                       – 1 строка.

То есть строки 3 раза проходятся в прямом направлении (24 итерации) и 1 раз – в обратном направлении (8 итераций).  Результат этого преобразования записывается в регистры R1 и R2  и является шифром.