Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по иб.doc
Скачиваний:
858
Добавлен:
27.10.2018
Размер:
958.46 Кб
Скачать
  1. Что такое криптографическая хэш-функция и какими свойствами она обладает?

Общее для введения

Криптология - наука, занимающаяся методами шифрования и дешифрования. Состоит из двух разделов:

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

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

Критпография включает в себя 4 раздела:

- симмертичные криптосистемы

- криптосистемы с открытым ключом (ассиметричные)

- системы электорнной подписи

- управление ключами

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

ЦП используются для того, чтобы подтвердить, что сообщение пришло действительно от данного отправителя. Такие подписи используются для проставления штампа времени (timestamp) на документах: сторона, которой мы доверяем, подписывает документ со штампом времени с помощью своего секретного ключа, и таки образом, подтверждает, что документ уже существовал в момент, объявленный в штампе времени.

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

Хеш-функции

Цифровая подпись обычно создается так: из документа генерируется так называемый дайджест (message digest). Для его генерации используются криптографические хеш-функции. Хеш-функции преобразовывают сообщение в имеющее фиксированный размер хеш-значение (hash value) таким образом, что все множество возможных сообщений распределяется равномерно по области хеш-значений. При этом криптографическая хеш-функция делает это таким образом, что практические невозможно подогнать документ к заданному хеш-значению.

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

Хэш-код создается функцией Н:

h = H (M)

Где М является сообщением произвольной длины и h является хэш-кодом фиксированной длины.

Свойства криптографических хеш-функций

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

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

  1. Хэш-функция Н должна применяться к блоку данных любой длины.

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

  3. Н (М) относительно легко (за полиномиальное время) вычисляется для любого значения М.

  4. Для любого данного значения хэш-кода h вычислительно невозможно найти M такое, что Н (M) = h.

  5. Для любого данного х вычислительно невозможно найти y x, что H (y) = H (x).

  6. Вычислительно невозможно найти произвольную пару (х, y) такую, что H (y) = H (x).

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

Четвертое свойство определяет требование односторонности хэш-функции: легко создать хэш-код по данному сообщению, но невозможно восстановить сообщение по данному хэш-коду. Это свойство важно, если аутентификация с использованием хэш-функции включает секретное значение. Само секретное значение может не посылаться, тем не менее, если хэш-функция не является односторонней, противник может легко раскрыть секретное значение следующим образом. При перехвате передачи атакующий получает сообщение М и хэш-код С = Н (SAB || M). Если атакующий может инвертировать хэш-функцию, то, следовательно, он может получить SAB || M = H-1 (C). Так как атакующий теперь знает и М и SAB || M, получить SAB совсем просто.

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

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

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

Наиболее часто используются следующие два алгоритма получения дайджеста (MDA): MD5, разработанный RSA Laboratories, генерирует 128-битный дайджест; SHA-1 (Secure Hash Algorithm), разработанный NIST (National Institute of Standards and Technonlogy) и NSA (National Security Agency), генерирует 160-битный дайджест.

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

Наиболее известные методы создания цифровых подписей – RSA, ГОСТ 30.10-94