Инструменты пользователя

Инструменты сайта


документы:стандарты:гост_28147-89

ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования

Дата введения 1990-07-01

ИНФОРМАЦИОННЫЕ ДАННЫЕ

1. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Государственного комитета СССР по стандартам от 02.06.89 N 1409

2. ВВЕДЕН ВПЕРВЫЕ

3. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ

Обозначение НТД,
на который дана ссылка
Номер пункта
ГОСТ 15971-90 Приложение 1
ГОСТ 17657-79 Приложение 1
ГОСТ 19781-90 Приложение 1

4. ПЕРЕИЗДАНИЕ, апрель 1996 г.

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

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

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

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

1. СТРУКТУРНАЯ СХЕМА АЛГОРИТМА КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ

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

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

28147-89-chert1.jpg

Черт.1

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

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

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

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

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

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

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

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

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

1.2. Блок подстановки ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм

криптографического преобразования состоит из восьми узлов замены K0, K1, K2, K3, K4, K5, K6, K7, K8 с памятью на 64 бита каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим собой таблицу из шестнадцати строк, содержащих по четыре бита заполнения в строке. Входной вектор определяет адрес строки в таблице, заполнение данной строки является выходным вектором. Затем 4-разрядные выходные векторы последовательно объединяются в 32-разрядный векторы.

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

1.4. При записи ключа (W1, W2 …, W256), Wq∈{0,1}, q=1+256, в КЗУ значение W1 вводится в 1-й разряд накопителя X0, значение W2 вводится во 2-й разряд накопителя X0, … , значение W32 вводится в 32-й разряд накопителя X0; значение W33 вводится в 1-й разряд накопителя X1, значение W34 вводится во 2-й разряд накопителя X1, … , значение W64 вводится в 32-й разряд накопителя X1; значение W65 вводится в 1-й разряд накопителя X2 и т.д., значение W256 вводится в 32-й разряд накопителя X7.

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

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

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

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

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

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

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

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

2. РЕЖИМ ПРОСТОЙ ЗАМЕНЫ

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

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

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

Черт.2

Открытые данные, подлежащие зашифрованию, разбивают на блоки по 64 бита в каждом. Ввод любого блока T0= (a1(0),a2(0) …,a31(0), a32(0), b1(0), b2(0) …, b32(0)) двоичной информации в накопители N1 и N2 производится так, что значение a1(0) вводится в 1-й разряд N1, значение a2(0) вводится во 2-й разряд N1 и т.д., значение a32(0) вводится в 32-й разряд N1; значение b1(0) вводится в 1-й разряд N2, значение b2(0) вводится во 2-й разряд N2 и т.д., значение b32(0) вводится в 32-й разряд N2. В результате получают состояние (a32(0), a31(0), … , a2(0), a1(0)) накопителя N1 и состояние (b32(0), b31(0), … , b2(0), b1(0)) накопителя N2.

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

X0 = (W32, W31, …, W2, W2)
X1 = (W64, W63, …, W34, W33)

X7 = (W256, W255, …, W226, W225)

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

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

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

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

X0, X1, X2, X3, X4, X5, X6, X7.

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

X7, X6, X5, X4, X3, X2, X1, X0

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

X0, X1, X2, X3, X4, X5, X6, X7, X0, X1, X2, X3, X4, X5, X6, X7,
X0, X1, X2, X3, X4, X5, X6, X7, X7, X6, X5, X4, X3, X2, X1, X0.

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

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

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

28147-89-formula.jpg

при j = 1 ÷ 24;

28147-89-formula2.jpg

при j = 25 ÷ 31;

a(32) = a(31)

при j = 32,

где a(0) = (a32(0), a31(0), … , a1(0)) - начальное заполнение N1 перед первым циклом зашифрования;

b(0) = (b32(0), b31(0), … , b1(0)) - начальное заполнение N2 перед первым циклом зашифрования;

a(j) = (a32(j), a31(j), … , a1(j)) - заполнение N1 после j-го цикла зашифрования;

b(j) = (b32(j), b31(j), … , b1(j)) - заполнение N2 после j-го цикла зашифрования, j = 1 ÷ 32.

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

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

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


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

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

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

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

в накопители N1 и N2 производятся так, что значение a1(32) вводится в 1-й разряд N1, значение а2(32) вводится во 2-й разряд N1 и т.д., значение а32(32) вводится в 32-й разряд N1; значение b1(32) вводится в 1-й разряд N2 и т.д., значение b32(32) вводится в 32-й разряд N2.

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

X0, X1, X2, X3, X4, X5, X6, X7, X7, X6, X5, X4, X3, X2, X1, X0
X7, X6, X5, X4, X3, X2, X1, X0, X7, X6, X5, X4, X3, X2, X1, X0.

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

при j = 1 ÷ 8;

при j = 9 ÷ 31;

a(0) = a(1)

при j = 32.

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

T0 = (a1(0), a2(0), … , a32(0), b1(0), b2(0), … , b32(0)), соответствующий блоку зашифрованных данных, при этом значение a1(0) блока T0 соответствует содержимому 1-го разряда N1, значение a2(0) соответствует содержимому 2-го разряда N1 и т.д., значение a32(0) соответствует содержимому 32-го разряда N1; значение b1(0) соответствует содержимому 1-го разряда N2, значение b2(0) соответствует содержимому 2-го разряда N2 и т.д., значение b32(0) соответствует содержимому 32-го разряда N2.

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

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

A(T0) = A(a(0), b(0)) = (a(32), b(32)) = Tш

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

3. РЕЖИМ ГАММИРОВАНИЯ

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

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

Черт.3. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования

Черт.3

Открытые данные, разбитые на 64-разрядные блоки T0(1), T0(2) …, T0(M-1), T0(M), зашифровываются в режиме гаммирования путем поразрядного суммирования по модулю 2 в сумматоре CM5 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита, т.е.

,

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

Гш(i) - i-й 64-разрядный блок, i = 1 ÷ M, число двоичных разрядов в блоке T0(M) может быть меньше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока Гш(M) отбрасывается

3.1.2. В КЗУ вводятся 256 бит ключа. В накопители N1, N2 вводится 64-разрядная двоичная последовательность (синхропосылка) S=(S1,S2,…S64 являющаяся исходным заполнением этих накопителей для последующей выработки M блоков гаммы шифра. Синхропосылка вводится в N1 и N2 так, что значение S1 вводится в 1-й разряд N1, значение S2 вводится во 2-й разряд N1и т.д., значение S32 вводится в 32-й разряд N1; значение S33 вводится в 1-й разряд N2 значение S34 вводится во 2-й разряд N2 и т.д., значение S64 вводится в 32-й разряд N2.

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

3.1.4. Заполнение накопителя суммируется N4 по модулю (232-1) в сумматоре CM4 с 32-разрядной константой C1 из накопителя N6, результат записывается в N4. Правила суммирования по модулю (232-1) приведены в приложении 4. Заполнение накопителя N3 суммируется по модулю 232 в сумматоре CM3 в 32-разрядной константой C2 из накопителя N5, результат записывается в N3.

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

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

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

Значение т(1)1 блока T(1)ш является результатом суммирования по модулю 2 в CM5 значения t(1)1 из блока T(1)0 со значением 1-го разряда N1, значение т(1)2 блока T(1)ш является результатом суммирования по модулю 2 в CM5 значения t(1)2 из блока T(1)0 со значением 2-го разряда N1 и т.д., значение т(1)64 блока T(1)ш является результатом суммирования по модулю 2 в CM5 значения t(1)64 из блока T(1)0 со значением 32-го разряда N2.

3.1.5. Для получения следующего 64-разрядного блока гаммы шифра Г(2)ш заполнение N4 суммируется по модулю (232-1) в сумматоре CM4 с константой С1 из N6, заполнение N3 суммируется по модулю 232 в сумматоре CM3 с константой С2 из N5. Новое заполнение N3 переписывается в N1, а новое заполнение N4 переписывается в N2, при этом заполнение N3 и N4 сохраняется.

Заполнение N1 и N2 зашифровывается в режиме простой замены в соответствии с требованиями п.2.1. Полученное в результате зашифрования заполнение N1, N2 образует второй 64-разрядный блок гаммы шифра Г(2)ш, который суммируется поразрядно по модулю 2 в сумматоре CM5 со вторым блоком открытых данных T(2)0. Аналогично вырабатываются блоки гаммы шифра Г(3)ш, Г(4)шГ(м)ш, и зашифровываются блоки открытых данных T(3)0, T(4)0б… T(м)0. Если длина последнего М-го блока открытых данных T(м)0 меньше 64 бит, то из последнего М-го блока гаммы шифра Г(м)ш для зашифрования используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

3.1.6. В канал связи или память ЭВМ передаются синхропосылка S. Алгоритм криптографического преобразования и блоки зашифрованных данных T(1)ш, T(2)ш, … , T(м)ш.

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

,

где [+]' - означает суммирование 32-разрядных заполнений по модулю (232-1);

[+]- поразрядное суммирование по модулю 2 двух заполнений;

Yi- содержимое накопителя N3 после зашифрования i-го блока открытых данных T(i)0;

Zi- содержимое накопителя N4 после зашифрования i -го блока открытых данных T(i)0;

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

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

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

4. РЕЖИМ ГАММИРОВАНИЯ С ОБРАТНОЙ СВЯЗЬЮ

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

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

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

Черт.4

Открытые данные, разбитые на 64-разрядные блоки T(1)0, …, T(м)0, зашифровываются в режиме гаммирования с обратной связью путем поразрядного суммирования по модулю 2 в сумматоре CM5 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита, т.е. Гш = (Г1ш, Г2ш, … Гмш), где M определяется объемом открытых данных, Гiш - i-й 64-разрядный блок, i = 1÷M . Число двоичных разрядов в блоке T(м)0 может быть меньше 64.

4.1.2. В КЗУ вводятся 256 бит ключа. Синхропосылка S=(S1, S2,…, S64) из 64 бит вводится в N1 и N2 аналогично п.3.1.2.

4.1.3. Исходное заполнение N1 и N2 зашифровывается в режиме простой замены в соответствии с требованиями п.2.1. Полученное в результате зашифрования заполнение N1 и N2 образует первый 64-разрядный блок гаммы шифра Г1ш = A(S), который суммируется поразрядно по модулю 2 в сумматоре CM5 с первым 64-разрядным блоком открытых данных T(1)0 = (t(1)1, t(1)2, …, t(1)64).

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

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

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

Выработка последующих блоков гаммы шифра Г1ш и зашифрование соответствующих блоков открытых данных T(i)0 (i = 3÷M) производится аналогично. Если длина последнего M-го блока открытых данных T(м)0 меньше 64 разрядов, то из Гмш используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

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

4.1.6. В канал связи или память ЭВМ передаются синхропосылка T(1)ш, T(2)ш, …, T(м)ш.

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

4.2.1. При расшифровании криптосхема имеет тот же вид (см. черт.4), что и при зашифровании. В КЗУ вводятся 256 бит того же ключа, на котором осуществлялось зашифрование T(1)0 , T(2)0 , … , T(м)0 . Синхропосылка S вводится в N1 и N2 аналогично п.3.1.2.

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

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

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

5. РЕЖИМ ВЫРАБОТКИ ИМИТОВСТАВКИ

5.1. Для обеспечения имитозашиты открытых данных, состоящих из M 64-разрядных блоков T(1)0, T(2)0, … , T(м)0, M≥2, вырабатывается дополнительный блок из l бит (имитовставка Иl). Процесс выработки имитовставки единообразен для всех режимов шифрования

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

записывается в накопители N1и N2, при этом значение t(1)1 = a(1)1 (0) вводится в 1-й разряд N1, значение t(1)2 = a(1)2 (0) вводится во 2-й разряд N1 и т.д., значение t(1)32 = a(1)32 (0) вводится в 32-й разряд N1; значение t(1)33 = b(1)1 (0) вводится в 1-й разряд N2 и т.д., значение t(1)64 = b(1)32 (0) вводится в 32-й разряд N2.

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

Полученное после 16 циклов работы заполнение N1и N2, имеющее вид (a(1)1 (16), a(1)2 (16), … , a(1)32 (16), b(1)1 (16), b(1)2 (16), … , b(1)32 (16)), суммируется в CM5 по модулю 2 со вторым блоком T(1)0=( t(2)1), t(2)2 ,…, t(2)64 ).

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

=

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

Полученное заполнение N1и N2 суммируется по CM5 по модулю 2 с третьим блоком T(3)0 и т.д., последний блок T(м)0=( t(м)1), t(м)2 ,…, t(м)64 ), при необходимости дополненный до полного 64-разрядного блока нулями, суммируется в CM5 по модулю 2 с заполнением N1, N2.

(a(м-1)1 (16), a(м-1)2 (16), … , a(м-1)32 (16), b(м-1)1 (16), b(м-1)2 (16), … , b(м-1)32 (16)).

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

=

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

(a(м)1 (16), a(м)2 (16), … , a(м)32 (16), b(м)1 (16), b(м)2 (16), … , b(м)32 (16)).

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

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

5.4. Поступившие зашифрованные данные T(1)ш, T(2)ш, … , T(м)ш расшифровываются, из полученных блоков открытых данных T(1)0, T(2)0, … , T(м)0 аналогично п.5.3 вырабатывается имитовставка Иl , которая затем сравнивается с имитовставкой Иl, полученной вместе с зашифрованными данными из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок полученные блоки открытых данных T(1)0, T(2)0, … , T(м)0 считают ложными.

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

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

ПРИЛОЖЕНИЕ 1 (справочное). ТЕРМИНЫ, ПРИМЕНЯЕМЫЕ В НАСТОЯЩЕМ СТАНДАРТЕ, И ИХ ОПРЕДЕЛЕНИЯ

ПРИЛОЖЕНИЕ 1 Справочное

ТерминОпределение
АлгоритмПо ГОСТ 19781
ГаммированиеПроцесс наложения по определенному закону гаммы шифра на открытые данные
Гамма шифраПсевдослучайная двоичная последовательность, вырабатываемая по заданному алгоритму для зашифрования открытых данных и расшифрования зашифрованных данных
ДанныеПо ГОСТ 15971
Зашифрование данныхПроцесс преобразования открытых данных в зашифрованные при помощи шифра
ИмитозащитаЗащита системы шифрованной связи от навязывания ложных данных
ИмитовставкаОтрезок информации фиксированной длины, полученной по определенному правилу из открытых данных и ключа и добавленный к зашифрованным данным для обеспечения имитозащиты
Канал связиПо ГОСТ 17657
КлючКонкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований
Криптографическая защитаЗащита данных при помощи криптографического преобразования данных
Криптографическое преобразованиеПреобразование данных при помощи шифрования и (или) выработки имитовставки
Расшифровка данныхПроцесс преобразования зашифрованных данных в открытые при помощи шифра
СинхропосылкаЗначения исходных открытых параметров алгоритма криптографического преобразования
Уравнение зашифрованияСоотношение, выражающее процесс образования зашифрованных данных из открытых данных в результате преобразований, заданных алгоритмом криптографического преобразования
Уравнение расшифрованияСоотношение, выражающее процесс образования открытых данных из зашифрованных данных в результате преобразований, заданных алгоритмом криптографического преобразования
ШифрСовокупность обратимых преобразований множества возможных открытых данных на множество возможных зашифрованных данных, осуществляемых по определенным правилам с применением ключей
ШифрованиеПроцесс зашифрования или расшифрования

ПРИЛОЖЕНИЕ 2 (обязательное). ЗНАЧЕНИЯ КОНСТАНТ C1, С2

ПРИЛОЖЕНИЕ 2 Обязательное

1. Константа С1 имеет вид:

Разряд накопителя N6

Значение разряда
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Разряд накопителя N6

Значение разряда
17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0

2. Константа С2 имеет вид:

Разряд накопителя N5

Значение разряда
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Разряд накопителя N5

Значение разряда
17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

ПРИЛОЖЕНИЕ 3 (справочное). СХЕМЫ ПРОГРАММНОЙ РЕАЛИЗАЦИИ АЛГОРИТМА КРИПТОГРАФИЧЕСКОГО ПРЕОБРАЗОВАНИЯ

ПРИЛОЖЕНИЕ 3 Справочное

Черт.5. Схема одного цикла шифрования

1. Схема одного цикла шифрования

Черт.5

2. Схема 32-х циклов зашифрования Черт.6. Схема 32-х циклов зашифрования

Черт.6

3. Схема 32-х циклов расшифрования Черт.7. Схема 32-х циклов расшифрования

Черт.7

4. Схема алгоритма зашифрования в режиме простой замены Черт.8. Схема алгоритма зашифрования в режиме простой замены

Черт.8

5. Схема алгоритма расшифрования в режиме простой замены Черт.9. Схема алгоритма расшифрования в режиме простой замены

Черт.9

6. Схема алгоритма зашифрования в режиме гаммирования Черт.10. Схема алгоритма зашифрования в режиме гаммирования

Черт.10

7. Схема алгоритма расшифрования в режиме гаммирования Черт.11. Схема алгоритма расшифрования в режиме гаммирования

Черт.11

8. Схема алгоритма зашифрования в режиме гаммирования с обратной связью Черт.12. Схема алгоритма зашифрования в режиме гаммирования с обратной связью

Черт.12

9. Схема алгоритма расшифрования в режиме гаммирования с обратной связью Черт.13. Схема алгоритма расшифрования в режиме гаммирования с обратной связью

Черт.13

10. Схема алгоритма криптографического преобразования в режиме выработки имитовставки Черт.14. Схема алгоритма криптографического преобразования в режиме выработки имитовставки

Черт.14

ПРИЛОЖЕНИЕ 4 (справочное). ПРАВИЛА СУММИРОВАНИЯ ПО МОДУЛЮ 2_32 И ПО МОДУЛЮ (2_32-1)

ПРИЛОЖЕНИЕ 4 Справочное

ПРАВИЛА СУММИРОВАНИЯ ПО МОДУЛЮ 232 И ПО МОДУЛЮ (2 32 -1)

1. Два целых числа a, b, где 0 ≤ a, b ≤ <, 2 32 -1, представленные в двоичном виде

т.е.

суммируются по модулю 232 (операция |+|) по следующему правилу:

если

где операция +(-) есть арифметическая сумма (разность) двух целых чисел.

2. Два целых числа a, b, где 0 ≤ a, b ≤ <, 232-1, представленные в двоичном виде

,

суммируются по модулю (232-1) (операция |+|') по следующему правилу:

a|+|'b=a+b, если a+b‹2 32

a|+|'b=a+b-232-1, если a+b≥2 32

документы/стандарты/гост_28147-89.txt · Последние изменения: 2016/08/11 13:27 — Павел Кульков