Купить ГОСТ Р 34.11-2012 — бумажный документ с голограммой и синими печатями. подробнее
Распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль"
Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.
Определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур обеспечения целостности, аутентичности, электронной цифровой подписи при передаче, обработке и хранении информации в автоматизированных системах. Определенная в стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе ассиметричного криптографического алгоритма по ГОСТ Р 34.10-2012. Стандарт рекомендуется использовать при создании, эксплуатации и модернизации систем обработки информации различного назначения.
1 Область применения
2 Нормативные ссылки
3 Термины, определения и обозначения
3.1 Термины и определения
3.2 Обозначения
4 Общие положения
5 Значения параметров
5.1 Инициализационные векторы
5.2 Нелинейное биективное преобразование множества двоичных векторов
5.3 Перестановка байт
5.4 Линейное преобразование множества двоичных векторов
5.5 Итерационные константы
6 Преобразования
7 Функция сжатия
8 Процедура вычисления хэш-функции
8.1 Этап 1
8.2 Этап 2
8.3 Этап 3
Приложение А (справочное) Контрольные примеры
Библиография
Дата введения | 01.01.2013 |
---|---|
Добавлен в базу | 01.10.2014 |
Актуализация | 01.01.2021 |
07.08.2012 | Утвержден | Федеральное агентство по техническому регулированию и метрологии | 216-ст |
---|---|---|---|
Разработан | ОАО ИнфоТеКС | ||
Издан | Стандартинформ | 2013 г. |
Чтобы бесплатно скачать этот документ в формате PDF, поддержите наш сайт и нажмите кнопку:
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ
ГОСТР
34.11-
2012
НАЦИОНАЛЬНЫЙ
СТАНДАРТ
РОССИЙСКОЙ
ФЕДЕРАЦИИ
Издание официальное
Москва
Стандартинформ
2013
Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. № 184-ФЗ «О техническом регулировании», а правила применения национальных стандартов Российской Федерации — ГОСТ Р 1.0-2004 «Стандартизация в Российской Федерации. Основные положения»
1 РАЗРАБОТАН Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества «Информационные технологии и коммуникационные системы» (ОАО «ИнфоТеКС»)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК26 «Криптографическая защита информации»
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 г. № 216-ст
4 ВЗАМЕН ГОСТ Р 34.11-94
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе «Национальные стандарты», а текст изменений и поправок — в ежемесячно издаваемых информационных указателях «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
© Стандартинформ, 2013
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии
II
Контрольные примеры
Данное приложение носит справочный характер и не является частью настоящего стандарта.
Векторы из V записываются в шестнадцатеричном виде. Вектор AeV4n, записанный в виде ап_1...а0, где а,- е Z16, / = 0,...,л- 1, есть Vec4(an_1)||...||Vec4(a0).
А.1 Пример 1
Необходимо вычислить хэш-код сообщения
М1 = 32313039383736353433323130393837363534333231303938373635343332313039383736353433323130 3938373635343332313039383736353433323130.
А.1.1 Для функции хэширования с длиной хэш-кода 512 бит Присваиваются значения:
h \= IV= О512;
N := О512;
Е := О512.
Длина сообщения \М^\ = 504 < 512, поэтому происходит заполнение неполного блока: т : = 01323130393837363534333231303938373635343332313039383736353433323130393837363534333231 303938373635343332313039383736353433323130.
Вычисляется значение К := LPS(h © N) = LPS(О512).
После преобразования S:
S(h © N) =
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc, после преобразования Р:
PS(h © N) =
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc, после преобразования L
К := LPS{h Ф N) =
b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383
fc2eced4a574b383fc2eced4a574.
Затем выполняется преобразование Е(К, т)\
Итерация 1
Кл = b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced 4a574b383fc2eced4a574b383fc2eced4a574,
ХЩ(т) =
Ь2Ы cdl ef7ec924286b7cf1 cffe49c4c84b5c91 afde694448abbcb18fbe0964682b3c516f9e2904080b1 cdl ef7ec924286b7cf 1 cffe49c4c84b5c91 afde69444,
SX [Kj ](m) =
4645d95fc0beec2c432f8914b62d4efd3e5e37f14b097aead67de417c220b0482492ac996667e0ebdf45d95fc0beec2c432f 8914b62d4efd3e5e37f14b097aea,
PSX[Kj](m) =
46433ed624df433e452f5e7d92452f5ed98937e4acd989375f14f117995H 4f1 C0b64bc266c0b64bbe2d092067be2d09ec4e 7ab0e0ec4e7a2cfdea48eb2cfdea,
LPSX[K^](m) =
e60059d4d8e0758024c73f6f3183653f56579189602ae4c21 e7953ebc0e212a0ce78a8df475c2fd4fc43fc4b71 cOI e35be46 5fb20dad2cf690cdf65028121bb9,
© C1 =
028ba7f4d01 e7f9d5848d3af0eb1 d96b9ce98a6de0917562c2cd44a3bb516188f8ff1 cbf5cb3cc7511 cl d6266ab47661 b6f58 81802a0e8576e0399773c72e073,
ddf644e6e15f5733bff249410445536f4e9bd69e200f3596b3d9ea737d70a1 d7d1 b6143b9c9288357758f8ef78278aa155f4 d717dda7cb12b211e87e7f19203d,
PS{Ki ©C,) =
ddbf4eb3d17755b2f6f29bd9b658f4114449d6ea14f8d7e8e6419e733bef177ee104207d9c78dd7f5f450f709227a71957533 5a1888acb20336f96d735a1123d,
7
LPS{K^ © C.|) =
d0b00807642fd78f13f2c3ebc774e80de0e902d23aef2ee9a73d010807dae9c188be14f0b2da27973569cd2ba051301036f 728bd1d7eec33f4d18af70c46cf1e.
Итерация 2
K2 = d0b00807642fd78f13f2c3ebc774e80de0e902d23aef2ee9a73d010807dae9c188be14f0b2da27973569cd2ba0 51301036f728bd1 d7eec33f4d18af70c46cf1 e,
LPSX[K2] LPSX[Kj](m) =
18e77571e703d19548075c574ce5e50e0480c9c5b9f21d45611 ab86cf32e352ad91854ea7df8f863d46333673f62ff2d3efa el cd966f8e2a74ce49902799aad4.
Итерация 3
K3 = 9d4475c7899f2d0bb0e8b7dac6ef6e6b44ecf66716d3a0f16681105e2d 13712a1 a9387ecc257930e2d61014a 1b 5c9fc9e24e7d636eb1607e816dbaf927b8fca9,
LPSX[K3] ... LPSX[Kj](m) =
03dc0a9c64d42543ccdb62960d58c17e0b5b805d08a07406ece679d5f82b70fea22a7ea56e21814619e8749b308214575 489d4d465539852cd4b0cd3829bef39.
Итерация 4
K4 = 5c283daba5ec1f233b8c833c48e1c670dae2e40cc4c3219c73e58856bd96a72fdf9f8055ffe3c004c8cde3b8bf78 f95f3370d0a3d6194ac5782487defd83ca0f,
LPSX[K4] ... LPSX[Kj](m) =
dbee312ea7301b0d6d13e43855e85db81608c780c43675bc93cfd82c1Ь4933Ь3898а35Ы 3e1878abe119e4dffb9de 4889738ca74d064cd9eb732078c1fb25e04.
Итерация 5
K5= 109f33262731f9bd569cbc9317baa551d4d2964fa18d42c41fab4e37225292ec2fd97d7493784779046388469a el 95c436fa7cba93f8239ceb5ffc818826470c,
LPSX[K5] ... LPSX[K^](m) =
7fb3f15718d90e889f9fb7c38f527bec861 c298afb9186934a93c9d96ade20df109379bb9c1 al ffd0ad81 fce7b45ccd54501 e7 d127e32874b5d7927b032de7a1.
Итерация 6
K6 = Ь32с9Ь02667911 Cf8f8a0877be9a170757e25026ccf41 e67c6b5da70b1 Ь874743е1135cfbefe244237555c676c 153d99459bc382573aee2d85d30d99f286c5e7,
LPSX[K6] ... LPSX[Kj](m) =
95efa4e104f235824bae5030fe2d0f170a38de3c9b8fc6d8fa1 a9adc2945c413389a121501 fa71 a65067916b0c06f6b87ce1 8de1 a2a98e0a64670985f47d73f1.
Итерация 7
K7 = 8a13c1b195fd0886ac49989e7d84b08bc7b00e4f3f62765ece6050fcbabdc2346c8207594714e8e9c9c7aad694 edc922d6b01e17285eb7e61502e634559e32f1,
LPSX[K7] ... LPSX[K^](m) =
7ea4385f7e5e40103bfb25c67e404c7524eec43e33b1d06557469c604985430432b43d941b77ffd476103338e9bd5145d9 cl el 8Ы f262b58a81 dcefff6fc6535.
Итерация 8
K8 =52cec3b11448bb8617d0ddfbc926f2e88730cb9179d6decea5acbffd323ec3764c47f7a9e13bb1db56c34203477 3023d617ff01 cc546728e71 dff8de5d128cac,
LPSX[K8] ... LPSX[Kj](m) =
b2426da0e58d5cfe898c36e797993f902531579d8ecc59f8dd8a60802241a4561f290cf992eb398894424bf681636968c16 7e870967b1dd9047293331956daba.
Итерация 9
Kg = f38c5b7947e7736d502007a05ea64a4eb9c243cb82154aa138b963bbb7f28e74d4d710445389671291 d70103f 48fd4d4c01 fc415e3fb7dc61 c6088afa1 al e735,
LPSX[Kg] ... LPSX[Kj](m) =
5e0c9978670b25912dd1 ede5bdd1 cfl 8ed094d14c6d973b731 d50570d0a9bca215415a15031 fd20ddefb5bc61 b96671 d69 02f49df4d2fd346ceebda9431 cb075.
Итерация 10
Кю = 0740b3faa03ed39b257dd6e3db7c1 bf56b6e18e40cdaabd30617cecbaddd618еа5е61 bb4654599581 dd30c24 Clab877ad0687948286cfefaa7eef99f6068b315,
LPSX[Kj0]... LPSX[K^](m) =
cl ddd840fe491393a5d460440e03bf451794e792c0c629e49ab0c1001782dd37691 Cb6896f3e00b87f71 d37a584c35b9cd 8789fad55a46887e5b60e124b51a61.
Итерация 11
Ku = 185811cf3c2633aec8cfdfcae9dbb29347011bf92b95910a3ad71e5fca678e45e374f088f2e5c29496e9695ce89 57837107bb3aa56441 afl 1 a82164893313116,
LPSX[KU]... LPSX[K^](m) =
3f75beaf2911 C35d575088e30542b689c85b6b1607f8b800405941 f5ab7042847b9b08b58b4fbdd6154ed7b366fd3ee778c e647726ddb3c7d48c8ce8866a8435.
Итерация 12
K12 = 9d46bf66234a7ed06c3b2120d2a3f15e0fedd87189b75b3cd2f206906b5ee00dc9a1eab800fb8cc5760b251f4d b5cdef427052fa345613fd076451901279ee4c,
LPSX[Kn]... LPSX[K^](m) =
f35b0d889eadfcff73b6b17f33413a97417d96f0c4cc9d30cda8ebb7dcd5d1b0 61e620bac75b367370605f474ddc006003be c4c4d7ce59a73fbe6766934c55a2.
Итерация 13
Кл з = 0f79104026b900d8d768b6e223484c9761 e3c585b3a405a6d2d8565ada926c3f7782ef127cd6b98290bf6125 58b4b60aa3cbc28fd94f95460d76b621cb45be70,
X[K13]... LPSX[K1](/7?) =
fc221dc8b814fc27a4de079d10097600209e5375776898961f70bded0647bd8f1664cfa8bb8d8ff1e0df3e621568b66aa075 064b0e81ccel32c8d1475809ebd2.
Результат выполнения преобразования gN(h, m):
h = fd 102cf8812ccb 1191 ea34af21394f3817a86641445aa9a626488adb33738ebd2754f6908cbbbac5d3ed0f522c 50815c954135793fb1f5d905fee4736b3bdae2.
Изменяются значения переменных N и £:
N=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000001f8,
I = 0132313039383736353433323130393837363534333231303938373635343332313039383736353433323130 3938373635343332313039383736353433323130.
Результат выполнения преобразования g0(h, N):
h — 5c881 fd924695cf196c2e4fec20d14b642026f2a0b1716ebaabb7067d4d597523d2db69d6d3794622147a14f19a 66e7f9037e1 d662d34501 a8901 a5de7771 d7c.
Результат выполнения преобразования g0(h, Е):
h = 486f64c1917879417fef082b3381 a4e2110324f074654c38823a7b76f830ad00fa1fbae42b1285c0352f227524bc 9ab16254288dd6863dccd5b9f54a1ad0541 b.
Хэш-кодом сообщения W1 является значение
H(M^) = 486f64c1917879417fef082b3381a4e211c324f074654c38823a7b76f830ad00fa1fbae42b1285c0352f 227524bc9ab16254288dd6863dccd5b9f54a1ad0541b.
A.1.2 Для функции хэширования с длиной хэш-кода 256 бит
Присваиваются значения:
h =IV= (00000001 )64;
N := О512;
Е := О512.
Длина сообщения |/W 11 = 504 < 512, поэтому происходит заполнение неполного блока: т : = 01323130393837363534333231303938373635343332313039383736353433323130393837363534333231 303938373635343332313039383736353433323130.
Вычисляется значение К := LPS(h ® N) = LPS((00000001)64).
После преобразования S:
S(h © N) =
еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее
еееееееееееееееееееееееееееееееее,
9
после преобразования Р:
PS(h © N) =
еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее
еееееееееееееееееееееееееееееееее,
после преобразования L:
К = LPS(h © N) =
23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c 5ee40b07b5f1523c5ee40b07b5f15.
Затем выполняется преобразование E(K, m):
Итерация 1
/С, = 23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b0 7b5f1523c5ee40b07b5f1523c5ee40b07b5f15,
X[Ki](m) =
22f7df708943682316f1 dd72814b662d14f3db7483496e251 afdd976854f6c2712f5d778874d6a2110f7df708943682316f1 d d72814b662d14f3db7483496e25,
SX[K^](m) =
65c061327951 f35a99a6d819f5a29a0193d290ffa92ab25cf14b538aa8cc9d21f0f4fe6dc93a7818e9c061327951 f35a99a6d 819f5a29a0193d290ffa92ab25c,
PSXlK^m) =
659993f1 TOe99993c0a6d24bf4c0a6d261d89053fe61 d8903219ff8a6d3219ff79f5a9a8c979f5a951 a22acc3a51 a22af39ab2 9d78f39ab25a015c21185a015c,
LPSX[K1](m) =
e549368917a0a2611 d5e08c9c2fd5b3c563f18c0f68c410d84ae9d5fbdfb934055650121 b7aa6d7b3e7d09d46ac4358adaa 6ae44fa3b0402c4166d2c3eb2ef02,
/С, 0 O, =
92cdb59aaeb185fcc80ec1 cl 701 e230a0caf98039e3e8ro3528b56cdc5fe9be968b90ed1221 c36148187c448141 b8c0026b 39a767c0f1236fe458b1942dd 1 a 12,
S(K^ 0 0^ =
ecd95e282645a83930045858325f5afa2341dc110ad303110ef676d9ac63509bf3a3041b65148f93f5c986f293bb7cfcef922 88ac34df08f63c8f6362cd8f1 ГО,
ps(k1 © q) =
ec30230ef3f5ef63d90441f6a3c992c85e58dc76048628f6285811d91bf28a3626320aac6593c32c455fd36314bb4dd8a85a 03508f7cf0f139fa119b93fc8ff0,
LPS{Ki © C1) =
18ee8f3176b2ebea3bd6cb8233694cea349769df88be26bf451cfab6a904a549da22de93a66a66b19c7e6b5eea633511 e6 11 d68c8401 bfcd0c7d0cc39d4a5eb9.
Итерация 2
K2 = 18ee8f3176b2ebea3bd6cb8233694cea349769df88be26bf451cfab6a904a549da22de93a66a66b19c7e6b5ee a633511 e611 d68c8401 bfcd0c7d0cc39d4a5eb9,
LPSX[K2]LPSX[K,](m) =
O502dab7e79eb94013fcd1ba64def3b916f18b63855d43d22b77fca1452f9866c2b45089c62e9d82edf1ef45230db9a23c9e 1 c521113376628a5f6a5dbc041 b2.
Итерация 3
K3 = aaa4cf31 a265959157aec8ce91 e7fd46bf27dee21164c5e3940bba1 a519e9d1 fce0913f1253e7757915000cd67 4be12cc7f68e73ba26fb00fd74af4101805f2d,
LPSX[K3]... LPSX[K,](m) =
8e5a4fe41 fc790af29944f027aa2f10105d65cf60a66e442832bb9ab5020dc54772e36b03d4b9aa471037212cde93375226 552392ef4d83010a007e1117a07b5.
Итерация 4
K4 = 61fe0a65cc177af50235e2afadded326a5329a2236747bf8a54228aeca9c4585cd801ea9dd743a0d98d01ef060 2b0e332067fb5ddd6ac1568200311920839286,
LPSX[K4]... LPSX[K^](m) =
dee0b40df69997afef726f03bdc13cb6ba9287698201296f2fd8284f06d33ea4a850a0ff48026dd47c1 e88ec813ed2eb11860 59d842d8d17f0bfa259e56655b1.
ГОСТ P 34.11—2012
Итерация 5
К5 = 9983685f4fd3636f1fd5abb75fbf26a8e2934314aa2ecb3ee4693c86c06c7d4e169bd540af75e1610a546acd63d 960bad595394cc199bf6999a5d5309fe73d5a,
LPSX[K5] ... LPSX[Kj](m) =
675ea894d326432e1af7b201bc369f8ab021f6fa58da09678ffc08ef30db43a37f1f7347cb77da0f6ba30c85848896c3bac24 Oabl 4144283518b89a33d0caf07.
Итерация 6
K6 = TO5772ae2ce7f025156c9a7fbcc6b8fdf1 e735d613946e32922994e52820ffea62615d907eb0551 adl 70990a866 02088af98c83c22cdb0e2be297c13c0f7a156,
LPSX[K6] ... LPSX[Kj](m) =
1 bc204bf9506ee9b86bbcf82d254a112aea6910b6db3805e399cb718d1 b3319964459516967cee4e648e8cfbf81 f56dc8da 6811c469091be5123e6a1d5e28c73.
Итерация 7
K7 = 5ad144c362546e4e46b3e7688829fbb77453e9c3211974330b2b8d0e6be2b5acc89eb6b35167f159b7b005a4 3e5959a651a9b18cfc8e4098fcf03d9b81cfbb8d,
LPSX[K7] ... LPSX[K^](m) =
f30d791ed78bdee819022a3d78182242124efcdd54e203f23fb2dc7f94338ff955a5afc15ffef03165263c4fdb36933aa98201 6471 fbac9419f892551 e9e568b.
Итерация 8
K8 = 6a6cec9a1ba20a8db64fa840b934352b518c638ed530122a83332fe0b8efdac9018287e5a9f509c78d6c746adc d5426fb0a0ad5790dfb73fc1 fl 91 a539016daa,
LPSX[K8] ... LPSX[Kj](m) =
1 fc20f1 e91 al 801 a4293d3f3aa9e91560fcc381 Obbl 5f3ee9741 c9b87452519f67cb9145519884a24de6db736a5cb1430da 7458e5e51b80be5204ba5b2600177.
Итерация 9
K9 = 99217036737aa9b38a8d6643f705bd51f351531 f948f0fc5e35fa35fee9dd8bdbb4c9d580a224e9cd82e0e2069f C49ed367d5f94374435382b8fb6a8f5dd0409,
LPSX[K9] ... LPSX[Kj](m) =
1 a52f09d1 e81515a36171 eObl a2809c50359bed90f2e78cbd89b7d4afa6d046655c96bdae6ee97055cc7e857267c2ccf28c 8f5dd95ed58a9a68c12663bb28967.
Итерация 10
Кю = 906763c0fc89fa1ae69288d8ec9e9dda9a7630e8bfd6c3fed703c35d2e62aeaff0b35d80a7317a7f76f83022f25 26791 ca8fdf678fcb337bd74fe5393ccb05d2,
LPSX[K^0]... LPSX[K^](m) =
764043744a0a93687e65aba8cfc25ec8714fb8e1bdc9ae2271e7205eaaa577c1 ЬЗЬ83е7325е50а19bd2d56b061b5de392 35c9c9fd95e071 al a291 a5f24e8c774.
Итерация 11
= 88ce996c63618e6404a5c8e03ee433854e2ae3eee68991bbbff3c29d38dadb6ed6a1dae9a6dc6ddf52ce34af2 72f96d3159c8c624c3fe6e13d695c0bfc89add5,
LPSX[K^] ... LPSX[К^](m) =
9Ы ce8ff26b445cb288c0aeccf84658eea91 dbdfl 4828bf70110a5c9bd146cd9646350cff4e90e7b63c5cc325e9b441081935 f282d4648d9584f71860538f03b.
Итерация 12
КЛ2 = 3e0a281ea9bd46063eec550100576f3a506aa168cf82915776b978fccaa32f38b55f30c79982ca45628e8365d 8798477e75a49c68199112a1 d7b5a0f7655f2db,
LPSX[K^2]... LPSX[К^](m) =
133aeecede251 eb81914b8ba48dcbc0b8a6fc63a292cc49043c3d3346b3f0829a9cb71 ecff25ed2a91 bdcf8f649907c110cb 76ff2e43100cdd4ba8a147a572f5.
11
K13 = f0b273409eb31aebe432fbae1867212262c848422b6a92f93f6cbab54ed18b8314b21cffc51e3fa319ff433e76ef 6adb0ef9f5e03c907fa1fcf9eca06500bf03,
X[K13]... LPSX[K^](m) =
e3889d8e40960453fd26431450bb9d29e8a78e78024656697caf698125ee83aabd796d133a3bd28988428cb112766d1a1 e32831f12d36fad21 b2440122a5cdf6.
Результат выполнения преобразования gN{h, m)\
h = e3bbadbf78af3264c9137127608aa510de90ba4d3075665844965fb611 dbbl 998d48552a0c0ce6bcba71 bc802a 4f5b2d2a07b12c22e25794178570341096fdc7.
Изменяются значения переменных N иЕ:
N= 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000001f8,
S = 0132313039383736353433323130393837363534333231303938373635343332313039383736353433323130 3938373635343332313039383736353433323130.
Результат выполнения преобразования gQ(h, N):
h = 70f22bada4cfe18a6a56ec4b3f328cd40db8e1bf8a9d5f711d5efab11191279d715aab7648d07eddbf87dc79c805 16e6ffcbcf5678b0ac29ea00fa85c8173cc6.
Результат выполнения преобразования g0(h, S):
h = 00557be5e584fd52a449b16b0251d05d27f94ab76cbaa6da890b59d8ef1e159d2088e482e2acf564e0e9795a51 e4dd261 f3f667985a2fcc40ac8631 faca 1709a.
Хэш-кодом сообщения M1 является значение:
НЩ) = 00557be5e584fd52a449b16b0251 d05d27f94ab76cbaa6da890b59d8ef1 el 59d.
A.2 Пример 2
Пусть необходимо вычислить хэш-код сообщения
М2 = fbe2e5f0eee3c820fbeafaebef20fffbf0e1 e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8 f6f3ede220e8e6eee 1 e8TOf2d 1202ce8TOf2e5e220e5d 1.
A.2.1 Для функции хэширования с длиной хэш-кода 512 бит
Присваиваются значения:
h=IV= О512;
N := О512;
S := О512.
Длина сообщения \М2\ = 576 > 512, поэтому сначала преобразуется часть сообщения
т : = fbeafaebef20fffbf0e1e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e8e6e eel e8f0f2d 1202ce8f0f2e5e220e5d 1.
Вычисляется значение К := LPS{h © N) = LPS{О512).
После преобразования S:
S(h © N) =
после преобразования Р:
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc,
PS(h © N) =
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc,
после преобразования L
LPS(h © N) =
b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383
fc2eced4a574b383fc2eced4a574.
Затем выполняется преобразование £ (К, т):
Итерация 1
/С| = b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced 4a574b383fc2eced4a574b383fc2eced4a574,
Х[К^](т) =
486906c521f45a8f43621cde3bf44599936b10ce2531558642a303de2038858593790ed02b3685585b750fc32cf44d925d6
214de3c0585585b730ecb2cf440a5,
SX [Kj ](m) =
f29131 acl 8e613035196148598e6c8e8de6fe9e75c840c432c731185f906a8a8de5404e1428fa8bf47354d408be63aecb79 693857f6ea8bf473d04e48be6eb00,
ГОСТ P 34.11—2012
PSX[K^]{m) =
f251 de2cde47b74791966f735435963d3114e911044d9304ac85e785e14085e418985cf9428b7f8be6e684068fe66ee613c 80ca8a83aa8eb03e843a8bfecbf00,
LPSX [К^ ](m) =
909aa733e1f52321a2fe35bfb8f67e92fbc70ef544709d5739d8faaca4acf126e83e273745c25b7b8f4a83a7436f6353753cb bbe492262cd3a868eace0104af1,
Кл Ф C1 =
028ba7f4d01 e7f9d5848d3af0eb1 d96b9ce98a6de0917562c2cd44a3bb516188f8ff1 cbf5cb3cc7511 cl d6266ab47661 b6f58 81802a0e8576e0399773c72e073,
S(K, ©c,) =
ddf644e6e15f5733bff249410445536f4e9bd69e200f3596b3d9ea737d70a1 d7d1 b6143b9c9288357758f8ef78278aa155f4 d717dda7cb12b211e87e7f19203d,
PS{Ki e q) =
ddbf4eb3d17755b2f6f29bd9b658f4114449d6ea14f8d7e8e6419e733bef177ee104207d9c78dd7f5f450f709227a71957533 5a1888acb20336f96d735a1123d,
LPS{K1 © C.,) =
d0b00807642fd78f13f2c3ebc774e80de0e902d23aef2ee9a73d010807dae9c188be14f0b2da27973569cd2ba051301036f 728bd1d7eec33f4d18af70c46cf1e.
Итерация 2
K2 = d0b00807642fd78f13f2c3ebc774e80de0e902d23aef2ee9a73d010807dae9c188be14f0b2da27973569cd2ba0 51301036f728bd1 d7eec33f4d18af70c46cf1 e,
LPSX[K2]LPSX[K^]{m) =
301 aadd761 dl 3df0b473055b14a2f74a45f408022aecadd4d5f19cab8228883a021 ac0b62600a495950c628354ffce1161 c6 8b7be7e0c58af090ce6b45e49f16.
Итерация 3
K3 = 9d4475c7899f2d0bb0e8b7dac6ef6e6b44ecf66716d3a0f16681105e2d13712a1 a9387ecc257930e2d61014a1 b5c9fc9e24e7d636eb1607e816dbaf927b8fca9,
LPSX[K3] ... LPSX[Kj](m) =
9b83492b9860a93cbca1c0d8e0ce59db04e10500a6ac85d4103304974e78d32259ceff03fbb353147a9c948786582df78a 34c9bde3f72b3ca41 b9179c2cceef3.
Итерация 4
K4 = 5c283daba5ec1 f233b8c833c48e1 c670dae2e40cc4c3219c73e58856bd96a72fdf9f8055ffe3c004c8cde3b8bf78 f95f3370d0a3d6194ac5782487defd83ca0f,
LPSX[K4] ... LPSX[Kj](m) =
e638e0a1677cdea107ec3402f70698a4038450dab44ac7a447e10155aa33ef1 bdaf8f49da7b66f3e05815045fbd39c991 cb 0dc536e09505fd62d3c2cd00b0f57.
Итерация 5
K5 = 109f33262731f9bd569cbc9317baa551d4d2964fa18d42c41fab4e37225292ec2fd97d7493784779046388469a el 95c436fa7cba93f8239ceb5ffc818826470c,
LPSX[K5] ... LPSX[Kj](m) =
1 c7c8e19b2bf443eb3adc0c787a52a173821 a97bc5a8efea58fb8b27861829f6dd5ff9c97865e08c1 ac66f47392b578e2126 6e323a0aacedeec3ef0314f517c6.
Итерация 6
K6 = b32c9b02667911cf8f8a0877be9a170757e25026ccf41e67c6b5da70b1b874743e1135cfbefe244237555c676c 153d99459bc382573aee2d85d30d99f286c5e7,
LPSX[K6] ... LPSX[Kj](m) =
48fecfc5b3eb77998fb39bfcccd 128cd42fccb714221 be1e675a1c6fdde7e31198b318622412af7e999a3eff45e6d61609a7f2 ae5c2ff1 ab7ff3b37be7011 ba2.
Итерация 7
K7 = 8a13c1b195fd0886ac49989e7d84b08bc7b00e4f3f62765ece6050fcbabdc2346c8207594714e8e9c9c7aad694 edc922d6b01el7285eb7e61502e634559e32f1,
13
LPSX[K7]... LPSX[K^](m) =
a48f8d781 c2c5be417ae644cc2e15a9f01 fcead3232e5bd53f18a5ab875cce1 b8a1 a400cf48521 c7ce27fb1 e94452fb54de2 3118f53b364ee633170a62f5a8a9.
Итерация 8
K8 = 52cec3b11448bb8617d0ddfbc926f2e88730cb9179d6decea5acbffd323ec3764c47f7a9e13bb1 db56c3420347 73023d617ff01 cc546728e71 dff8de5d128cac,
LPSX[K8] ... LPSX[K,](m) =
e8a31 b2e34bd2ae21 b0ecf29cc4c37c75c4d11 d9b82852517515c23e81 e906a451 b72779c3087141 fl al 5ab57f96d7da6c 7ee38ed25befbdef631216356ff59c.
Итерация 9
K9 = f38c5b7947e7736d502007a05ea64a4eb9c243cb82154aa138b963bbb7f28e74d4d710445389671291 d70103f 48fd4d4c01 fc415e3fb7dc61 c6088afa1 al e735,
LPSX[Kg]... LPSX[K^](m) =
34392ed32ea3756e32979cb0a2247c3918e0b38d6455ca88183356bf8e5877e55d542278a696523a8036af0f1c2902e9cb
C585de803ee4d26649c9e1f00bda31.
Итерация 10
K10 = 0740b3faa03ed39b257dd6e3db7c1 bf56b6e18e40cdaabd30617cecbaddd618ea5e61 bb4654599581 dd30c24 cl ab877ad0687948286cfefaa7eef99f6068b315,
LPSX[K|0]... LPSX[Kj](m) =
6a82436950177fea74cce6d507a5a64e54e8a3181458e3bdfbdbc6180c9787de7ccb676dd809e7cb1 eb2c9ebd016561570 801 a4e9ce17a438b85212f4409bb5e.
Итерация 11
Клл = 185811cf3c2633aec8cfdfcae9dbb29347011bf92b95910a3ad71e5fca678e45e374f088f2e5c29496e9695ce89 57837107bb3aa56441 afl 1 a82164893313116,
LPSX[KU]... LPSX[K<\](m) =
7b97603135e2842189b0c9667596e96bd70472ccbc73ae89da7d1599c72860c285f5771088f1fb0f943d949f22f1413c991
eafb51 ab8e5ad8644770037765aec.
Итерация 12
K12 = 9d46bf66234a7ed06c3b2120d2a3f15e0fedd87189b75b3cd2f206906b5ee00dc9a1eab800fb8cc5760b251f4d b5cdef427052fa345613fd076451901279ee4c,
LPSX[KU\... LPSX[K^](m) =
39ec8a88db635b46c4321adf41fd9527a39a67f6d7510db5044f05efaf721db5cf976a726ef33dc4dfcda94033e741a463770
861a5b25fefcb07281eed629c0e.
Итерация 13
K13 = 0179104026b900d8d768b6e223484c9761e3c585b3a405a6d2d8565ada926c3f7782ef127cd6b98290bf6125 58b4b60aa3cbc28fd94f95460d76b621cb45be70,
X[K13]... LPSX[K1](m) =
36959ac8fdda5b9e135aac3d62b5d9b0c279a27364f50813d69753b575e0718ab8158560122584464f72c8656b53f7aec0 bccaee7cfdcaa9c6719e3f2627227e.
Результат выполнения преобразования gN(h, m):
h = Cd7f602312faa465e3bb4ccd9795395de2914e938f10f8e127b7ac459b0c517b98ef779ef7c7a46aa7843b88897 31 f 482e5d221e8e2cea852e816cdac407c7af.
Изменяются значения переменных N и S:
N=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000200,
Е = fbeafaebef20fffbf0e1 e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e8e6eee 1 e8f0f2d 1202ce8f0f2e5e220e5d 1.
Длина оставшейся части сообщения меньше 512, поэтому происходит заполнение неполного блока. т : = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000001 fbe2e5f0eee3c820.
Результат выполнения преобразования gN(h, т):
h = C544ae6efdf14404f089c72d5faf8dc6aca1db5e28577fc07818095f1df70661e8b84d0706811cf92dffb8f96e61493 dc382795c6ed7a17b64685902cbdc878e.
14
ГОСТ P 34.11—2012
Изменяются значения переменных N и S:
Л/= 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000240,
S = fbeafaebef20fffbf0e1 e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e8e6eee 1 e8f0f2d 1202ee4d3d8d6d 104adf1.
Результат выполнения преобразования g0(h, N):
h = 4deb6649ffa5caf4163d9d3f9967fbbd6eb3da68f916b6a09f41f2518b81292b703dc5d74e1ace5bcd3458af43bb4 56e837326088f2b5df14bf83997a0b1ad8d.
Результат выполнения преобразования g0(h, Z):
h = 28fbc9bada033b1460642bdcddb90c3fb3e56c497ccd0f62b8a2ad4935e85f037613966de4ee00531ae60f3b5a4 7f8dae06915d5f2f194996fcabf2622e6881 e.
Хэш-кодом сообщения M2 является значение:
Н(М2) = 28fbc9bada033b1460642bdcddb90c3fb3e56c497ccd0f62b8a2ad4935e85f037613966de4ee00531ae60f3 b5a47f8dae06915d5f2f194996fcabf2622e6881 е.
A.2.2 Для функции хэширования с длиной хэш-кода 256 бит
Присваиваются значения:
h =IV= (00000001 )64;
N := О512;
£ := О512.
Длина сообщения |М2| = 576 > 512, поэтому сначала преобразуется часть сообщения
т : = fbeafaebef20fffbf0e1e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e8e6e ее 1 e8f0f2d 1202ce8f0f2e5e220e5d 1.
Вычисляется значение К := LPS(h © N) = LPS((00000001J64).
После преобразования S:
S(h 0 N) =
ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее
ееееееееееееееееееееееееееееееее,
после преобразования Р:
PS(h 0 N) =
ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее
ееееееееееееееееееееееееееееееее,
после преобразования L:
К := LPS(h © Л/) =
23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c 5ee40b07b5f1523c5ee40b07b5f15.
Затем выполняется преобразование £ (К, т)\
Итерация 1
Кл = 23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b0 7b5f1523c5ee40b07b5f1523c5ee40b07b5f15,
X[K,](m) =
d82f14ab5f5ba0eed3240eb0455bbff8032d02a05b9eafe7d2e511b05e977fe4033f1cbe55997f39cb331dad525bb7f3cd240 6b042aa7f39cb351 ca5525bbac4,
SX [К^ ](m) =
8d4f93828747a76c49e204adc8473bd11101 dda7470a415b832b77ad5dbc572d111 fl 4950ce8570be4aecd9f0e472fd2d9e 231ad2c38570be46a14000e47a586,
PSX[Kj](m) =
8d49118311 e4d9e44fe2012Ы faee26a9304dd7714cd311482ada7ad959fad0087c8475d0c0e2c0e47470abce8473847a7 3b4157572f57a56cd15b2d0bd20b86,
LPSX [К^ ](m) =
a3a72a2e0fb5e6f812681222fec037b0db972086a395a387a6084508cae13093aa71 d352dcbce288e9a39718a727f6fd4c5 da5d0bc10fac3707ccd127fe45475,
© C1 =
92cdb59aaeb185fcc80ec1 cl 701 e230a0caf98039e3e8f03528b56cdc5fe9be968b90ed1221 c36148187c448141 b8c0026b 39a767c0f1236fe458b1942dd1 al 2,
S{Ki © q) =
ecd95e282645a83930045858325f5afa2341dc110ad303110ef676d9ac63509bf3a3041b65148f93f5c986f293bb7cfcef922
88ac34df08f63c8f6362cd8f1f0,
15
PS{K^ 0 0,) =
ec30230ef3f5ef63d90441f6a3c992c85e58dc76048628f6285811d91 bf28a3626320aac6593c32c455fd36314bb4dd8a85a 0350817cfOfl 39fa119b93fc8ff0,
LPS{K1 © 0,) =
18ee8f3176b2ebea3bd6cb8233694cea349769df88be26bf451 Cfab6a904a549da22de93a66a66b19c7e6b5eea633511 e6 11 d68c8401 bfcd0c7d0cc39d4a5eb9.
Итерация 2
K2 = 18ee8f3176b2ebea3bd6cb8233694cea349769df88be26bf451 Cfab6a904a549da22de93a66a66b19c7e6b5ee a633511 e611 d68c8401 bfcd0c7d0cc39d4a5eb9,
LPSX[K2] LPSX[Kj](m) =
9f50697b1d9ce23680db1f4d35629778864c55780727aa79eb7bb7d648829cba8674afdac5c62ca352d77556145ca7bc75 8679fbe1fbd32313ca8268a4a603f1.
Итерация 3
K3 = aaa4cf31 a265959157aec8ce91 e7fd46bf27dee21164c5e3940bba1 a519e9d1 fce0913f1253e7757915000cd67 4be12cc7f68e73ba26fb00fd74af4101805f2d,
LPSX[K3] ... LPSX[Kj](m) =
4183027975b257e9bc239b75c977ecc52ddad82c091 e694243c9143a945b4d853116eae14fd81 Ы 4bb47f2c06fd283cb6c 5e61924edfaf971 b78d771858d5310.
Итерация 4
K4 = 61fe0a65cc177af50235e2afadded326a5329a2236747bf8a54228aeca9c4585cd801ea9dd743a0d98d01ef060 2b0e332067fb5ddd6ac1568200311920839286,
LPSX[K4] ... LPSX[K^](m) =
0368c884fcee489207b5b97a133ce39a1ebfe5a3ae3cccb3241de1e7ad72857e76811d324f01fd7a75e0b669e8a22a4d056 ce6af3e876453a9c3c47c767e5712.
Итерация 5
K5 = 9983685f4fd3636f1fd5abb75fbf26a8e2934314aa2ecb3ee4693c86c06c7d4e169bd540af75e1610a546acd63d 960bad595394cc199bf6999a5d5309fe73d5a,
LPSX[K5] ... LPSX[Kj](m) =
c31433ceb8061 e46440144e65553976512e5a9806ac9a2c771 d5932d5f6508c5b78e406c4efab98ac5529be0021 b4d58fa 26Ю1621 ebl 0b43de4c4c47b63f615.
Итерация 6
K6 = TO5772ae2ce7f025156c9a7fbcc6b8fdf1 e735d613946e32922994e52820ffea62615d907eb0551 adl 70990a866 02088af98c83c22cdb0e2be297c13c0f7a156,
LPSX[K6] ... LPSX[Kj](m) =
5d0ae97f252ad04534503fe5f52e9bd07f483ee3b3d206beadc6e736c6e754bb713f97ea7339927893eacf2b474a482cadd 9ac2e58f09bcb440cf36c2d 14a9b6.
Итерация 7
K7 = 5ad144c362546e4e46b3e7688829fbb77453e9c3211974330b2b8d0e6be2b5acc89eb6b35167f159b7b005a4 Зе5959а651 a9b18cfc8e4098fcf03d9b81 cfbb8d,
LPSX[K7] ... LPSX[Kj](m) =
a59aa21e6ad3e330deedb9ab9912205c355b1c479fdfd89a7696d7de66fbf7d3cec25879f7f1a8cca4c793d5f2888407aecb 188bda375eae586a8cfd0245c317.
Итерация 8
K8 = 6a6cec9a1ba20a8db64fa840b934352b518c638ed530122a83332fe0b8efdac9018287e5a9f509c78d6c746adc d5426fb0a0ad5790dfb73fc1 fl 91 a539016daa,
LPSX[K8] ... LPSX[Kj](m) =
9903145a39d5a8c83d28f70fa1fbd88f31b82dc7cfe17b54b50e276cb2c4ac682b4434163f214cf7ce6164a75731bcea5819 e6a6a6fea99da9222951 d2a28e01.
Итерация 9
Kg = 99217036737aa9b38a8d6643f705bd51f351531f948f0fc5e35fa35fee9dd8bdbb4c9d580a224e9cd82e0e2069f C49ed367d5f94374435382b8fb6a8f5dd0409,
16
1 Область применения..................................................................1
2 Нормативные ссылки..................................................................1
3 Термины, определения и обозначения...................................................1
3.1 Термины и определения............................................................1
3.2 Обозначения.....................................................................2
4 Общие положения....................................................................3
5 Значения параметров.................................................................3
5.1 Инициализационные векторы.......................................................3
5.2 Нелинейное биективное преобразование множества двоичных векторов...................3
5.3 Перестановка байт................................................................4
5.4 Линейное преобразование множества двоичных векторов...............................4
5.5 Итерационные константы...........................................................4
6 Преобразования......................................................................5
7 Функция сжатия......................................................................5
8 Процедура вычисления хэш-функции....................................................6
8.1 Этап 1...........................................................................6
8.2 Этап 2...........................................................................6
8.3 Этап 3...........................................................................6
Приложение А (справочное) Контрольные примеры..........................................7
Библиография........................................................................18
III
ГОСТ P 34.11—2012
LPSX[K9] ... LPSX[K,](m) =
ЗЗОебсЫ d04961826aa263f2328f15b4f3370175a6a9fd6505b286efed2d8505f71823337ef71513e57a700eb1672a68557 8e45dad298ee2223d4cb3fda8262f.
Итерация 10
Кю = 906763c0fc89fa1ae69288d8ec9e9dda9a7630e8bfd6c3fed703c35d2e62aeaff0b35d80a7317a7f76f83022f25 26791 ca8fdf678fcb337bd74fe5393ccb05d2,
LPSX[K^0]... LPSX[K^](m) =
ad347608443ab9c9bbb64f633a5749ab85c45d4174bfd78f6bc79fc4f4ce9ad1 dd71 cb2195Ы cfab8dcaaf6f3a65c8bb00798 47a0800e4427d3a0a815f40a644.
Итерация 11
К^ = 88ce996c63618e6404a5c8e03ee433854e2ae3eee68991bbbff3c29d38dadb6ed6a1dae9a6dc6ddf52ce34af2 72f96d3159c8c624c3fe6e13d695c0bfc89add5,
LPSX[K^] ... LPSX[К^](m) =
a065c55e2168c31576a756c7ecc1 a9129cd3d207f8f43073076c30e111fd5f119095ca396e9fb78a2bf4781 c44e845e447b8f c75b788284aae27582212ec23ee.
Итерация 12
КЛ2 = 3e0a281ea9bd46063eec550100576f3a506aa168cf82915776b978fccaa32f38b55f30c79982ca45628e8365d 8798477e75a49c68199112a1 d7b5a0f7655f2db,
LPSX[K^2]... LPSX[К^](m) =
2a6549f7a5cd2eb4a271a7c71762c8683e7a3a906985d60f8fc86f64e35908b29f83b1fe3c704f3c116bdfe660704f3b9c8a1 d0531 baaffaa3940ae9090a33ab.
Итерация 13
/<13 = f0b273409eb31 aebe432fbae1867212262c848422b6a92f93f6cbab54ed18b8314b21 cffc51 e3fa319ff433e76ef 6adb0ef9f5e03c907fa1fcf9eca06500bf03,
X[Kn]... LPSX[K^]{m) =
dad73ab73b7e345f46435c690f05e94a5cb272d242ef44f6b0a4d5d1ad8883318b31ad01f96e709f08949cd8169f25e09273
e8e50d2ad05b5f6de6496c0a8ca8.
Результат выполнения преобразования gN{h, m)\
/7 = 203cc15dd55fcaa5b7a3bd98fb2408a67d5b9f33a80bb50540852b204265a2c1aaca5efe1d8d51b2e1636e34f5becc 077d930114fefaf176b69c15ad8f2b6878.
Изменяются значения переменных N и S:
N =0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000200,
S = fbeafaebef20fffbf0e1 e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e8e6eee 1 e8f0f2d 1202ce8f0f2e5e220e5d 1.
Длина оставшейся части сообщения меньше 512, поэтому происходит заполнение неполного блока:
т = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000001fbe2e5f0eee3c820.
Результат выполнения преобразования gN{h, т)\
h = a69049e7bd076ab775bc2873af26f098c538b17e39a5c027d532f0a2b3b56426c96b285fa297b9d39ae6afd8b90 01 d97bb718a65fcc53c41 b4ebf4991 a617227.
Изменяются значения переменных N и S:
N =0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000240,
S = fbeafaebef20fffbf0e1e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e8e6ee el e8f0f2d1202ee4d3d8d6d104adf1.
Результат выполнения преобразования g0(h, Л/):
h = aee3bd55ea6f387bcf28c6dcbdbbfb3ddacc67dcc13dbd8d548c6bf808111d4b75b8e74d2afae960835ae6a5f035 75559c9fd839783ffcd5cf99bd61566b4818.
Результат выполнения преобразования g0(h, S):
h = 508f7e553c06501d749a66fc28c6cac0b005746d97537fa85d9e40904efed29dc345e53d7f84875d5068e4eb743 f0793d673f09741 f9578471fb2598cb35c230.
Хэш-кодом сообщения M2 является значение:
Н{М2) = 508f7e553c06501d749a66fc28c6cac0b005746d97537fa85d9e40904efed29d.
17
Настоящий стандарт содержит описание алгоритма и процедуры вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах защиты информации, в том числе в процессах формирования и проверки электронной цифровой подписи.
Стандарт разработан взамен ГОСТ Р 34.11-94. Необходимость разработки настоящего стандарта вызвана потребностью в создании хэш-функции, соответствующей современным требованиям к криптографической стойкости и требованиям стандарта ГОСТ Р 34.10-2012 к электронной цифровой подписи.
Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО 2382—2 [1], ИСО/МЭК 9796 [2—3], серии ИСО/МЭК 14888 [4—7] и серии ИСО/МЭК 10118 [8—11].
Примечание — Основная часть стандарта дополнена одним приложением:
Приложение А (справочное) Контрольные примеры.
IV
Информационная технология КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ Функция хэширования
Information technology. Cryptographic data security. Hash-function
Дата введения — 2013—01—01
Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур обеспечения целостности, аутентичности, электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах.
Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10-2012.
Стандарт рекомендуется использовать при создании, эксплуатации и модернизации систем обработки информации различного назначения.
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
ГОСТ Р 34.10-2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
Примечание — При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования — на официальном сайте Федерального агентства Российской Федерации по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный стандарт заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться заменяющим (измененным) стандартом. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
В настоящем стандарте применены следующие термины с соответствующими определениями.
3.1.1 _
заполнение (padding): Приписывание дополнительных бит к строке бит.
[ИСО/МЭК 10118-1, статья 3.9]
Издание официальное
3.1.2_
инициализационный вектор (initializing value): Вектор, определенный как начальная точка работы функции хэширования.
[ИСО/МЭК 10118-1, статья 3.7]
3.1.3_
сообщение (message): Строка бит произвольной конечной длины. [ИСО/МЭК 14888-1, статья 3.10]
3.1.4_
функция сжатия (round-function): Итеративно используемая функция, преобразующая строку бит длиной L1 и полученную на предыдущем шаге строку бит длиной L2 в строку бит длиной /_2. [ИСО/МЭК 10118-1, статья 3.10]
Примечание — В настоящем стандарте понятия «строка бит длиной L» и «двоичный вектор-строка размерности L» считаются тождественными.
3.1.5
хэш-код (hash-code): Строка бит, являющаяся выходным результатом хэш-функции.
[ИСО/МЭК 14888-1, статья 3.6]
3.1.6
хэш-функция (collision-resistant hash-function): Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам:
1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение;
2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции;
3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение.
[ИСО/МЭК 14888-1, статьи 3.2, 3.7]
Примечание — В настоящем стандарте в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины «хэш-функция», «криптографическая хэш-функция», «функция хэширования» и «криптографическая функция хэширования» являются синонимами.
электронная цифровая подпись (signature); ЭЦП: Строка бит, полученная в результате процесса формирования подписи.
[ИСО/МЭК 14888-1, статья 3.12]
3.1.7
Примечание — В настоящем стандарте в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины «электронная подпись», «цифровая подпись» и «электронная цифровая подпись» являются синонимами.
В настоящем стандарте используются следующие обозначения:
V* множество всех двоичных векторов-строк конечной размерности (далее — векторы), включая пустую строку;
|/4| размерность (число компонент) вектора AeV* (если А — пустая строка, то |/4| = 0);
Vn множество всех n-мерных двоичных векторов, где п — целое неотрицательное число; нумерация подвекторов и компонент вектора осуществляется справа налево, начиная с нуля;
0
А\\В
Ап
^2П
ш
Vec„ : Z2„ -» Vn
операция покомпонентного сложения по модулю 2 двух двоичных векторов одинаковой размерности;
конкатенация векторов А, В е V, т. е. вектор из У|д|+|в|> в котором левый подвектор из У|Л| совпадает с вектором А, а правый подвектор из совпадает с вектором В;
конкатенация п экземпляров вектора А; кольцо вычетов по модулю 2п\
операция сложения в кольце Z2„;
биективное отображение, сопоставляющее элементу кольца 1>2п его двоичное представление, т. е. для любого элемента z кольца Z2„, представленного вычетом z0 + 2z1 + ... + 2n-1 zn_p где z( 6 {0, 1}, j = 0, ..., n - 1, выполнено равенство Vec„(z) = z„_1||... ||Zl||z0;
lnt„ : Vn —» Z2„ MSB„ \V*^Vn
a: = b M
H : V*^> Vn IV
отображение, обратное отображению Vecn, т. e. Int„ = Vec"1;
отображение, ставящее в соответствие вектору z/c_111 ... Uz^lzg, к > n, вектор zfc-111 ■■■ llzfc-n+1 Wzk-rv
операция присваивания переменной а значения Ь;
произведение отображений, при котором отображение ¥ действует первым; двоичный вектор, подлежащий хэшированию, М е v*, |М| < 2512; функция хэширования, отображающая вектор (сообщение) М в вектор (хэш-код) Н{М)\
инициализационный вектор функции хэширования, IV е \/512.
Настоящий стандарт определяет две функции хэширования Н: V* Vn с длинами хэш-кода п = 512 бит и п = 256 бит.
Значение инициализационного вектора IV для функции хэширования с длиной хэш-кода 512 бит равно О512. Значение инициализационного вектора IV для функции хэширования с длиной хэш-кода 256 бит равно (00000001 )64.
Нелинейное биективное преобразование множества двоичных векторов \/8 задается подстановкой
7i — Vec87i Intg. Vq —^ Vq, (1)
где п': Z2s Z2s.
Значения подстановки ж' записаны ниже в виде массива ж' = (ж\0), л’(1),..., 7t'(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).
Значения перестановки т, заданной на множестве {0, ..., 63}, записаны ниже в виде массива т = (т(0), т(1).....т(63)):
т = (0, 8, 16, 24, 32, 40, 48, 56, 1,9, 17, 25, 33, 41,49, 57, 2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51,59, 4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21,29, 37, 45, 53, 61,6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31,39, 47, 55, 63).
Линейное преобразование / множества двоичных векторов V64 задается умножением справа на матрицу А над полем GF(2), строки которой записаны ниже последовательно в шестнадцатеричном виде. Строка матрицы с номером j,j = 0,...,63, записанная в виде ау15 ...ау0, где ау ,• eZ16,/ = 0, ...,15, есть Vec4(ay^ 5) 11... 11Vec4(ay 0).
8e20faa72ba0b470 |
47107ddd9b505a38 |
ad08b0e0c3282d1 c |
d8045870ef14980e |
6c022c38f90a4c07 |
3601161 cf205268d |
1Ь8е0Ь0е798с13c8 |
83478b07b2468764 |
а0116380818e8f40 |
5086e740ce47c920 |
2843fd2067adea10 |
14aff010bdd87508 |
0ad97808d06cb404 |
05e23c0468365a02 |
8c711e02341b2d01 |
46b60f011a83988e |
90dab52a387ae76f |
486dd4151c3dfdb9 |
24b86a840e90f0d2 |
125C354207487869 |
092e94218d243cba |
8a174a9ec8121e5d |
4585254f64090fa0 |
accc9ca9328a8950 |
9d4df05d5f661451 |
C0a878a0a1330aa6 |
60543c50de970553 |
302a1e286fc58ca7 |
18150f14b9ec46dd |
0c84890ad27623e0 |
0642ca05693b9f70 |
0321658cba93c138 |
86275df09ce8aaa8 |
439da0784e745554 |
afc0503c273aa42a |
d960281e9d1d5215 |
e230140fc0802984 |
71180a8960409a42 |
b60c05ca30204d21 |
5b068c651810a89e |
456c34887a3805b9 |
ac361a443d1c8cd2 |
561b0d22900e4669 |
2b838811480723ba |
9bcf4486248d9f5d |
c3e9224312c8c1 aO |
effa11af0964ee50 |
f97d86d98a327728 |
e4fa2054a80b329c |
727d102a548b194e |
39b008152acb8227 |
9258048415eb419d |
492c024284fbaec0 |
aa16012142f35760 |
550b8e9e21f7a530 |
a48b474f9ef5dc18 |
70a6a56e2440598e |
3853dc371220a247 |
1ca76e95091051ad |
0edd37c48a08a6d8 |
07e095624504536c |
8d70c431ac02a736 |
C83862965601ddl b |
641c314b2b8ee083 |
Здесь в одной строке записаны четыре строки матрицы А, при этом в строке с номером /, / = 0,...,15, записаны строки матрицы А с номерами 4/ + j,j = 0,...,3, в следующем порядке (слева направо):
4/ + 0, 4/ + 1,4/ + 2, 4/ + 3.
Результат умножения вектора b = b63...bQ е V64 на матрицу А есть вектор с е V64.
С = ^6з(^еС4(аО,15)11-"11^еС4(аО,о)) ©■■■© Ь0(\/еС4(а6з 15)||...||VeC4(a63 0)), (^)
О64, еслиЬ/=0,
Vec4(a63_/15)||...||Vec4(a63_/ о)) еслиЬ, =1,
где Ь/(Vec4(а63_/,is)ll---IIVec4(a63_0)) для всех/ = 0,...,63.
Итерационные константы записаны в шестнадцатеричном виде. Значение константы, записанное в виде а127...а0, где аeZ16, / = 0,., 127, есть Vec4(a127)lI■ ■ ■ IIVec4(a0):
ГОСТ P 34.11—2012
C-i = M 085bda1 ecadae9ebcb2f81 c0657c1 f2f6a76432e45d016714eb88d7585c4fc4b7ce09192676901 a2422a08a460d31505767436cc744d23dd806559f2a64507;
C2 = 6fa3b58aa99d2f1 a4fe39d460f70b5d7f3feea720a232b9861 d55e0f16b501319ab5176Ы 2d699585cb 561c2db0aa7ca55dda21bd7cbcd56e679047021M9bb7;
C3 = f574dcac2bce2fc70a39fc286a3d843506f15e5f529c1 f8bf2ea7514Ы 297b7bd3e20fe490359eb1 c 1 c 93a376062db09c2b6f443867adb31991 e96f50aba0ab2;
C4 = efl fdfb3e81566d2f948e1 a05d71 e4dd488e857e335c3c7d9d721 Cad685e353fa9d72c82ed03d675d 8b71333935203be3453eaa193e837f1220cbebc84e3d12e;
C5 = 4bea6bacad4747999a3f410c6ca923637f151 cl fl 686104a359e35d7800fffbdbfcd1747253af5a 3dfff00b723271 al 67a56a27ea9ea63f5601758fd7c6cfe57;
C6 = ae4faeae1 d3ad3d96fa4c33b7a3039c02d66c4f95142a46c187f9ab49af08ec6cffaa6b71 c9ab7b 40af21 f66c2bec6b6bf71 C57236904f35fa68407a46647d6e;
C7 = f4c70e16eeaac5ec51ac86febf240954399ec6c7e6bf87c9d3473e33197a93c9 0992abc52d822c37 06476983284a05043517454ca23c4af38886564d3a14d493;
C8 = 9b1 f5b424d93c9a703e7aa020c6e41414eb7f8719c36de1 e89b4443b4ddbc49af4892bcb929b0690 69d 18d2bd 1 a5c42f36acc2355951 a8d9a47f0dd4bf02e71 e;
C9 = 378f5a541631229b944c9ad8ec165fde3a7d3a1 b258942243cd955b7e00d0984800a440bdbb2ceb 17b2b8a9aa6079c540e38dc92cb1 f2a607261445183235adb;
о = abbedea680056f52382ae548b2e4f3f38941 e71 cff8a78db1 fffel 8a1 b336103 9fe76702af69334b7a 1e6c303b7652f43698fad1153bb6c374b4c7fb98459ced;
C!= 7bcd9ed0efc889fb3002c6cd635afe94d8fa6bbbebab076120018021148466798a1 d71 efea48b9ca efbacd1d7d476e98dea2594ac06fd85d6bcaa4cd81f32d1b;
С., 2 = 378ee767f11631 bad21380b00449b17acda43c32bcdf1 d77f82012d430219f9b5d80ef9d1891 cc86e 71 da4aa88e12852faf417d5d9b21 b9948bc924af11 bd720.
6 Преобразования
При вычислении хэш-кода Н(М) сообщения М е V* используются следующие преобразования:
Х[к]\ \/512 -> У512. Х[к](а) = к © а, к, а е \/512; (3)
S: \/512 -> V512, S(a) = S(a63||...||a0) = 7с(а63||...||тс(а0), (4)
где а = а6з||...||а0 е V5]2, а,-е V8,/= 0,..., 63;
Р[ ^512 ^512> Р(а) = Р(%з11 —Нао) = ах(63)11---Иах(0)- (5)
где а = а63||...||ао е \/512, а, е \/8, / = 0,..., 63;
L: \/512 -► \/512, Ца) = Ца7||...||а0) = /(а7)||...||/(а0), (6)
где а = а7||...||а0 е \/512, а, £ VM, i = 0,...,7.
7 Функция сжатия
Значение хэш-кода сообщения М е V* вычисляется с использованием итерационной процедуры. На каждой итерации вычисления хэш-кода используется функция сжатия:
9n- V5M Х ^512 ^512’ N 6 (7)
значение которой вычисляется по формуле
gN(h, т) = E(LPS(h ® /V), т) © h © т, (8)
где Е(К, т)=Х[К]3] LPSX[KU] ... LPSX[K2]LPSX[K^](m).
Значения е \/512, / = 1.....13, вычисляются следующим образом:
К, = К; (9)
Kj = LPS(Ki_ 1 © С,_ 1), / = 2,...,13. (10)
Для краткости вместо 0О512 будем использовать обозначение д0.
5
Исходными данными для процедуры вычисления хэш-кода Н(М) является подлежащее хэшированию сообщение Me V* и IV е \/512-инициализационный вектор.
Алгоритм вычисления функции Н состоит из следующих этапов.
Присвоить начальные значения текущих величин:
1.1 h:=IV;
1.2 N := О512 е У512;
1.3 £:=0512 € V512;
1.4 Перейти к этапу 2.
2.1 Проверить условие \М\ < 512.
При положительном исходе перейти к этапу 3.
В противном случае выполнить последовательность вычислений по 2.2—2.7.
2.2 Вычислить под вектор те \/512 сообщения М: М = М'\\т. Далее выполнить последовательность вычислений:
2.3 h := gN(h, т).
2.4 W:=Vec512(lnt512(A/)EEl512).
2.5 £ := VeCg^2 (lnt512(£) Щ lnt512(m)).
2.6 M := M'.
2.7 Перейти к шагу 2.1.
3.1 т := 0511-1м1||1||М.
3.2 h := gN(h, т).
3.3 N := Vec512(lnt512(/V)B3 |М|).
3.4 £ := Vec512(lnt512(£) FRInt^1?|rn|).
3.5 h ■= g0(h, N).
Г gQ{h, £), для функции хэширования с длиной хэш-кода 512 бит;
{MSB256(g0(/7- s))> Для функции хэширования с длиной хэш-кода 256 бит.
Значение величины h, полученное на шаге 3.6, является значением функции хэширования Н(М).