Американская криптология (История спецсвязи) - Гребенников Вадим Викторович 20 стр.


Главная проблема, которую с подачи Диффи поставили перед собой учёные, сводилась к следующему: «Как (не пересылая секретный ключ) получить сообщение и превратить его так, чтобы его воспринимали только те, кому оно предназначено, а посторонним информация была бы недоступна».

Между тем в Великобритании в сентябре 1973 года сотрудником ШКПС стал молодой талантливый математик Клиффорд Кокс (Clifford Cocks). Он закончил Кембридж и был достаточно образован в теории чисел, которую в те времена обычно расценивали как один из самых бесполезных разделов математики. Уже на начальном этапе кто-то из наставников рассказал Коксу о концепции несекретного шифрования. Идея крайне его заинтересовала, и он начал изучать её в контексте простых чисел и проблем разложения чисел на множители.

В результате Кокс пришёл к той же схеме, которая через несколько лет станет знаменитой под названием «RSA», или алгоритм Ривеста-Шамира-Адлемана. Сам же Кокс в тот момент воспринимал своё открытие просто как решение достаточно простой математической головоломки. Он был весьма удивлён тем, в какое волнение и, даже, возбуждение пришли его коллеги.

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

Несколько месяцев спустя на работу в ШКПС пришёл другой одарённый математик Мэлколм Уильямсон (Malcolm Williamson), приятель Кокса ещё по школьным годам. Когда Кокс рассказал другу об интересной криптосхеме, недоверчивый Уильямсон решил, что она слишком красива, чтобы быть правдой, и поэтому ринулся отыскивать в ней скрытые дефекты.

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

Ни одну из изобретённых криптосхем в ШКПС патентовать не стали, поскольку патентная информация становилась известной широкой общественности, а абсолютно все работы велись спецслужбой в условиях наистрожайшей тайны. Когда в 1976 году Диффи и Хеллман обнародовали свои открытия, Уильямсон попробовал было склонить руководство ШКПС к публикации полученных английскими криптологами результатов. Однако молодому человеку не удалось пробить «железобетонный» консерватизм руководства, которое решило не нарушать традиций и не «высовываться» со своими приоритетами.

Через несколько лет, благодаря знакомствам в АНБ, Уитфилд Диффи всё же узнал о работах в ШКПС и, даже, лично съездил в Челтнем, чтобы встретиться и пообщаться с Джеймсом Эллисом. Встреча была крайне тёплой и приветливой, однако безрезультатной. Эллис, обязанный хранить государственную тайну, вежливо уклонился от всех попыток Диффи перевести разговор о криптологии с открытым ключом.

В ШКПС несколько раз намеревались поведать правду. В 1987 году Эллису, в связи с его уходом на пенсию, даже заказали обзорную статью для возможного широкого опубликования, однако на главный шаг так и не решились, спрятав её в секретный архив. До читателей статья дошла лишь в декабре 1997 года, уже как мемориальная публикация в память о Джеймсе Эллисе, скончавшемся за месяц до этого в возрасте 71 года. Одновременно Клиффорду Коксу впервые позволили опубликовать несколько работ по решению ряда проблем вокруг схемы «RSA» и выступить на открытых научных конференциях.

Таким образом, если до 1976 года единственным способом пересылки секретной информации была симметричная криптология, а организовать канал для передачи секретных ключей могли себе позволить только правительства, большие банки и корпорации, то появление шифрования открытым ключом стало технической революцией, которая понесла стойкую криптологию «в массы».

Асимметричная криптология является несомненно выгодной, поскольку она легко применяется и решает проблемы авторизации. Точнее, она решает несколько таких проблем:

1. Идентификация пользователя. Даёт возможность пользоваться современными средствами связи, позволяющими отправителю оставаться неизвестным и, вместе с тем, быть уверенными в том, что тот, с кем мы общаемся, — действительно тот, за кого себя выдает. Для этого используется протокол идентификации.

2. Аутентификация документа. Автор удостоверяет документ с помощью цифровой подписи. Операция подписи добавляет к сообщению несколько бит, являющихся результатом какой-то операции над самим документом и сведениями об авторе. Более того, каждый, кто имеет доступ к документу, должен иметь и возможность проверить, на самом ли деле подпись под ним поставлена автором.

3. Конфиденциальность информации, которая гарантируется как шифрованием секретным ключом, так и шифрованием открытым ключом.

Примерами криптосистем с открытым ключом является «Elgamal» (названная в честь автора, Тахира Ельгамаля), «Diffle-Hellman» (названная в честь её творцов) и «DSA» (англ. Digital Signature Algorithm — алгоритм цифровой подписи, изобретённый Дэвидом Кравицем).

Наилучший пример такой криптосистемы появился двумя годами позже, в 1978 году, и был назван «RSA». Её название происходит от первых букв фамилий авторов системы: Ривест (Rivest), Шамир (Shamir) и Адлеман (Adleman), которые придумали её во время совместной работы в Массачусетском технологическом институте в 1977 году. Авторы пообещали премию в сто долларов тому, кто первым расшифрует «RSА»-шифрованную фразу: 96861375462206147714092225435588290575999112457431987469512093081629822514570 8356931476622883989628013391990551829945157815154.

Это было сделано только через 17 лет. Для того, чтобы расшифровать фразу «The magic words are squeamish ossifrage», команде из 600 человек нужно было 220 дней работы и 1600 компьютеров, соединённых между собой через сеть Интернет. По-видимому, расходы немного превысили размер премии.

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

Практика показала: чем более известен алгоритм, чем больше людей работали с ним, тем более проверенным, а значит и надёжнее он становится. Так публично известные алгоритмы выдерживают проверку временем, а вот в засекреченных государственных шифрах могут оказаться ошибки и недостатки.

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

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

Короткое описание сценария электронного обмена конфиденциальной информацией включает следующие этапы:

— создаётся файл, содержащий конфиденциальную информацию;

— он зашифровывается открытым ключом, известным отправителю;

— зашифрованный файл передаётся электронной почте получателю;

— на приёмной стороне получатель, имея закрытый ключ, «открывает» зашифрованный файл.

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

В ходе единства и борьбы двух направлений криптологии родилась новая гибридная компьютерная криптосистема Филиппа Циммермана под названием «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», ключ для которого передаётся с помощью шифрования с открытым ключом.

Назад Дальше