Алгоритм ГОСТ 28147

Алгоритм ГОСТ 28147 является отечественным стандартом для алгоритмов симметричного шифрования. ГОСТ 28147 разработан в 1989 году, является блочным алгоритмом шифрования, длина блока равна 64 битам, длина ключа равна 256 битам, количествораундов равно 32. Алгоритм представляет собой классическую сеть Фейстеля.

L_{i} = R_{i-1}

R_{i} = L_{i-1} oplus f (R_{i-1}, K_{i})

Функция F проста. Сначала правая половина и i-ый подключ складываются по модулю 232. Затем результат разбивается на восемь 4-битных значений, каждое из которых подается на вход S-box. ГОСТ 28147 использует восемь различных S-boxes, каждый из которых имеет 4-битный вход и 4-битный выход. Выходы всех S-boxes объединяются в 32-битное слово, которое затем циклически сдвигается на 11 бит влево. Наконец, с помощью XOR результат объединяется с левой половиной, в результате чего получается новая правая половина.


Рис. 3.7.I-ый раунд ГОСТ 28147

Генерация ключей проста. 256-битный ключ разбивается на восемь 32-битных подключей. Алгоритм имеет 32 раунда, поэтому каждый подключ используется в четырех раундах по следующей схеме:

Раунд
Подключ
Раунд
Подключ
Раунд
Подключ
Раунд
Подключ

Считается, что стойкость алгоритма ГОСТ 28147 во многом определяется структурой S-boxes. Долгое время структура S-boxes в открытой печати не публиковалась. В настоящее время известны S-boxes, которые используются в приложениях Центрального Банка РФ и считаются достаточно сильными. Напомню, что входом и выходом S-box являются 4-битные числа, поэтому каждый S-box может быть представлен в виде строки чисел от 0 до 15, расположенных в некотором порядке. Тогда порядковый номер числа будет являться входным значением S-box, а само число - выходным значением S-box.

1-ый S-box
 
2-ой S-box
 
3-ий S-box
 
4-ый S-box
 
5-ый S-box
 
6-ой S-box
 
7-ой S-box
 
8-ой S-box
 

Основные различия между DES и ГОСТ 28147 следующие:

· DES использует гораздо более сложную процедуру создания подключей, чем ГОСТ 28147. В ГОСТ эта процедура очень проста.

· В DES применяется 56-битный ключ, а в ГОСТ 28147 - 256-битный. При выборе сильных S-boxes ГОСТ 28147 считается очень стойким.

· У S-boxes DES 6-битные входы и 4-битные выходы, а у S-boxes ГОСТ 28147 4-битные входы и выходы. В обоих алгоритмах используется по восемь S-boxes, но размер S-box ГОСТ 28147 существенно меньше размера S-box DES.

· В DES применяются нерегулярные перестановки Р, в ГОСТ 28147 используется 11-битный циклический сдвиг влево. Перестановка DES увеличивает лавинный эффект. В ГОСТ 28147 изменение одного входного бита влияет на один S-boxодного раунда, который затем влияет на два S-boxes следующего раунда, три S-boxes следующего и т.д. В ГОСТ 28147требуется 8 раундов прежде, чем изменение одного входного бита повлияет на каждый бит результата; DES для этого нужно только 5 раундов.

· В DES 16 раундов, в ГОСТ 28147 - 32 раунда, что делает его более стойким к дифференциальному и линейному криптоанализу.