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

2.1.3. Шаговая функция хэширования

Алгоритм вычисления шаговой функции хэширования включает в себя три части, реализующие последовательно:

  1. генерацию ключей - слов длины 256 битов с использованием исходных данных слов H, MV256(2);

  2. шифрующее преобразование - зашифрование 64-битовых подслов слова H на ключах Ki (I=1, 2, 3, 4) с использованием алгоритма шифрования в режиме простой замены с исходными данными:

H=h4||h3||h2||h1, h1V64(2), i=1..4 и набор ключей K1,K2,K3,K4; в результате данного этапа образуется последовательность:

S=s4||s3||s2||s1;

  1. перемешивающее преобразование результата шифрования с исходными данными в виде: слово H, MV256(2) и слово SV256(2),

Процедура вычисления хэш-функции

Исходными данными для процедуры вычисления значения функции h является подлежащая хэшированию последовательность MB*. Параметром является стартовый вектор хэширования H - произвольное фиксированное слово из V256(2).

Процедура вычисления функции h на каждой итерации использует следующие величины:

MB* - часть последовательности M, не прошедшая процедуру хэширования на предыдущих итерациях;

HV256(2) - текущее значение хэш-функции;

SV256(2) -текущее значение контрольной суммы;

LV256(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.

3. Лабораторное задание

Провести моделирование хэш-функции, для этого разработать программу на языке высокого уровня или на макроязыке MathCAD, реализующую алгоритм вычисления хэш-функции.

В качестве примера хэш-функции реализовать следующую итерационную операцию:

,

где Mi – элемент исходного сообщения,

Hi-1 – значение хэш-функции на предыдущем шаге,

mod n – остаток от деления на n, где n=pq,

р и q – большие простые числа,

 - исключающее ИЛИ.

Длина блока представляется в октетах, каждый октет разбит пополам и к каждой половине спереди приписывается полу-октет, состоящий из двоичных единиц.

4. Содержание отчета

  • название и цель работы;

  • описание алгоритма вычисления хэш-функции;

  • результаты работы программы (исходное сообщение, стартовый вектор хэширования, хэш-функция);

  • вывод.

5. Контрольные вопросы

  1. Дайте определение хэш-функции.

  2. В чем заключается необходимость вычисления хэш-функции?

  3. Какими свойствами должна обладать хэш-функция?

  4. Приведите классификацию криптографических хэш-функций.

  5. Назовите методы построения хэш-функций.

  6. Особенности построения хэш-функции без ключа.

  7. Особенности построения хэш-функции с ключом.

  8. Алгоритм хэширования SHA, его особенности.

  9. Особенности алгоритма ГОСТ Р 34.11-94, его параметры.