Американская криптология (История спецсвязи) - Гребенников Вадим Викторович (читать книги онлайн полные версии txt) 📗
В ходе единства и борьбы двух направлений криптологии родилась новая гибридная компьютерная криптосистема Филиппа Циммермана под названием «PGP», объединившая в себе достоинства как симметричной, так и асимметричной криптологии. В алгоритме «PGP» удобство криптологии с открытым ключом дополняется скоростью симметричных алгоритмов, работающих почти в тысячу раз быстрее асимметричных. Шифрование открытым ключом, в свою очередь, снимает проблемы скрытой передачи ключей.
История «PGP» началась в 1991 году, когда программист Филипп Циммерман на основе публично известных алгоритмов шифрования написал программу для защиты файлов и сообщений от несанкционированного доступа. В то время вокруг криптологических продуктов для гражданских целей в США складывалась неоднозначная ситуация: с одной стороны, они стали достоянием общественности, а с другой стороны, правительственные организации стремились внести ряд ограничений. Так, в 1991 году появился законопроект «S.266» («Билль о чтении зашифрованной корреспонденции») и начали действовать ограничения на экспорт криптологических продуктов, снятые лишь недавно. Затем в 1994 году появился законопроект «О цифровой телефонии».
Но настоящим апофеозом стал проект «Клиппер» (англ. Clipper — ножницы), инициированный АНБ в 1993 году, в соответствии с которым организации и частные пользователи должны были сдавать на депонирование используемые ключи. Это давало возможность спецслужбам получить доступ к любой интересующей их информации. Правда, из-за технологической сложности, дороговизны и общественного осуждения проект был «заморожен».
В таких условиях программа «PGP» как своеобразное выражение технологического протеста не могла не появиться. За это Циммерман был подвергнут преследованию: конкретно ему пытались инкриминировать экспорт криптолгоритмов, поскольку программа быстро распространилась за пределы США через сеть Интернет. В 2003 году Министерство обороны США ограничило экспорт криптографических программ примитивным 40-битным алгоритмом шифрования, а в 2004 году их экспорт был вообще запрещён.
Позже обвинение было снято, а в 1996 году им была образована компания «Pretty Good Privacy, Inc». Знаменитый продукт был экспортирован официальным, хотя и курьёзным способом: исходный текст программы был опубликован в виде книги, потом вывезен из США, отсканирован и скомпилирован в виде программы.
«PGP» выполняла следующие базовые функции:
— генерация пары (закрытого/открытого) ключей;
— шифрование файла с помощью открытого ключа любого пользователя «PGP» (в том числе своего);
— дешифровка файла с помощью своего закрытого ключа;
— наложение цифровой подписи с помощью своего закрытого ключа на файл (аутентификация файла) или на открытый ключ другого пользователя (сертификация ключа);
— проверка (верификация) своей подписи или подписи другого пользователя с помощью его открытого ключа.
В процессе «РGР»-шифрования информация сначала сжимается по известному алгоритму «ZIP». Сжатие не только уменьшает время передачи и экономит объём памяти, но и, что намного более важно, повышает криптостойкость. Связано это с тем, что много методов криптоанализа основано на поиске стойких соединений (так называемых паттернов), которые всегда встречаются в тексте. Сжатие уменьшает их число, чем существенно улучшает противодействие криптоанализу.
Затем «PGP» создаёт одноразовый сеансовый ключ — симметричный (секретный) ключ, который применяется только для одной операции. Этот ключ представляет собой псевдослучайное число, сгенерированное компьютером из импульсов, полученных им от случайных движений «мыши» и нажатий клавиш. С помощью этого ключа и надёжного, быстрого симметричного алгоритма «PGP» шифрует сжатое сообщение, получая в итоге зашифрованный файл. После этого она шифрует и сам секретный сеансовый ключ — по асимметричной схеме с помощью открытого ключа адресата. Данные о сеансовом ключе передаются вместе с зашифрованным файлом.
Дешифровка выполняется в обратном порядке. Сначала «РGР»-программа получателя «достаёт» из сообщения данные о сеансовом ключе, дешифрует его, используя закрытый ключ, и только потом дешифрует само сообщение.
Вот уже три десятилетия можно наблюдать за развитием отношений между традиционной (симметричной) и асимметричной криптологией. После появления последней казалось, что теперь можно решать массу новых задач, но пока строились теоретические модели. В идеале — все элементарно. Если вы собираетесь написать кому-то секретное письмо, то загружаете открытый ключ адресата с ключевого сервера, шифруете с его помощью письмо и отправляете его по электронной почте.
Однако в игре может появиться третий участник, который заранее создал свой открытый ключ с идентификатором вашего потенциального адресата и подменил на сервере настоящий ключ на свою фальшивку. Вы, ни о чём не подозревая, использовали подделку. Теперь злоумышленник может перехватить и дешифровать ваше сообщение. Он даже может перешифровать письмо правильным открытым ключом и отправить по назначению, так что и наименьшего подозрения ни у кого не возникнет. Так же, как в «чёрном кабинете», — «отпарили» конверт, прочитали письмо, заклеили и вернули его на почту.
Единственный способ избежать подобных ситуаций — получать открытые ключи непосредственно от их владельцев, то есть мы возвращаемся к проблеме защищённого канала передачи ключа.
Другой вариант — получить ключ от доверенного лица, о котором вам известно, что оно имеет достоверную копию необходимого открытого ключа. Этот посредник может даже засвидетельствовать целостность ключа своей подписью, зашифрованной с помощью собственного приватного ключа, то есть создать подписанный сертификат достоверности ключа. Он может также хранить и передавать желающим достоверную копию вашего открытого ключа, выступая между вами и вашими корреспондентами в качестве доверенного представителя.
Уитфилд Диффи и Мартин Хеллман в своей статье «Новые пути криптографии» предложили также и протокол «открытого распределения ключей». Открытое распределение ключей имеет в виду независимое генерирование каждым из пары пользователей своего случайного числа, превращение его с помощью некой процедуры обмена преобразованными числами по каналу связи и вычисление общего секретного ключа на основе информации, полученной по каналу связи от партнёра, и своего случайного числа. Каждый такой ключ существует только в течение одного сеанса связи (или даже части сеанса).
Таким образом, открытое распределение ключей позволяет паре пользователей системы создать общий секретный ключ, не имея заранее распределённых секретных элементов. При этом две функции общего секретного ключа, традиционно доставляемого из Центра, — защита информации в канале связи от третьей стороны и подтверждение подлинности каждого из абонентов его партнёру, — разделяются.
Действительно, отсутствие у абонентов перед сеансом связи заранее распределённого общего секретного ключа в принципе не даёт им возможности удостовериться с абсолютной надёжностью в легитимности друг друга с помощью только обмена сообщениями по открытому каналу. Для достоверного подтверждения легитимности каждый из них должен иметь специальный признак (пароль), известный только ему и отличающий его от всех других. Должна быть обеспечена такая процедура предъявления пароля, чтобы его многоразовое использование не снижало надёжности доказательства легитимности владельца.
Из практически действующих сетей связи, которые используют систему открытого распределения ключей, наиболее серьёзно защищённой является телефонная государственная сеть США на основе аппаратов «STU-III». Она начала функционировать в 1987 году и содержит в настоящий момент более 150 тысяч абонентов. В России аналогичная сеть, названная еще «АТС-1» или «вертушкой», также надёжно защищена, но абонентов там в сотне раз меньше.
К началу 1980-х годов криптологи пришли к пониманию преимущества так называемых гибридных систем, в которых процедуры шифрования с открытым ключом используются лишь для передачи ключей и цифровой подписи. При этом передаваемая информация защищается классическим алгоритмом типа «DES», ключ для которого передаётся с помощью шифрования с открытым ключом.