Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шнайер - Прикладная криптография.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
10.13 Mб
Скачать

3.5 Криптография с несколькими открытыми ключами

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

Эта концепция была обобщены Конном Бойдом (Conn Boyd) [217]. Представьте себе вариант криптографии с открытыми ключами, использующий три ключа: KA, KB и KC, распределение которых показано в Табл. -2.

Алиса может зашифровать сообщение ключом KA так, что Эллен может расшифровать его, используя ключи KB и Kc. То же самое, сговорившись, могут сделать Боб и Кэрол. Боб может зашифровать сообщение так, что Фрэнк сможет прочесть его, а Кэрол сможет зашифровать сообщение так, что его сможет прочесть Дэйв. Дэйв может зашифровать сообщение ключом KA так, что Эллен сможет прочесть его, ключом KB так, что его сможет прочесть Фрэнк, или обоими ключами, KA и KB, так, что сообщение сможет прочесть Кэрол. Аналогично, Эллен может зашифровать сообщение так, что Алиса, или Дэйв, или Фрэнк сможет прочесть его. Все возможные комбинации показаны в Табл. -2, других не существует.

Табл. -2. Распределение ключей в трехключевой системе.

Алиса

KA

Боб

KB

Кэрол

KС

Дэйв

KA и KB

Эллен

KB и Kc

Франк

KС и KA

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

Широковещательная передача сообщения

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

Криптография с несколькими ключами позволяет решить эту задачу намного проще. Мы будем использовать трех агентов: Алису, Боба и Кэрол. Вы выдадите Алисе ключ KA и KB, Бобу - KB и KС, Кэрол - KС и KA. Теперь вы сможете говорить с любым нужным подмножеством агентов. Если вы хотите, чтобы сообщение могла прочитать только Алиса, зашифруйте его ключом KС. Когда Алиса получит сообщение, она расшифрует его, последовательно используя ключи KA и KB. Если вы хотите послать сообщение только Бобу, зашифруйте его ключом KA, а сообщение для Кэрол - ключом KB. Если вы хотите, чтобы посланное сообщение могли прочитать Алиса и Боб, зашифруйте его ключами KA и KС.

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

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

Табл. -3. Шифрование сообщения в трехключевой системе.

Шифруется ключами

Должно быть расшифровано ключами

KA

KB и Kc

KB

KA и KС

KС

KA и KB

KA и KB

KС

KA и KС

KB

KB и Kc

KA