Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка МОИБ..doc
Скачиваний:
131
Добавлен:
10.06.2015
Размер:
1.03 Mб
Скачать

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

1.Вызов рабочего окна производится из главного меню по пункту EDS(ЭЦП). В окне представлены два поля МО И МР для сообщений отправителя и получателя, соответственно. Отправляемое сообщение вводится в поле МО в виде последовательности десятичных цифр произвольной длины. В качестве алгоритма хэширования реализован недопустимо примитивный для реальных систем алгоритм: вычисление вычета по модулюN=8014003 построчной суммы всего текста. В качестве параметров ЭЦПRSAвыбраны и вычислены следующие значения:

N=PQ= 4001 2003 = 8014003;

 (N) = (P-1)(Q-1) = 4000 2002 = 8008000;

E= 986311,D= 7927

2.Произвести передачу трех различных текстов с проверкой подлинности сообщений и их авторства. Все данные зафиксировать в отчете.

3.Произвести имитацию подмены текста в сети связи, изменив одну из цифр в полученном сообщении. Прокомментируйте реакцию получателя.

4.С учетом особенностей реализованного в данной учебной программе алгоритма хэширования произведите поиск двух-трех коллизий. Учтите, что если в сообщении М последняя строка не полная, то ее младший разряд сдвигается влево.

121

9. Общие сведения

9.1. Однонаправленные хэш-функции

Хэш-функция предназначена для сжатия подписываемого документа M до нескольких десятков или сотен бит. Хэш-функция h(·) принимает в качестве аргумента сообщение (документ) M произвольной длины и возвращает хэш-значение h(M)=H фиксированной длины. Обычно хэшированная информация является сжатым двоичным представлением основного сообщения произвольной длины. Следует отметить, что значение хэш-функции h(M) сложным образом зависит от документа M и не позволяет восстановить сам документ M.

Хэш-функция должна удовлетворять целому ряду условий:

  • хэш-функция должна быть чувствительна к всевозможным изменениям в тексте M, таким как вставки, выбросы, перестановки и т.п.;

  • хэш-функция должна обладать свойством необратимости, то есть задача подбора документа M', который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима;

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

Большинство хэш-функций строится на основе однонаправленной функции f(·), которая образует выходное значение длиной n при задании двух входных значений длиной n. Этими входами являются блок исходного текста Miи хэш-значение Hi–1предыдущего блока текста (рис.6.1):

H

122

i= f (Mi, Hi–1).

Хэш-значение, вычисляемое при вводе последнего блока текста, становится хэш-значением всего сообщения M.

Рисунок 6.1- Построение однонаправленной хэш-функции

В результате однонаправленная хэш-функция всегда формирует выход фиксированной длины n (независимо от длины входного текста).

9.1.1. Однонаправленные хэш-функции на основе

симметричных блочных алгоритмов

Однонаправленную хэш-функцию можно построить, используя симметричный блочный алгоритм. Наиболее очевидный подход состоит в том, чтобы шифровать сообщение M посредством блочного алгоритма в режиме CBC или CFB с помощью фиксированного ключа и некоторого вектора инициализации IV. Последний блок шифртекста можно рассматривать в качестве хэш-значения сообщения M. При таком подходе не всегда возможно построить безопасную однонаправленную хэш-функцию, но всегда можно получить код аутентификации сообщения MAC (Message Authentication Code).

Б

123

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

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

Если принять, что получаемая хэш-функция корректна, безопасность схемы хэширования базируется на безопасности лежащего в ее основе блочного алгоритма. Схема хэширования, у которой длина хэш-значения равна длине блока, показана на рис. 6.2. Ее работа описывается выражениями:

H0= IH,

Hi= EA(B)ÅC,

где IH– некоторое случайное начальное значение; A, B и C могут принимать значения Mi, Hi–1, (MiÅHi–1) или быть константами.

Рисунок 6.2- Обобщенная схема формирования хэш-функции

Сообщение M разбивается на блоки Miпринятой длины, которые обрабатываются поочередно.

Три различные переменные A, B и C могут принимать одно из четырех возможных значений, поэтому в принципе можно получить 64 варианта общей схемы этого типа. Из них 52 варианта являются либо тривиально слабыми, либо небезопасными. Остальные 12 безопасных схем хэширования перечислены в табл. 6.1.

124

Таблица 6.1- Схемы безопасного хэширования, у которых длина хэш-значения равна длине блока

Номер схемы

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

1

2

3

4

5

6

7

8

9

10

11

12

Hi =(Mi) Å Mi

Hi =(Mi Å Hi–1) Å Mi Å Hi–1

Hi =(Mi) Å Hi–1 Å Mi

Hi =(Mi Å Hi–1) Å Mi

Hi =(Hi–1) Å Hi–1

Hi =(Mi Å Hi–1) Mi Å Hi–1

Hi =(Hi–1) Mi Å Hi–1

Hi =(Mi Å Hi–1) Å Hi–1

Hi =(Mi) Å Mi

Hi =(Hi–1) Å Hi–1

Hi =(Mi) Å Hi–1

Hi =(Hi–1) Å Mi

Первые четыре схемы хэширования, являющиеся безопасными при всех атаках, приведены на рис.6.3.

Р

125

исунок 6.3- Четыре схемы безопасного хэширования