Экстернат |
Управление ключами
5.1. Распределение с симметричными ключами
Для шифрования больших сообщений криптография с симметричными ключами более эффективна, чем криптография с асимметричными ключами. Криптография с симметричными ключами, однако, нуждается в ключе засекречивания, который используется двумя сторонами.
Если Алиса должна обмениваться конфиденциальными сообщениями с N людьми, она нуждается в N различных ключах. А что, если N людей должно общаться друг с другом? Тогда необходимое общее количество ключей равно N (N - l). Если мы позволяем Алисе и Бобу использовать два одинаковых ключа для двунаправленной связи для обоих направлений, тогда нужно только N (N - 1)/2 ключей. Это означало бы, что если один миллион человек связывается друг с другом, каждый человек имеет почти один миллион различных ключей. Всего необходим почти один триллион ключей. Это называется N -проблемой, потому что число требуемых ключей для N объектов - N2.
Число ключей - не единственная проблема; распределение ключей - другая беда. Алиса и Боб хотят связаться между собой. Им нужен способ обмена ключами засекречивания. Если Алиса хочет связаться с одним миллионом человек, как она может обменяться одним миллионом ключей с одним миллионом человек? Использование Internet - явно не безопасный метод. Очевидно, что мы нуждаемся в эффективном способе поддерживать и распределять ключи засекречивания.
Центр Распределения Ключей: KDC
Практическое решение - привлечение третьего лица, которому доверяют. Оно называется здесь центром распределения ключей (KDC - Key-Distribution Center). Чтобы уменьшать число ключей, каждый человек устанавливает открытый ключ засекречивания с KDC, как показано на рис. 5.1.
Ключ засекречивания установлен между KDC и каждым членом сообщества. Алиса имеет ключ засекречивания с KDC, который мы называем KAlice. Боб имеет ключ засекречивания с KDC, который мы называем KBob. Теперь вопрос - то, как Алиса может передать конфиденциальное сообщение Бобу. Процесс следующий:
- Алиса передает запрос KDC - заявление, что она нуждается в сеансе (временно) и ключе засекречивания между собой и Бобом.
- KDC сообщает Бобу о запросе Алисы.
- Если Боб соглашается, между ними создается ключ сеанса.
Ключ засекречивания между Алисой и Бобом, который установлен с KDC, используется, чтобы подтвердить подлинность Алисы и Боба к KDC и препятствовать Еве исполнять роль любого из них. Мы обсудим позже в этой лекции, как устанавливается ключ сеанса между Алисой и Бобом.
Когда число людей, использующих KDC ( Центр распределения ключей ), увеличивается, система становится неуправляемой и срабатывает ее узкое место - число ключей может кончиться. Чтобы решить проблему, мы должны иметь много KDC. Мы можем разделить мир на домены. Каждый домен может иметь один или более KDCs (для резервной избыточности в случае отказа). Теперь, если Алиса хочет передать конфиденциальное сообщение Бобу, который принадлежит к другому домену, она входит в контакт со своим KDC, который, в свою очередь, входит в контакт с KDC в домене Боба. Два KDCs могут создать ключ засекречивания между Алисой и Бобом. рис. 5.2 показывает KDCs, где центры - одного уровня. Мы называем такую организацию центров - "плоское (неиерархическое) множество центров (KDC)".
Иерархическое множество центров распределения ключей
Понятие плоского множества KDCs может быть расширено на иерархическую систему KDCs, с одним или более KDCs на верхнем уровне иерархии. Например, может существовать местный KDCs, национальный KDCs и международный KDCs. Когда Алиса должна связаться с Бобом, который живет в другой стране, она передает свой запрос местному KDC; местный KDC ретранслирует запрос к национальному KDC; национальный KDC ретранслирует запрос к международному KDC. Запрос затем транслируется полным путем вниз к местному KDC, где живет Боб. рис. 5.3 показывает конфигурацию иерархического множества KDCs.