RFC 7801 GOST R 34.12-2015: Block Cipher “Kuznyechik”

Independent Submission                                  V. Dolmatov, Ed.
Request for Comments: 7801                  Research Computer Center MSU
Category: Informational                                       March 2016
ISSN: 2070-1721

ГОСТ Р 34.12-2015 — Блочный шифр «Кузнечик»

GOST R 34.12-2015: Block Cipher “Kuznyechik”

PDF

Аннотация

Этот документ публикуется в качестве источника информации о Национальном стандарте Российской федерации ГОСТ Р 34.12-2015, описывающем блочное шифрование с размером блока n=128 битов и размером ключа k=256 битов, называемого также «Кузнечик». Данный алгоритм является одним из множества российских стандартных криптографических алгоритмов (алгоритмы ГОСТ).

Статус документа

Документ не является спецификацией стандарта Internet и публикуется с информационными целями.

Документ включается в серию RFC, но не связан с каким-либо потоком документов RFC. Редактор (RFC Editor) принял решение о публикации документа по своему усмотрению и не делает каких-либо заявления о реализации или развертывании. Документы, одобренные для публикации их редакторами не претендуют на какой-либо уровень стандартизации Internet (см. раздел 2 в RFC 5741).

Информацию о текущем статусе документа, ошибках и способах обратной связи можно найти по ссылке http://www.rfc-editor.org/info/rfc7801.

Авторские права

Авторские права (Copyright (c) 2016) принадлежат IETF Trust и лицам, указанным в качестве авторов документа. Все права защищены.

К этому документу применимы права и ограничения, перечисленные в BCP 78 и IETF Trust Legal Provisions и относящиеся к документам IETF (http://trustee.ietf.org/license-info), на момент публикации данного документа. Прочтите упомянутые документы внимательно.

1. Сфера действия стандарта

Национальный стандарт Российской федерации [GOST3412-2015] описывает базовые блочные шифры, используемые в качестве криптографических методов обработки и защиты информации, включая защиту конфиденциальности, достоверности и целостности информации при ее передаче, обработке и хранении в компьютерных системах.

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

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

2. Общие сведения

Блочный шифр «Кузнечик» [GOST3412-2015] Разработан Центром защиты информации и специальной связи Федеральной службы безопасности Российской федерации с участием ОАО «Инфотекс» («Информационные Технологии и Коммуникационные Системы» – InfoTeCS JSC). Стандарт ГОСТ Р 34.12-2015 одобрен и введен в действие Приказом №749-ст Федерального агентства по техническому регулированию и метрологии от 19 июня 2015 г.

Терминологически и концептуально стандарт согласован с международными стандартами:

  • ISO/IEC 10116 [ISO-IEC10116];

  • серия стандартов ISO/IEC 18033 [ISO-IEC18033-1] [ISO-IEC18033-3].

3. Определения и обозначения

Ниже приведены используемые в стандарте термины и их определения.

3.1. Определения

Ниже приведены определения используемых в стандарте терминов.

encryption algorithm — алгоритм шифрования

Процесс, преобразующий открытый текст в зашифрованный (параграф 2.19 [ISO-IEC18033-1]).

decryption algorithm — алгоритм дешифрования

Процесс, преобразующий зашифрованный текст в открытый (параграф 2.14 [ISO-IEC18033-1]).

basic block cipher — базовый блочный шифр

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

block – блок

Строка битов определенного размера (параграф 2.6 [ISO-IEC18033-1])

block cipher – блочный шифр

Симметричная система шифрования, в которой алгоритм шифрования применяется к блокам открытого текста (строкам битов определенного размера) для получения блоков шифрованного текста (параграф 2.7 [ISO-IEC18033-1]).

Примечание. В ГОСТ Р 34.12-2015 установлено, что термины «блочный шифр» (block cipher) и «алгоритм блочного шифрования» (block encryption algorithm) являются синонимами.

encryption шифрование

Обратимое преобразование данных с помощью криптографического алгоритма для создания шифрованного текста, т. е., сокрытия содержимого этих данных (параграф 2.18 [ISO-IEC18033-1]).

round key — итерационный ключ

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

key – ключ

Последовательность символов, определяющая криптографическое преобразование (например, шифрование или дешифрование) (параграф 2.21 [ISO-IEC18033-1]).

Примечание. В ГОСТ Р 34.12-2015 ключ должен быть двоичной последовательностью.

plaintext – открытый текст

Незашифрованная информация (параграф 3.11 [ISO-IEC10116]).

key schedule – развертывание ключа

Расчет итерационного ключа на основе ключа шифра.

decryption – дешифрование

Операция, обратная шифрованию (параграф 2.13 [ISO-IEC18033-1]).

symmetric cryptographic technique — симметричный криптографический метод

Криптографический метод, в котором используется один и тот же секретный ключ как для шифрования, так и для дешифрования (параграф 2.32 [ISO-IEC18033-1]).

cipher – шифр

Другой термин, используемый для обозначения криптографической системы (параграф 2.20 [ISO-IEC18033-1]).

ciphertext — шифрованный текст

Данные, которые были преобразованы с целью сокрытия их содержимого (параграф 3.3 [ISO-IEC10116]).

3.2. Обозначения

Ниже приводятся используемые в стандарте обозначения.

V*

множество всех двоичных строк конечного размера (далее, строк), включая пустую строку.

V_s

множество всех двоичных строк размера s, где s – неотрицательное целое число; нумерация подстрок и компонент строки осуществляется справа налево, начиная с 0.

U[*]W

прямое (декартово) произведение множеств U и W.

|A|

число компонент (размер) строки A из множества V* (если A – пустая строка, |A| = 0).

A||B

конкатенация строка A и B из множества V*, т.е., строка из V_(|A|+|B|), где левая подстрока из V_|A| равна A, а правая подстрока из V_|B| равна B.

Z_(2n)

кольцо вычетов по модулю 2n,

Q

конечное поле GF(2)[x]/p(x), где p(x)=x8+x7+x6+x+1 принадлежит GF(2)[x]; элементы поля Q представлены целыми числами так, что элемент z_0+z_1*theta+…+z_7*theta7, принадлежащий Q, соответствует целому числу z_0+2*z_1+…+27*z_7, где z_i=0 или z_i=1, i=0,1,…,7, а theta означает класс вычетов по модулю p(x), содержащий x.

(xor)

исключающее ИЛИ для двух двоичных строк одинаковых размеров.

Vec_s: Z_(2s) -> V_s

взаимно-однозначное1 отображение, сопоставляющее элемент из кольца Z_(2s) с его двоичным представлением; т.е., для любого элемента z в кольце Z_(2s), представленного в виде z_0 + (2*z_1) + … + (2(s-1)*z_(s-1)), где z_i принадлежит {0, 1}, i = 0, …, n-1, справедливо равенство Vec_s(z) = z_(s-1)||…||z_1||z_0.

Int_s: V_s -> Z_(2s)

отображение, обратное по отношению к Vec_s (т.е., Int_s = Vec_s-1).

delta: V_8 -> Q

взаимно-однозначное отображение, сопоставляющее двоичную строку из V_8 с элементом из поля Q следующим образом — строке z_7||…||z_1||z_0, где z_i принадлежит {0, 1}, i = 0, …, 7, соответствует элемент z_0+(z_1*theta)+…+(z_7*theta7), принадлежащий Q2,

nabla: Q -> V8

отображение, обратно по отношению к delta, т.е., delta = nabla-1,

PS

композиция отображений, в которой отображение S выполняется первым.

Ps

композиция отображений Ps-1 и P, где P1=P.

4. Значения параметров

4.1. Нелинейное взаимно-однозначное преобразование

Нелинейное взаимно-однозначное преобразование представляет собой подстановку Pi = (Vec_8)Pi'(Int_8): V_8 -> V_8, где Pi’: Z_(28) -> Z_(28). Значения для подстановки Pi’ приведены ниже в форме массива Pi’ = (Pi'(0), Pi'(1), … , Pi'(255)):

    Pi' =
   (       252, 238, 221,  17, 207, 110,  49,  22, 251, 196, 250,
           218,  35, 197,   4,  77, 233, 119, 240, 219, 147,  46,
           153, 186,  23,  54, 241, 187,  20, 205,  95, 193, 249,
            24, 101,  90, 226,  92, 239,  33, 129,  28,  60,  66,
           139,   1, 142,  79,   5, 132,   2, 174, 227, 106, 143,
           160,   6,  11, 237, 152, 127, 212, 211,  31, 235,  52,
            44,  81, 234, 200,  72, 171, 242,  42, 104, 162, 253,
            58, 206, 204, 181, 112,  14,  86,   8,  12, 118,  18,
           191, 114,  19,  71, 156, 183,  93, 135,  21, 161, 150,
            41,  16, 123, 154, 199, 243, 145, 120, 111, 157, 158,
           178, 177,  50, 117,  25,  61, 255,  53, 138, 126, 109,
            84, 198, 128, 195, 189,  13,  87, 223, 245,  36, 169,
            62, 168,  67, 201, 215, 121, 214, 246, 124,  34, 185,
             3, 224,  15, 236, 222, 122, 148, 176, 188, 220, 232,
            40,  80,  78,  51,  10,  74, 167, 151,  96, 115,  30,
             0,  98,  68,  26, 184,  56, 130, 100, 159,  38,  65,
           173,  69,  70, 146,  39,  94,  85,  47, 140, 163, 165,
           125, 105, 213, 149,  59,   7,  88, 179,  64, 134, 172,
            29, 247,  48,  55, 107, 228, 136, 217, 231, 137, 225,
            27, 131,  73,  76,  63, 248, 254, 141,  83, 170, 144,
           202, 216, 133,  97,  32, 113, 103, 164,  45,  43,   9,
            91, 203, 155,  37, 208, 190, 229, 108,  82,  89, 166,
           116, 210, 230, 244, 180, 192, 209, 102, 175, 194,  57,
            75,  99, 182)

Pi-1 представляет собой значение, обратное Pi (1/Pi); значения для подстановки Pi-1‘ приведены ниже в форме массива Pi-1‘ = (Pi-1‘(0), Pi-1‘(1), … , Pi-1‘(255)):

    Pi-1' =
   (    165,  45,  50, 143,  14,  48,  56, 192,  84, 230, 158,
         57,  85, 126,  82, 145, 100,   3,  87,  90,  28,  96,
          7,  24,  33, 114, 168, 209,  41, 198, 164,  63, 224,
         39, 141,  12, 130, 234, 174, 180, 154,  99,  73, 229,
         66, 228,  21, 183, 200,   6, 112, 157,  65, 117,  25,
        201, 170, 252,  77, 191,  42, 115, 132, 213, 195, 175,
         43, 134, 167, 177, 178,  91,  70, 211, 159, 253, 212,
         15, 156,  47, 155,  67, 239, 217, 121, 182,  83, 127,
        193, 240,  35, 231,  37,  94, 181,  30, 162, 223, 166,
        254, 172,  34, 249, 226,  74, 188,  53, 202, 238, 120,
          5, 107,  81, 225,  89, 163, 242, 113,  86,  17, 106,
        137, 148, 101, 140, 187, 119,  60, 123,  40, 171, 210,
         49, 222, 196,  95, 204, 207, 118,  44, 184, 216,  46,
         54, 219, 105, 179,  20, 149, 190,  98, 161,  59,  22,
        102, 233,  92, 108, 109, 173,  55,  97,  75, 185, 227,
        186, 241, 160, 133, 131, 218,  71, 197, 176,  51, 250,
        150, 111, 110, 194, 246,  80, 255,  93, 169, 142,  23,
         27, 151, 125, 236,  88, 247,  31, 251, 124,   9,  13,
        122, 103,  69, 135, 220, 232,  79,  29,  78,   4, 235,
        248, 243,  62,  61, 189, 138, 136, 221, 205,  11,  19,
        152,   2, 147, 128, 144, 208,  36,  52, 203, 237, 244,
        206, 153,  16,  68,  64, 146,  58,   1,  38,  18,  26,
         72, 104, 245, 129, 139, 199, 214,  32,  10,   8,   0,
         76, 215, 116 )

 

4.2. Линейное преобразование

Линейное преобразование обозначается l: (V_8)16 -> V_8 и определяется выражением

 l(a_15,...,a_0) = nabla(148*delta(a_15) + 32*delta(a_15) + 133*delta(a_13) + 16*delta(a_12) +
 194*delta(a_11) + 192*delta(a_10) + 1*delta(a_9) + 251*delta(a_8) + 1*delta(a_7) +
 192*delta(a_6) + 194*delta(a_5) + 16*delta(a_4) + 133*delta(a_3) + 32*delta(a_2) + 
 148*delta(a_1) +1*delta(a_0))

для всех a_i, принадлежащих V_8, i = 0, 1, …, 15, где операции сложения и умножения выполняются в поле Q, а постоянные являются элементами поля, как указано выше.

4.3. Преобразования

Для реализации алгоритмов шифрования и дешифрования используются следующие преобразования:

X[x]:V_128->V_128 X[k](a)=k(xor)a

где k принадлежит V_128,

S:V_128-> V_128 S(a)=(a_15||...||a_0)=pi(a_15)||...||pi(a_0)

где a_15||…||a_0 принадлежит V_128, a_i принадлежит V_8, i=0,1,…,15,

S-1:V_128-> V_128

значение, обратное по отношению к результату преобразования S, которое можно выполнить, как показано ниже

S-1(a_15||...||a_0)=pi-1 (a_15)||...||pi-1(a_0)

где a_15||…||a_0 принадлежит V_128, a_i принадлежит V_8, i=0,1,…,15,

R:V_128-> V_128 R(a_15||...||a_0)=l(a_15,...,a_0)||a_15||...||a_1

где a_15||…||a_0 принадлежит V_128, a_i принадлежит V_8, i=0,1,…,15,

L:V_128-> V_128 L(a)=R16(a)

где a принадлежит V_128,

R-1:V_128-> V_128

значение, обратное по отношению к результату преобразования R, которое можно выполнить, как показано ниже

R-1(a_15||...||a_0)=a_14|| a_13||...||a_0||l(a_14,a_13,...,a_0,a_15)

где a_15||…||a_0 принадлежит V_128, a_i принадлежит V_8, i=0,1,…,15,

L-1:V_128-> V_128 L-1(a)=(R-1)(16)(a)

где a принадлежит V_128,

F[k]:V_128[*]V_128 -> V_128[*]V_128 F[k](a_1,a_0)=(LSX[k](a_1)(xor)a_0,a_1)

где k, a_0, a_1 принадлежат V_128.

4.4. Развертывание ключа

При развертывании ключа используются итерационные константы C_i принадлежащие V_128, i=1, 2, …, 32, и определяемые, как

   C_i=L(Vec_128(i))
      i=1,2,...,32

Итерационные ключи (Round key) K_i, i=1, 2, …, 10 создаются на основе ключа K=k_255||…||k_0 принадлежащего V_256, k_i принадлежащих V_1, i=0, 1, …, 255, как показано ниже

   K_1=k_255||...||k_128
   K_2=k_127||...||k_0
   (K_(2i+1),K_(2i+2))=F[C_(8(i-1)+8)]...F[C_(8(i-1)+1)](K_(2i-1),K_(2i))
       i=1,2,3,4

 

4.5. Базовый алгоритм шифрования

4.5.1. Шифрование

В зависимости от значений итерационных ключей K_1,…,K_10 алгоритм шифрования определяется подстановкой E_(K_1,…,K_10), определяемой как:

E_(K_1,...,K_10)(a)=X[K_10]LSX[K_9]...LSX[K_2]LSX[K_1](a)

где a принадлежит V_128.

4.5.2. Дешифрование

В зависимости от значений итерационных ключей K_1,…,K_10 алгоритм дешифрования определяется подстановкой D_(K_1,…,K_10), определяемой как:

   D_(K_1,...,K_10)(a)=X[K_1]L-1S-1X[K_2]... L-1S-1X[K_9] L-1S-1X[K_10](a)

где a принадлежит V_128.

5. Примеры (для информации)

Приведенная в этом разделе информация не относится к нормативной части стандарта.

5.1. Преобразование S

   S(ffeeddccbbaa99881122334455667700) = b66cd8887d38e8d77765aeea0c9a7efc
   S(b66cd8887d38e8d77765aeea0c9a7efc) = 559d8dd7bd06cbfe7e7b262523280d39
   S(559d8dd7bd06cbfe7e7b262523280d39) = 0c3322fed531e4630d80ef5c5a81c50b
   S(0c3322fed531e4630d80ef5c5a81c50b) = 23ae65633f842d29c5df529c13f5acda

 

5.2. Преобразование R

   R(00000000000000000000000000000100) = 94000000000000000000000000000001
   R(94000000000000000000000000000001) = a5940000000000000000000000000000
   R(a5940000000000000000000000000000) = 64a59400000000000000000000000000
   R(64a59400000000000000000000000000) = 0d64a594000000000000000000000000

 

5.3. Преобразование L

   L(64a59400000000000000000000000000) = d456584dd0e3e84cc3166e4b7fa2890d
   L(d456584dd0e3e84cc3166e4b7fa2890d) = 79d26221b87b584cd42fbc4ffea5de9a
   L(79d26221b87b584cd42fbc4ffea5de9a) = 0e93691a0cfc60408b7b68f66b513c13
   L(0e93691a0cfc60408b7b68f66b513c13) = e6a8094fee0aa204fd97bcb0b44b8580

 

5.4. Развертывание ключа

В этом примере используется ключ

   K = 8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef

   K_1 = 8899aabbccddeeff0011223344556677
   K_2 = fedcba98765432100123456789abcdef

   C_1 = 6ea276726c487ab85d27bd10dd849401
   X[C_1](K_1) = e63bdcc9a09594475d369f2399d1f276
   SX[C_1](K_1) = 0998ca37a7947aabb78f4a5ae81b748a
   LSX[C_1](K_1) = 3d0940999db75d6a9257071d5e6144a6
   F[C_1](K_1, K_2) = = (c3d5fa01ebe36f7a9374427ad7ca8949, 8899aabbccddeeff0011223344556677)

   C_2 = dc87ece4d890f4b3ba4eb92079cbeb02
   F [C_2]F [C_1](K_1, K_2) = (37777748e56453377d5e262d90903f87,
          c3d5fa01ebe36f7a9374427ad7ca8949)

   C_3 = b2259a96b4d88e0be7690430a44f7f03
   F[C_3]...F[C_1](K_1, K_2) = (f9eae5f29b2815e31f11ac5d9c29fb01,
          37777748e56453377d5e262d90903f87)

   C_4 = 7bcd1b0b73e32ba5b79cb140f2551504
   F[C_4]...F[C_1](K_1, K_2) = (e980089683d00d4be37dd3434699b98f,
          f9eae5f29b2815e31f11ac5d9c29fb01)

   C_5 = 156f6d791fab511deabb0c502fd18105
   F[C_5]...F[C_1](K_1, K_2) = (b7bd70acea4460714f4ebe13835cf004,
          e980089683d00d4be37dd3434699b98f)

   C_6 = a74af7efab73df160dd208608b9efe06
   F[C_6]...F[C_1](K_1, K_2) = (1a46ea1cf6ccd236467287df93fdf974,
          b7bd70acea4460714f4ebe13835cf004)

   C_7 = c9e8819dc73ba5ae50f5b570561a6a07
   F[C_7]...F [C_1](K_1, K_2) = (3d4553d8e9cfec6815ebadc40a9ffd04,
          1a46ea1cf6ccd236467287df93fdf974)

   C_8 = f6593616e6055689adfba18027aa2a08
   (K_3, K_4) = F [C_8]...F [C_1](K_1, K_2) = (db31485315694343228d6aef8cc78c44,
           3d4553d8e9cfec6815ebadc40a9ffd04)

 

Итерационные ключи K_i для i = 1, 2, …, 10 имеют значения:

   K_1 = 8899aabbccddeeff0011223344556677
   K_2 = fedcba98765432100123456789abcdef
   K_3 = db31485315694343228d6aef8cc78c44
   K_4 = 3d4553d8e9cfec6815ebadc40a9ffd04
   K_5 = 57646468c44a5e28d3e59246f429f1ac
   K_6 = bd079435165c6432b532e82834da581b
   K_7 = 51e640757e8745de705727265a0098b1
   K_8 = 5a7925017b9fdd3ed72a91a22286f984
   K_9 = bb44e25378c73123a5f32f73cdb6e517
   K_10 = 72e9dd7416bcf45b755dbaa88e4a4043

 

5.5. Тестовое шифрование

В этом примере выполняется тестовое шифрование с использованием итерационных ключей, указанных в параграфе 5.4. Пусть открытый текст имеет вид

a = 1122334455667700ffeeddccbbaa9988

тогда

   X[K_1](a) = 99bb99ff99bb99ffffffffffffffffff
   SX[K_1](a) = e87de8b6e87de8b6b6b6b6b6b6b6b6b6
   LSX[K_1](a) = e297b686e355b0a1cf4a2f9249140830
   LSX[K_2]LSX[K_1](a) = 285e497a0862d596b36f4258a1c69072
   LSX[K_3]...LSX[K_1](a) = 0187a3a429b567841ad50d29207cc34e
   LSX[K_4]...LSX[K_1](a) = ec9bdba057d4f4d77c5d70619dcad206
   LSX[K_5]...LSX[K_1](a) = 1357fd11de9257290c2a1473eb6bcde1
   LSX[K_6]...LSX[K_1](a) = 28ae31e7d4c2354261027ef0b32897df
   LSX[K_7]...LSX[K_1](a) = 07e223d56002c013d3f5e6f714b86d2d
   LSX[K_8]...LSX[K_1](a) = cd8ef6cd97e0e092a8e4cca61b38bf65
   LSX[K_9]...LSX[K_1](a) = 0d8e40e4a800d06b2f1b37ea379ead8e

 

Зашифрованный текст будет иметь вид

b = X[K_10]LSX[K_9]...LSX[K_1](a) = 7f679d90bebc24305a468d42b9d4edcd

5.6. Тестовая расшифровка

В этом примере выполняется тестовое дешифрование с использованием итерационных ключей, указанных в параграфе 5.4. Пусть шифрованный текст имеет вид

b = 7f679d90bebc24305a468d42b9d4edcd

тогда

   X[K_10](b) = 0d8e40e4a800d06b2f1b37ea379ead8e
   L^(-1)X[K_10](b) = 8a6b930a52211b45c5baa43ff8b91319
   S^(-1)L^(-1)X[K_10](b) = 76ca149eef27d1b10d17e3d5d68e5a72
   S^(-1)L^(-1)X[K_9]S^(-1)L^(-1)X[K_10](b) = 5d9b06d41b9d1d2d04df7755363e94a9
   S^(-1)L^(-1)X[K_8]...S^(-1)L^(-1)X[K_10](b) = 79487192aa45709c115559d6e9280f6e
   S^(-1)L^(-1)X[K_7]...S^(-1)L^(-1)X[K_10](b) = ae506924c8ce331bb918fc5bdfb195fa
   S^(-1)L^(-1)X[K_6]...S^(-1)L^(-1)X[K_10](b) = bbffbfc8939eaaffafb8e22769e323aa
   S^(-1)L^(-1)X[K_5]...S^(-1)L^(-1)X[K_10](b) = 3cc2f07cc07a8bec0f3ea0ed2ae33e4a
   S^(-1)L^(-1)X[K_4]...S^(-1)L^(-1)X[K_10](b) = f36f01291d0b96d591e228b72d011c36
   S^(-1)L^(-1)X[K_3]...S^(-1)L^(-1)X[K_10](b) = 1c4b0c1e950182b1ce696af5c0bfc5df
   S^(-1)L^(-1)X[K_2]...S^(-1)L^(-1)X[K_10](b) = 99bb99ff99bb99ffffffffffffffffff

 

Расшифрованный текст имеет вид

a = X[K_1]S^(-1)L^(-1)X[K_2]...S^(-1)L^(-1)X[K_10](b) = 1122334455667700ffeeddccbbaa9988

6. Вопросы безопасности

Документ целиком посвящен вопросам безопасности.

7. Литература

7.1. Нормативные документы

[GOST3412-2015] “Information technology. Cryptographic data security. Block ciphers”, GOST R 34.12-2015, Federal Agency on Technical Regulating and Metrology, 2015.

7.2. Дополнительная литература

[ISO-IEC10116] ISO/IEC, “Information technology — Security techniques – Modes of operation for an n-bit block cipher”, ISO/IEC 10116, 2006.

[ISO-IEC18033-1] ISO/IEC, “Information technology — Security techniques – Encryption algorithms — Part 1: General”, ISO/IEC 18033-1, 2015.

[ISO-IEC18033-3] ISO/IEC, “Information technology — Security techniques – Encryption algorithms — Part 3: Block ciphers”, ISO/IEC 18033-3, 2010.

Адрес автора

Василий Долматов (редактор)

Research Computer Center MSU

Leninskiye Gory, 1, Building 4, MGU NIVC

Moscow 119991

Russian Federation

Email: dol@srcc.msu.ru


Перевод на русский язык

Николай Малых

nmalykh@gmail.com


1Используется также термин «биективное». Прим. перев.

2В исходном документе ошибочно сказано «Z». См. RFC Errata. Прим. перев.

Запись опубликована в рубрике RFC. Добавьте в закладки постоянную ссылку.