Защита от хакеров корпоративных сетей
Шрифт:
Алгоритм IDEA появился не только позднее DES. Он также значительно быстрее и безопаснее DES. Скорость работы IDEA возросла благодаря более простым операциям (операции исключающего ИЛИ – XOR, логического дополнения и умножения), используемым в каждом раунде, по сравнению с операциями цикла Фейстеля в DES. Используемые в IDEA операции проще реализовать программным способом, чем выполнить подстановку и перестановку в DES.
Алгоритм IDEA оперирует с 64-битовыми блоками открытого текста, и его ключ имеет длину 128 бит. Процесс зашифрования / расшифрования состоит из восьми раундов, в каждом из которых используется шесть 16-битных подключей. Алгоритм IDEA запатентован в США и Европе, но разрешено его свободное некоммерческое использование.
Асимметричные алгоритмы
В отличие
Алгоритм Диффи-Хеллмана
В 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
Спустя год после появления алгоритма Диффи-Хеллмана Рон Ривест (Ron Rivest), Ади Шамир (Adi Shamir) и Леонард Адлеман (Leonard Adleman) предложили другой вариант построения криптографической системы с открытым ключом. Их предложение теперь известно как алгоритм RSA. Имя алгоритма образовано из первых букв фамилий авторов алгоритма. RSA очень похож на алгоритм Диффи-Хеллмана тем, что он основан на факторизации (разложении числа на сомножители) и перемножении больших целых чисел. Но RSA работает значительно быстрее алгоритма Диффи-Хеллмана. Благодаря RSA асимметричные криптосистемы разделись на два класса: системы распределения открытых ключей (Public Key Distribution Systems – PKDS) и системы шифрования с открытым ключом (PublicKey Encryption – PKE). К первому классу (классу PKDS) относятся системы, основанные на алгоритме Диффи-Хеллмана и ему подобных, а ко второму (классу PKE) – алгоритм RSA и его модификации. Системы PKDS используются для обмена ключей сессий, в то время как системы PKE считаются достаточно быстрыми для шифрования разумно маленьких сообщений. Однако PKE-системы не считаются достаточно быстрыми для шифровки большого объема данных в файловых системах или высокоскоростных линий передачи данных.
Примечание
В алгоритмах RSA, Диффи-Хеллмана и других асимметричных алгоритмах криптографии используются ключи намного большей длины, чем в симметричных криптоалгоритмах. Чаще всего размер ключа составляет 1024 или 2048 бит. Необходимость использования таких длинных ключей обусловлена тем, что операция факторизации (разложения числа на сомножители) на современных компьютерах выполняется быстрее, чем перебор ключей симметричных алгоритмов. Относительная медлительность криптографических систем с открытым ключом – отчасти следствие использования длинных ключей. Поскольку большинство компьютеров могут обрабатывать только 32-разрядные числа, то для эмуляции операций над целыми числами длиной 1024 или 2048 бит нужны хитроумные алгоритмы. Но дополнительное время обработки 2048-битных ключей оправдано тем, что такой ключ «навсегда» обеспечит безопасность зашифрованных им сообщений, если только исследования математических алгоритмов факторизации не приведут к экспоненциальному росту их производительности.
Из-за прежних ограничений патентного права алгоритм RSA не получил широкого распространения и до середины 1990-х годов применялся в основном в разработках компании RSA Security. Но сейчас можно встретить много программ, широко использующих алгоритм RSA. Прежде всего это программы PGP и Secure Shell (SSH). Сведения об алгоритме RSA были полностью раскрыты за две недели до истечения срока действия патента в сентябре 2000 года. Ныне алгоритм RSA свободно распространяется для любых целей.