основе простых чисел будет генерировать ключ шифрования, сообщаемый всем желающим,
и ключ дешифрования, известный только конкретному пользователю. Вот как это будет
выглядеть на практике. У меня есть информация, которую я хочу Вам передать. Моя система
(на базе информационного устройства или компьютера) отыскивает Ваш общий ключ и с его
помощью шифрует сообщение перед посылкой. Никто, кроме Вас, это сообщение прочитать
не сможет, несмотря на то что этот ключ давно стал достоянием гласности. Почему? А
потому, что принадлежащий Вам общий ключ не содержит информацию, необходимую для
дешифрования. Вы получаете сообщение, и компьютер декодирует его на основе личного
ключа, соответствующего общему.
Но вот Вы захотели ответить на послание. Ваш компьютер отыскивает общий ключ и с
его помощью кодирует ответ. Никто другой это сообщение не сумеет прочитать, невзирая на
то что уж этот ключ – точно общий. И тем не менее только я один узнаю содержание Вашей
записки, потому что только у меня есть личный ключ дешифрования. Такая система весьма
практична, поскольку никому не придется заблаговременно обмениваться ключами.
Насколько велики должны быть простые
числа и их произведения, чтобы необратимая
функция работала по-настоящему эффективно?
Концепция шифрования по общему ключу изобретена Уитфилдом Диффи (Whitfield
Diffie) и Мартином Хеллманом (Martin Hellman) в 1977 году. Чуть позже другая группа
ученых в области компьютерных наук, Рон Ривест (Ron Rivest), Ади Шамир (Adi Shamir) и
Леонард Эдельман (Leonard Adelman), стала использовать разложение произведений
простых чисел на множители как часть того, что теперь известно под названием
«криптосистема RSA» (где RSA – первые буквы фамилий этих ученых). Они считали: чтобы
разложить 13О-разрядное произведение простых чисел на множители, понадобятся
миллионы лет – независимо от вычислительных мощностей. Для доказательства они
предложили всем скептикам найти 2 множителя в 129-разрядном числе (среди тех, кто
имеет отношение к криптографии, его называют RSA 129):
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 561 842 935
706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543 541
Ученые были уверены,
что сообщение, зашифрованное ими с помощью этого общего
ключа-числа, никогда не удастся прочитать. Но они то ли проигнорировали закон Мура
(согласно которому, как я рассказывал во второй главе, вычислительная мощность
компьютеров постоянно возрастает), то ли просто не ожидали такого успеха персональных
компьютеров (который привел к колоссальному росту компьютерного парка и
пользователей во всем мире). Так или иначе, в 1993 году более 600 ученых, не считая
энтузиастов со всего мира, начали биться над этим 129-разрядным числом, координируя
работу своих компьютеров по Internet. И менее чем за год
они разложили это число на
множители: одно число оказалось 64-разрядным, а другое – 65-разрядным. Эти простые
числа выглядели так:
3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577
и
32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533
А зашифрованная фраза гласила: «The magic words are squeamish аnd ossifrage»
(«Волшебные слова: разборчивый и скопа»).
Первый урок, который следует извлечь из этой истории: 129-разрядный общий ключ
маловат для шифрования действительно важной и секретной информации. А второй – не
следует слишком уж полагаться на надежность криптографической защиты.
Увеличение ключа всего на несколько разрядов резко усложняет взлом. Сегодня
математики пришли к выводу – разложение 250-разрядного произведения двух простых
чисел займет несколько миллионов лет, даже с учетом постоянного роста вычислительных
мощностей. Но кто за это поручится? Всегда есть вероятность – пусть и ничтожная, – что
кто-то вдруг додумается до простого способа разложения больших чисел на множители. А
значит, программную платформу информационной магистрали надо строить так, чтобы при
необходимости можно было легко сменить систему шифрования.
Единственное, о чем беспокоиться не следует, – так это о том, что нам не хватит простых
чисел или что 2 компьютера ненароком используют под ключи одинаковые числа. Простых
чисел гораздо больше, чем атомов во Вселенной, поэтому шанс на случайное дублирование
ничтожно мал.
Шифрование по ключу дает нечто большее простой конфиденциальности. Оно
обеспечивает и аутентификацию документов, потому что личный ключ позволяет
зашифровать сообщение, которое можно декодировать только с помощью общего ключа.
Работает это так.
Информацию, которую я хочу подписать перед передачей Вам, мой
компьютер кодирует моим личным ключом. Теперь Вы сможете прочитать это сообщение
только в том случае, если «отомкнете» его моим общим ключом. А он известен и Вам, и
всем остальным. Таким образом, становится ясно, что сообщение поступило именно от
меня, поскольку такого личного ключа больше ни у кого нет.
Пойдем дальше. Мой компьютер берет это кодовое сообщение и снова шифрует его, на
этот раз применяя Ваш общий ключ. Затем по информационной магистрали пересылает Вам
уже дважды зашифрованное сообщение.
Ваш компьютер принимает его и расшифровывает с помощью Вашего личного ключа.
Тем самым он удаляет второй уровень шифрования, но оставляет первый – тот, который был
осуществлен на основе моего личного ключа. Тогда компьютер «достает» мой общий ключ и
вновь проводит расшифровку сообщения. Благодаря тому, что оно действительно исходило
от меня, сообщение расшифровывается правильно, и Вы теперь твердо знаете, кто его автор
(это и есть аутентификация документа). Если хотя бы
один бит информации изменился,
сообщение уже не удалось бы расшифровать корректно, и Вам стало бы ясно, что оно
поддельное или что при связи произошел сбой. Подобная экстраординарная защита позволит
заключать финансовые сделки с незнакомыми людьми или с теми, кому Вы не доверяете;
при указанных условиях Вы сможете быть уверены, что цифровые деньги не фальшивы, а
документы и подписи на них действительно принадлежат людям, с которыми Вы имеете
дело.
Степень защиты можно усилить, включив в зашифрованные
сообщения временные
отметки.
Если
кому-нибудь
вздумается
помудрить
над
датой
и
временем
предположительной отправки или написания документа, это тут же выявится. Тем самым
восстанавливается свидетельская ценность фотографий и видеозаписей, которая сейчас
поставлена под сомнение из-за той легкости, с которой осуществляется их цифровое
ретуширование.
Конечно, технические детали принципов шифрования по общему ключу в моем описании
слишком упрощены. Прежде всего надо подчеркнуть, что этот метод работает довольно
медленно, и поэтому на магистрали он будет не единственным. Но именно он позволит
подписывать и аутентифицировать документы, безопасно распространять
ключи к другим