GOST_R_34.11-94_Pub (1014209), страница 2
Текст из файла (страница 2)
Для j от 2 от 4 выполняем следующее:U ← A (U ) ⊕ C j , V ← A ( A (V )) , W ← U ⊕ V , K j ← P (W )2.1.3. Выход ( K1 , K 2 , K 3 , K 4 )в) Шифрующее преобразованиеОсновным функциональным предназначением является получение si из hi−1 . Пусть64hi−1 = hi4−1 || hi3−1 || hi2−1 || hi1−1 , где hi−j 1 ∈ {01} , j = 1, 4, а si = si4 || si3 || si2 || si1 , где64sij ∈ {01} , j = 1, 4 . Тогдаsij ← EK j (hi−j 1 ) ,где j = 1, 4 , EK - шифрование по ГОСТ 28147 – 89 в режиме простой замены.Схематически это изображено на Рис. 8.hi3−1hi4−1K4EK3si4hi2−1EK2Esi2si3hi1−1K1Esi1Рис.
8 Шифрующее преобразованиеЗамечание 4 Как видно si = si4 || si3 || si2 || si1 - конкатенация 64 битных слов, полученных врезультате шифрования. Следовательно, в свете замечания 3, si можно было бы атаковатьпо частям, но это предотвращается казуальным генерированием ключей (в данном случаеmi и hi−1 выступают в роли ключа для выведения ключей).Замечание 5 (S-блоки при шифровании в режиме простой замены) Согласно стандартаГОСТ 28147 – 89 S-блоки не определены, но указано, что они должны назначатьсявышестоящим органом.
Следовательно они должны учитываться как данныеинициализации функции хэширования, и в определенной степени влияют на ее свойства.Учебный центр “Информзащита”72. Функция сжатия финальной итерацииФункция сжатия финальной итерации производит итоговую хэш величину, зависящуюот результата хэширования последовательным методом, контрольной суммы по mod 2и длины сообщения в битах приведенной по mod 2256 :ml′× hl−1 ×Σl × Ll → hитог ,256где ml′, hl−1 , Σl , Ll ∈ {01} , ml′ - последний набитый нулями блок (если необходимо, см.Рис. 3). Сначала вычисляется битовая длина последнего (ненабитого) блока сообщенияml ≤ 256 бит.
Если ml < 256 , то производится его набивка справа нулями до256− mlдостижения длины 256 бит и получается новый блок ml′ ← {0}ml . Вычисляютсяитоговая контрольная сумма Σl ← Σl−1 ⊗ ml′ и длина всего сообщенияLl ← Ll−1 + m′ (mod 2256 ) . Параллельно выполняется последняя итерацияhl ← χ (m′, hl−1 ) . Затем вычисляются перемешивающие преобразования hl +1 ← χ ( Ll , hl )и hитог ← χ (Σl , hl +1 ) , давая в результате итоговую хэш величину hитог .Теперь дадим формальное описание алгоритма:Алгоритм 2 Вычисление хэш функции по ГОСТ Р 34.11 – 94Вход: двоичное сообщение M , блоки замен для шифрования в режиме простой замены256по ГОСТ 28147-89, начальный вектор IV ∈ {01}Выход: хэш величина hитог для сообщения M .2561. Инициализация алгоритма h ← IV , Σ ← {0}256, L ← {0}.2.Функция сжатия внутренних итераций Пока M > 256 выполняем следующее:2.1.
h ← χ (ms , h) (итерация метода последовательного хэширования),2.2. L ← L + 256 (mod 2 256 ) (итерация вычисления длины сообщения),2.3. Σ ← Σ ⊗ ms (итерация вычисления контрольной суммы).3.Иначе (функция сжатия финальной итерации)3.1. L ← L + m (mod 2256 ) (вычисление полной длины сообщения),256− m3.2. m′ ← {0}m (набивка последнего блока),3.3. Σ ← Σ ⊗ m′ (вычисление контрольной суммы сообщения),3.4.
h ← χ ( m′, h) ,3.5. h ← χ ( L, h) (MD - усиление),3.6. hитог ← χ (Σ, h) .4.Выход ( hитог )Учебный центр “Информзащита”8Заключение Из приведенного выше описания хэш функции по ГОСТ Р 34.11 – 94 можносделать следующие выводы:− Булева функция перемешивающего преобразования линейна и ее применениенеоправданно – это приводит к снижению скорости обработки данных из-забольшого числа повторений перемешивающего преобразования для достижения“заданного” уровня безопасности (в первую очередь SAC);− Шифрующее преобразование, при определенных допущениях, невозможноатаковать по частям, а, следовательно, функцию сжатия можно считать стойкой кстолкновениям (CRHF);− Алгоритм хэширования является методом последовательного хэширования с MD –усилением (коэффициент сжатия 2);− Используется постериорное форматирование сообщения;− Стойкость хэш функции в известной мере зависит от выбора блоков замен вшифрующем преобразовании, к тому же они один из параметров инициализацииалгоритма хэширования;− IV в стандарте не фиксирован, а это подразумевает, что необходимо выработатьправила его использования (см.
Замечание 2), к тому же имеется большой классатак на псевдостолкновения при не фиксированном IV [3];− скорость обработки данных хэш функцией значительно меньше чем у аналогичныхпо внешним параметрам HAVAL, SHA-256, а тем более остального MD-семейства,из-за попыток ликвидировать очевидные оплошности конструированияусложнением функции сжатия;− приблизительная скорость реализации 4/5 от скорости реализации лежащего воснове алгоритма шифрования;− зависимость получаемой хэш величины от длины исходного сообщения исключаетвозможность проведения атаки на длинные сообщения для второго прообраза;− нет обоснования выбора конструкции, функций, констант.1.
ГОСТ Р 34.11 – 94. "Информационная технология. Криптографическаязащита информации. Функция хэширования".2. M. Bellare, R. Canetti, and H. Krawczyk. Keying hash functions for messageauthentication. Advances in Cryptology - Crypto 96 Proceedings, Lecture Notesin Computer Science Vol. 1109, N.
Koblitz ed, Springer-Verlag, 1996.3. Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone Handbook ofApplied Cryptography CRC Press ISBN: 0-8493-8523-7 October 1997, 816pagesУчебный центр “Информзащита”9.