Квантовые компьютеры
Л. Федичкин, кандидат физико-математических наук
Физико-технологический институт Российской академии наук
Опубликовано в журнале "Наука и жизнь", N 1, 2001 г
Введение или немного о защите иноформации
Как вы думаете, на какую программу в мире продано наибольшее количество лицензий? Не рискну настаивать, что знаю правильный ответ, но мне точно известен один неверный: это не какая-либо из версий Microsoft Windows. Самую распространенную операционную систему опережает скромный продукт фирмы RSA Data Security, Inc. - программа, реализующая алгоритм шифрования с открытым ключом RSA, названный так в честь его авторов - американских математиков Ривеста, Шамира и Адельмана.
Дело в том, что алгоритм RSA встроен в большинство продаваемых операционных систем, а также во множество других приложений, используемых в различных устройствах - от смарткарт до сотовых телефонов. В частности, имеется он и в Microsoft Windows, а значит, распространен заведомо шире этой популярной операционной системы. Чтобы обнаружить следы RSA, к примеру, в браузере Internet Explorer (программе для просмотра www-страниц в сети Интернет), достаточно открыть меню "Справка" (Help), войти в подменю "О программе" (About Internet Explorer) и просмотреть список используемых продуктов других фирм. Еще один распространенный браузер Netscape Navigator тоже использует алгоритм RSA. Вообще, трудно найти известную фирму, работающую в области высоких технологий, которая не купила бы лицензию на эту программу. На сегодняшний день фирма RSA Data Security, Inc. продала уже более 450 миллионов(!) лицензий.
Почему же алгоритм RSA оказался так важен?
Представьте, что вам необходимо быстро обменяться сообщением с человеком, находящимся далеко. Благодаря развитию Интернета такой обмен стал доступен сегодня большинству людей - надо только иметь компьютер с модемом или сетевой картой. Естественно, что, обмениваясь информацией по сети, вы бы хотели сохранить свои сообщения в тайне от посторонних. Однако полностью защитить протяженную линию связи от прослушивания невозможно. Значит, при посылке сообщений их необходимо зашифровать, а при получении - расшифровать. Но как вам и вашему собеседнику договориться о том, каким ключом вы будете пользоваться? Если послать ключ к шифру по той же линии, то подслушивающий злоумышленник легко его перехватит. Можно, конечно, передать ключ по какой-нибудь другой линии связи, например отправить его телеграммой. Но такой метод обычно неудобен и к тому же не всегда надежен: другую линию тоже могут прослушивать. Хорошо, если вы и ваш адресат заранее знали, что будете обмениваться шифровками, и потому заблаго-временно передали друг другу ключи. А как быть, например, если вы хотите послать конфиденциальное коммерческое предложение возможному деловому партнеру или купить по кредитной карточке понравившийся товар в новом Интернет-магазине?
В 1970-х годах для решения этой проблемы были предложены системы шифрования, использующие два вида ключей для одного и того же сообщения: открытый (не требующий хранения в тайне) и закрытый (строго секретный). Открытый ключ служит для шифрования сообщения, а закрытый - для его дешифровки. Вы посылаете вашему корреспонденту открытый ключ, и он шифрует с его помощью свое послание. Все, что может сделать злоумышленник, перехвативший открытый ключ, - это зашифровать им свое письмо и направить его кому-нибудь. Но расшифровать переписку он не сумеет. Вы же, зная закрытый ключ (он изначально хранится у вас), легко прочтете адресованное вам сообщение. Для зашифровки ответных посланий вы будете пользоваться открытым ключом, присланным вашим корреспондентом (а соответствующий закрытый ключ он оставляет себе).
Как раз такая криптографическая схема и применяется в алгоритме RSA - самом распространенном методе шифрования с открытым ключом. Причем для создания пары открытого и закрытого ключей используется следующая важная гипотеза. Если имеется два больших (требующих более сотни десятичных цифр для своей записи) простых числа M и K, то найти их произведение N=MK не составит большого труда (для этого даже не обязательно иметь компьютер: достаточно аккуратный и терпеливый человек сможет перемножить такие числа с помощью ручки и бумаги). А вот решить обратную задачу, то есть, зная большое число N, разложить его на простые множители M и K (так называемая задача факторизации ) - практически невозможно! Именно с этой проблемой столкнется злоумышленник, решивший "взломать" алгоритм RSA и прочитать зашифрованную с его помощью информацию: чтобы узнать закрытый ключ, зная открытый, придется вычислить M или K.
Для проверки справедливости гипотезы о практической сложности разложения на множители больших чисел проводились и до сих пор еще проводятся специальные конкурсы. Рекордом считается разложение всего лишь 155-значного (512-битного) числа. Вычисления велись параллельно на многих компьютерах в течение семи месяцев 1999 года. Если бы эта задача выполнялась на одном современном персональном компьютере, потребовалось бы примерно 35 лет машинного времени! Расчеты показывают, что с использованием даже тысячи современных рабочих станций и лучшего из известных на сегодня вычислительных алгоритмов одно 250-значное число может быть разложено на множители примерно за 800 тысяч лет, а 1000-значное - за 1025(!) лет. (Для сравнения возраст Вселенной равен ~1010 лет.)
Поэтому криптографические алгоритмы, подобные RSA, оперирующие достаточно длинными ключами, считались абсолютно надежными и использовались во многих приложениях. И все было хорошо до тех самых пор...пока не появились квантовые компьютеры.
Оказывается, используя законы квантовой механики, можно построить такие компьютеры, для которых задача факторизации (и многие другие!) не составит большого труда. Согласно оценкам, квантовый компьютер с памятью объемом всего лишь около 10 тысяч квантовых битов (или кубитов - Прим.ред.) способен разложить 1000-значное число на простые множители в течение всего нескольких часов!
Как все начиналось?
Оглавление
Дата публикации: 29/09/01
|