Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_практикум. Защита инфы.doc
Скачиваний:
77
Добавлен:
03.05.2015
Размер:
379.9 Кб
Скачать

2.1 Методики определения хэш-функций

2.1.1. Функция хэширования sha

Алгоритм безопасного хэширования SHA (Secure Hash Algorithm) принят в качестве стандарта США в 1992 г. и предназначен для использования совместно с алгоритмом цифровой подписи, определенным в стандарте DES. При вводе сообщения M алгоритм вырабатывает 160-битовое выходное сообщение, называемое сверткой (Message Digest), которая и используется при выработке ЭЦП.

Рассмотрим работу алгоритма подробнее. Прежде всего исходное сообщение дополняется так, чтобы его длина стала кратной 512 битам. При этом сообщение дополняется даже тогда, когда его длина уже кратна указанной. Процесс происходит следующим образом: добавляется единица, затем столько нулей, сколько необходимо для получения сообщения, длина которого на 64 бита меньше, чем кратная 512, и затем добавляется 64-битовое представление длины исходного сообщения. Далее инициализируются пять 32-битовых переменных следующими шестнадцатеричными константами: A=67452301 B= EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0. Далее эти пять переменных копируются в новые переменные a, b, c, d и e соответственно. Операции в главном цикле сводятся к вычислению функции хэширования. После окончания главного цикла значения a, b, c, d и e складываются с содержимым A, B, C, D и E соответственно и осуществляется переход к обработке следующего 512-битового блока расширенного сообщения. Выходное значение хэш-функции является конкатенацией значений A, B, C, D и E.

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(AB*).

<N>k – слово длины k, содержащее двоичную запись вычета N(mоd2k) неотрицательного целого числа N.

A` – неотрицательное целое число, имеющее двоичную запись A (AB*).

& – побитовое сложение слов одинаковой длины по модулю 2.

&’ – сложение по правилу A&’B = <A`+B`>, (k=|A|+|B|).

M – последовательность двоичных символов, подлежащая хэшированию (сообщение в системе ЭЦП), MB*.

h – хэш-функция, отображающая последовательность MB* в слово h(M)V256(2).

Ek(A) – результат зашифрования слова A на ключе K с использованием алгоритма шифрования в режиме простой замены (KV256(2), AV64(2)).

H – стартовый вектор хэширования.

e := g – присвоение параметру e значения g.

 – обозначение принадлежности диапазону.

Общие положения

Под хэш-функцией h понимается зависящее от параметра [стартового вектора хэширования H, являющегося словом из V256(2)] отображение:

h : B* V256(2).

Для определения хэш-функции необходимы:

  • алгоритм вычисления шаговой функции хэширования c, т.е. отображения:

c : V256(2) x V256(2) V256(2)

  • описание итеративной процедуры вычисления значения хэш-функции h.