Разработка и программная реализация электронной цифровой подписи асимметричным методом шифрования данных
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ользует открытый ключ авторитетного источника сертификатов KUauth , чтобы дешифровать сертификат. Ввиду того, что сертификат можно прочитать только с помощью открытого ключа авторитетного источника сертификатов это дает гарантию того, что сертификат пришел именно от авторитетного источника сертификатов. Элементы IDA и KUa сообщают получателю имя и открытый ключ владельца сертификата. Наконец, метка даты/времени Т определяет срок действия сертификата. Метка даты/времени должна быть защищена от следующей последовательности действий. Противник узнает личный ключ А. По этой причине А генерирует новую пару ключей (личный и открытый) и обращается к авторитетному источнику сертификатов за новым сертификатом. Тем временем противник воспроизводит сообщение со старым сертификатом и отсылает его В. Если В будет шифровать сообщения, используя старый скомпрометированный открытый ключ, противник сможет прочитать эти сообщения.
Рисунок 1.5- Обмен сертификатами открытых ключей
В этом смысле компрометация личного ключа сравнима с потерей кредитной карточки. "аделец объявляет номер кредитной карточки недействительным, но ситуация остается потенциально рискованной до тех пор, пока все возможные системы не будут информированы о том, что старая кредитная карточка уже недействительна. Таким образом, метка даты/времени является чем-то вроде даты истечения срока действия. Если сертификат оказывается выданным достаточно давно, предполагается, что срок его действия истек.
Распределение секретных ключей с помощью системы с открытым ключом
После того как открытые ключи были распределены и стали доступными, становится реальной организация защищенной связи, не допускающей возможности перехвата или искажения сообщений или того и другого вместе. Однако некоторые пользователи предпочтут использовать шифрование с открытым ключом только в исключительных случаях из-за того, что в условиях применения шифрования скорость передачи данных оказывается относительно медленной. Поэтому шифрование с открытым ключом приходится рассматривать, скорее, как средство распределения секретных ключей, используемых для традиционного шифрования.
Простое распределение секретных ключей
Исключительно простую схему предложил Меркл (Merkle) [MERK79], рис. 1.6. Если инициатор А намерен обменяться данными с пользователем В, для этого предполагается следующая процедура.
Рисунок 1.6 -- Простое использование шифрования с открытым ключом при выборе сеансового ключа
- Сторона А генерирует пару открытый/личный ключи {KUа, KRа} и передает сообщение стороне В, содержащее KUа и идентификатор отправителя A, IDA .
- Получатель В генерирует секретный ключ Ка и передает этот ключ инициатору сообщения А зашифрованным с помощью открытого ключа инициатора А.
- Пользователь А вычисляет DKRа[EKUa[Ka]], чтобы восстановить секретный ключ. Поскольку только пользователь А может дешифровать это сообщение, только участника обмена данными А и В будут знать значение Кa.
- Участник А выбрасывает ключ KRa , а участник В - выбрасывает ключ KUa.
Теперь обе стороны, А и В, могут использовать связь, защищенную традиционным шифрованием с сеансовым ключом Кa. По окончании обмена данными и А, и В выбрасывают Кa. Несмотря на простоту, этот протокол весьма привлекателен. Никаких ключей не существуют перед началом связи и никаких ключей не остается после завершения связи. Поэтому риск компрометации ключей минимален. В то же время связь оказывается защищенной от подслушивания.
Этот протокол уязвим в отношении активных атак. Если противник E имеет возможность внедрения в канал связи, то он может скомпрометировать связь без того, чтобы быть обнаруженным, следующим образом.
- Участник А генерирует пару открытый/личный ключи {KUa, KRa} и передает сообщение адресату В, содержащее KUa и идентификатор участника А IDА.
- Противник Е перехватывает сообщение, создает собственную пару открытый/личный ключи {KUe, KRe} и передает сообщение адресату В, содержащее KUe || IDA .
- В генерирует секретный ключ Кa и передает ЕKUe[Кa].
- Противник Е перехватывает это сообщение и узнает Кa , вычисляя DKRe [EKUe [Ka]] .
- Противник Е передает участнику А сообщение ЕKUa[Кa].
В результате оба участника, А и В, будут знать Кa , но не будут подозревать, что Кa также известен и противнику Е. Поэтому стороны А и В могут начать обмен сообщениями, используя Кa. Противник Е больше не будет активно вмешиваться в канал связи, а просто будет перехватывать сообщения. Зная Кa , он сможет дешифровать любое сообщение, а участники А и В даже не будут подозревать о существовании проблемы. Таким образом, этот простой протокол оказывается полезным только в случае, когда единственной возможной угрозой является пассивный перехват сообщений.
Распределение секретных ключей с обеспечением конфиденциальности и аутентификации
Схема на рис. 1.7, основанная на подходе, предлагаемом в [NEED78], обеспечивает защиту и от активной, и от пассивной форм атаки. В качестве исходных условий предположим, что А и В уже обменялись открытыми ключами по одной из схем, описанных выше. Далее следует выполнить следующие действия.
Рисунок 1.7 -- Распределение секретных ключей с помощью шифрования с открытым ключом