В настоящих рекомендациях применены следующие сокращения:
- AAD - (Additional Authenticated Data) - дополнительные имитозащищаемые данные;
- AEAD - (Authenticated Encryption with Associated Data) шифрование с имитозащитой и ассоциированными данными;
- nonce - (number used once) уникальный вектор.
Настоящие рекомендации определяют режим MGM (Multilinear Galois Mode) - режим работы блочного шифра. Данный режим можно использовать в качестве режима работы блочного шифра с длиной блока n = 64 или n = 128. Для определенных в ГОСТ Р 34.12-2015 блочных шифров "Магма" и "Кузнечик", используемых в режиме MGM, выделены идентификаторы 1.2.643.7.1.1.5.1.3 (id-tc26-cipher-gostr3412-2015-magma-mgm) и 1.2.643.7.1.1.5.2.3 (id-tc26-cipher-gostr3412-2015-kuznyechik-mgm) соответственно.
Данный режим является AEAD-режимом и обеспечивает конфиденциальность и имитозащиту сообщений. При этом сообщения могут состоять из одной или двух частей. Если сообщение состоит из двух частей, то первая часть содержит дополнительные имитозащищаемые данные AAD и обозначается через A, а вторая часть называется открытым текстом и обозначается через P. Если сообщение состоит из одной части, то пустой строке должны быть равны либо дополнительные имитозащищаемые данные, либо открытый текст. Дополнительные имитозащищаемые данные не подлежат шифрованию, но требуют имитозащиты. Для открытого текста обеспечены конфиденциальность и имитозащита.
Параметром режима MGM является длина имитовставки S, выраженная в битах, 32 <= S <= n. Значение S должно быть зафиксировано в рамках каждого конкретного протокола исходя из требований к производительности системы и требований к стойкости режима относительно угрозы нарушения имитозащиты.
Процесс зашифрования сообщения, изображенный на рисунке 1, осуществляется при помощи функции MGM-Encrypt.
![]() Функция MGM-Encrypt принимает на вход следующие значения:
- ключ шифрования
- уникальный вектор
. Значение вектора nonce должно быть уникальным для каждого сообщения при фиксированном ключе K. Выработка уникальных векторов может быть реализована с использованием счетчика;- дополнительные имитозащищаемые данные A, 0 <= |A| < 2n/2. Дополнительные имитозащищаемые данные разбивают на h блоков и представляют в виде A = A1 ||...|| Ah*, где
, 1 <= t <= n. Если длина дополнительных имитозащищаемых данных нулевая, то последний блок Ah* равен пустой строке, а значения параметров h и t устанавливаются следующим образом: h = 0, t = n;- открытый текст P, 0 <= |P| < 2n/2. Открытый текст разбивают на q блоков и представляют в виде P = P1 ||...|| Pq*, где
, 1 <= u <= n. Если длина открытого текста нулевая, то последний блок открытого текста Pq* равен пустой строке, а значения параметров q и u устанавливаются следующим образом: q = 0, u = n.При этом длины |A| и |P| должны удовлетворять следующему ограничению: 0 < |A| + |P| < 2n/2.
Функция MGM-Encrypt в результате своей работы возвращает следующие значения:
- уникальный вектор
;- дополнительные имитозащищаемые данные A;
- шифртекст
- имитовставка
Процесс зашифрования сообщения с помощью функции MGM-Encrypt состоит из следующих этапов.
5.1.1 Зашифрование открытого текста P:
(1)Результатом данного этапа является шифртекст C = C1 ||...|| Cq*.
В случае если открытый текст P равен пустой строке, то шифртекст C также полагается равным пустой строке.
5.1.2 Дополнение последнего блока дополнительных имитозащищаемых данных
и последнего блока шифртекста до длины n:Ah = Ah* || 0n-t;
Cq = Cq* || 0n-u. (2)
5.1.3 Выработка значения имитовставки T от дополнительных имитозащищаемых данных A и шифртекста C:
(3)Результатом данного этапа является значение имитовставки T.
Процесс расшифрования сообщения, изображенный на рисунке 2, осуществляется при помощи функции MGM-Decrypt.
![]() Функция MGM-Decrypt принимает на вход следующие значения:
- ключ шифрования
;- уникальный вектор
;- дополнительные имитозащищаемые данные A, 0 <= |A| < 2n/2. Дополнительные имитозащищаемые данные разбивают на h блоков и представляют в виде A = A1 ||...|| Ah*, где
, 1 <= t <= n. Если длина дополнительных имитозащищаемых данных нулевая, то последний блок Ah* равен пустой строке, а значения параметров h и t устанавливаются следующим образом: h = 0, t = n.- шифртекст C, 0 <= |C| < 2n/2. Шифртекст разбивают на q блоков и представляют в виде C = C1 ||...|| Cq*, где
, i = 1, 2,...,q - 1, , 1 <= u <= n. Если длина шифртекста нулевая, то последний блок шифртекста Cq* равен пустой строке, а значения параметров q и u устанавливаются следующим образом: q = 0, u = n;- имитовставка
Функция MGM-Decrypt в результате своей работы возвращает либо ошибку, либо следующие значения:
- дополнительные имитозащищаемые данные A;
- открытый текст
Процесс расшифрования сообщения с помощью функции MGM-Decrypt состоит из следующих этапов.
5.2.1 Дополнение последнего блока дополнительных имитозащищаемых данных
и последнего блока шифртекста до длины n:Ah = Ah* || 0n-t;
Cq = Cq* || 0n-u. (4)
5.2.2 Выработка значения T' от дополнительных имитозащищаемых данных A и шифртекста C:
(5)Если выработанное значение T' отлично от значения T, то возвращается ошибка. Если значения T' и T совпали, то осуществляется переход к следующему этапу.
5.2.3 Расшифрование шифртекста C:
(6)Результатом данного этапа является открытый текст P = P1 ||...|| Pq*.
В том случае если шифртекст C равен пустой строке, то открытый текст P также полагается равным пустой строке.
В результате своей успешной работы функция MGM-Decrypt возвращает набор данных (A, P). В противном случае функция возвращает сообщение об ошибке.
(справочное)
Данное приложение носит справочный характер и не является частью настоящих рекомендаций.
В данном приложении приведены примеры перевода битовой строки в байтовую и наоборот. Для перевода битовой строки в байтовую используется функция BitToByte; для перевода байтовой строки в битовую - функция ByteToBit.
При записи байтовой строки каждый байт представляется в шестнадцатеричном виде и отделяется от соседних пробелами. Каждой битовой строке
При записи битовой строки она разделяется на подстроки длины не более 8. Каждая подстрока отделяется от соседних пробелами.
Для формирования строки с длиной, кратной 8, битовый вектор
дополняется нулем слева. Таким образом, байтовым представлением вектора nonce является строка BitToByte (0 || nonce).Ниже приведен пример перевода битового представления nonce в байтовое для случая n = 128.
:0010001 00100010 00110011 01000100 01010101 01100110 01110111 10001000 10011001 00000000 10101010
10111011 11001100 11011101 11101110 11111111.
0 || nonce:
00010001 00100010 00110011 01000100 01010101 01100110 01110111 10001000 10011001 00000000 10101010
10111011 11001100 11011101 11101110 11111111.
BitToByte (0 || nonce):
11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF.
Ниже приведен пример перевода байтового представления nonce в битовое для случая n = 128.
Байтовое представление nonce:
11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF.
0 || nonce:
00010001 00100010 00110011 01000100 01010101 01100110 01110111 10001000 10011001 00000000 10101010
10111011 11001100 11011101 11101110 11111111.
:0010001 00100010 00110011 01000100 01010101 01100110 01110111 10001000 10011001 00000000 10101010
10111011 11001100 11011101 11101110 11111111.
(справочное)
Данное приложение носит справочный характер и не является частью настоящих рекомендаций.
В данном приложении содержатся примеры работы блочного шифра "Кузнечик" и "Магма" в режиме MGM, определенном в настоящих рекомендациях. Параметр S выбран равным n.
На вход функции MGM-Encrypt подается набор аргументов (K, nonce, A, P), принимающих следующие значения:
- K:
88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77
FE DC BA 98 76 54 32 10 01 23 45 67 89 AB CD EF;
- nonce:
11 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88;
- A:
02 02 02 02 02 02 02 02 01 01 01 01 01 01 01 01
04 04 04 04 04 04 04 04 03 03 03 03 03 03 03 03
EA 05 05 05 05 05 05 05 05;
- P:
11 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88
00 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A
11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00
22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 11
AA BB CC.
Б.1.1 Зашифрование открытого текста P
0 || nonce:
11 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88.
Y1:
7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED CD.
EK (Y1):
B8 57 48 C5 12 F3 19 90 AA 56 7E F1 53 35 DB 74.
Y2:
7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED CE.
EK (Y2):
80 64 F0 12 6F AC 9B 2C 5B 6E AC 21 61 2F 94 33.
Y3:
7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED CF.
EK (Y3):
58 58 82 1D 40 C0 CD 0D 0A C1 E6 C2 47 09 8F 1C.
Y4:
7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED D0.
EK (Y4):
E4 3F 50 81 B5 8F 0B 49 01 2F 8E E8 6A CD 6D FA.
Y5:
7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED D1.
EK (Y5):
86 CE 9E 2A 0A 12 25 E3 33 56 91 B2 0D 5A 33 48.
C:
A9 75 7B 81 47 95 6E 90 55 B8 A3 3D E8 9F 42 FC
80 75 D2 21 2B F9 FD 5B D3 F7 06 9A AD C1 6B 39
49 7A B1 59 15 A6 BA 85 93 6B 5D 0E A9 F6 85 1C
C6 0C 14 D4 D3 F8 83 D0 AB 94 42 06 95 C7 6D EB
2C 75 52.
Б.1.2 Дополнение последнего блока дополнительных имитозащищаемых данных и последнего блока шифртекста до длины n.
A = A1 ||... || Ah:
02 02 02 02 02 02 02 02 01 01 01 01 01 01 01 01
04 04 04 04 04 04 04 04 03 03 03 03 03 03 03 03
EA 05 05 05 05 05 05 05 05 00 00 00 00 00 00 00.
C = C1 ||... || Cq:
A9 75 7B 81 47 95 6E 90 55 B8 A3 3D E8 9F 42 FC
80 75 D2 21 2B F9 FD 5B D3 F7 06 9A AD C1 6B 39
49 7A B1 59 15 A6 BA 85 93 6B 5D 0E A9 F6 85 1C
C6 0C 14 D4 D3 F8 83 D0 AB 94 42 06 95 C7 6D EB
2C 75 52 00 00 00 00 00 00 00 00 00 00 00 00 00.
Б.1.3 Выработка значения имитовставки T от дополнительных имитозащищаемых данных A и шифртекста C происходит следующим образом:
1 || nonce:
91 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88.
Z1:
7F C2 45 A8 58 6E 66 02 A7 BB DB 27 86 BD C6 6F.
H1:
8D B1 87 D6 53 83 0E A4 BC 44 64 76 95 2C 30 0B.
Z2:
7F C2 45 A8 58 6E 66 03 A7 BB DB 27 86 BD C6 6F.
H2:
7A 24 F7 26 30 E3 76 37 21 C8 F3 CD B1 DA 0E 31.
Z3:
7F C2 45 A8 58 6E 66 04 A7 BB DB 27 86 BD C6 6F.
H3:
44 11 96 21 17 D2 06 35 C5 25 E0 A2 4D B4 B9 0A.
Z4:
7F C2 45 A8 58 6E 66 05 A7 BB DB 27 86 BD C6 6F.
H4:
D8 C9 62 3C 4D BF E8 14 CE 7C 1C 0C EA A9 59 DB.
Z5:
7F C2 45 A8 58 6E 66 06 A7 BB DB 27 86 BD C6 6F.
H5:
A5 E1 F1 95 33 3E 14 82 96 99 31 BF BE 6D FD 43.
Z6:
7F C2 45 A8 58 6E 66 07 A7 BB DB 27 86 BD C6 6F.
H6:
B4 CA 80 8C AC CF B3 F9 17 24 E4 8A 2C 7E E9 D2.
Z7:
7F C2 45 A8 58 6E 66 08 A7 BB DB 27 86 BD C6 6F.
H7:
72 90 8F C0 74 E4 69 E8 90 1B D1 88 EA 91 C3 31.
Z8:
7F C2 45 A8 58 6E 66 09 A7 BB DB 27 86 BD C6 6F.
H8:
23 CA 27 15 B0 2C 68 31 3B FD AC B3 9E 4D 0F B8.
Z9:
7F C2 45 A8 58 6E 66 0A A7 BB DB 27 86 BD C6 6F.
H9:
BC BC E6 C4 1A A3 55 A4 14 88 62 BF 64 BD 83 0D.
len(A) || len(C):
00 00 00 00 00 00 01 48 00 00 00 00 00 00 02 18.
T:
CF 5D 65 6F 40 C3 4F 5C 46 E8 BB 0E 29 FC DB 4C.
На вход функции MGM-Encrypt подается набор аргументов (K, nonce, A, P), принимающих следующие значения:
- K:
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF;
- nonce:
12 DE F0 6B 3C 13 0A 59;
- A:
01 01 01 01 01 01 01 01 02 02 02 02 02 02 02 02
03 03 03 03 03 03 03 03 04 04 04 04 04 04 04 04
05 05 05 05 05 05 05 05 EA;
- P:
FF EE DD CC BB AA 99 88 11 22 33 44 55 66 77 00
88 99 AA BB CC EE FF 0A 00 11 22 33 44 55 66 77
99 AA BB CC EE FF 0A 00 11 22 33 44 55 66 77 88
AA BB CC EE FF 0A 00 11 22 33 44 55 66 77 88 99
AA BB CC.
Б.2.1 Зашифрование открытого текста P
0 || nonce:
12 DE F0 6B 3C 13 0A 59.
Y1:
56 23 89 01 62 DE 31 BF.
EK (Y1):
38 7B DB A0 E4 34 39 B3.
Y2:
56 23 89 01 62 DE 31 C0.
EK (Y2):
94 33 00 06 10 F7 F2 AE.
Y3:
56 23 89 01 62 DE 31 C1.
EK (Y3):
97 B7 AA 6D 73 C5 87 57.
Y4:
56 23 89 01 62 DE 31 C2.
EK (Y4):
94 15 52 8B FF C9 E8 0A.
Y5:
56 23 89 01 62 DE 31 C3.
EK (Y5):
03 F7 68 BF F1 82 D6 70.
Y6:
56 23 89 01 62 DE 31 C4.
EK (Y6):
FD 05 F8 4E 9B 09 D2 FE.
Y7:
56 23 89 01 62 DE 31 C5.
EK (Y7):
DA 4D 90 8A 95 B1 75 C4.
Y8:
56 23 89 01 62 DE 31 C6.
EK (Y8):
65 99 73 96 DA C2 4B D7.
Y9:
56 23 89 01 62 DE 31 C7.
EK (Y9):
A9 00 50 4A 14 8D EE 26.
C:
C7 95 06 6C 5F 9E A0 3B 85 11 33 42 45 91 85 AE
1F 2E 00 D6 BF 2B 78 5D 94 04 70 B8 BB 9C 8E 7D
9A 5D D3 73 1F 7D DC 70 EC 27 CB 0A CE 6F A5 76
70 F6 5C 64 6A BB 75 D5 47 AA 37 C3 BC B5 C3 4E
03 BB 9C.
Б.2.2 Дополнение последнего блока дополнительных имитозащищаемых данных и последнего блока шифртекста до длины n
A = A1 ||... || Ah:
01 01 01 01 01 01 01 01 02 02 02 02 02 02 02 02
03 03 03 03 03 03 03 03 04 04 04 04 04 04 04 04
05 05 05 05 05 05 05 05 EA 00 00 00 00 00 00 00.
C = C1 ||... || Cq:
C7 95 06 6C 5F 9E A0 3B 85 11 33 42 45 91 85 AE
1F 2E 00 D6 BF 2B 78 5D 94 04 70 B8 BB 9C 8E 7D
9A 5D D3 73 1F 7D DC 70 EC 27 CB 0A CE 6F A5 76
70 F6 5C 64 6A BB 75 D5 47 AA 37 C3 BC B5 C3 4E
03 BB 9C 00 00 00 00 00.
Б.2.3 Выработка значения имитовставки T от дополнительных имитозащищаемых данных A и шифртекста C происходит следующим образом:
1 || nonce:
92 DE F0 6B 3C 13 0A 59.
Z1:
2B 07 3F 04 94 F3 72 A0.
H1:
70 8A 78 19 1C DD 22 AA.
Z2:
2B 07 3F 05 94 F3 72 A0.
H2:
6F 02 CC 46 4B 2F A0 A3.
Z3:
2B 07 3F 06 94 F3 72 A0.
H3:
9F 81 F2 26 FD 19 6F 05.
Z4:
2B 07 3F 07 94 F3 72 A0.
H4:
B9 C2 AC 9B E5 B5 DF F9.
Z5:
2B 07 3F 08 94 F3 72 A0.
H5:
74 B5 EC 96 55 1B F8 88.
Z6:
2B 07 3F 09 94 F3 72 A0.
H6:
7E B0 21 A4 03 5B 04 C3.
Z7:
2B 07 3F 0A 94 F3 72 A0.
H7:
C2 A9 C3 A8 70 4D 9B B0.
Z8:
2B 07 3F 0B 94 F3 72 A0.
H8:
F5 D5 05 A8 7B 83 83 B5.
Z9:
2B 07 3F 0C 94 F3 72 A0.
H9:
F7 95 E7 5F DE B8 93 3C.
Z10:
2B 07 3F 0D 94 F3 72 A0.
H10:
65 A1 A3 E6 80 F0 81 45.
Z11:
2B 07 3F 0E 94 F3 72 A0.
H11:
1C 74 A5 76 4C B0 D5 95.
Z12:
2B 07 3F 0F 94 F3 72 A0.
H12:
DC 84 47 A5 14 E7 83 E7.
Z13:
2B 07 3F 10 94 F3 72 A0.
H13:
A7 E3 AF E0 04 EE 16 E3.
Z14:
2B 07 3F 11 94 F3 72 A0.
H14:
A5 AA BB 0B 79 80 D0 71.
Z15:
2B 07 3F 12 94 F3 72 A0.
H15:
6E 10 4C C9 33 52 5C 5D.
Z16:
2B 07 3F 13 94 F3 72 A0.
H16:
83 11 B6 02 4A A9 66 C1.
len (A) || len (C):
00 00 01 48 00 00 02 18.
T:
A7 92 80 69 AA 10 FD 10.
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/prikaz/69/r.html
На правах рекламы:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||