Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОСы - ответы (КБ-71).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
7.88 Mб
Скачать
  1. Функции хэширования. Требования предъявляемые к функциям хэширования. Ключевые функции хэширования. Безключевые функции хэширования.

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

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

Сжатие – функция h отображает входное сообщение x (прообраз) произвольной длины в хэш-значение y=h(x) небольшой фиксированной длины.

Простота вычисления – для заданной функции h и сообщения x, h(x) вычисляется не выше чем с полиномиальной сложностью.

Хэш-функции применяются в статистических экспериментах, для проверки целостности, в алгоритмах индексированного поиска данных; в криптографии: в системах контроля целостности данных, при аутентификации источника, номера, времени сообщения (хеширование паролей).

Свойства хэш-функций:

Однонаправленность – вычислительная сложность нахождения неизвестного прообраза для предварительно заданного хэш-значения.

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

Стойкость к коллизиям – сложность нахождения двух прообразов, для которых вырабатывалось бы одинаковое значение.

Свойства 1 и 2 предотвращают воздействия злоумышленника на канал связи (препятствуют подмене, изменению и посылке ложных сообщений злоумышленником от лица отправителя), свойство 3 не допускает ситуацию, когда абонент 1 подбирает абоненту 2 на подпись два договора с одинаковым значением хэш-функции: «нормальный» и «невыгодный» для абонента 2, но выгодный для себя. Абонент 2 подписывает «нормальный» договор, т.о. абонент 1 получает подпись и для «невыгодного» договора.

Алгоритм хеширования должен быть открытым.

Особо выделяют два важных типа хеш-функций:

Ключевые функции хеширования (называют кодами аутентификации сообщений)

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

В криптографических приложениях к таким функциям предъявляют следующие основные требования:

- невозможность фабрикации (высокая сложность подбора сообщения с правильным значением свертки);

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

Иногда эти св-ва объединяют в одно более сильное св-во – св-во вычислительной устойчивости. Это треб-е означает высокую сложность подбора для заданного множ-ва сообщений {х1,…,хi} с известными значениями сверток еще одного сообщения х, х≠хi, i=1,…,t, с правильным значение свертки (возможен случай h(x)=h(xi), iЄ{1,…,t}).

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

Бесключевые функции хеширования (называют кодами обнаружения ошибок)

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

Требуется, чтобы бесключевые функции обладали следующими свойствами:

- однонаправленность;

- устойчивость к коллизиям;

- устойчивость к нахождению второго прообраза.

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

Отсутствие корреляции – изменение любого входного бита приводит к большим непредсказуемым изменениям выходных бит.

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

Стойкость к частичной однонаправленности – вычислительно невозможно восстановить любую часть входного сообщения так же, как и все сообщение. Более того, по любой известной части входного сообщения вычислительно невозможно восстановить оставшуюся часть.

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