Читаем Защита от хакеров корпоративных сетей полностью

В отличие от симметричных алгоритмов асимметричные используют два ключа – открытый и секретный (возможны алгоритмы и с большим количеством ключей). Вместо используемых в симметричных алгоритмах операций подстановки и перемешивания асимметричные алгоритмы основаны на использовании математических проблем больших целых чисел. Для большинства из них легко решается прямая задача, но сложно получить решение обратной задачи. Например, легко решить прямую задачу – перемножить два числа, но обратная задача – найти делители большого целого числа, особенно если оно состоит из сотни десятичных цифр, – практически неразрешима. Вообще говоря, безопасность асимметричных алгоритмов зависит не от возможностей атак «грубой силы», а от способности решить сложную обратную задачу и прогресса в математике, который сможет предложить новые эффективные методы их решения. В этой секции будут рассмотрены алгоритмы RSA и Диффи-Хеллмана (Diffie-Hellman) – два наиболее популярных алгоритма в настоящее время.

Алгоритм Диффи-Хеллмана

В 1976 году после публичной критики алгоритма DES и указания на сложность обработки секретных ключей Уитфилд Диффи (Whitfield Diffie) и Мартин Хеллман (Martin Hellman) опубликовали свой алгоритм обмена ключами. Это была первая публикация на тему криптографии с открытым ключом и, возможно, самый большой шаг вперед в области криптографии, сделанный когда-либо. Из-за невысокого быстродействия, свойственного асимметричным алгоритмам, алгоритм Диффи-Хеллмана не предназначен для шифрования данных. Он был ориентирован на передачу секретных ключей DES или других подобных алгоритмов через небезопасную среду. В большинстве случаев алгоритм Диффи-Хеллмана (Diffie-Hellman) не используется для шифрования сообщений, потому что он, в зависимости от реализации, от 10 до 1000 раз медленнее алгоритма DES.

До алгоритма Диффи-Хеллмана (Diffie-Hellman) было сложно совместно использовать зашифрованные данные из-за проблем хранения ключей и передачи информации. Подробнее об этом будет еще сказано. В большинстве случаев передача информации по каналам связи небезопасна, потому что сообщение может пройти десятки систем, прежде чем оно достигнет потенциального адресата, и нет никаких гарантий, что по пути никто не сможет взломать секретный ключ. Уитфилд Диффи (Whitfield Diffie) и Мартин Хеллман (Martin Hellman) предложили зашифровывать секретный ключ DES по алгоритму Диффи-Хеллмана на передающей стороне и пересылать его вместе с сообщением, зашифрованным с использованием DES. Тогда на другом конце его сможет расшифровать только получатель сообщения.

На практике обмен ключами по алгоритму Диффи-Хеллмана происходит по следующей схеме.

1. Два участника обмена договариваются о двух числах. Один выбирает большое простое число, а другой – целое число, меньшее числа первого участника. Переговоры они могут вести открыто, и это никак не отразится на безопасности.

2. Каждый из двух участников, независимо друг от друга, генерит другое число, которое они будут хранить в тайне. Эти числа выполняют роль секретного ключа. Далее в вычислениях используются секретный ключ и два предыдущих целых числа. Результат вычислений посылается участнику обмена, и он играет роль открытого ключа.

3. Участники обмена обмениваются открытыми ключами. Далее они, используя собственный секретный ключ и открытый ключ партнера, конфиденциально вычисляют ключ сессии. Каждый партер вычисляет один и тот же ключ сессии.

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

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

Сильная сторона алгоритма Диффи-Хеллмана заключается в том, что никто не сможет скомпрометировать секретное сообщение, зная один или даже два открытых ключа получателя и отправителя. В качестве секретных и открытых ключей используются очень большие целые числа. Алгоритм Диффи-Хеллмана основан на полезных для криптографии свойствах дискретных логарифмов. Безопасность алгоритма основана на значительной сложности вычисления дискретных логарифмов по сравнению с возведением в степень натуральных чисел. Несмотря на то что несколько лет назад срок действия патента истек, алгоритм широко используется. Особенно в протоколе IPSec, где алгоритм Диффи-Хеллмана применяется совместно с алгоритмом аутентификации RSA для обмена ключом сессии, который используется для шифрования трафика по туннелю IPSec.

Алгоритм RSA

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже