Государственный стандарт СССР ГОСТ 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования" (утв. постановлением Государственного комитета СССР по стандартам от 2 июня 1989 г. N 1409) (отменен)

Государственный стандарт СССР ГОСТ 28147-89
"Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования"
(утв. постановлением Государственного комитета СССР по стандартам от 2 июня 1989 г. N 1409)

 

Дата введения - 1 июля 1990 г.

Введен впервые

 

Настоящий стандарт устанавливает единый алгоритм криптографического преобразования для систем обработки информации в сетях электронных вычислительных машин (ЭВМ), отдельных вычислительных комплексах и ЭВМ, который определяет правила шифрования данных и выработки имитовставки.

Алгоритм криптографического преобразования предназначен для аппаратной или программной реализации, удовлетворяет криптографическим требованиям и по своим возможностям не накладывает ограничений на степень секретности защищаемой информации.

Стандарт обязателен для организаций, предприятий и учреждений, применяющих криптографическую защиту данных, хранимых и передаваемых в сетях ЭВМ, в отдельных вычислительных комплексах или в ЭВМ.

Термины, применяемые в настоящем стандарте, и их определения приведены в приложении 1.

 

1. Структурная схема алгоритма криптографического преобразования

 

1.1. Структурная схема алгоритма криптографического преобразования (криптосхема) содержит (см. черт. 1):

ключевое запоминающее устройство (КЗУ) на 256 бит, состоящее из восьми 32-разрядных накопителей (,,,,,,);

четыре 32-разрядных накопителя ();

два 32-разрядных накопителя ( , ) с записанными в них постоянными заполнениями ,

два 32-разрядных сумматора по модулю (,);

32-разрядный сумматор поразрядного суммирования по модулю 2 ();

32-разрядный сумматор по модулю () ();

сумматор по модулю , ограничение на разрядность сумматора не накладывается;

блок подстановки (К);

регистр циклического сдвига на одиннадцать шагов в сторону старшего разряда (R)

1.2. Блок подстановки К состоит из восьми узлов замены с памятью на 64 бита каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим собой таблицу из шестнадцати строк, содержащих по четыре бита заполнения в строке. Входной вектор определяет адрес строки в таблице, заполнение данной строки является выходным вектором. Затем 4-разрядные выходные векторы последовательно объединяются в 32-разрядный вектор.

1.3. При сложении и циклическом сдвиге двоичных векторов старшими разрядами считаются разряды накопителей с большими номерами.

1.4. При записи ключа (..., ) , , в КЗУ значение вводится в 1-й разряд накопителя , значение вводится во 2-й разряд накопителя , ... , значение вводится в 32-й разряд накопителя , значение вводится в 1-й разряд накопителя , значение вводится во 2-й разряд накопителя , ... , значение вводится в 32-й разряд накопителя значение вводится в 1-й разряд накопителя и т.д., значение вводится в 32-й разряд накопителя .

1.5. При перезаписи информации содержимое р-го разряда одного накопителя (сумматора) переписывается в р-й разряд другого накопителя (сумматора).

1.6. Значения постоянных заполнений ,(констант) накопителей , приведены в приложении 2.

1.7. Ключи, определяющие заполнения КЗУ и таблиц блока подстановки К, являются секретными элементами и поставляются в установленном порядке.

 

ЧЕРТЕЖ 1

"Чертеж 1"

 

Заполнение таблиц блока подстановки К является долговременным ключевым элементом, общим для сети ЭВМ.

Организация различных видов связи достигается построением соответствующей ключевой системы. При этом может быть использована возможность выработки ключей (заполнений КЗУ) в режиме простой замены и зашифрования их в режиме простой замены с обеспечением имитозащиты для передачи по каналам связи или хранения в памяти ЭВМ.

1.8. В криптосхеме предусмотрены четыре вида работы:

зашифрование (расшифрование) данных в режиме простой замены;

зашифрование (расшифрование) данных в режиме гаммирования;

зашифрование (расшифрование) данных в режиме гаммирования с обратной связью;

режим выработки имитовставки.

Схемы программной реализации алгоритма криптографического преобразования приведены в приложении 3.

2. Режим простой замены

 

2.1. Зашифрование открытых данных в режиме простой замены

2.1.1. Криптосхема, реализующая алгоритм зашифрования в режиме простой замены, должна иметь вид, указанный на черт. 2.

Открытые данные, подлежащие зашифрованию, разбирают на блоки по 64 бита в каждом. Ввод любого блока двоичной информации в накопители и производится так, что значение вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд ; значение вводится в 3-й разряд , значение вводится во 2-1 разряд и т.д., значение вводится в 32-й разряд В результате получают состояние накопителя и состояние накопителя .

2.1.2. В КЗУ вводятся 256 бит ключа. Содержимое восьми 32-разрядных накопителей , ,..., имеет вид;

 

 

2.1.3. Алгоритм зашифрования 64-разрядного блока открытых данных в режиме простой замены состоит из 32 циклов.

В первом цикле начальное заполнение накопителя суммируется по модулю в сумматоре с заполнением накопителя при этом заполнение накопителя сохраняется.

Результат суммирования преобразуется в блоке подстановки и полученный вектор поступает на вход регистра R, где циклически сдвигается на одиннадцать шагов в сторону старших разрядов. Результат сдвига суммируется поразрядно по модулю 2 в сумматоре с 32-разрядным заполнением накопителя . Полученный в результат записывается в при этом старое заполнение переписывается в . Первый цикл заканчивается.

Последующие циклы осуществляются аналогично, при этом во 2-м цикле из КЗУ считывается заполнение , в 3-м цикле из КЗУ считывается заполнение и т.д., в 8-м цикле из КЗУ считывается заполнение . В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й заполнения из КЗУ считываются в том же порядке;

 

.

 

В последних восьми циклах с 25-го по 32-й порядок считывания заполнений КЗУ обратный:

 

.

 

Таким образом, при зашифровании в 32 циклах осуществляется следующий порядок выбора заполнений накопителей:

 

,

 

,

,

 

.

 

ЧЕРТЕЖ 2

"Чертеж 2"

 

В 32 цикле результат из сумматора вводится в накопитель , а в накопителе сохраняется старое заполнение.

Полученные после 32-го цикла зашифрования заполнения накопителей и являются блоком зашифрованных данных, соответствующим блоку открытых данных.

2.1.4. Уравнения зашифрования в режиме простой замены имеют вид:

 

РИСУНОК 1

 

при j = 32,

где - начальное заполнение перед первым циклом зашифрования;

- начальное заполнение перед первым циклом зашифрования;

- заполнение после j-го цикла зашифрования;

- заполнение после j-го цикла зашифрования, .

Знак

РИСУНОК 2

означает поразрядное суммирование 32-разрядных векторов по модулю 2.

Знак

РИСУНОК 3

означает суммирование 32-разрядных векторов по модулю . Правила суммирования по модулю приведены в приложении 4;

R - операция циклического сдвига на одиннадцать шагов в сторону старших разрядов, т.е.

 

.

2.1.5. 64-разрядный блок зашифрованных данных выводится из накопителей , следующем порядке: из 1-го, 2-го,..., 32-го разрядов накопителя , в следующем порядке: из 1-го, 2-го,..., 32-го разрядов накопителя ,затем из 1-го, 2-го, ..., 32-го разрядов накопителя , т.е.

 

 

Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.

2.2. Расшифрование зашифрованных данных в режиме простой замены

2.2.1. Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид (см. черт. 2), что и при зашифровании. В КЗУ вводятся 256 бит того же ключа, на котором осуществлялось зашифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки по 64 бита в каждом. Ввод любого блока

 

 

в накопители и производятся так, что значение вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд ; значение вводится в 1-й разряд и т.д., значение вводится в 32-й разряд .

2.2.2. Расшифрование осуществляется по тому же алгоритму, что и зашифрование открытых данных, с тем изменением, что заполнения накопителей , , ... , считываются из КЗУ в циклах расшифрования в следующем порядке:

 

,

 

,

,

 

.

2.2.3. Уравнения расшифрования имеют вид:

 

РИСУНОК 4

2.2.4. Полученные после 32 циклов работы заполнения накопителей и составляют блок открытых данных.

, соответствующий блоку зашифрованных данных, при этом значение блока соответствует содержимому 1-го разряда , значение соответствует содержимому 2-го разряда и т.д., значение соответствует содержимому 32-го разряда значение соответствует содержимому 2-го разряда и т.д., значение соответствует содержимому 32-го разряда .

Аналогично расшифровываются остальные блоки зашифрованных данных.

2.3. Алгоритм зашифрования в режиме простой замены 64-битового блока обозначается через А, т.е.

 

.

2.4. Режим простой замены допускается использовать для зашифрования (расшифрования) данных только в случаях, приведенных в п. 1.7.

3. Режим гаммирования

 

3.1. Зашифрование открытых данных, в режиме гаммирования

3.1.1. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования, имеет вид, указанный на черт.3.

Открытые данные, разбитые на 64-разрядные блоки ,..., , , зашифровываются в режиме гаммирования путем поразрядного суммирования по модулю 2 в сумматоре с гаммой шифра , которая вырабатывается блоками по 64 бита, т.е.

 

,

 

где М - определяется объемом шифруемых данных.

- i-й 64-разрядный блок, , число двоичных разрядов в блоке может быть меньше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока отбрасывается.

3.1.2. В КЗУ вводятся 256 бит ключа. В накопители , вводится 64-разрядная двоичная последовательность (синхропосылка) , являющаяся исходным заполнением этих накопителей для последующей выработки М блоков гаммы шифра. Синхропосылка вводится в и и так, что значение вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд ; значение вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд .

3.1.3. Исходное заполнение накопителей и (синхропосылка S) зашифровывается в режиме простой замены в соответствии с требованиями п. 2.1. Результат зашифрования , ) переписывается в 32-разрядные накопители и , так, что заполнение переписывается в , а заполнение переписывается в .

3.1.4. Заполнение накопителя суммируется по модулю ( ) в сумматоре с 32-разрядной константой из накопителя , результат записывается в . Правила суммирования по модулю () приведены в приложении 4. Заполнение накопителя суммируется по модулю в сумматоре в 32-разрядной константой из накопителя , результат записывается в .

 

ЧЕРТЕЖ 3

"Чертеж 3"

 

Заполнение переписывается в , а заполнение переписывается в , при этом заполнение , сохраняется.

Заполнение и зашифровывается в режиме простой замены в соответствии с требованиями п. 2.1. Полученное в результате зашифрования заполнение , образует первый 64-разрядный блок гаммы шифра , который суммируется поразрядно по модулю 2 в сумматоре с первым 64-разрядным блоком открытых данных

 

.

 

В результате суммирования получается 64-разрядный блок зашифрованных данных

 

.

 

Значение блока является результатом суммирования по модулю 2 в значения из блока со значением 1-го разряда , значение блока является результатом суммирования по модулю 2 в значения из блока со значением 2-го разряда и т.д., значение блока является результатом суммирования по модулю 2 в значения из блока со значением 32-го разряда .

3.1.5. Для получения следующего 64-разрядного блока гаммы шифра заполнение суммируется по модулю () в сумматоре с константой из , заполнение суммируется по модулю в сумматоре с константой из . Новое заполнение переписывается в , а новое заполнение переписывается в , при этом заполнение и сохраняется.

Заполнение и зашифровывается в режиме простой замены в соответствии с требованиями п. 2.1. Полученное в результате зашифрования заполнение , образует второй 64-разрядный блок гаммы шифра , который суммируется поразрядно по модулю 2 в сумматоре со вторым блоком открытых данных . Аналогично вырабатываются блоки гаммы шифра , , ..., и зашифровываются блоки открытых данных , ,.., . Если длина последнего М-го блока открытых данных меньше 64 бит, то из последнего М-го блока гаммы шифра для зашифрования используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

3.1.6. В канал связи или память ЭВМ передаются синхропосылка S и блоки зашифрованных данных , ,..., .

3.1.7. Уравнение зашифрования имеет вид:

 

РИСУНОК 6

 

.

3.2. Расшифрование зашифрованных данных в режиме гаммирования

3.2.1. При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. черт. 3). В КЗУ вводятся 256 бит ключа, с помощью которого осуществлялось зашифрование данных , ,..., . Синхропосылка S вводится в накопители и и аналогично пп.3.1.2 - 3.1.5 осуществляется процесс выработки М блоков гаммы шифра ,,.., . Блоки зашифрованных данных , ,..., суммируются поразрядно по модулю 2 в сумматоре с блоками гаммы шифра, в результате получаются блоки открытых данных , ,..., , при этом может содержать меньше 64 разрядов.

3.2.2. Уравнение расшифрования имеет вид:

 

РИСУНОК 7

4. Режим гаммирования с обратной связью

 

4.1. Зашифрование открытых данных в режиме гаммирования с обратной связью

4.1.1. Крипстосхема, реализующая алгоритм зашифрования в режиме гаммирования с обратной связью, имеет вид, указанный на черт. 4.

Открытые данные, разбитые на 64-разрядные блоки ,..., , зашифровываются в режиме гаммирования с обратной связью путем поразрядного суммирования по модулю 2 в сумматоре с гаммой шифра , которая вырабатывается блоками по 64 бита, т.е. , где М определяется объемом открытых данных, - i-й 64-разрядный блок, . Число двоичных разрядов в блоке может быть меньше 64.

 

ЧЕРТЕЖ 4

"Чертеж 4"

4.1.2. В КЗУ вводятся 256 бит ключа. Синхропосылка из 64 бит вводится в и аналогично п. 3.1.2.

4.1.3. Исходное заполнение и зашифровывается в режиме простой замены в соответствии с требованиями п. 2.1. Полученное в результате зашифрования заполнения и образует первый 64-разрядный блок гаммы шифра , который суммируется поразрядно по модулю 2 в сумматоре с первым 64-разрядным блоком открытых данных .

В результате получается 64-разрядный блок зашифрованных данных

 

.

4.1.4. Блок зашифрованных данных одновременно является также исходным состоянием , для выработки второго блока гаммы шифра и по обратной связи записывается в указанные накопители. При этом значение вводится в 1-й раздел , значение вводится во 2-й разряд N1 и т.д., значение вводится в 32-й разряд N1; значение вводится в 1-й разряд N2, значение вводится во 2-й разряд N2 и т.д., значение вводится в 32-й разряд N 2.

Заполнение , зашифровывается в режиме простой замены в соответствии с требованиями п. 2.1. Полученное в результате зашифрования заполнение , образует второй 64-разрядный блок гаммы шифра , который суммируется поразрядно по модулю 2 в сумматоре со вторым блоком открытых данных .

Выработка последующих блоков гаммы шифра и зашифрование соответствующих блоков открытых данных производится аналогично. Если длина последнего М-го блока открытых данных меньше 64 разрядов, то из используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

4.1.5. Уравнения зашифрования в режиме гаммирования с обратной связью имеют вид:

 

РИСУНОК 8

4.1.6. В канал связи или память ЭВМ передаются синхропосылка S и блоки зашифрованных данных , ,..., .

4.2. Расшифрование зашифрованных данных в режиме гаммирования с обратной связью

4.2.1. При расшифровании криптосхема имеет тот же вид (см. черт. 4), что и при зашифровании.

В КЗУ вводятся 256 бит того же ключа, на котором осуществлялось зашифрование , ,... , . Синхропосылка S вводится в и аналогично п. 3.1.2.

4.2.2. Исходное заполнение , (синхропосылка S) зашифровывается в режиме простой замены согласно подразделу 2.1. Полученное в результате зашифрования заполнение , образует первый блок гаммы шифра = A(S), который суммируется поразрядно по модулю 2 в сумматоре с блоком зашифрованных данных . В результате получается первый блок открытых данных.

4.2.3. Блок зашифрованных данных является исходным заполнением , для выработки второго блока гаммы шифра . Блок записывается в , в соответствии с требованиями п. 4.1.4. Полученное заполнение , зашифровывается в режиме простой замены в соответствии с требованиями п. 2.1, полученный в результате блок суммируется поразрядно по модулю 2 в сумматоре со вторым блоком зашифрованных данных . В результате получается блок открытых данных .

Аналогично в , последовательно записываются блоки зашифрованных данных , , ... , , из которых в режиме простой замены вырабатываются блоки гаммы шифра , , ... , . Блоки гаммы шифра суммируются поразрядно по модулю 2 в сумматоре с блоками зашифрованных данных , , ... , в результате получаются блоки открытых данных , , .. , при этом длина последнего блока открытых данных может содержать меньше 64 разрядов.

4.2.4. Уравнения расшифрования в режиме гаммирования с обратной связью имеют вид:

 

РИСУНОК 9

5. Режим выработки имитовставки

 

5.1. Для обеспечения имитозащиты открытых данных, состоящих из М 64-разрядных блоков , ,,,, , , , вырабатывается дополнительный блок из бит (имитовставка ). Процесс выработки имитовставки единообразен для всех режимов шифрования.

5.2. Первый блок открытых данных

 

 

записывается в накопители и , при этом значение , вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд ; значение вводится в 1-й разряд и т.д., значение вводится в 32-й разряд .

5.3. Заполнение и подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены (см. подраздел 2.1). В КЗУ при этом находится тот же ключ, которым зашифровываются блоки открытых данных , ,..., в соответствующие блоки зашифрованных данных , ,..., .

Полученное после 16 циклов работы заполнение и , имеющее вид суммируется в по модулю 2 со вторым блоком .

Результат суммирования

 

РИСУНОК 10

 

заносится в и и подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены.

Полученное заполнение и суммируется по по модулю 2 с третьим блоком и т.д., последний блок при необходимости дополненный до полного 64-разрядного блока нулями, суммируется в по модулю 2 с заполнением ,

.

 

Результат суммирования

 

РИСУНОК 11

 

заносится в , и зашифровывается в режиме простой замены по первым 16 циклам работы алгоритма. Из полученного заполнения накопителей и

 

 

выбирается отрезок (имитовставка) длиной бит:

 

.

 

Имитовставка передается по каналу связи или в память ЭВМ в конце зашифрованных данных, т.е. , ,..., , .

5.4. Поступившие зашифрованные данные ,,..., , расшифровываются, из полученных блоков открытых данных , , аналогично п. 5.3 вырабатывается имитовставка , которая затем сравнивается с имитовставкой , полученной вместе с зашифрованными данными из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок полученные блоки открытых данных , , ... , считают ложными.

Выработка имитовставки может производиться или перед зашифрованием (после расшифрования) всего сообщения, или параллельно с зашифрованием (расшифрованием) по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (адресную часть, отметку времени, синхропосылку и др.) и не зашифровываться.

Значение параметра (число двоичных разрядов в имитовставке) определяется действующими криптографическими требованиями, при этом учитывается, что вероятность навязывания ложных данных равна .

Откройте актуальную версию документа прямо сейчас или получите полный доступ к системе ГАРАНТ на 3 дня бесплатно!

Получить доступ к системе ГАРАНТ

Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.


Государственный стандарт СССР ГОСТ 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования" (утв. постановлением Государственного комитета СССР по стандартам от 2 июня 1989 г. N 1409)


Текст ГОСТа приводится по официальному изданию ИПК Издательство стандартов, Москва,1996 г.


Дата введения - 1 июля 1990 г.


1. Утвержден и введен в действие постановлением Государственного комитета СССР по стандартам от 2 июня 1989 г. N 1409


2. Введен впервые


3. Ссылочные нормативно-технические документы


Обозначение НТД, на который дана ссылка

Номер пункта

ГОСТ 15971-90

ГОСТ 17657-79

ГОСТ 19781-90

Приложение 1

Приложение 1

Приложение 1


4. Переиздание, апрель 1996 г.


Приказом Росстандарта от 4 декабря 2018 г. N 1062-ст настоящий ГОСТ отменен в целом с 1 июня 2019 г. в связи с введением в действие межгосударственных стандартов ГОСТ 34.12-2018 и ГОСТ 34.13-2018. С 1 июня 2019 г. взамен в части раздела 2. "Режим простой замены"; раздела 3. "Режим гаммирования"; раздела 4. "Режим гаммирования с обратной связью" и раздела 5. "Режим выработки имитовставки" введен в действие ГОСТ 34.13-2018 "Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров"


Приказом Росстандарта от 4 декабря 2018 г. N 1061-ст с 1 июня 2019 г. взамен настоящего ГОСТа в части раздела 1 "Структурная схема алгоритма криптографического преобразования" введен в действие ГОСТ 34.12-2018 "Информационная технология. Криптографическая защита информации. Блочные шифры"