Товары в корзине: 0 шт Оформить заказ
Стр. 1 

17 страниц

Купить ГОСТ 34.12-2018 — бумажный документ с голограммой и синими печатями. подробнее

Цена на этот документ пока неизвестна. Нажмите кнопку "Купить" и сделайте заказ, и мы пришлем вам цену.

Распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль"

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

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

 Скачать PDF

Оглавление

1 Область применения

2 Термины, определения и обозначения

     2.1 Термины и определения

     2.2 Обозначения

3 Общие положения

4 Алгоритм блочного шифрования с длиной блока n = 128 бит

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

     4.2 Преобразования

     4.3 Алгоритм развертывания ключа

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

5 Алгоритм блочного шифрования с длиной блока n = 64 бит

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

     5.2 Преобразования

     5.3 Алгоритм развертывания ключа

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

Приложение А (справочное) Контрольные примеры

Библиография

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17

МЕЖГОСУДАРСТВЕННЫЙ СОВЕТ ПО СТАНДАРТИЗАЦИИ, МЕТРОЛОГИИ И СЕРТИФИКАЦИИ

(МГС)

INTERSTATE COUNCIL FOR STANDARDIZATION, METROLOGY AND CERTIFICATION

(ISC)

МЕЖГОСУДАРСТВЕННЫЙ

СТАНДАРТ

Информационная технология КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ

Блочные шифры

ГОСТ

34.12—

2018

Издание официальное


Москва

Стандартмнформ

2018


Предисловие

Цели, основные принципы и основной порядок проведения работ по межгосударственной стандартизации установлены в ГОСТ 1.0-2015 «Межгосударственная система стандартизации. Основные положения» и ГОСТ 1.2-2015 «Межгосударственная система стандартизации. Стандарты межгосударственные. правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия. обновления и отмены»

Сведения о стандарте

1    РАЗРАБОТАН Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества «Информационные технологии и коммуникационные системы» (ОАО «ИнфоТеКС»)

2    ВНЕСЕН Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»

3    ПРИНЯТ Межгосударственным советом по метрологии, стандартизации и сертификации (протокол от 29 ноября 2018 г. № 54)

За принятие проголосовали:

Краткое наименование страны no МК (ИСО 3166)004—97

Код страны по МК (ИСО 3166)004—97

Сокращенное наименование национального органа по стандартизации

Армения

AM

Минэкономики Республики Армения

Киргизия

KG

Кыргызстандарт

Россия

RU

Росстандарт

Таджикистан

TJ

Таджикстандарт

4    Приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 г. № 1061-ст межгосударственный стандарт ГОСТ 34.12-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 г.

5    Настоящий стандарт подготовлен на основе применения ГОСТ Р 34.12-2015

6    ВЗАМЕН ГОСТ 28147-89 в части раздела 1 «Структурная схема алгоритма криптографического преобразования»

Информация об изменениях к настоящему стандарту публикуется в ежегодном информационном указателе «Национальные стандарты», а текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)

©Стандартинформ. оформление. 2018

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

К7 ~ *6зГ1*32:

Кв = *3lll "IV

Км-К,.1ш\г.....8;

*/♦16= */•' = **.....8;

к^«-к^./-и.....8.

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

-.32.

(19)

..32.

(20)

5.4.1    Алгоритм зашифрования

Алгоритм зашифрования в зависимости от значений итерационных ключей К,е У32, / = 1.2,. реализует подстановку    к^, заданную на множестве    в соответствии с равенством

ек,.....к32(в) = <5*[Кз2К5[К31]...С[К21С1К1Кв1.^).

где а = а,|а0 е V^. а0. а, е V32.

5.4.2    Алгоритм расшифрования

Алгоритм расшифрования в зависимости от значений итерационных ключей К(е У32. / = 12.. реализует подстановку    Кз?. заданную на множестве    в соответствии с равенством

DKy .K32(a)=G*[/<1|G[K2)...G[K31lG[K32)(a1.a0).

где а = а,|а0е V^. а0. а, е У32.

Приложение А (справочное)

Контрольные примеры

А.1 Общие положения

Настоящее приложение носит справочный характер и не является частью нормативных положений настоящего стандарта

В настоящем приложении двоичные строки из V*. длина которых кратна 4. записываются в шестнадцатеричном виде, а символ конкатенации ("||”) опускается, т е строка а е V4r будет представлена в виде

®г-1вг-2- %

где а,е {0Л....9, а. Ь. с. d.e, f}. / = ОД....г-l. Соответствие между двоичными строками длины 4 и шестнадцатеричными строками длины 1 задается естественным образом (см таблицу А 1) Преобразование, ставящее в соответствие двоичной строке длины 4г шестнадцатеричную строку длины г, и соответствующее обратное преобразование для простоты записи опускаются

Таблица А1 — Соответствие между двоичными и шестнадцатеричными строками

Двоичное

число

Шестнадца

теричное

число

Двоичное

число

Шестнадца

теричное

число

Двоичное

число

Шестнадца

теричное

число

Двоичное

число

Шестнадца

теричное

число

0000

0

0100

4

1000

8

1100

с

0001

1

0101

5

1001

9

1101

d

0010

2

0110

6

1010

а

1110

е

0011

3

0111

7

1011

Ь

1111

f

А.2 Алгоритм блочного шифрования с длиной блока п- 128 бит А.2.1 Преобразование S

S(ffeeddccbbaa99S81122334455667700) = b66cd8887d38e8d77765aeea0c9a7efc. S(b66cd8887d38e8d77765aeea0c9a7efc) = 559d8dd7bd06cbfe7e7b262523280d39. S(559d8dd7bd06cbfe7e7b262523280d39) = 0c3322fed53le4630d80ef5c5a8lc50b, S(0c3322fed531e4630d80ef5c5a81c50b) = 23ae65633f842d29c5df529c13f5acda.

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

tf(00000000000000000000000000000100) = 94000000000000000000000000000001. ft(94000000000000000000000000000001) = 35940000000000000000000000000000. Ж05940000000000000000000000000000) = 64059400000000000000000000000000. R(64a59400000000000000000000000000) = 0d64a594000000000000000000000000. A.2.3 Преобразование L

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

A.2.4 Алгоритм развертывания ключа

В настоящем контрольном примере ключ имеет значение

К = 8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.

= 8899aabbccddeeff0011223344556677.

К2 = fedcba98765432100123456789abcdef.

С, = 6ea276726c487ab85d27bd10dd849401,

Х(С,КК,)« e63bdcc9a095944 75d369f2399d 1 f276.

SXICjKK,) = 0998ca37a7947aabb78f4a5ae81 b748a,

LSX(C1](K,)= 3d0940999db75d6a9257071d5e6144a6.

F[C,](K1a K2) = (C3d5fa01ebe36f7a9374427ad7ca8949. 8899aabbccddeeff0011223344556677).

C2 = dc87ece4d890f4b3ba4eb92079cbeb02,

FIC^JF^KK,. K2) = (37777748e56453377d5e262d90903f87. C3d5fa01ebe36f7a9374427ad7ca8949).

C3 = b2259a96b4d88e0be7690430a44f7f03,

F[C3)... FiqKK,. K2) = (f9eae5(29b2815e31f11ac5d9c29fb01.37777748e56453377d5e262d90903f87). C4 = 7bcd1b0b73e32ba5b79cb140f2551504.

F[C4)...F(C1](K1, K2) = (e980089683d00d4be37dd3434699b98f. f9eae5f29b2815e31f11ac5d9c29fb01). C5 = 156f6d791fab511deabb0c502fd18105.

F[CS)... FiCflKy K2) = (b7bd70acea4460714f4ebe13835cf004. e980089683d00d4be37dd3434699b98f). C6 = a74af7efab73df 160dd208608b9efe06.

F[C6]... FjqKK,. K2) = (1a46ea1cf6ccd236467287df93fdf974. b7bd70acea4460714f4ebe13835cf004). Cj = C9e8819dc73ba5ae50f5b570561a6a07.

F[C,)...F[C,)(K1.K2) = (3d4553d8e9cfec6815ebadc40a9ffd04.1a46ea1cf6ccd236467287df93fdf974),

C8 = f65936l6e6055689adfba18027aa2a08,

(K3.K4) = F[Ce)...F[C1)(K1.K2) =

(db31485315694343228d6aef8cc78c44,3d4553d8e9cfec6815ebadc40a9ffd04).

Итерационные ключи К,, / = 1.2.....10. принимают следующие значения

К, = 8899aabbccddeeff0011223344556677,

К2 = fedcba98765432100123456789abcdef.

К3 = db31485315694343228d6aef8cc78c44,

К4 = 3d4553d8e9cfec6815ebadc40a9ffd04.

К5 = 57646468c44a5e28d3e59246f429f 1 ас.

К6 = bd079435165c6432bS32e82834da581b,

К7 = 51e640757e8745de705727265a0098b1.

К8 = 5а7925017b9fdd3ed72a91a22286f984.

Х9 = ЬЬ44е25378с73123a5f32f73cdb6e517.

К10 = 72e9dd7416bcf45b755dbaa88e4a4043.

А.2.5 Алгоритм зашифрования

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

а = 1122334455667700ffeeddccbbaa9988,

тогда

Х[К,Кв) = 99bb99f199bb99ffffffffflffWW.

SX[K,](a) = e87de8b6e87de8b6b6b6b6b6b6b6b6b6, LSX[KJ{a) = е297Ь686е355Ь0а 1 cf4a2f9249140830. LSX[K2]LSX[KJ(a) = 285e497a0862d596b36f4258a1c69072.

LSX[K3)...LSX[KJ(a) = 0187a3a429b567841ad50d29207cc34e.

LSX[K4]...LSX[K,Ka) = ec9bdba057d4f4d77c5d70619dcad206.

LSX[Kb)...LSX[Ki](a) = 1357fd11de9257290c2a1473eb6bcde1.

LSX[K6]...LSX[KJ{a) = 28ae31e7d4c2354261027ef0b32897df,

LSX[K7)...LSX[K^a) = 07e223d56002c013d3f5e6f714b86d2d.

LSX[K6)...LSX[KJ[a) = Cd8ef6cd97e0e092a8e4cca61b38bf65.

LSX[Kg)... LSX(K,)(e) = 0d8e40e4a800d06b2f 1 b37ea379ead8e.

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

b=XIK10JLSX[Kel...LSX[K1Ke) = 7f679d90bebc24305a468d42b9d4edcd A.2.6 Алгоритм расшифрования

В настоящем контрольном примере расшифрование проводится при значениях итерационных ключей из А.2 4 Пусть шифртекст, подлежащий расшифрованию, равен шифртексту, полученному в А 2.5:

Ь = 7f679d90bebc24305a468d42b9d4edcd.

тогда

X[K10)(b)= 0d8e40e4a800d06b2f1 b37ea379ead8e.

1-~'Х[Кю]{Ь) = 8a6b930a52211b45c5baa43ff8b91319.

S-1L-,X[K10Kb)= 76ca149eef27d1b10d17e3d5d68e5a72,

S"1L",XlK^lS",L"1X[K10](b) = 5d9b06d41b9d1d2d04df7755363e94a9, S-'L-'X[K6)...S-'L-'X[Kw](b) = 79487192aa45709c115559d6e9280f6e,

S-'L-'X\K71... S-V’Xl^Q Kb) = ae506924c8ce331bb918fc5bdfb195fa. S-'L-'X[Ke)...S-'L-'X[Kw]{b) = bbffbfc8939eaaffaf b8e22769e323aa. S-1L-,X[K5)...S-,Z.-1X[K10](b) = 3cc2f07cc07a8bec0f3ea0ed2ae33e4a, S'1L-1X[K4]...S"1L“1X[K10Kb) = f36f01291 d0b96d591 e228b72d011 c36. S“1L"1X[K3)...S",Z."1X[K10l(b) = 1c4b0c1e950182Mce696af5c0bfc5df, S"1L-,X[K2)...S-1Z.-1X[K10](b) = 9 9 b b 99ff99 b b99ff ff f fffff ffffffff.

Результатом расшифрования является открытый текст

а= X(K1)S-1/.-,X(K2]...S-,L-1X(K10l(b) = 1122334455667700ffeeddccbbaa9988. А.З Алгоритм блочного шифрования с длиной блока п * 64 бит А.3.1 Преобразование t f(fdb97531) = 2a196f34,

7(2a196f34) = ebd9f03a, f(ebd9f03a) = b039bb3d.

/(W)39bb3d) = 88695433.

A.3.2 Преобразование g g[87654321 J(fedcba98) = fdcbc20c, g(fdcbc20c](87654321) = 7e791a4b. g[7e791 a4b)(fdcbc20c) = c76549ec. g(c76549ec]{7e791a4b) = 9791 c849.

A.3.3 Алгоритм развертывания ключа

В настоящем контрольном примере ключ имеет значение:

К = Meeddccbbaa99887766554433221100f0f1f2f3»4f5f6f7f8f9fafbfcfdfeff

Итерационные ключи К(. /' = 12. .. 32, принимают следующие значения:

K, = ffeeddcc. K2 = bbaa9988. K3 = 77665544, K4 =33221100, K5 = fOf 1f2f3. Ke = (4f5f6f7, K7 = f8f9fafb, K8 = fcfdfeff.


K9 = ffeeddcc. K10 = bbaa9988, K„ =77665544. K12 =33221100, K13 = fOf 1 f2f3. K14 = f4f5f6f7, K15 = f8f9fafb, K16 = fcfdfeff.


Kv = ffeeddcc. K18 = bbaa9988, K|g = 77665544, Kjo =33221100. K21=fOf1f2f3. K22 = f4f5f6f7. K23 = f8f9fafb. K24 = fcfdfeff.


K26 = fcfdfeff. K26 = f8f9fafb. K27 = f4f5f6f7. K28 = f0f1f2f3,

= 33221100, Kjо = 77665544, K31= bbaa9988, K32= ffeeddcc.


А.3.4 Алгоритм зашифрования

В настоящем контрольном примере зашифрование проводится при значениях итерационных ключей из А. 3.3.



(а,. ^>) = (fedcba98. 76543210).

G[K})(ay г^)= (76543210. 28da3b14). GlKjJGl/CjKa,. Oq) = (28da3b14. Ь14337а5). G(K3]...G(K1)(a1. a,,) = (M4337a5.633a7c68). G(K4)...GlK^a,. a0) = (633a7c68, ea89c02c). G[K$)...G(K1Ka1. «о) = (ea89c02c. 11fe726d). G[K6) . Gl^Ka,. /*>) = (11fe726d. ad0310a4). G[K7) . GI^Ka,. До) = (ad0310a4. 37d97f25). GlKgJ . GfK^a,. До) = (37d97f25. 46324615). G[Ke)...G(K1)(a1. До) = (46324615. ce995f2a). G(K10].. Gt^Ka,. a0) = (ce995f2a. 93c1f449). GlK^l. -Gt^Kfij. ^,) = (93c1f449.4811c7ad). G[Ku)...G[KJ(a,. До) =(4811c7ad. c4b3edca), GlK^)...G[KAY.ay До) = (c4b3edca. 44ca5ce1). G(Ki4)...GlKiKa,. До) = (44ca5ce1. fef51b68). G[K}S)...G[Ky)(av До) = (fef51b68, 2098cd86). GIK^J.-Gt^Ka,. До) = (2098cd86. 4f15b0bb). G[K„\...G{K^a^. До) = (4f15b0bb. e32805bc). G[K18]...G(K1Ka1, До) = (e32805bc. e7116722). G^gl . Gl^Ka,. a0) *(e7116722. 89cadf21). GlK^l-.G^Ka,. /*>) = (89cadf21. bac8444d). GI^J- .G^Ka,. a0) = (bac8444d. 11263a21). GIK22)...G[K1Ka1. До) = (11263a21. 625434c3). G(K23)...GI^Ka,. До) = (625434c3.8025c0a5). G(K24l ..G[K1l(a1. До) = (8025c0a5. bOd66514). G(K251....GfKfKa,. До) = (bOd66514.47b1d5f4).

GPfe]-..G[K,Xa,. Oq) = (47b1d5f4. c78e6d50). 6(K27J...G(K1Kal> Bq) = (c78e6d50. 80251e99). GlK^J . GI^Ka,. До) = (80251e99. 2b96eca6).

G*[K29)...G[KiKa,. ^,) = (2Ь96еса6. 05ef4401).

GlKx)...G{K^][a^, ^) = (05ef440i. 239a4577).

6tK3i]...G(/C|Ka|. Sq) = (239a4577. c2d8ca3d).

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

b=G*[K32JG(K31]...G[K1](a1.at,) = 4ee901e5c2d8ca3d.

A.3.5 Алгоритм расшифрования

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

Ь=4ee901e5c2d8ca3d.

тогда

(6,. Ьц) = (4ее901е5. c2d8ca3d).

G(K32)(/>,, fijj) = (c2d8ca3d. 239a4577),

G[K^\GlK32](by b^) = (239a4577. 05ef4401).

G(K30]...GlK32Kb1.1%) = (05ef4401.2b96eca6),

GfK^]...GIK^Kft,. Ьц) = (2b96eca6.80251e99).

G(K28)...GIK^Kft,. Ьц) = (80251 e99. c78e6d50),

GIK27]...G[K32](b1. bo) = (c78e6d50. 47b1d5f4).

GfK^]...G[K32]{ft|. bo) = (47b1d5(4, b0d66514).

G(K25]...GIK^Kft,. fc*,) = (b0d66514. 8025c0a5),

GIK24]...G(K32](b1. i\,) = (8025c0a5.625434c3).

GlKttJ .GlKjjKft,. bo) = (625434c3.11263a21).

GIK^)...G(K32l(b|. fy) = (11263a21. bac8444d).

GIK21]...GtK32](bv bo) = (bac8444d, 89cad(21).

GfK20]...G(K32](6|. bo) = (89cadf21. e7116722),

GIK19]...G(K32J(b,. bo) = (67116722. e32805bc).

GlK^J.-GlK^Kb,. b0) = (e32805bc. 4(15b0bb).

GlK^J .-GlK^Kb,. bo) = (4(15b0bb, 2098cd86).

G(K16)...G[K32](6j . b0) = (2098cd86. fe(51b68).

GlK^l-.-GlK^Kb,. (\)) = (fefSI b68. 44ca5ce1).

GlKu)...G[K32){bv b0) = (44ca5ce1. c4b3edca). в[К^]...в[К32Щ. t>o) = (c4b3edca. 4811c7ad).

G(K12]...G[K32Kft,. V = (4811c7ad. 93c1f449). в[Ки] .в[К32Щ. bo) = (93CK449. ce995(2a).

G(/C10J...G(K32Kb1. b0) = (ce995(2a. 46324615).

G|K9]...G[K32Kft1. bo) = (46324615. 37d97f25).

G(Ke)...GtK^Kb,. bo) = (37d97f25. ad0310a4).

G[K7) .G[K32)(by bo) = (ad0310a4.11fe726d).

G(K6)...G(K32Kb,. = (11fe726d, ea89c02c),

GtK5)...GJK32Kb,. i^) = (ea89c02c. 633a7c68),

Gl^J. -GlK^Kb,. Ь*,) = (633a7c68, Ы433785).

G[K3]...G[K32){bv bo) = (M4337a5. 28da3b14),

G(K2)...GIK32Kbv^) =(28da3M4. 76543210).

Результатом расшифрования является открытый текст

в = G*[K1)G(K2)...G(K32)(b1.(\)) = fedcba9876543210.

Библиография


Примечание — Оригиналы международных стандартов ИСО/МЭК находятся в национальных (государственных) органах по стандартизации* государств, принявших настоящий стандарт


[1] ИСО/МЭК 10116 2017 (ISO/1EC 10116 2017)


(2)    ИСО/МЭК 18033-1:2015 (ISO/1EC 18033-1 2015)

(3)    ИСО/МЭК 18033-3:2010 (ISO/IEC 18033-3 2010)


Информационная технология Методы и средства обеспечения безопасности Режимы работы при использовании алгоритмов кодирования для режима л-разрядного блочного шифрования (Information technology — Security techniques — Modes of operation for an л-blt block cipher)

Информационные технологии Методы и средства обеспечения безопасности. Алгоритмы шифрования Часть 1. Общие положения (Information technology — Security techniques — Encryption algorithms — Part 1 General)

Информационные технологии Методы и средства обеспечения безопасности. Алгоритмы шифрования Часть 3. Блочные шифры (Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers)


* В Российской Федерации оригиналы международных стандартов ИСО/МЭК находятся в Федеральном информационном фонде стандартов


УДК 681.3.06:006.354


МКС 35.040


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


БЗ 1—2019/63


Редактор Л В Коретникова Технический редактор В Н Прусакова Корректор Е Р Ароян Компьютерная верстка Ю В Поповой


Сдано в набор 05.12 2018 Подписано в печать 09 01 2019. Формат 60 « 84’/8 Гарнитура Ариал.

Услпечл. 1.86 Уч-мадл. 1.49

Подготовлено на основе электронной версии, предоставленной разработчиком стандарта


ИД кЮрислруденция». 115419. Москва, ул Орджоникидзе. 11. www junsizdat ru y-book@mail ru


Создано в единичном исполнении ФГУП «СТАНДАРТИНФОРМ» для комплектования Федерального информационного фонда стандартов. 117418 Москва. Нахимовский пр-т, д 31. к 2 wwwgostinfo ru mfo@gostinfo ru


Содержание

1    Область применения..................................................................1

2    Термины, определения и обозначения...................................................1

2.1    Термины и определения...........................................................1

2.2    Обозначения.....................................................................2

3    Общие положения....................................................................3

4    Алгоритм блочного шифрования с длиной блока п - 128 бит.................................3

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

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

4.3    Алгоритм развертывания ключа.....................................................4

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

5    Алгоритм блочного шифрования с длиной блока п = 64 бит..................................5

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

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

5.3    Алгоритм развертывания ключа.....................................................5

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

Приложение А (справочное) Контрольные примеры..........................................7

Библиография........................................................................12

Введение

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

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

Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО/МЭК 10116 [1] и стандартами серии ИСО/МЭК 18033 [2]. (3J.

Примечание — Основная часть стандарта дополнена приложением А «Контрольные примеры»

В <акоы мест*

напечатано

Долине бить

Пункт 5 1.1. Строка

- <6.8. 2. 3.9.10. 5.12.1.14. 4. 7.1.13.0. 15):

■Ц = <5. 8. 2. 3.9.10. 5.12.1. 14,4. 7.11.13.0.15);

(ИУС N*4 2010 г.)

МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ

Информационная технология

КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ

Блочные шифры

Information technology Cryptographic data security Block ciphers

Дата введения — 2019—06—01

1    Область применения

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

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

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

2    Термины, определения и обозначения

2.1    Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями:

2.1.1    алгоритм зашифрования (encryption algorithm): Алгоритм, реализующий зашифрование, т. е. преобразующий открытый текст в шифртекст.

Примечание — Адаптировано из ИСО/МЭК 18033-1 [2}

2.1.2    алгоритм расшифрования (decryption algorithm): Алгоритм, реализующий расшифрование, т. е. преобразующий шифртекст в открытый текст.

Примечание — Адаптировано из ИСО/МЭК 18033-1 (2)

2.1.3    базовый блочный шифр (basic block cipher): Блочный шифр, реализующий при каждом фиксированном значении ключа одно обратимое отображение множества блоков открытого текста фиксированной длины в блоки шифртекста такой же длины.

2.1.4    блок (block): Строка бит определенной длины.

Примечание — Адаптировано из ИСО/МЭК 18033-1 (2)

2.1.5    блочный шифр (block cipher): Шифр из класса симметричных криптографических методов, в котором алгоритм зашифрования применяется к блокам открытого текста для получения блоков шифртекста.

Примечания

1    Адаптировано из ИСО/МЭК 18033-1 [2].

2    В настоящем стандарте установлено, что термины «блочный шифр» и «алгоритм блочного шифрования» являются синонимами

Издание официальное

2.1.6    зашифрование (encryption): Обратимое преобразование данных с помощью шифра, которое формирует шифртекст из открытого текста.

Примечание — Адаптировано из ИСО/МЭК 18033-1 [2]

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

2.1.8    ключ (key): Изменяемый параметр в виде последовательности символов, определяющий криптографическое преобразование.

Примечания

1    Адаптировано из ИСО/МЭК 18033-1 [2]

2    В настоящем стандарте рассматриваются ключи только в виде последовательности двоичных символов (битов)

2.1.9    открытый текст (plaintext): Незашифрованная информация.

Примечание — Адаптировано из ИСО/МЭК 10116 (1)

2.1.10    развертывание ключа (key schedule): Вычисление итерационных ключей из ключа шифра.

2.1.11    расшифрование (decryption): Операция, обратная к зашифрованию.

При мечания

1    Адаптировано из ИСО/МЭК 18033-1 [2]

2    В настоящем стандарте в целях сохранения терминологической преемственности по отношению к нормативным документам, действующим на территории государства, принявшего настоящий стандарт, и опубликованным ранее на русском языке научно-техническим изданиям применяется термин «шифрование», объединяющий операции, определенные терминами «зашифрование» и «расшифрование» Конкретное значение термина «шифрование» определяется в зависимости от контекста упоминания

2.1.12    симметричный криптографический метод (symmetric cryptographic technique): Криптографический метод, использующий один и тот же ключ для преобразования, осуществляемого отправителем, и преобразования, осуществляемого получателем.

Примечание — Адаптировано из ИСО/МЭК 18033-1 (2)

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

Примечание — Адаптировано из ИСО/МЭК 18033-1 (2)

2.1.14    шифртекст (ciphertext): Данные, полученные в результате зашифрования открытого текста в целях скрытия его содержания.

Примечание — Адаптировано из ИСО/МЭК 10116 (1)

2.2 Обозначения

В настоящем стандарте применены следующие обозначения:

V* — множество всех двоичных строк конечной длины, включая пустую строку;

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

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

[А|    — число компонент (длина) строки Ае \Л (если А — пустая строка, то [А| = 0);

А\\В — конкатенация строк A. Be V. т. е. строка из V\a\+\b\' в которой подстрока с большими номерами компонент из У|Л| совпадает со строкой А, а подстрока с меньшими номерами компонент из Vв совпадает со строкой 8;

А^г^—циклический сдвиг строки Ае V32 на 11 компонент в сторону компонент, имеющих большие номера;

®    — операция покомпонентного сложения по модулю 2 двух двоичных строк одинаковой длины;

Z— К0ЛЬЧ° вычетов по модулю 2s;

Ш — операция сложения в кольце Z^;

F — конечное поле GF(2)(xl/p(x), где p(x)=xa + x7 + x6+x + 1eGF(2)(x); элементы поля F представляются целыми числами, причем элементу z0 + z, 9 +... + z7 07€ У соответствует число z0+2 z1+...+27 z7, где z^e{0.1}, /=0.1.....7,    и    0 обозначает класс вычетов по модулю

р(х), содержащий х;

Vecs:Z2, -»VS — биективное отображение, сопоставляющее элементу кольца Z^ его двоичное представление, т. е. для любого элемента zeZ^. представленного в виде

z=z0 + 2 z1+...+2s"1 zs_v где z,e {0. 1}. /=0.1.....s-\ выполнено равенство

Vecs(z) = zi_1|..Jz1|z0; lnts: VS->Z2S — отображение, обратное к отображению Уес5. т. е. Ints= Vec"1;

Д: V8 ->У    — биективное отображение, сопоставляющее двоичной строке из Ve элемент поля

F следующим образом: строке z7|...|z1|z0. zye{0.1}. /=0Л....7 соответствует элемент z0+ z, 0 + ... + z7 -07е F*.

V: ?->V8 — отображение, обратное к отображению Д. т. е. V=A-1;

ФТ — композиция отображений, при которой отображение ‘Р действует первым;

Ф* — композиция отображений «l*5-1 и Ф. причем «I»1 = Ф.

3 Общие положения

В настоящем стандарте приведено описание двух базовых блочных шифров с длинами блоков л = 128 бит и п = 64 бит и длинами ключей к = 256 бит.

Примечания

1    На описанный в настоящем стандарте шифр с длиной блока п = 128 бит можно ссылаться как на блочный шифр «Кузнечик» («Kuznechik»)

2    На описанный в настоящем стандарте шифр с длиной блока п = 64 бит можно ссылаться как на блочный шифр «Магма» («Magma»).

4 Алгоритм блочного шифрования с длиной блока л = 128 бит

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

4.1.1    Нелинейное биективное преобразование

В качестве нелинейного биективного преобразования выступает подстановка n=Vec8rt'lnt8:Vg->Vg. где ji'iZ^-^Z^. Значения подстановки л' записаны ниже в виде массива /с'= (я'(0),/с'(1).....я'(255)):

п' = (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).

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

Линейное преобразование задается отображением /: У816 ->\/8. которое определяется следующим образом:

/(ai5.....a0)=V(148    -    Д(а15)+32-Д(а14)+133- Д(а13)+16 Д(а12) +

+194 • д(а1,) +192 Д(а10)+1 • Д(ад)+251 • Д(ад)+1 • Д(а7)+192 Д(а6) +    (1)

+194 • д(а5)+16 • Д(а4)+133 • Д(а3) + 32 ■ д(а2) +148 Д(а1) +1 • Д(а0))

для любых а(е VQ, / =0.1..... 15. где операции сложения и умножения осуществляются в поле У, а константы являются элементами поля в указанном ранее смысле.

4.2    Преобразования

^128 “^гв S~1; ^128 ^128

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

Х[к](а)=к®а,    (2)

где /с,аеУ128;

S(a) =S(alf)| jag) ~я(з15)|| |n(e0).    (3)

где а = а15|...|а0е\/128. a(eVe, /=0Д...Д5;

преобразование, обратное к преобразованию S, которое может быть вычислено, например, следующим образом:

S-1(a) = S-1(a15|...|ab) = Jr1(a15)|...|«-1(a0).    (4)

где а = а15|...|а0еУ128. a,eV8. / = 0Д.... 15. я-1 — подстановка, обратная к подстановке л;

R(a) = R(a,51 I«о) = /(a,5.....a0 )|a, 51|.. ,| a,.    (5)

L:V\28~*Vy2e

где a = a15|...|a0e V128, a,eV8. /-0Д ....15;

L{a) = fi16(a).    (6)

где a e V12B;

R 1:V/128“> ^128

преобразование, обратное к преобразованию R, которое может быть вычислено, например, следующим образом:

R-1(a) =    ^ lao) = ei4 |®i31-- Нао|/^а14-^13.....ao>ais)-    ^

где a = a15|...|a0€V’128. а/€Ув. / = 0.1.... 15;

^•^128->^128

L~1(a) = (R-1)16(a).    (8)

F(/f): У128хУ128-^128 x ^128

где а е V12e;

F [к ](а1. а0) = (LSX[k)(a^)® а0. а1).    (9)

где /г.ао.а^и,^.

4.3    Алгоритм развертывания ключа

Алгоритм развертывания ключа использует итерационные константы С-е V128, / = 1, 2..... 32. которые определены следующим образом:

С, = L(Vec128(/)), / = г 2.....32.    (10)

Итерационные ключи    Kie^128-    10. вырабатываются на основе ключа

К = ^2551 1^о ''гбб1 Ц. I = ОД.....255. и определяются равенствами:

*1 = ^2SSI'••1*128:

К2~ к\21|—|*0:    (^)

(*2I+V K2U2) =    FlC8(-1HKK2>-1. K2i). / = t Z 3. 4.

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

4.4.1 Алгоритм зашифрования

Алгоритм зашифрования в зависимости от значений итерационных ключей К, е V128, / = 1.2.....10.

реализует подстановку Ек< k^q, заданную на множестве У128 в соответствии с равенством

ЕКу.....KJa)=X[K,0]LSX[K9)..±SXlK2\LSX[K,](al    (12)

где а е У128.

4

4.4.2 Алгоритм расшифрования

Алгоритм расшифрования в зависимости от значений итерационных ключей К(е Ц20, / = 12 10.

реализует подстановку DK^ K)q. заданную на множестве V128 в соответствии с равенством

0Ki Ki0(a)=X(K1]S-1L-1X[K2)...S-1L-1X[K9]S-V1X[K10 ](а).    (13)

где а е \/128.

5 Алгоритм блочного шифрования с длиной блока п = 64 бит

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

5.1.1    Нелинейное биективное преобразование

В качестве нелинейного биективного преобразования выступают подстановки тг, = Vec4Jt'lnt4: V4-> VA, где    Z^.    /    =    0,1.....7. Значения подстановок к' записаны ниже в

виде массивов п) = (*'(0). я'(1).....л'(15)).    /    =    0.1.....7:

*0 = (12. 4. 6. 2. 10. 5. 11. 9. 14. 8. 13. 7. 0. 3. 15. 1);

= (6. 8. 2. 3. 9. 10. 5. 12. I 14. 4. 7. I 13. 0. 15); я2 = (11. 3. 5. 8. 2, 15. 10. 13. 14. \ 7. 4. 12. 9. 6. 0); к3 =(12. 8. 2. 1. 13. 4. 15. 6. 7. 0. 10. 5. 3. 14. 9. 11); я; = (7. 15. 5. 10. 8. I 6. 13. 0. 9. 3. 14. 11. 4. 2 12); *5 =(5. 13. 15. 6. 9. 2. 12. 10. 11. 7. 8. X 4. 3. 14. 0); Kg = (8. 14. 2. 5. 6. 9. I 12. 15. 4. 11 0. 13. 10. 3. 7); *7=0. 7. 14. 13. 0. 5. 8. 3. 4. 15. 10. 6. 9. 12. 11. 2).

5.2 Преобразования

(14)

(15)

(16) (17)


t(a) = f(a71. ||а0) = я77)| ||я0Ц))' где а = а7|...|а0е У32, а,е\/4, / = 0Л....7; g[/c](a) = (f(Vec32(lnt32(a)ffllnt32(/c)))) 4К,Г где fc.ae V32;

G[/rKa1.a0) = (a0.fir[fc](a0)®a1). где к.а0} e V32;

G*[*l(av а0) = (g(/f](a0)® а,)1а0. где /г.а01 е V32.


д[к): У32-> У32 G [к]: У32 х У32 -» V32 х V32


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

5.3 Алгоритм развертывания ключа

Итерационные ключи К(е V32, / = 1.2,... .32. вырабатываются на основе ключа К = ^255! 1^ое ^25б1 */ Ц’' ~ 6.1.... 255. и определяются равенствами:

*1 = *2551" •4*224 •

К2 = к223У92;

*3 = *19ll"4*160:

^4 = *1591” 4*128*

KS “ *127^4*96:

*6 = *951* "I *64: