Классическая физическая система имеет конкретное состояние. Монета на столе может лежать орлом или решкой кверху. Выключатель либо включен, либо выключен. Двоичная цифра (или бит) в памяти компьютера равна либо 0, либо 1. Квантовая система не такова. Квантовый объект – это волна, а волны могут накладываться одна на другую, что на формальном языке называется суперпозицией. Состояние суперпозиции – это смесь состояний компонентов. Знаменитый (мало того, печально знаменитый) кот Шрёдингера может служить ярким примером: при помощи хитроумного устройства с радиоактивным атомом и ампулой ядовитого газа в сочетании с котом в непроницаемом ящике можно добиться того, что квантовое состояние несчастного животного будет суперпозицией состояний «жив» и «мертв». Классический кот должен находиться в одном из этих состояний, а квантовый может находиться в обоих одновременно.
Пока вы не откроете ящик.
Тогда волновая функция кота схлопывается, или коллапсирует, в одно из классических состояний. Кот либо жив, либо мертв. Любопытство (вы же открыли ящик) губит кота. Или не губит.
Я не хочу углубляться в неоднозначные и часто весьма жаркие споры о том, действительно ли квантовые состояния сработали бы подобным образом в случае представителя кошачьего племени{43}
. Для нас важно лишь, что математическая физика прекрасно работает для более простых объектов, которые уже используются для создания рудиментарных квантовых компьютеров. Вместо бита, который может быть равен 0 или 1, там мы имеем кубит, который равен 0 и 1 одновременно. Классический компьютер, который может стоять у вас или у меня на столе, лежать в сумке или в кармане, работает с информацией, представленной в виде последовательности нулей и единиц. Он даже использует для этого квантовые эффекты – настолько мал масштаб электронных схем в сегодняшних компьютерах, но суть в том, что все вычисления соответствуют классической физике. При конструировании классических компьютеров инженеры очень стараются сделать так, чтобы нуль всегда оставался нулем, а единица – единицей и чтобы они никогда не встречались. Классический кот может быть либо жив, либо мертв. Так что регистр из (скажем) восьми бит может хранить в себе единственную последовательность вида 01101101 или 10000110.В квантовом компьютере происходит в точности противоположное. Регистр из восьми кубитов может хранить оба эти варианта одновременно, наряду с остальными 254 возможными 8-битовыми последовательностями. Более того, он может производить арифметические действия со всеми 256 возможными вариантами
В принципе.
В 1980-е годы Пол Бениофф предложил квантовую модель машины Тьюринга – теоретической основы классических вычислений. Вскоре после этого физик Ричард Фейнман и математик Юрий Манин указали, что квантовый компьютер будет способен производить громадное количество вычислений параллельно. Серьезный прорыв в теории квантового компьютера произошел в 1994 году, когда Питер Шор придумал очень быстрый квантовый алгоритм для разложения больших чисел на простые множители. Из этого следует, что криптосистема RSA потенциально уязвима для атак противника, использующего квантовый компьютер, но, что еще важнее, квантовый алгоритм может серьезно превзойти алгоритм классический в решении осмысленной, неискусственной задачи.
На практике на пути к созданию квантового компьютера нас ждут просто громадные препятствия. Крохотные возмущения от внешних источников или даже просто тепловые колебания молекул вызывают декогеренцию, то есть разрушение состояния суперпозиции, причем очень быстрое. Для смягчения этой проблемы машину в настоящее время приходится охлаждать до температуры, очень близкой к абсолютному нулю (–273 ℃), что требует использования гелия-3 – редкого побочного продукта ядерных реакций. Но даже это не может предотвратить декогеренцию, а лишь замедляет ее. Так что каждое вычисление приходится дополнять системой коррекции ошибок, которая замечает нарушения, вызванные помехами от внешних источников, и возвращает кубиты в то состояние, в котором они должны находиться. Квантовая пороговая теорема утверждает, что такой метод работает при условии, что система способна исправлять ошибки быстрее, чем декогеренция их вызывает. По приблизительной оценке, вероятность ошибки для каждого логического ключа не должна превышать одну тысячную.