Хронограф
18152229
29162330
310172431
4111825
5121926
6132027
7142128

<декабрь>

Путеводители

Государственная безопасность виртуального мира

Криптография позволяет людям лучше понимать друг друга, себя самого и мир, в котором мы живем


Любой поток данных может быть представлен как текст. Любой текст можно привести к последовательности чисел. Бесперебойную работу электронных устройств можно гарантировать только в том случае, когда несанкционированный доступ к этому тексту исключен. Фото (Creative Commons license):  Marc Bernet

Неожиданную известность за пределами узкого круга профессионалов Брюс Шнайер (Bruce Schneier) приобрел благодаря Дэну Брауну. Автор «Кода да Винчи» упрекнул американского криптографа-самоучку в том, что тот скрыл от мировой общественности приоритет великого Леонардо в изобретении первых способов шифрования текста с открытым ключом.

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

В большинстве случаев, Боб тайно сообщает Алисе, каким ключом он будет пользоваться в дальнейшем, чтобы шифровать свои сообщения ей. Дальше он может не очень переживать, если какое-то из его посланий вдруг станет явным, хотя вероятностью расшифровки без ключа (криптоанализом) ему пренебрегать не стоит. Но так и только так на практике шифровали свои тайные донесения все штирлицы и кэт со времен древних греков. Таить ключ им следовало пуще зеницы ока. Если ключ становился известен врагу, вся морока с шифрованием оборачивается пустой тратой времени — ключ надо придумывать заново и как-то тайно, с большими предосторожностями передавать его от Боба Алисе.

Считается, что идею «открытого ключа» впервые высказали в 1976 году два американских инженера — недоучившийся математик из MIT Уитфилд Диффи (Whitfield Diffie) и обладатель докторской степени Стэнфордского университета по электротехнике Мартин Хеллман (Martin Hellman). Идея, очевидно, уже носилась в воздухе, поскольку два года спустя тройка математиков из MIT Рональд Ривест (Ronald Rivest), Ади Шамир (Adi Shamir) и Лен Адлеман (Len Adleman) создали еще один алгоритм шифрования с открытым ключом, ставший краеугольным камнем всех систем безопасности. Вполне вероятно, что у всех у них были предшественники, высказывавшие те или иные полезные идеи. Но самые важные из них основаны на достижениях теории чисел, и самый гениальный гений не смог бы их высказать до новаторских работ Леонарда Эйлера (Leonard Euler, 1707–1783).

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

  
Брюс Шнайер принадлежит к тому поколению, наиболее успешные представители которого успевали разбогатеть на высоких технологиях раньше, чем изучить в университете, на каких принципах они построены. Брюс стремился к успеху в таком бизнесе и добился его. Но славы публициста он вряд ли ожидал.  Фото (GNU Free Documentation License): из личного архива Брюса Шнайера via Matt Crypto

Путь к успеху

Брюс Шнайер родился 15 января 1963 года в Нью-Йорке.

Преобразование информации с целью сокрытия от посторонних – вопрос, который заинтересовал Брюса Шнайера еще в детстве. Это не удивительно. Трудно найти мальчика, который не играл бы в «секретные донесения» и не заботился бы о том, как скрывать свои секреты от сверстников. Но его интерес к теме не ослабевал с возрастом. От детских книг с математическими забавами, включающими криптографию, он перешел к более серьезному чтению. Отец Брюса всячески потворствовал увлечениям сына: придумывал различные задачки, подкладывал полезные книги. Все это помогло сыну ориентироваться в криптологии.

Став немного постарше Брюс понял, что книга, которую он действительно хотел бы прочитать, просто пока не написана. И тогда он начал обдумывать ее план, реализованный много позже в его «Прикладной криптографии». Ее первое издание вышло в свет в 1994 году, когда автору только-только исполнился 31 год. Получив степень бакалавра наук по физике в университете Рочестера и степень магистра по вычислительной технике в Американском университете в Вашингтоне, Брюс решил не гоняться за докторской степенью и прервал обучение. Некоторое время он проработал в Министерстве обороны США. Затем — в компании AT&T Bell Labs, где занимался проблемами криптографической защиты телефонных переговоров. Но идей у него уже было так много, что для реализации их требовалось создание собственной фирмы.

Первоначально в штате Counterpane Systems — первой среди фирм, одним из основателей которых он стал, — было всего 6 человек, но в 1999 году его бизнес резко «набрал обороты». Было изменено название: теперь это Counterpane Internet Security, Inc, где он работает главным техническим директором. Изначально небольшая фирма превратилась в крупную компанию, имеющую свои подразделения в «Силиконовой долине» и Вашингтоне.

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

В программировании «кодом» называют исходный текст программы. Программист пишет его на одном из алгоритмических языков — Фортране, Паскале или С++ — реализуя придуманный алгоритм. Потом уже сам компьютер переводит исходный код на более простой для себя язык типа ассемблера, превращает в машинные коды или исполняемые файлы. Имея только эти последние, невозможно понять, как работает программа. Для этого нужен исходный код.

К нему можно относиться по-разному. Большинство фирм, сделавших программирование своим бизнесом, предпочитают защищать исходный код авторским правом. Так поступает, например, Microsoft и Sun Microsystems. Не менее известный Linux открывает тексты своих программ, предлагая всем пользователям критиковать и улучшать их. Впрочем, в этом случае речь идет лишь о том, кто сможет воспользоваться результатами выполненного кем-то труда — только тот, кто заплатил за доступ к ним, или же всякий, кому они понадобились.

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

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

  
Название Blowfish для криптографического алгоритма было позаимствовано у иглобрюхих рыб. Фото: NOAA

Двойной запор

В 1993 году Брюс разработал алгоритм Blowfish в качестве быстрого и свободного от патентов варианта для смены существующих на тот момент алгоритмов (в основном устаревшего DES и патентованного IDEA). Текст модуля, осуществлявшего шифровку и расшифровку, был представлен на всеобщее обсуждение, а сам модуль встроен в операционную систему Linux.

В алгоритме Blowfish реализовывалась идея блочного шифрования — при котором отрезок слова постоянной длины, скажем в три буквы, заменяется на другой отрезок такой же длины, то есть на другие три буквы — с использованием симметричного ключа. Шнайер, приняв свою идеологию «открытого кода», отказался от открытого ключа. Для этого у него были свои резоны: даже наиболее распространенный RSA-алгоритм значительно уступает даже самому медленному DES-алгоритму с симметричным ключом по скорости. Если речь идет, например, о пересылаемых данных между вашим мобильным телефоном и спутником сотовой связи, скорость, с которой данный зашифровываются и расшифровываются, становится весьма существенным фактором.

Однако был найден довольно оригинальный способ сочетать преимущества того и другого. RSA-алгоритмом можно воспользоваться только для пересылки ключа при установлении связи. А потом пользоваться этим ключом для быстрой и надежной пересылки данных.

Этот шифр так и не был сломан, однако спустя несколько лет группа разработчиков при участии Брюса Шнайера придумали ему замену — Twofish. Утверждалось, что, при сохранении всех преимуществ Blowfish, он работает быстрее и обеспечивает большую надежность.

Twofish вышел в финал конкурса по разработке нового федерального стандарта обработки информации (Federal Information Processing Standard, FIPS), вместе с MARS (IBM), Serpent (Ross Anderson, Eli Biham, Lars Knudsen), Rijndael (Joan Daemen, Vincent Rijmen), RC6 (RSA Laboratories), в котором победил алгоритм Rijndael и ему было присвоено название AES (Advanced Encryption Standard). Twofish уступил ему по причине большей сложности, «криптостойкость» сомнениям не подвергалась и в настоящий момент этот алгоритм весьма распространен и используется наравне с AES-Rijndael.

  
Обменивающиеся сообщениями Алиса и Боб могут выглядеть, например, и так. Фото: id Quantique/Deckpoint

Безопасность за пределами виртуальности

Работа над криптографическими системами привела его к более широкому пониманию идею безопасности вообще. В предисловии к своей книге «Секреты и ложь. Цифровая безопасность в сетевом мире» он писал: «Я пришел к проблеме информационной безопасности от криптографии и очертил проблему с позиций классического криптографического мышления. Большинство работ по вопросам безопасности написано с этой же точки зрения, и сформулировать ее в общем виде довольно несложно: угроз безопасности следует избегать, используя превентивные контрмеры. Десятилетиями мы применяли этот подход в сфере компьютерной безопасности. Если мы способны избежать этих угроз, мы победили. Если не способны, то мы проиграли. Представьте же мое удивление, когда я узнал, что в нашем мире этот подход не работает».

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

«Прозрение наступило в апреле 1999 года, когда мне стало вдруг ясно, что защита безопасности — это управление рисками; их выявление и адекватная реакция столь же важны, как и их предотвращение. Настоящей целью мер по защите чего бы то ни было должно стать сужение возможного “окна воздействия” на систему. Наконец-то у меня появилась возможность завершить мою книгу: предложить решения тех проблем, что я обозначил; показать путь из тьмы, надежду на будущее для компьютерной безопасности».

Не все безоговорочно воспринимают метод решения проблем безопасности Шнайера, но он твердо настроен добиться здесь успеха. По его мнению, найденный им подход имеет приложения, уходящие далеко за пределы проблем безопасного обмена данных компьютера с периферией. У него есть и сугубо социальные приложения, позволяющие находить правильные или осуждать ошибочные действия политиков. Свои идеи и цели он освещает в различных публикациях, в том числе и в своей новостной рассылке Crypto-Gram, число читателей которой в настоящий момент превысило 120 тысяч человек.

Читайте также в журнале «Вокруг света»:

 

Артур Инджиев, Владимир Натров, 22.09.2006

 

Новости партнёров