ВВЕДЕНИЕ
Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности в государственных и. коммерческих структурах.
Криптографические методы защиты информации являются объектом серьезных научных исследований и стандартизации на национальных, региональных и международных уровнях.
Настоящий стандарт определяет процедуру вычисления хэш-функции для любой последовательности двоичных символов.
Функция хэширования заключается в сопоставлении произвольного набора данных в виде последовательности двоичных символов и его образа фиксированной небольшой длины, что 'позволяет использовать эту функцию в процедурах электронной цифровой подписи для сокращения времени подписывания и проверки подписи. Эффект сокращения времени достигается за счет вычисления подписи только под образом подписываемого набора данных.
Государственный стандарт российской федерации
Информационная технология
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ Функция хэширования
Information technology. Cryptographic Data Security. Hashing function
Дата введения 1995-01-01
1 Область применения
Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных, системах.
Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10.
2 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие стандарты:
ГОСТ 28147—89 Системы обработки информации. Защита криптографическая. Алгоритмы криптографического преобразования.
ГОСТ Р 34.10—94 Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
3 Обозначения
В настоящем стандарте используются следующие обозначения:
В*—множество всех конечных слов в алфавите В={0,1}. Чтение слов и нумерация знаков алфавита (символов) осуществляются справа налево (номер правого символа в слове равен единице, 'второго справа — двум и т. д.).
эрого
справа — двум и т. , ]А|—длина слова А 6
В*.
A k—конкатенация k экземпляров слова А (А(: В*). ^N>i;—слово длины k, содержащее двоичную запись вычета N(mod-2") неотрицательного целого числа N.
А — неотрицательное целое число, имеющее двоичную запись А (А (-Б*).
ф — побитовое сложение слов одинаковой длины по модулю 2.
€> '—сложение по правилу А ®'В = <A+B>k, (k=|A[=|B|).
М — последовательность- двоичных символов, подлежащая хэшированию 'сообщение в системах ЭЦП), М 6 В*.
h.—хэш-функция, отображающая последовательность Мб В* в слово h(M)?V25e(2).
Ек(А) —результат зашифрования слова А на ключе К с использованием алгоритма шифрования по ГОСТ 28147 в режиме простой замены (К СУ25б(2), А(-Ve4(2)).
Н — стартовый вектор хэширования.
e:=g — присвоение параметру е значения g.
4 Общие положения
Под хэш-функцней h понимается зависящее от параметра (стартового вектора хэширования Н, являющегося слово'м из У25б(2)] отображение
i': B^----V^(2).
Для определения ^эш-функции необходимы:
— алгоритм (исчисления 'шаговой функции хэширования х, т. е. отображения;..'"'' ^
1- '';' »: V^(2) xV^(2)-"--\W2); •
— описание итеративной процедуры вычисления значения хэш-функции. h.
S ШАГОВАЯ ФУНКЦИЯ ХЭШИРОВАНИЯ
Алгоритм вычисления шаговой фикции хэширования включает
в себя три части, реализующие последовательно:
— генерацию ключей—слов длины 256 битов;
— шифрующее преобразование—зашифрование 64-битных яодслов слова Н на ключах Ki (i=l, 2, 3, 4) с использованием -алгоритма по ГОСТ 28147 в режиме простой замены;
— перемешивающее преобразование результата шифрования.
5.1 Генерация ключей, РассмотримХ=(Ьгвб, bass, .... bi)eV25e(2). Пусть Х==Х4||Хз||х2||х,=
^(вИ-и...!!'')^ . -^IMl.-.lISi, " • • __
x,=(bix64 ,..., b(i-ux64+i)eV(>t(2), i= 1,4;
'^(b/xie,..., b(j-i)xi6+i)<'Vie(2), 1=1,16;
где
Sk=(bkx8,..., b(k-i)x8±i)eVg(2), k==f,32.. . . Обозначают A(X)=(Xl®X2)l,|x4|]xз||x2.
-.Используют преобразование Р: У25с(2)-——-»-У25б(2)
•слова ^11. •• IKi в слово ^(32)'l. ..11^ »i),
тде (p(i+l+4(k-l))=8i+k, 1=0-3, k=l—8.
Для генерации ключей необходимо использовать следующие
исходные данные:
— слова Н, МеУа5б(2);
— параметры: слова Ci (i=2, 3, 4), имеющие значения
C^Ci^O25» и Cg^W'WM^O8!8)^^8)4^^. При вычислении ключей реализуется следующий алгоритм:
1 Присвоить значения
i:==l, U:=H, V:=M. .
2 Выполнить вычисление W==U^V, K,--=P(W).
3 Присвоить i:-=i+l.
4 Проверить условие i=5.
При положительном исходе перейти к шагу 7. При отрицатель*,-,
иом — перейти к шагу 5. • . .5 Выполнить вычисление _
U:=A(U)^Ci, V:==A(A(V)), W:==Ui®V, Ki=P(W).
6 Перейти к шагу 3.
7 Конец работы алгоритма.
5.2 Шифрующее преобразование
• На данном этапе осуществляется зашифрование 64-битных под-слов слова Н на ключах k| (i=l, 2, 3, 4).
Для шифрующего преобразования необходимо использовать следующие исходные данные:
Н=-МЬзМЬ,, h,(EV,;4(2), i==L4
и набор ключей Кь К2, Кз, К4. Реализуют алгоритм зашифрования и получают слова
s,--EK,(hi), где 1=1, 2, 3, 4. В результате данного этапа образуется последовательность.
S- с. "о 11с- 1|о
==S4iiS^|Sai|S). 5.3 Перемешивающее преобразование
bia данном этапе осуществляется перемешивание полученной последовательности с применением регистра сдвига.
Исходными данными являются:
. слова Н, M(?V25e(2) и слово S 6 Vase (2).
Пусть отображение
ф:У2^(2)----^Уйб(2) преобразует слово
"iJ-.. hi, ^ev,„(2). i=i~i6'
в слово
^Ф^зФ^зФ^Ф^зФ^М- • -ha.
Тогда з качестве значения шаговой функции хэширования принимается слово _ _. '
х(М, ^^'"(Н^МФ^З))), где i|)' — i-я степень преобразования ij).