- •Протоколы распределения ключей
- •Протокол Нидхема-Шрёдера (Needham-Schroeder protocol) на симметричных ключах
- •Протокол Нидхема-Шрёдера (Needham-Schroeder protocol) на aсимметричных ключах
- •Протокол Kerberos
- •Протокол Отвея-Рииса (Otway-Rees Protocol)
- •Задания
- •Реализация симметричного протокола Нидхема-Шрёдера
- •Реализация протокола Kerberos
- •Реализация протокола Отвея-Рииса
- •Реализация протокола Нидхема-Шрёдера на ассиметричных ключах
- •Примечания
Лабораторная работа №3. Протоколы распределения ключей. Протоколы транспортировки ключей.
Протоколы распределения ключей
Протокол распределения ключей (key establishment protocol) - это криптографический протокол, в процессе выполнения которого общий секрет становится доступен двум или более сторонам для последующего использования в криптографических целях.
Протоколы распределения ключей делят на два класса:
Протоколы транспортировки ключей;
Протоколы обмена ключами.
Протоколы транспортировки ключей(key transport) - это протоколы распределения ключей, в которых один участник создает или другим образом приобретает секрет и безопасным образом передает его другим участникам.
Протоколы обмена ключами(key agreement, key exchange) — это протоколы распределения ключей, в которых общий секрет вырабатывается двумя или более участниками как функция от информации, вносимой каждым из них (или ассоциированной с ними) таким образом, что (в идеале) никакая другая сторона не может предопределить их общий секрет.
Выделяют две дополнительные формы протоколов распределения ключей. Говорят, что протокол осуществляет обновление ключей (key update), если в протоколе вырабатывается совершенно новый ключ, не зависящий от ключей, выработанных в прошлых сеансах выполнения протокола. Протокол выполняет выработку производных ключей (key derivation), если новый ключ «выводится» из уже существующих у участников криптосистемы.
К основным свойствам протоколов распределения ключей относят свойства аутентификации ключа, подтверждения ключа и явной аутентификации ключа.
(Неявная) аутентификация ключа(implicit key authentication) — свойство, посредством которого один участник протокола убеждается, что никакая другая сторона, кроме специально идентифицированного второго участника протокола (и возможно, центра доверия), не может получить доступ к секретным ключам, полученным в протоколе. Здесь нет гарантий, что второй участник действительно получил доступ к ключу, но никто другой, кроме него, не мог его получить. Неявная аутентификация ключа независима от реального обладания ключом другим участником и не требует каких бы то ни было действий от второй стороны.
Подтверждение ключа(key confirmation) - свойство, посредством которого один участник протокола убеждается, что другой участник (возможно, неидентифицированный) действительно обладает секретными ключами, полученными в протоколе.
Явная аутентификация ключа(explicit key authentication) - свойство, которое выполняется, когда имеют место (неявная) аутентификация ключа и подтверждение ключа одновременно.
Протокол Нидхема-Шрёдера (Needham-Schroeder protocol) на симметричных ключах
Данный протокол лежит в основе большого количества протоколов распространения ключей, использующих доверенные центры. Существует два вида данного протокола:
Протокол Нидхема-Шрёдера на симметричных ключах;
Протокол Нидхема-Шрёдера на ассиметричных ключах.
Протокол на симметричных ключах работает следующим образом:
Предварительный этап:
Необходимо наличие долговременных ключей идля общения с доверенного центра Т с А иBсоответственно;
А и Bвыбирают случайные одноразовые числаисоответственно.
Рабочий этап:
Алиса отправляет Тренту сообщение, состоящее из идентификаторов Алисы, Боба и случайного числа
На основании полученных данных Трент формирует сообщение, имеющее следующий вид: гдеK– новый сеансовый ключ;
Алиса расшифровывает сообщение и проверяет его подлинность, осуществляя поиск числа . После этого она отправляет часть сообщения, зашифрованную на ключеБобу:
Боб получает и расшифровывает сообщение, достает из него ключ Kи формирует сообщение для Алисы, состоящее из его случайного числа, зашифрованного на ключе К:;
Алиса получает сообщение, получает из него , меняет его и отправляет его обратно Бобу:;
Алиса и Боб владеют общим секретным ключом K.