Выбрать главу

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

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

Такая схема более или менее работает. Алиса может при помощи изобретенного ею алгоритма зашифровать свой секрет глазури для керамики. Алиса и Боб могут договориться об алгоритме, чтобы поделиться друг с другом мыслями о Кама Сутре. Целый общественный класс – китайская знать (хотя, скорее всего, никого из них Бобом не звали) – использовал письменность, чтобы утаить от крестьян государственные тайны.

Но возникают определенные сложности. Во-первых, алгоритм должен быть надежным. Не надейтесь, что Ева посмотрит на зашифрованное сообщение, пожмет плечами и отступится. Она твердо намерена прочесть открытый текст. Если Ева – это правительство Великобритании времен Второй мировой войны, она наймет лучших математиков, лингвистов и шахматистов страны, запрет их и еще 10 000 человек в тайной резиденции в Блетчли Парк и создаст компьютер – только так она сможет взломать алгоритм и восстановить текст сообщения. Агентство национальной безопасности – единственный в своем роде крупнейший потребитель компьютерного оборудования и работодатель математиков. Алисе нужно быть очень ловким шифровальщиком, если ей предстоит перехитрить Еву такого уровня. Я еще расскажу об этом позже.

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

Останься эти две проблемы неразрешенными, в наше время криптография могла бы стать почти бесполезной. Представьте, что вы, один из скольких-то там миллионов пользователей Интернета, хотите посекретничать с сотней своих лучших друзей. Вы хотите пользоваться не одним и тем же тайным языком для всех ста друзей, а использовать сто разных секретных алгоритмов. (Вам необходима попарная секретность. И того же желают остальные несколько миллионов пользователей Интернета.) Это означает, что вам придется создать эти 100 различных алгоритмов шифрования, обменяться ими с каждым из друзей, самостоятельно запрограммировать все алгоритмы в своем компьютере (вы ведь никому этого не доверите) и надеяться на то, что вы умнее тех, кто, возможно, попытается понять ваш алгоритм.

Очень маловероятно.

В этом прелесть ключа. Замок на вашей двери – это серийный продукт какой-то безликой компании, которую нисколько не заботит ценность вашей коллекции марочных вин, но вы и не должны им доверять. Они не говорят вам: «Помните, любой, у кого есть замок такой же марки, может открыть ваш замок». У вас есть ключ. Набор шпеньков в замке, соответствующий вашему ключу, отличает ваш замок от всех остальных замков в округе, несмотря на то что у них может быть та же модель. (На самом деле пример упрощен. Вы все же должны принять на веру, что они правильно собрали замок и не припасли запасных ключей. Но мы пока что не принимаем это во внимание.)

Дверной замок служит примером такой же модели защиты, какую в 1466 году привнес в криптографию Леон Баттиста Альберти, известный итальянский архитектор эпохи Возрождения, создав криптографический ключ. У кого угодно могут быть замки одинаковых моделей, но ключи у всех разные. Конструкция замка не является уникальной – у слесарей есть книги с подробными схемами, а большинство хороших моделей описаны в общедоступных патентах, – но ключ является тайной. У вас есть ключ, значит, вы можете отпереть дверь. Если вы одолжите ключ другу, то он сможет войти в дом. А тот, у кого ключа нет, останется на улице. (Слесарями в данном случае будут криптоаналитики; до них мы доберемся позднее.)