Передача ключей

Алиса и Боб собираются для безопасной связи использовать симметричный криптографический алгоритм, им нужен общий ключ. Алиса генерирует ключ, используя генератор случайных ключей. Теперь она должна безопасно передать его Бобу. Если Алиса сможет где-то встретить Боба (какие-нибудь задворки, комната без окон или одна из лун Юпитера), то она сможет передать ему копию ключа. В противном случае, у них есть проблема. Криптография с открытыми ключами решает проблему легко и с минимумом предварительных соглашений, но эти методы не всегда доступны (см. раздел 3.1). Некоторые системы используют альтернативные каналы, считающиеся безопасными. Алиса могла бы посылать Бобу ключ с доверенным посыльным. Она могла бы послать ключ заказной почтой или ночной службой доставки. Она могла бы устанавливать другой канал связи с Бобом и надеяться, что его то никто не подслушивает.

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

Стандарт X9.17 [55] определяет два типа ключей: ключи шифрования ключей и ключи данных. Ключами шифрования ключей при распределении шифруются другие ключи. Ключи данных шифруют сами сообщения. Ключи шифрования ключей должны распределяться вручную, (хотя они могут быть в безопасности в защищенном от взлома устройстве, таком как кредитная карточка), но достаточно редко. Ключи данных распределяются гораздо чаще. Подробности можно найти в [75]. Эта идей двухсвязных ключей часто используется при распределении ключей.

Другим решением проблемы распределения является разбиение ключа на несколько различных частей (см. раздел 3.6) и передача их по различным каналам. Одна часть может быть послана телефоном, другая - почтой, третья - службой ночной доставки, четвертая - почтовым голубем, и так далее, (см. Рис. -2). Так противник может собрать все части, кроме одной, и все равно ничего не узнает про ключ. Этот метод будет работать во всех случаях, кроме крайних. В разделе 3.6 обсуждаются схемы разбиения ключа на несколько частей. Алиса могла бы даже применить схему совместно используемого секрета, (см. раздел 3.7), что даст возможность Бобу восстанавливать ключ, если некоторые из частей потеряны при передаче.

[image]

Рис. -2. Распределение ключей по параллельным каналам.

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