Предисловие
Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. № 184-ФЗ «О техническом регулировании», а правила применения национальных стандартов Российской Федерации — ГОСТ Р 1.0—2004 «Стандартизация в Российской Федерации. Основные положения»
Сведения о стандарте
- РАЗРАБОТАН Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества «Информационные технологии и коммуникационные системы» (ОАО «ИнфоТеКС»)
- ВНЕСЕН Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»
- УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 г. № 216-ст
- ВЗАМЕН ГОСТ Р 34.11—94
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе «Национальные стандарты», а текст изменений и поправок – в ежемесячно издаваемых информационных указателях «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии
Введение
Настоящий стандарт содержит описание алгоритма и процедуры вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах защиты информации, в том числе в процессах формирования и проверки электронной цифровой подписи.
Стандарт разработан взамен ГОСТ Р 34.11—94. Необходимость разработки настоящего стандарта вызвана потребностью в создании хэш-функции, соответствующей современным требованиям к криптографической стойкости и требованиям стандарта ГОСТ Р 34.10—2012 на электронную цифровую подпись.
Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО 2382–2 [1], ИСО/МЭК 9796 [2–3], серии ИСО/МЭК 14888 [4–7] и серии ИСО/МЭК 10118 [8–11].
Шаблон:Razr — Основная часть стандарта дополнена одним приложением:
Приложение А (справочное) Контрольные примеры
1 Область применения
Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур обеспечения целостности, аутентичности, электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах. Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе ассиметричного криптографического алгоритма по ГОСТ Р 34.10–2012.
Стандарт рекомендуется использовать при создании, эксплуатации и модернизации систем обработки информации различного назначения.
2 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие стандарты:
- ГОСТ 28147–89 Системы обработки информации. Защита криптографическая. Алгоритмы криптографического преобразования
- ГОСТ Р 34.10–2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
Шаблон:Razr – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования – на официальном сайте Федерального агентства Российской Федерации по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный стандарт заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться заменяющим (измененным) стандартом. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
В настоящем стандарте применены следующие термины с соответствующими определениями.
3.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 в строку бит длины L2.
[ИСО/МЭК 10118–1, статья 3.10]
Шаблон:Razr — В настоящем стандарте понятия «строка бит длины 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]
Шаблон:Razr — В настоящем стандарте в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины «хэш-функция», «криптографическая хэш-функция», «функция хэширования» и «криптографическая функция хэширования» являются синонимами.
- 3.1.7 [электронная цифровая] подпись (signature); ЭЦП: Строка бит, полученная в результате процесса формирования подписи.
[ИСО/МЭК 14888–1, статья 3.12]
Шаблон:Razr — В настоящем стандарте в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины «электронная подпись», «цифровая подпись» и «электронная цифровая подпись» являются синонимами.
3.2 Обозначения
В настоящем стандарте используются следующие обозначения:
| множество всех двоичных векторов-строк конечной размерности (далее — векторов), включая пустую строку; | |
| размерность (число компонент) вектора (если – пустая строка, то ); | |
| множество всех -мерных двоичных векторов, где — целое неотрицательное число; нумерация подвекторов и компонент вектора осуществляется справа налево начиная с нуля; | |
| операция покомпонентного сложения по модулю 2 двух двоичных векторов одинаковой размерности; | |
| конкатенация векторов , т. е. вектор из , в котором левый подвектор из совпадает с вектором , а правый подвектор из совпадает с вектором ; | |
| конкатенация n экземпляров вектора А; | |
| кольцо вычетов по модулю ; | |
| операция сложения в кольце ; | |
| биективное отображение, сопоставляющее целому числу из его двоичное представление, т. е. для любого элемента кольца , где , , выполнено равенство ; | |
| отображение, обратное отображению , т. е. ; | |
| отображение, ставящее в соответствие вектору , , вектор ; | |
| операция присваивания переменной значения ; | |
| произведение отображений, при котором отображение действует первым; | |
| двоичный вектор, подлежащий хэшированию, , ; | |
| функция хэширования, отображающая вектор (сообщение) в вектор (хэш-код) ; | |
| инициализационный вектор функции хэширования, . |
4 Общие положения
Данный стандарт определяет две функции хэширования с длинами хэш-кода n=256 бит и n=512 бит.
5 Значения параметров
5.1 Инициализационные векторы
Значение инициализационного вектора IV для функции хэширования с длиной хэш-кода 512 бит равно . Значение инициализационного вектора IV для функции хэширования с длиной хэш-кода 256 бит равно .
5.2 Нелинейное биективное преобразование множества двоичных векторов
Нелинейное биективное преобразование множества двоичных векторов задается подстановкой Шаблон:Формула где .
Значения подстановки записаны ниже в виде массива :
- = (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).
5.3 Перестановка байт
Значения перестановки записаны ниже в виде массива :
- = (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).
5.4 Линейное преобразование множества двоичных векторов
Линейное преобразование множества двоичных векторов задается умножением справа на матрицу над полем , строки которой записаны ниже последовательно в шестнадцатеричном виде. Строка матрицы с номером j, , записанная в виде , где , , есть .
8e20faa72ba0b470 47107ddd9b505a38 ad08b0e0c3282d1c d8045870ef14980e 6c022c38f90a4c07 3601161cf205268d 1b8e0b0e798c13c8 83478b07b2468764 a011d380818e8f40 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 c3e9224312c8c1a0 effa11af0964ee50 f97d86d98a327728 e4fa2054a80b329c 727d102a548b194e 39b008152acb8227 9258048415eb419d 492c024284fbaec0 aa16012142f35760 550b8e9e21f7a530 a48b474f9ef5dc18 70a6a56e2440598e 3853dc371220a247 1ca76e95091051ad 0edd37c48a08a6d8 07e095624504536c 8d70c431ac02a736 c83862965601dd1b 641c314b2b8ee083
Здесь в одной строке записано 4 строки матрицы , при этом в строке с номером , записаны строки матрицы с номерами , в следующем порядке (слева направо) , , , . Результат умножения вектора b = … на матрицу есть вектор : Шаблон:Формула где
|
|
если | |
| если |
для всех .
5.5 Итерационные константы
Итерационные константы записаны в шестнадцатеричном виде. Значение константы, записанное в виде , где , , есть :
4b7ce09192676901a2422a08a460d31505767436cc744d23dd806559f2a64507;
9ab5176b12d699585cb561c2db0aa7ca55dda21bd7cbcd56e679047021b19bb7;
d3e20fe490359eb1c1c93a376062db09c2b6f443867adb31991e96f50aba0ab2;
a9d72c82ed03d675d8b71333935203be3453eaa193e837f1220cbebc84e3d12e;
bfcd1747253af5a3dfff00b723271a167a56a27ea9ea63f5601758fd7c6cfe57;
cffaa6b71c9ab7b40af21f66c2bec6b6bf71c57236904f35fa68407a46647d6e;
0992abc52d822c3706476983284a05043517454ca23c4af38886564d3a14d493;
f4892bcb929b069069d18d2bd1a5c42f36acc2355951a8d9a47f0dd4bf02e71e;
800a440bdbb2ceb17b2b8a9aa6079c540e38dc92cb1f2a607261445183235adb;
9fe76702af69334b7a1e6c303b7652f43698fad1153bb6c374b4c7fb98459ced;
8a1d71efea48b9caefbacd1d7d476e98dea2594ac06fd85d6bcaa4cd81f32d1b;
5d80ef9d1891cc86e71da4aa88e12852faf417d5d9b21b9948bc924af11bd720.
6 Преобразования
При вычислении хэш-кода сообщения используются следующие преобразования: Шаблон:Формула Шаблон:Формула где , , ; Шаблон:Формула где , , ; Шаблон:Формула где , , ;
7 Функция сжатия
Значение хэш-кода сообщения вычисляется с использованием итерационной процедуры. На каждой итерации вычисления хэш-кода используется функция сжатия: Шаблон:Формула-центр значение которой вычисляется по формуле: Шаблон:Формула-центр где .
Значения , вычисляются следующим образом: Шаблон:Формула-центр Шаблон:Формула-центр
8 Процедура вычисления хэш-функции
Исходными данными для процедуры вычисления хэш-кода является подлежащее хэшированию сообщение и — инициализационный вектор хэширования.
Алгоритм вычисления функции состоит из следующих этапов.
8.1 Этап 1
Присвоить начальные значения текущих величин:
- 1.1. ;
- 1.2. ;
- 1.3. ;
- 1.4. Перейти к этапу 2.
8.2 Этап 2
- 2.1. Проверить условие .
- При положительном исходе перейти к этапу 3.
- В противном случае выполнить последовательность вычислений:
- 2.2. Вычислить подвектор сообщения . Далее выполнить последовательность вычислений:
- 2.3. ;
- 2.4. ;
- 2.5. ;
- 2.6. ;
- 2.7. Перейти к шагу 2.1.
8.3 Этап 3
- 3.1. ;
- 3.2. ;
- 3.3. ;
- 3.4. ;
- 3.5. ;
|
, | для функции хэширования с длиной хэш-кода 512 бит; | |
| , | для функции хэширования с длиной хэш-кода 256 бит; |
- 3.7. Конец работы алгоритма. Значение величины , полученное на шаге 3.6, является значением функции хэширования .
Приложение А
(справочное)
Контрольные примеры
Данное приложение носит справочный характер и не является частью стандарта. Векторы из записываются в шестнадцатеричном виде. Вектор A , записанный в виде … , где , i = 0,...,n-1, есть Vec4( n–1)|| ||Vес4( 0).
А.1 Пример 1
Необходимо вычислить хэш-код сообщения
3130393837363534333231303938373635343332313039383736353433323130.
А.1.1 Для функции хэширования с длиной хэш-кода 512 бит
Присваиваются значения:
Длина сообщения , поэтому происходит заполнение неполного блока:
3130393837363534333231303938373635343332313039383736353433323130.
Вычисляется значение .
После преобразования S:
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc,
после преобразования P:
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc,
после преобразования L:
b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574.
Затем выполняется преобразование :
- Итерация 1
b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574,
82b3c516f9e2904080b1cd1ef7ec924286b7cf1cffe49c4c84b5c91afde69444,
2492ac996667e0ebdf45d95fc0beec2c432f8914b62d4efd3e5e37f14b097aea,
c0b64bc266c0b64bbe2d092067be2d09ec4e7ab0e0ec4e7a2cfdea48eb2cfdea,
e60059d4d8e0758024c73f6f3183653f56579189602ae4c21e7953ebc0e212a0
f8ff1cbf5cb3cc7511c1d6266ab47661b6f5881802a0e8576e0399773c72e073,
d1b6143b9c9288357758f8ef78278aa155f4d717dda7cb12b211e87e7f19203d,
ddbf4eb3d17755b2f6f29bd9b658f4114449d6ea14f8d7e8e6419e733bef177e
d0b00807642fd78f13f2c3ebc774e80de0e902d23aef2ee9a73d010807dae9c1
- Итерация 2
88be14f0b2da27973569cd2ba051301036f728bd1d7eec33f4d18af70c46cf1e,
18e77571e703d19548075c574ce5e50e0480c9c5b9f21d45611ab86cf32e352a
- Итерация 3
1a9387ecc257930e2d61014a1b5c9fc9e24e7d636eb1607e816dbaf927b8fca9,
03dc0a9c64d42543ccdb62960d58c17e0b5b805d08a07406ece679d5f82b70fe
- Итерация 4
df9f8055ffe3c004c8cde3b8bf78f95f3370d0a3d6194ac5782487defd83ca0f,
dbee312ea7301b0d6d13e43855e85db81608c780c43675bc93cfd82c1b4933b3
- Итерация 5
2fd97d7493784779046388469ae195c436fa7cba93f8239ceb5ffc818826470c,
7fb3f15718d90e889f9fb7c38f527bec861c298afb9186934a93c9d96ade20df
- Итерация 6
3e1135cfbefe244237555c676c153d99459bc382573aee2d85d30d99f286c5e7,
95efa4e104f235824bae5030fe2d0f170a38de3c9b8fc6d8fa1a9adc2945c413
- Итерация 7
6c8207594714e8e9c9c7aad694edc922d6b01e17285eb7e61502e634559e32f1,
7ea4385f7e5e40103bfb25c67e404c7524eec43e33b1d06557469c6049854304
- Итерация 8
4c47f7a9e13bb1db56c342034773023d617ff01cc546728e71dff8de5d128cac,
b2426da0e58d5cfe898c36e797993f902531579d8ecc59f8dd8a60802241a456
- Итерация 9
d4d710445389671291d70103f48fd4d4c01fc415e3fb7dc61c6088afa1a1e735,
5e0c9978670b25912dd1ede5bdd1cf18ed094d14c6d973b731d50570d0a9bca2
- Итерация 10
a5e61bb4654599581dd30c24c1ab877ad0687948286cfefaa7eef99f6068b315,
c1ddd840fe491393a5d460440e03bf451794e792c0c629e49ab0c1001782dd37
- Итерация 11
e374f088f2e5c29496e9695ce8957837107bb3aa56441af11a82164893313116,
3f75beaf2911c35d575088e30542b689c85b6b1607f8b800405941f5ab704284
- Итерация 12
c9a1eab800fb8cc5760b251f4db5cdef427052fa345613fd076451901279ee4c,
f35b0d889eadfcff73b6b17f33413a97417d96f0c4cc9d30cda8ebb7dcd5d1b0
- Итерация 13
7782ef127cd6b98290bf612558b4b60aa3cbc28fd94f95460d76b621cb45be70,
fc221dc8b814fc27a4de079d10097600209e5375776898961f70bded0647bd8f
Результат выполнения преобразования :
2754f6908cbbbac5d3ed0f522c50815c954135793fb1f5d905fee4736b3bdae2.
Изменяются значения переменных и :
00000000000000000000000000000000000000000000000000000000000001f8,
3130393837363534333231303938373635343332313039383736353433323130.
Результат выполнения преобразования :
3d2db69d6d3794622147a14f19a66e7f9037e1d662d34501a8901a5de7771d7c.
Результат выполнения преобразования :
fa1fbae42b1285c0352f227524bc9ab16254288dd6863dccd5b9f54a1ad0541b.
Хэш-кодом сообщения является значение
fa1fbae42b1285c0352f227524bc9ab16254288dd6863dccd5b9f54a1ad0541b.
А.1.2 Для функции хэширования с длиной хэш-кода 256 бит
Присваиваются значения:
Длина сообщения , поэтому происходит заполнение неполного блока:
3130393837363534333231303938373635343332313039383736353433323130.
Вычисляется значение .
После преобразования :
ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее,
после преобразования :
ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее,
после преобразования :
23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f15.
Затем выполняется преобразование :
- Итерация 1
23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f15,
12f5d778874d6a2110f7df708943682316f1dd72814b662d14f3db7483496e25,
f0f4fe6dc93a7818e9c061327951f35a99a6d819f5a29a0193d290ffa92ab25c,
659993f1f0e99993c0a6d24bf4c0a6d261d89053fe61d8903219ff8a6d3219ff
e549368917a0a2611d5e08c9c2fd5b3c563f18c0f68c410d84ae9d5fbdfb9340
68b90ed1221c36148187c448141b8c0026b39a767c0f1236fe458b1942dd1a12,
ecd95e282645a83930045858325f5afa2341dc110ad303110ef676d9ac63509b
ec30230ef3f5ef63d90441f6a3c992c85e58dc76048628f6285811d91bf28a36
18ee8f3176b2ebea3bd6cb8233694cea349769df88be26bf451cfab6a904a549
- Итерация 2
da22de93a66a66b19c7e6b5eea633511e611d68c8401bfcd0c7d0cc39d4a5eb9,
c502dab7e79eb94013fcd1ba64def3b916f18b63855d43d22b77fca1452f9866
- Итерация 3
ce0913f1253e7757915000cd674be12cc7f68e73ba26fb00fd74af4101805f2d,
8e5a4fe41fc790af29944f027aa2f10105d65cf60a66e442832bb9ab5020dc54
- Итерация 4
cd801ea9dd743a0d98d01ef0602b0e332067fb5ddd6ac1568200311920839286,
dee0b40df69997afef726f03bdc13cb6ba9287698201296f2fd8284f06d33ea4
- Итерация 5
169bd540af75e1610a546acd63d960bad595394cc199bf6999a5d5309fe73d5a,
675ea894d326432e1af7b201bc369f8ab021f6fa58da09678ffc08ef30db43a3
- Итерация 6
62615d907eb0551ad170990a86602088af98c83c22cdb0e2be297c13c0f7a156,
1bc204bf9506ee9b86bbcf82d254a112aea6910b6db3805e399cb718d1b33199
- Итерация 7
c89eb6b35167f159b7b005a43e5959a651a9b18cfc8e4098fcf03d9b81cfbb8d,
f30d791ed78bdee819022a3d78182242124efcdd54e203f23fb2dc7f94338ff9
- Итерация 8
018287e5a9f509c78d6c746adcd5426fb0a0ad5790dfb73fc1f191a539016daa,
1fc20f1e91a1801a4293d3f3aa9e91560fcc3810bb15f3ee9741c9b87452519f
- Итерация 9
bb4c9d580a224e9cd82e0e2069fc49ed367d5f94374435382b8fb6a8f5dd0409,
1a52f09d1e81515a36171e0b1a2809c50359bed90f2e78cbd89b7d4afa6d0466
- Итерация 10
f0b35d80a7317a7f76f83022f2526791ca8fdf678fcb337bd74fe5393ccb05d2,
764043744a0a93687e65aba8cfc25ec8714fb8e1bdc9ae2271e7205eaaa577c1
- Итерация 11
d6a1dae9a6dc6ddf52ce34af272f96d3159c8c624c3fe6e13d695c0bfc89add5,
9b1ce8ff26b445cb288c0aeccf84658eea91dbdf14828bf70110a5c9bd146cd9
- Итерация 12
b55f30c79982ca45628e8365d8798477e75a49c68199112a1d7b5a0f7655f2db,
133aeecede251eb81914b8ba48dcbc0b8a6fc63a292cc49043c3d3346b3f0829
- Итерация 13
14b21cffc51e3fa319ff433e76ef6adb0ef9f5e03c907fa1fcf9eca06500bf03,
e3889d8e40960453fd26431450bb9d29e8a78e78024656697caf698125ee83aa
Результат выполнения преобразования :
8d48552a0c0ce6bcba71bc802a4f5b2d2a07b12c22e25794178570341096fdc7.
Изменяются значения переменных и :
00000000000000000000000000000000000000000000000000000000000001f8,
3130393837363534333231303938373635343332313039383736353433323130.
Результат выполнения преобразования :
715aab7648d07eddbf87dc79c80516e6ffcbcf5678b0ac29ea00fa85c8173cc6.
Результат выполнения преобразования :
2088e482e2acf564e0e9795a51e4dd261f3f667985a2fcc40ac8631faca1709a.
Хэш-кодом сообщения является значение:
А.2 Пример 2
Пусть необходимо вычислить хэш-код сообщения
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ce8f0f2e5e220e5d1.
А.2.1 Для функции хэширования с длиной хэш-кода 512 бит
Присваиваются значения:
Длина сообщения , поэтому сначала преобразуется часть сообщения
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ce8f0f2e5e220e5d1.
Вычисляется значение .
После преобразования S:
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc,
после преобразования P:
fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc,
после преобразования L:
b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574.
Затем выполняется преобразование :
- Итерация 1
b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574b383fc2eced4a574,
93790ed02b3685585b750fc32cf44d925d6214de3c0585585b730ecb2cf440a5,
de5404e1428fa8bf47354d408be63aecb79693857f6ea8bf473d04e48be6eb00,
18985cf9428b7f8be6e684068fe66ee613c80ca8a83aa8eb03e843a8bfecbf00,
909aa733e1f52321a2fe35bfb8f67e92fbc70ef544709d5739d8faaca4acf126
f8ff1cbf5cb3cc7511c1d6266ab47661b6f5881802a0e8576e0399773c72e073,
d1b6143b9c9288357758f8ef78278aa155f4d717dda7cb12b211e87e7f19203d,
ddbf4eb3d17755b2f6f29bd9b658f4114449d6ea14f8d7e8e6419e733bef177e
d0b00807642fd78f13f2c3ebc774e80de0e902d23aef2ee9a73d010807dae9c1
- Итерация 2
88be14f0b2da27973569cd2ba051301036f728bd1d7eec33f4d18af70c46cf1e,
301aadd761d13df0b473055b14a2f74a45f408022aecadd4d5f19cab8228883a
- Итерация 3
1a9387ecc257930e2d61014a1b5c9fc9e24e7d636eb1607e816dbaf927b8fca9,
9b83492b9860a93cbca1c0d8e0ce59db04e10500a6ac85d4103304974e78d322
- Итерация 4
df9f8055ffe3c004c8cde3b8bf78f95f3370d0a3d6194ac5782487defd83ca0f,
e638e0a1677cdea107ec3402f70698a4038450dab44ac7a447e10155aa33ef1b
- Итерация 5
2fd97d7493784779046388469ae195c436fa7cba93f8239ceb5ffc818826470c,
1c7c8e19b2bf443eb3adc0c787a52a173821a97bc5a8efea58fb8b27861829f6
- Итерация 6
3e1135cfbefe244237555c676c153d99459bc382573aee2d85d30d99f286c5e7,
48fecfc5b3eb77998fb39bfcccd128cd42fccb714221be1e675a1c6fdde7e311
- Итерация 7
6c8207594714e8e9c9c7aad694edc922d6b01e17285eb7e61502e634559e32f1,
a48f8d781c2c5be417ae644cc2e15a9f01fcead3232e5bd53f18a5ab875cce1b
- Итерация 8
4c47f7a9e13bb1db56c342034773023d617ff01cc546728e71dff8de5d128cac,
e8a31b2e34bd2ae21b0ecf29cc4c37c75c4d11d9b82852517515c23e81e906a4
- Итерация 9
d4d710445389671291d70103f48fd4d4c01fc415e3fb7dc61c6088afa1a1e735,
34392ed32ea3756e32979cb0a2247c3918e0b38d6455ca88183356bf8e5877e5
- Итерация 10
a5e61bb4654599581dd30c24c1ab877ad0687948286cfefaa7eef99f6068b315,
6a82436950177fea74cce6d507a5a64e54e8a3181458e3bdfbdbc6180c9787de
- Итерация 11
e374f088f2e5c29496e9695ce8957837107bb3aa56441af11a82164893313116,
7b97603135e2842189b0c9667596e96bd70472ccbc73ae89da7d1599c72860c2
- Итерация 12
c9a1eab800fb8cc5760b251f4db5cdef427052fa345613fd076451901279ee4c,
39ec8a88db635b46c4321adf41fd9527a39a67f6d7510db5044f05efaf721db5
- Итерация 13
7782ef127cd6b98290bf612558b4b60aa3cbc28fd94f95460d76b621cb45be70,
36959ac8fdda5b9e135aac3d62b5d9b0c279a27364f50813d69753b575e0718a
Результат выполнения преобразования :
98ef779ef7c7a46aa7843b8889731f482e5d221e8e2cea852e816cdac407c7af.
Изменяются значения переменных и :
0000000000000000000000000000000000000000000000000000000000000200,
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ce8f0f2e5e220e5d1.
Длина оставшейся части сообщения меньше 512, поэтому происходит заполнение неполного блока.
000000000000000000000000000000000000000000000001fbe2e5f0eee3c820.
Результат выполнения преобразования :
e8b84d0706811cf92dffb8f96e61493dc382795c6ed7a17b64685902cbdc878e.
Изменяются значения переменных и :
0000000000000000000000000000000000000000000000000000000000000240,
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ee4d3d8d6d104adf1.
Результат выполнения преобразования :
703dc5d74e1ace5bcd3458af43bb456e837326088f2b5df14bf83997a0b1ad8d.
Результат выполнения преобразования :
7613966de4ee00531ae60f3b5a47f8dae06915d5f2f194996fcabf2622e6881e.
Хэш-кодом сообщения является значение:
7613966de4ee00531ae60f3b5a47f8dae06915d5f2f194996fcabf2622e6881e.
А.2.2 Для функции хэширования с длиной хэш-кода 256 бит
Присваиваются значения:
Длина сообщения , поэтому сначала преобразуется часть сообщения
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ce8f0f2e5e220e5d1.
Вычисляется значение .
После преобразования S:
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,
после преобразования P:
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,
после преобразования L:
23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f15.
Затем выполняется преобразование :
- Итерация 1
23c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f1523c5ee40b07b5f15,
033f1cbe55997f39cb331dad525bb7f3cd2406b042aa7f39cb351ca5525bbac4,
111f14950ce8570be4aecd9f0e472fd2d9e231ad2c38570be46a14000e47a586,
87c8475d0c0e2c0e47470abce8473847a73b4157572f57a56cd15b2d0bd20b86,
a3a72a2e0fb5e6f812681222fec037b0db972086a395a387a6084508cae13093
68b90ed1221c36148187c448141b8c0026b39a767c0f1236fe458b1942dd1a12,
f3a3041b65148f93f5c986f293bb7cfcef92288ac34df08f63c8f6362cd8f1f0,
ec30230ef3f5ef63d90441f6a3c992c85e58dc76048628f6285811d91bf28a36
18ee8f3176b2ebea3bd6cb8233694cea349769df88be26bf451cfab6a904a549
- Итерация 2
da22de93a66a66b19c7e6b5eea633511e611d68c8401bfcd0c7d0cc39d4a5eb9,
9f50697b1d9ce23680db1f4d35629778864c55780727aa79eb7bb7d648829cba
- Итерация 3
ce0913f1253e7757915000cd674be12cc7f68e73ba26fb00fd74af4101805f2d,
4183027975b257e9bc239b75c977ecc52ddad82c091e694243c9143a945b4d85
- Итерация 4
cd801ea9dd743a0d98d01ef0602b0e332067fb5ddd6ac1568200311920839286,
0368c884fcee489207b5b97a133ce39a1ebfe5a3ae3cccb3241de1e7ad72857e
- Итерация 5
169bd540af75e1610a546acd63d960bad595394cc199bf6999a5d5309fe73d5a,
c31433ceb8061e46440144e65553976512e5a9806ac9a2c771d5932d5f6508c5
- Итерация 6
62615d907eb0551ad170990a86602088af98c83c22cdb0e2be297c13c0f7a156,
5d0ae97f252ad04534503fe5f52e9bd07f483ee3b3d206beadc6e736c6e754bb
- Итерация 7
c89eb6b35167f159b7b005a43e5959a651a9b18cfc8e4098fcf03d9b81cfbb8d,
a59aa21e6ad3e330deedb9ab9912205c355b1c479fdfd89a7696d7de66fbf7d3
- Итерация 8
018287e5a9f509c78d6c746adcd5426fb0a0ad5790dfb73fc1f191a539016daa,
9903145a39d5a8c83d28f70fa1fbd88f31b82dc7cfe17b54b50e276cb2c4ac68
- Итерация 9
bb4c9d580a224e9cd82e0e2069fc49ed367d5f94374435382b8fb6a8f5dd0409,
330e6cb1d04961826aa263f2328f15b4f3370175a6a9fd6505b286efed2d8505
- Итерация 10
f0b35d80a7317a7f76f83022f2526791ca8fdf678fcb337bd74fe5393ccb05d2,
ad347608443ab9c9bbb64f633a5749ab85c45d4174bfd78f6bc79fc4f4ce9ad1
- Итерация 11
d6a1dae9a6dc6ddf52ce34af272f96d3159c8c624c3fe6e13d695c0bfc89add5,
a065c55e2168c31576a756c7ecc1a9129cd3d207f8f43073076c30e111fd5f11
- Итерация 12
b55f30c79982ca45628e8365d8798477e75a49c68199112a1d7b5a0f7655f2db,
2a6549f7a5cd2eb4a271a7c71762c8683e7a3a906985d60f8fc86f64e35908b2
- Итерация 13
14b21cffc51e3fa319ff433e76ef6adb0ef9f5e03c907fa1fcf9eca06500bf03,
dad73ab73b7e345f46435c690f05e94a5cb272d242ef44f6b0a4d5d1ad888331
Результат выполнения преобразования :
aaca5efe1d8d51b2e1636e34f5becc077d930114fefaf176b69c15ad8f2b6878.
Изменяются значения переменных и :
0000000000000000000000000000000000000000000000000000000000000200,
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ce8f0f2e5e220e5d1.
Длина оставшейся части сообщения меньше 512, поэтому происходит заполнение неполного блока:
000000000000000000000000000000000000000000000001fbe2e5f0eee3c820.
Результат выполнения преобразования :
c96b285fa297b9d39ae6afd8b9001d97bb718a65fcc53c41b4ebf4991a617227.
Изменяются значения переменных и :
0000000000000000000000000000000000000000000000000000000000000240,
20faf2fee5e2202ce8f6f3ede220e8e6eee1e8f0f2d1202ee4d3d8d6d104adf1.
Результат выполнения преобразования :
75b8e74d2afae960835ae6a5f03575559c9fd839783ffcd5cf99bd61566b4818.
Результат выполнения преобразования :
c345e53d7f84875d5068e4eb743f0793d673f09741f9578471fb2598cb35c230.
Хэш-кодом сообщения является значение:
Библиография[1]
| Шаблон:Nobr (ISO 2382-2:1976) |
Системы обработки информации. Словарь. Часть 2. Арифметические и логические операции (Data processing — Vocabulary — Part 2: Arithmetic and logic operations) |
| Шаблон:Nobr (ISO/IEC 9796-2:2010) |
Информационные технологии. Методы обеспечения безопасности. Схемы цифровой подписи, обеспечивающие восстановление сообщений. Часть 2. Механизмы на основе целочисленной факторизации (Information technology — Security techniques — Digital signatures with appendix — Part 2: Integer factorization based mechanisms) |
| Шаблон:Nobr (ISO/IEC 9796-3:2006) |
Информационные технологии. Методы обеспечения безопасности. Схемы цифровой подписи, обеспечивающие восстановление сообщений. Часть 3. Механизмы на основе дискретного логарифма (Information technology — Security techniques — Digital signature schemes giving message recovery — Part 3: Discrete logarithm based mechanisms) |
| Шаблон:Nobr (ISO/IEC 14888-1:2008) |
Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 1. Общие положения (Information technology — Security techniques — Digital signatures with appendix — Part 1: General) |
| Шаблон:Nobr (ISO/IEC 14888-2:2008) |
Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 2. Механизмы, основанные на разложении на множители (Information technology — Security techniques — Digital signatures with appendix — Part 2: Integer factorization based mechanisms) |
| Шаблон:Nobr (ISO/IEC 14888-3:2006) |
Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 3. Механизмы на основе дискретного логарифма (Information technology — Security techniques — Digital signatures with appendix — Part 3: Discrete logarithm based mechanisms) |
| Шаблон:Nobr (ISO/IEC 14888-3:2006/Amd 1:2010) |
Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 3. Механизмы на основе дискретного логарифма. Изменение 1. Алгоритм русской цифровой подписи эллиптической кривой, алгоритм цифровой подписи Шнора, алгоритм цифровой подписи Шнора для эллиптической кривой, и полный алгоритм цифровой подписи Шнора для эллиптической кривой (Information technology — Security techniques — Digital signatures with appendix — Part 3: Discrete logarithm based mechanisms. Ammendment 1. Elliptic Curve Russian Digital Signature Algorithm, Schnorr Digital Signature Algorithm, Elliptic Curve Schnorr Digital Signature Algorithm, and Elliptic Curve Full Schnorr Digital Signature Algorithm) |
| Шаблон:Nobr (ISO/IEC 10118-1:2000) |
Информационные технологии. Методы защиты информации. Хэш-функции. Часть 1. Общие положения (Information technology — Security techniques — Hash-functions — Part 1: General) |
| Шаблон:Nobr (ISO/IEC 10118-2:2010) |
Информационные технологии. Методы защиты информации. Хэш-функции. Часть 2. Хэш-функции с использованием алгоритма шифрования n-битными блоками (Information technology — Security techniques — Hash-functions — Part 2: Hash-functions using an n-bit block cipher) |
| Шаблон:Nobr (ISO/IEC 10118-3:2004) |
Информационные технологии. Методы защиты информации. Хэш-функции. Часть 3. Выделенные хэш-функции (Information technology — Security techniques — Hash-functions — Part 3: Dedicated hash-functions) |
| Шаблон:Nobr (ISO/IEC 10118-4:1998) |
Информационные технологии. Методы защиты информации. Хэш-функции. Часть 4. Хэш-функции с применением арифметики в остаточных классах (Information technology — Security techniques — Hash-functions — Part 4: Hash-functions using modular arithmetic) |
| УДК 681.3.06:006.354 | ОКС 35. 040 | ОКСТУ 5002 | П 85 |
Ключевые слова: информационная технология, криптографическая защита информации, функция хэширования, хэш-функция, электронная цифровая подпись, асимметричный криптографический алгоритм, системы обработки информации, защита сообщений, подтверждение подписи.