id: Гость   вход   регистрация
текущее время 08:10 29/03/2024
Автор темы: Гость, тема открыта 27/04/2004 17:03 Печать
http://www.pgpru.com/Форум/Криптография/ШифрованиеНесколькимиКлючами
создать
просмотр
ссылки

Шифрование несколькими ключами


У меня возник вопрос ...
Как осуществляется Шифрование несколькими (открытыми) ключами
при этом любой (один!) из перечисленных ключей (закрытый)
может открыть текст... а как же остальные...
как это увязывается на языке математики? Нет ли здесь противоречия...


 
Комментарии
— SATtva (27/04/2004 18:15)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Имеем:
M — исходное сообщение;
Ks — сеансовый симметричный ключ;
K1, K2, K3 — асимметричные ключи получателей.

1. Вначале PGP зашифровыет сообщение сеансовым ключом, производя шифртекст сообщения:
Cm = E | Ks ( M )

2. Затем сеансовый ключ зашифровыется по отдельности каждым из открытых ключей получателей, производя три независимых шифртекста:
//Ck1 = E | K1 ( Ks )
Ck2 = E | K2 ( Ks )
Ck3 = E | K3 ( Ks )//

3. Формируется OpenPGP-пакет сообщения (кроме криптографического материала включает множество служебной информации, но для нас сейчас она не представляет интереса):
[ { Cm } ; { Ck1} ; { Ck2 } ; { Ck3 } ]

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

Всё тривиально и элементарно.
— Kent (27/04/2004 22:08)   профиль/связь   <#>
комментариев: 437   документов: 30   редакций: 15
Возникает вопрос: как это (шифрование несколькими ключами) отражается на криптостойкости?
Не возникает ли ситуация, когда чем больше получателей, тем легче взломать ключ?
— SATtva (27/04/2004 22:32)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Вот ведь специально писал! :) http://www.pgpru.com/faq/crypto.htm#crypto_5. Желательно, чтобы у всех получателей ключи были примерно равной длины.
— Kent (27/04/2004 23:17)   профиль/связь   <#>
комментариев: 437   документов: 30   редакций: 15
SATtva, да, пропустил ответ :(. Скачал весь FAQ, но подробно не изучил.
— Гость (28/04/2004 15:20)   <#>
Большое спасибо, про сеансовый ключ я не подумал...
точнее даже – не знал для чего он нужен :)
— Гость (11/01/2005 16:27)   <#>
Здравствуйте.
При отправке сообщения зашифровываются сеансовым симметричным ключом. Каким образом это происходит? Ведь PGP это программа ассиметричного шифрования.
Пробовал прочитать по указанной ссылке http://www.pgpru.com/faq/crypto.htm#crypto_5 – ссылка не открывается, т.е. открывается страница, где написано, что указанной страницы не существует.
— Гость (11/01/2005 16:41)   <#>
Еще один вопрос.
На странице http://www.pgpru.com/faq/crypto/ я прочитал о методе атаки на основе подобранного шифртекста и "дешифрующего оракула". Я провел эксперимент. Зашифровал текст, добавил в шифртекст слово открытого текста и попрообовал расшифровать. В FAQ написано, что должен получиться мусор, однако моя программа просто отказалась расшифровывать текст, и вывела сообщение "bad paket". ?
— SATtva (11/01/2005 17:40)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
При отправке сообщения зашифровываются сеансовым симметричным ключом. Каким образом это происходит?

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

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

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

В общем-то, всё это я писал в начале этого топика. Более наглядно (с иллюстрациями) процесс приведён здесь:
http://www.pgpru.com/manuals/intro/02.shtml#5
Обновлённая ссылка на FAQ:
http://www.pgpru.com/faq/crypto/#5

я прочитал о методе атаки на основе подобранного шифртекста и "дешифрующего оракула". Я провел эксперимент. Зашифровал текст, добавил в шифртекст слово открытого текста и попрообовал расшифровать.

Не всё так просто. Сообщения PGP имеют определённый формат, закреплённый в спецификациях стандарта OpenPGP. Чтобы провести атаку Шнайера-Джеллада-Катца, нужно декодировать сообщение PGP из Radix-64 в двоичный код, затем внести свои изменения в содержимое тэга 9, а именно, добавить блоки открытого текста, равные длине блока симметричного алгоритма, между блоками шифртекста. После этого взломщик снова формирует ASCII-armor и отправляет письмо получателю.

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

Однако с новыми версиями PGP и GnuPG такой трюк не пройдёт. Во-первых, взломщик может добавить открытый текст только в подтэг 11. Ему не удастся это сделать, поскольку программы сжимают открытый текст перед зашифрованием, и взломщик не сможет изменить подтэг 8 без того, чтобы не повредить контрольную сумму архива — получатель просто не сможет расшифровать сообщение. Помимо этого в самых свежих версиях программ был добавлен тэг 19, куда вносится зашифрованное хэш-значение открытого текста сообщения, вырабатываемое перед зашифрованием, и служащее выявлению подобных махинаций.

Методику атаки и иные подробности можете найти в статье Implementation of Chosen-Ciphertext Attacks against PGP and GnuPG. Лежит тут: http://www.pgpru.com/articles/#openpgp .
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3