Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...