Общие сведения и классификация хеш-функций

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

Широко распространены следующие методы обеспечения подлинности сообщения:

- добавление к сообщению кода подлинности сообщения (код аутентификации сообщения) (message authentffication code, МАС-код) или зашифрованной контрольной суммы;

- введение цифровых подписей.

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

Следует различать функцию аутентификации пользователя и функцию аутентификации сообщения. Вхождение пользователя в АСОИ следует рассматривать как начало сеанса работы с терминалом и сопроводить его выполнением процедуры подтверждения подлинности пользователя. Задача обеспечения подтверждения подлинности пользователя решается системами управления доступом и реализуется через услуги и механизмы управления доступом.

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

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

- сообщение исходит от санкционированного отправителя;

- содержание сообщения при передаче не изменилось;

- сообщение доставлено по адресу;

- аналогичное сообщение ранее не поступало;

- порядок получения сообщений соответствует порядку отправления.

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

Хеш-функция берёт на вход сообщение и порождает на выходе некоторый образ этого сообщения, который называется хеш-кодом, хеш-результатом, хеш-значением или просто хеш. Или более точно, хеш-функция h отображает двоичную строку произвольной конечной длины m в двоичную строку фиксированной длины, скажем n. В криптографии используется именно эта идея, т.е. когда хеш-код выступает в роли компактного представления (образа) некоторой входной строки, по которому можно точно идентифицировать исходное сообщение.

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

Для дальнейших рассуждений приведем следующее определение хеш-функции. Хеш-функция, в самом общем смысле, есть функция h(x),которая как минимум обладает следующими двумя свойствами:

- сжатие, т.е. функция h отображает входную строку x конечной произвольной длины в выходную строку фиксированной длины n;

- легкость вычисления, т.е. при известной h входной строки x легко вычислить h(x).

К бесключевым хеш-функциям относятся коды обнаружения изменений сообщения (МDC-код, modification detection code), также известные как коды обнаружения манипуляций над сообщениями или коды целостности сообщений. MDC-коды предназначены для формирования сжатого образа или хеш-кода сообщения, который удовлетворяет специальным свойствам. В конечном итоге MDC-коды обеспечивают, совместно с другими механизмами, целостность данных. В свою очередь MDC-коды могут быть разбиты на односторонние хеш-функции, для которых сложно найти входное значение по известному хеш-коду, и стойкие к столкновениям хеш-функции, для которых сложно найти два входных значения, имеющих один и тот же хеш-код. Бесключевые хеш-функции являются одним из составных элементов цифровых подписей.

К ключевым хеш-функциям относятся МАС-коды. Они предназначены для обеспечения целостности данных и аутентификации сообщений без использования каких-либо других механизмов и позволяют обеспечить аутентификацию сообщения на основе использования методов симметричной криптографии. Алгоритмы фор­мирования МАС-кодов рассматриваются как хеш-функции с двумя входными параметрами, а именно сообщением и секретным ключом. На выходе такого алгоритма формируется двоичная строка фиксированной длины. При этом на практике невозможно сформировать точно такую же строку без знания ключа. МАС-коды могут использоваться как для обеспечения целостности данных, так и аутентификации источника данных.

В криптографических приложениях общепринятым является то, что алгоритмы хеш-фушщий являются от­крытыми. Таким образом, в случае использования МDC-кода по данному входному сообщению хеш-код может вычислить любой субъект, а при использовании МАС-кода вычислить хеш-код по данному входному сообщению может только субъект, обладающий секретным ключом.

Вопросы для самоконтроля

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

2) Назовите различие между функцией аутентификации пользователя и функцией аутентификации сообщений?

3) Что такое криптоанализ?

4) На какие классы можно разделить хеш-функции?

5) Что такое криптография?

Задания в тестовой форме.

Выберите правильный ответ:

1. Одноключевая криптосистема является:

а. Ассиметричной криптосистемой с открытым ключом.

б. Криптосистемой с закрытым ключом.

в. Симметричной криптосистемой.

2. Фундаментальное правило криптоанализа заключается в том, что:

а. Стойкость шифра определяется только секретностью ключа.

б. Отсутствует алгоритм шифрования.

в. Криптоаналитик не имеет в своем распоряжении открытый и шифртекст.

3. Какие из методов относятся к обеспечению подлинности сообщения:

а. добавление к сообщению кода подлинности сообщения (код аутентификации сообщения) (message authentffication code, МАС-код) или зашифрованной контрольной суммы;

б. введение цифровых подписей.

в. варианты а) и б)

4. К основным типам криптоаналитических атак относятся:

а. криптоаналитическая атака при наличии только известного шифртекста.

б. криптоаналитическая атака при наличии известного открытого текста.

в. криптоаналитическая атака при возможности выбора открытого текста.

г. криптоаналитическая атака с адаптивным выбором открытого текста.

д. варианты а) + б) +в) +г)

е. варианты а) + б) +в)

5. Какие два класса криптосистем существуют:

а. Симметричные, асимметричные

б. Одноключевые, симметричные

в. Двухключевые, асимметричные.