В России установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отдельных вычислительных комплексах и ЭВМ. Он определяется ГОСТом 28147-89. Этот алгоритм предназначен для аппаратной и программной реализации, удовлетворяет необходимым криптографическим требованиям и не накладывает ограничений на степень секретности и защищаемой информации. Алгоритм реализует шифрование 64-битовых блоков данных с помощью 256-битового ключа.
Открытые данные, подлежащие зашифрованию, разбиваются на 64-разрядные блоки. Процедура зашифрования 64-разрядного блока Т0 включает 32 цикла (j =1,…,32). 256 бит ключа k задаются в виде восьми 32-разрядных подключей ki:
k = k7k6k5k4k3k2k1k0.
Последовательность битов блока
Т0 = (а1(0),…,а32(0), b1(0),…,b32(0))
разбивается на две половины по 32 бита (взятые в обратном порядке):
а(0)=(а32(0),…,а1(0)),
b(0)=(b32(0),…,b1(0)).
Уравнения шифрования на j-м цикле шифрования представляются в виде:
при j = 1,…,24,
при j = 25,…,31,
Вычисление значения функции f производится в два этапа. На первом этапе ее 32-битовый аргумент х разбивается на восемь последовательных 4-битовых вектора, каждый из которых преобразуется в некоторый 4-битовый вектор соответствующим узлом замены Si, i = 1,…,8. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати чисел от 0 до 15, представленных в виде двоичных векторов длины 4. Восемь преобразованных S -блоками векторов последовательно соединяются в 32-битовый вектор S(x). На втором этапе с помощью регистра сдвига R производится циклический сдвиг вектора S(x) влево на 11 позиций.
S-блоки представляют собой ключевые элементы, которые являются общими для каждой сети связи. Они должны храниться в секрете.
Результатом зашифрования блока Т0 является блок Тш составленный после 32-го цикла шифрования в следующем порядке:
Тш = (а1(32),…,а32(32), b1(32),…,b32(32)).
Алгоритм шифрования, определяемый ГОСТом 28147-89, из-за значительно большей длины ключа является существенно более стойким, нежели алгоритм шифрования DES.