2.1.2. Функция хэширования по ГОСТ Р 34.11-94
2. 1. 2. Функция хэширования по ГОСТ Р 34. 11-94 Общие сведения Указанный стандарт определяет процедуру вычисления хэш-функции для любой последовательности двоичных данных. Функция хэширования заключается в сопоставлении произвольному набору данных в виде последовательности двоичных символов его образа фиксированной небольшой длины, что позволяет использовать эту функцию в процедурах электронной подписи для сокращения времени формирования и проверки подписи. Эффект сокращения времени достигается за счет вычисления подписи только под образом подписываемого набора данных. Область применения Указанный стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур электронной подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах. Определенная в стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе ассиметричного криптографического алгоритма по ГОСТ Р 34. 10-94 “Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе ассиметричного криптографического алгоритма”. Обозначения В настоящем документе используются следующие обозначения: B* – множество всех конечных слов в алфавите B={0, 1}. Чтение слов и нумерация знаков алфавита (символов) осуществляется справа налево (номер правого символа в слове равен единице, второго справа - двум и т. д. ). |A| – длина слова A Î B*.
Vk (2) – множество всех бинарных слов длины k. A||B – конкатенация слов A, B Î B* – слово длины |A|+|B|, в котором левые |A| символов образуют слово A, а правые |B| символов образуют слово B. Можно также использовать обозначение A||B = AB. Ak – конкатенация k экземпляров слова A(AÎ B*). < N> k – слово длины k, содержащее двоичную запись вычета N(mоd2k) неотрицательного целого числа N. A` – неотрицательное целое число, имеющее двоичную запись A (AÎ B*). & – побитовое сложение слов одинаковой длины по модулю 2. & ’ – сложение по правилу A& ’B = < A`+B`>, (k=|A|+|B|). M – последовательность двоичных символов, подлежащая хэшированию (сообщение в системе ЭЦП), MÎ B*. h – хэш-функция, отображающая последовательность MÎ B* в слово h(M)Î V256(2). Ek(A) – результат зашифрования слова A на ключе K с использованием алгоритма шифрования в режиме простой замены (KÎ V256(2), AÎ V64(2)). H – стартовый вектор хэширования. e: = g – присвоение параметру e значения g. Î – обозначение принадлежности диапазону. Общие положения Под хэш-функцией h понимается зависящее от параметра [стартового вектора хэширования H, являющегося словом из V256(2)] отображение: h : B* ® V256(2). Для определения хэш-функции необходимы: · алгоритм вычисления шаговой функции хэширования c, т. е. отображения: c: V256(2) x V256(2) ® V256(2) · описание итеративной процедуры вычисления значения хэш-функции h. 2. 1. 3. Шаговая функция хэширования Алгоритм вычисления шаговой функции хэширования включает в себя три части, реализующие последовательно: 1. генерацию ключей - слов длины 256 битов с использованием исходных данных слов H, MÎ V256(2); 2. шифрующее преобразование - зашифрование 64-битовых подслов слова H на ключах Ki (I=1, 2, 3, 4) с использованием алгоритма шифрования в режиме простой замены с исходными данными: H=h4||h3||h2||h1, h1Î V64(2), i=1.. 4 и набор ключей K1, K2, K3, K4; в результате данного этапа образуется последовательность:
S=s4||s3||s2||s1; 3. перемешивающее преобразование результата шифрования с исходными данными в виде: слово H, MÎ V256(2) и слово SÎ V256(2), Процедура вычисления хэш-функции Исходными данными для процедуры вычисления значения функции h является подлежащая хэшированию последовательность MÎ B*. Параметром является стартовый вектор хэширования H - произвольное фиксированное слово из V256(2). Процедура вычисления функции h на каждой итерации использует следующие величины: MÎ B* - часть последовательности M, не прошедшая процедуру хэширования на предыдущих итерациях; HÎ V256(2) - текущее значение хэш-функции; SÎ V256(2) -текущее значение контрольной суммы; LÎ V256(2) - текущее значение длины обработанной на предыдущих итерациях части последовательности M. Хешируемое слово: два. Р=3, q=7, n=p*q=3*7=21 Два в цифровом эквиваленте можно представить: 531
ХЭШ-код сообщения «ДВА» равен 4. Пример. Получить ХЭШ-код для сообщения HASHING при помощи Х-509 с р=17, q=19. N=323 HASHING=72_65_83_72_73_78_71 H_01001000; A_01000001; S_01010011; H_01001000; I_01001001; N_01001110; G_01000111. Ho=0; M1=11110100; M2=11111000; M3=11110100; M4=11110001; M5=11110101; M6=11110011; M7=11110100; M8=11111000; M9=11110100; M10=11111001; M11=11110100; M12=11111110; M13=11110100; M14=11110111.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|