Применение такой модели в криптографии решает обе упомянутые выше проблемы. Алгоритмы, так же как и замки, можно стандартизировать. Стандарт шифрования данных (Data Encryption Standard, DES) – это общепринятый криптографический алгоритм, широко распространенный с 1977 года. Его использовали в тысячах различных программ для любых приложений. Самые сокровенные подробности устройства DES были опубликованы с первого дня его существования; их опубликовали даже до того, как этот алгоритм приняли в качестве стандарта. Доступность этого алгоритма не сказывается на безопасности, поскольку различные группы пользователей выбирают себе разные секретные ключи. Если Алиса и Боб пользуются одним ключом, значит, они могут общаться. Ева ключа не знает, следовательно, она не сможет прочесть их сообщения – даже если у нее есть точно такие же шифровальные программы, как у Алисы и Боба.
С помощью ключей решается задача включения и исключения людей из группы избранных. Если Алиса и Боб договорились о совместном использовании одного ключа и хотят, чтобы Ким Филби смог присоединиться к их общению, они просто дадут ему копию ключа. Если позже они решат, что Филби передает секреты Советскому Союзу, им нужно просто сменить ключ и не сообщать об этом Филби. С этого момента он исключен из системы и больше не сможет читать сообщения, зашифрованные новым ключом. (Увы, он все же может прочитать старые.)
Современная криптография традиционно устроена именно таким образом. Алгоритмы заменяют традиционные ручку и бумагу – они оперируют битами вместо символов алфавита, компьютеры оснащены эффективными микропроцессорами и интегральными схемами, – но философия остается прежней. Алгоритм доступен для всех, а общающиеся стороны договариваются о секретном ключе, который они применят для этого алгоритма.
Такие алгоритмы называют симметричными, потому что отправитель и получатель используют один и тот же ключ. Ключ представляет собой случайную строку битов некоторой длины: в 2000 году хорошей длиной ключа считалась длина в 128 бит. У различных симметричных алгоритмов – разная длина ключей.
Симметричные алгоритмы можно обнаружить в шифровальных системах всего компьютеризованного мира. Общепринятыми алгоритмами считают DES и тройной DES, RC4 и RC5, IDEA и Blowfish. Улучшенный стандарт шифрования (Advanced Encryption Standard, AES) вскоре станет стандартным алгоритмом шифрования правительства США [18]. При помощи этих алгоритмов обеспечивается безопасность частных сообщений электронной почты, индивидуальных файлов, электронных банковских операций и кодов запуска ракет с ядерными боеголовками. Эти алгоритмы препятствуют нарушению конфиденциальности.
Но они несовершенны.
Проблема в распределении ключей. Для того чтобы описанная система работала, Алиса и Боб должны договориться о секретном ключе перед тем, как получат возможность обменяться тайными сообщениями. Если они достаточно сообразительны, то будут регулярно менять ключ, скажем, раз в день. Им необходимо как-то тайно уславливаться об этих ежедневно изменяющихся ключах, так как, перехватив ключ, кто угодно сможет читать все сообщения, зашифрованные с его помощью. Кроме того, поскольку необходима попарная секретность, количество ключей будет возрастать пропорционально квадрату количества пользователей. Двум пользователям нужен только один ключ, но сеть из десяти пользователей требует 45 ключей [19], чтобы предоставить каждой паре возможность секретного общения. А сеть из 100 пользователей потребует 4950 различных ключей. В 80-х годах корабли Военно-Морского флота США отправлялись в плавание с полным набором ключей, предоставляемых Агентством национальной безопасности – каждый ключ был напечатан на бумажной ленте, перфокарте или на чем-нибудь еще; этого было достаточно для всех сеансов связи на все время выполнения задания. Но недостаточно только распространять ключи секретно: их нужно секретно хранить, секретно использовать, а затем секретно уничтожать. Алиса и Боб обязаны хранить свои ключи в тайне в течение всего времени, пока им необходимо общаться друг с другом и быть уверенными, что ни у кого больше нет их ключей. Секретность должна соблюдаться как до и во время использования ключа, так и впоследствии.
Это означает, что уничтожение ключей имеет большое значение. Алиса и Боб не могут просто выбросить свой ключ в корзину в конце работы и надеяться, что его никто не найдет. Перехватчики не пренебрегают хранением зашифрованных посланий, которых не способны прочесть, в надежде, что найдут к ним ключ через несколько дней. Агентство национальной безопасности получило возможность расшифровать русский трафик VENONA (вспомните эту историю; это действительно поучительно) только благодаря тому, что СССР повторно использовал ключ, который, должно быть, ранее выбросил, и тому, что АНБ хранило все эти советские шифрованные сообщения более 10 лет [20].
Читать дальше