Протокол Диффи-Хеллмана
Термин | Определение |
---|---|
Протокол Диффи-Хеллмана | Протокол Диффи-Хеллмана –это криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.
Он был опубликован в 1976 году и послужил началом эры асимметричной криптографии. Его суть проста: два человека (для удобства назовем их пользователь Алиса и пользователь Боб) хотят получить общий ключ для симметричной криптосистемы. Тогда они договариваются и выбирают два больших числа g и p. Эти числа известны им обоим. Затем первый пользователь в тайне генерирует большое секретное число a, а второй — большое число b. А далее они просто вычисляют общий ключ по формулам с помощью своих чисел. Таким образом при работе алгоритма каждая сторона: - Генерирует случайное натуральное число a — закрытый ключ - Совместно с удалённой стороной устанавливает открытые параметры p и g, где p является случайным простым числом, а g является первообразным корнемпо модулюp (также является простым числом) - Вычисляет открытый ключ A, используя преобразование над закрытым ключом A = gamod p - Обменивается открытыми ключами с удалённой стороной - Вычисляет общий секретный ключ K, используя открытый ключ удаленной стороны B и свой закрытый ключ aK = Bamod p К получается равным с обеих сторон. Гениальность идеи заключается в том, что для получения ключа им не понадобится много времени, в то время как злоумышленнику придется решать задачу дискретного логарифмирования. Таким образом, протокол Диффи-Хеллмана отлично противостоит пассивному нападению, но в случае реализации атаки «человек посередине» он не устоит. В самом деле, в этом протоколе ни А, ни Б не могут достоверно определить, кем является их собеседник, поэтому вполне возможно представить следующую ситуацию, при которой они на самом деле общаются с лицом, выдающим себя за другого. И тогда вместо протокола Диффи-Хеллмана мы получаем ситуацию, при которой третье лицо получает один ключ общий с А и Б, которые принимают его друг за друга. Следовательно, оно может получать все их сообщения и расшифровывать их, зная ключ, при этом А и Б могут долгое время не замечать подлога. Как бороться с такой уязвимостью? Самый логичный и простой ответ: нужна взаимная аутентификация. И тут на помощь приходит ЭЦП. Если Боб знает открытый ключ Алисы, и он абсолютно точно уверен, что это ключ Алисы, то для защиты от атаки «человек посередине» Алисе достаточно подписать своим закрытым ключом число на шаге 1. Но все еще остается одно НО - чрезмерное увеличение размера сообщений за счет добавления подписи. Вот потому и был придуман протокол MQV, избавляющий Диффи-Хеллман от уязвимости и при этом не использующий ЭЦП. |