Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 636 / 33 | Оценка: 4.83 / 5.00 | Длительность: 42:11:00
Лекция 1:

Основы ИТ-безопасности

Лекция 1: 12345678 || Лекция 2 >
1.4.4 Гибридный алгоритм

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

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

Кроме того, симметричный ключ обычно генерируется каждый раз как новый и называется "сессионным" ключом. Он действителен только на то время, пока два человека обмениваются сообщениями друг с другом. Этот протокол используется практически во всех "шифраторах открытым ключом", таких, как Notes, SSL, S/MIME. Он обеспечивает высокую производительность и легкость реализации.

Пример гибридного алгоритма

Давайте сделаем паузу и рассмотрим, как работает гибридное решение. Для этого мы продолжим рассматривать общение между Алисой и Бобом. Пример изображен на рис. 1.6, обмен происходит слева направо.

Пример гибридного решения: отправка защищенного сообщения по электронной почте

Рис. 1.6. Пример гибридного решения: отправка защищенного сообщения по электронной почте

В нашем примере происходит следующее. Сначала на одном конце:

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

На другом конце:

  • Боб получает зашифрованное сообщение Алисы и хочет его прочитать;
  • Боб своим закрытым ключом дешифрует закрытый (сессионный) ключ, затем он использует этот дешифрованный ключ (тот же самый, что и тот, которым сообщение зашифровывалось) для расшифровывания Алисиного сообщения;
  • теперь расшифрованное сообщение может быть прочитано Бобом.
1.4.5 Цифровые подписи

Есть еще одна полезная вещь, которую дают нам алгоритмы асимметричного ключа.

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

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

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

Хеш-функции

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

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

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

  • Она принимает сообщение любого размера и генерирует из него маленький, фиксированного размера блок данных (называется сверткой сообщения). Повторное выполнение хеш-функции с теми же самыми исходными данными в результате всегда дает ту же самую свертку. Это называется отпечатком сообщения.
  • Это непредсказуемая операция. То есть даже небольшое изменение в исходном сообщении может оказать непредсказуемо большое влияние на конечную свертку. Или скажем по-другому, если используется хорошая хеш-функция, даже изменение 1 бита сообщения должно повлечь изменение половины битов на ее выходе.
  • Для всех намерений и целей она необратима. Другими словами, из данной свертки никак невозможно получить исходные данные.

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

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

В настоящее время применяется два хеш-алгоритма безопасности. Наиболее распространенный из них – MD5, который был разработан компанией RSA Data Security, Inc. и используется в Notes. Он создает 128-битовую свертку из входящих данных любой длины и описан в RFC1321.

Другой алгоритм, который становится все более и более популярным, – разработанный для правительства США Хеш-стандарт безопасности (SHS, Secure Hash Standard). Он создает 160-битовую свертку, что немножко больше, чем MD5.

Пример цифровой подписи

Давайте сделаем паузу и рассмотрим, как же работают цифровые подписи. Пример показан на рис. 1.7. Однако в этом примере обмен происходит справа налево, а не слева направо, как было в предыдущих примерах, так как Боб отвечает на сообщения Алисы.

В нашем примере происходит следующее. Сначала на одном конце:

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

Рис. 1.7. Пример цифровых подписей

На другом конце:

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

Таким образом:

  • Если обе свертки совпадают, значит, сообщение: аутентифицированно (оно пришло от Боба) и целостно (помним, что изменение даже 1 бита изменило бы по меньшей мере половину битов свертки).
  • Это может быть использовано также для подтверждения авторства (невозможность отказа). Из-за взаимно-однозначного соответствия между открытым и закрытым ключами Боба Боб не сможет утверждать, что это не он посылал сообщение.
  • Если свертки не совпадают, значит, либо сообщение было изменено во время пересылки (недостаток целостности), либо не Боб, а кто-то другой послал его (сообщение неаутентифицированно и не может быть использовано для целей подтверждения авторства).
Лекция 1: 12345678 || Лекция 2 >