Здавалка
Главная | Обратная связь

Асимметричная криптография



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

Все асимметричные криптосистемы являются объектом атак путем прямого перебора ключей, и поэтому в них должны использоваться гораздо более длинные ключи, чем те, которые используются в симметричных криптосистемах, для обеспечения эквивалентного уровня защиты. Это сразу же сказывается на вычислительных ресурсах, требуемых для шифрования, хотя алгоритмы шифрования на эллиптических кривых могут смягчить эту проблему. Брюс Шнейер в книге "Прикладная криптография: протоколы, алгоритмы и исходный текст на C" приводит следующие данные об эквивалентных длинах ключей (Таблица 6.1.9).

Таблица 6.1.9

Длина симметричного ключа Длина асимметричного ключа
56 бит 384 бит
64 бита 512 бит
80 бит 768 бит
112 бит 1792 бита
128 бит 2304 бита  

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

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

Порядок использования систем с асимметричными ключами:

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

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

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

4) Теперь нужно решить проблему с передачей сеансового ключа получателю сообщения.

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

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

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

8) Теперь шифруется сеансовый ключ с использованием асимметричного алгоритма шифрования-расшифровки и асимметричного ключа получателя (полученного от центр сертификатов и расшифрованного).

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

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

11) Получатель выделяет зашифрованный сеансовый ключ из полученного пакета.

12) Теперь получателю нужно решить проблему с расшифровкой сеансового ключа.

13) Получатель должен иметь асимметричный открытый ключ центра выдачи сертификатов.

14) Используя свой секретный асимметричный ключ и тот же самый асимметричный алгоритм шифрования получатель расшифровывает сеансовый ключ.

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

16) Получатель отделяет электронную подпись от исходного текста.

17) Получатель запрашивает у центр сертификатов асимметричный открытый ключ отправителя.

18) Как только этот ключ получен, получатель расшифровывает его с помощью открытого ключа центр сертификатов и соответствующего асимметричного алгоритма шифрования-расшифровки.

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

20) Повторно вычисляется хэш-функция полученного исходного текста.

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







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.