Завтрак с Эйнштейном. Экзотическая физика повседневных предметов - Чад Орцель. Страница 56

осуществить на практике. Одним из решений станет использование кодов: написать послание так, чтобы оно имело смысл только для того, кому предназначается, но казалось тарабарщиной для любого другого, кто перехватит его.

Существует множество остроумных систем кодирования, которые насчитывают тысячи лет, но мы заинтересованы в современной безопасности, а она лучше всего понимается на языке математики. В современных криптосистемах секретное послание превращается в строчку чисел, и затем выполняет над ними некоторые математические операции отправитель, в результате получается другая строчка чисел, какую открыто посылают получателю. Если получатель точно знает, что было сделано, он может проделать это в обратном порядке, восстановив первоначальное послание: любой другой получит лишь бессмысленную строчку.

Для того чтобы привести конкретный, но простой пример, представьте, что вы совершаете замену букв на числа по простому правилу: А=01, B=02, и так далее до Z=26. Если мы хотим закодировать слово «BREAKFAST» (завтрак), то получим:

Для математической операции, которая еще больше запутает смысл, мы возьмем строчку случайно повторяющихся единиц и нулей в качестве нашего шифровального ключа, одну на каждую буку послания. Затем мы скомбинируем обе строки, добавив единицу к изначальному числу, если наш ключ имеет 1 в этой позиции, и вычитая единицу, если наш ключ имеет 0.

Человек, получивший шифрованный текст «A S D Z J E B T S», не зная кода, скорее всего подумает, что отправителем был кот, который опять топтался по клавиатуре. Если у получателя, кому и направлялось письмо, есть шифр и он знает нужную последовательность операций, он может проделать дешифровку, обратив процесс шифрования – добавив единицу для нуля в ключе, вычитая единицу для 1 в ключе – и восстановить первоначальное послание[261].

Этот простой шифр иллюстрирует основной принцип, что также был проблемой шифрования: он зависит от условия, при котором и отправитель, и получатель должны знать правильную последовательность действий при расшифровке, то есть должны оба иметь один и тот же ключ – в нашем случае это 010000110. Если получатель не имеет того же ключа, что и отправитель, он не сможет декодировать послание, как и любой посторонний, случайно его перехвативший.

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

Более надежным методом считается список случайных чисел, который используется как ключ – так называемый «one-time pad» – «шифр Вернама[262]» или OTP. Он использует новый ключ каждый раз для кодировки каждого нового сообщения, но это создает дополнительные логистические проблемы для отправителя и получателя. Каждый из них должен иметь доступ к какому-то большому и используемому обоими списку случайных чисел, и чем больше список чисел, тем труднее хранить их в секрете[263]. Также может быть сложным надежно восполнять список после многих посланий, если отправитель и получатель находятся в таких местах, что не могут легко организовать встречу.

Идеальной системой для такого типа криптографии была бы такая, в которой случайные числе генерировались бы по требованию. Хотя и существуют достаточно случайные процессы, которые и отправитель, и получатель могли бы использовать, чтобы создать полезный ключ, если они делают это в двух разных местах, полученные случайные числа будут обязательно разными и, таким образом, бесполезными для кодировки текста. Необходимость того, чтобы числа и у отправителя, и у получателя были одинаковыми, делает генерирование случайных чисел почти невозможным.

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

Играя в кости со Вселенной

Одной из наиболее часто публикуемых цитат Эйнштейна – это «Бог не играет в кости со Вселенной». Она берет начало из другого высказывания, адресованного Максу Борну в письме 1926 года: «(Квантовая механика) говорит о многом, но не подводит нас ближе к секретам Иакова[264]. Во всяком случае, я убежден, что Он не бросает кости…»

Главная проблема здесь связана с вероятностной природой квантовой механики, впервые сформулированной Борном: квантовые волновые функции говорят нам лишь о вероятности получения конкретных результатов измерений. Если мы много-много раз повторим эксперимент и обработаем все результаты, волновая функция будет прекрасным описанием всего диапазона результатов. Однако знание волновой функции не позволяет нам предсказывать точный результат какого-либо конкретного эксперимента; насколько мы знаем, результат отдельного эксперимента над квантовой частицей абсолютно случаен.

Этот вероятностный, случайный характер создает серьезную философскую проблему. Вероятность сама по себе не считается проблемой, даже для самого Эйнштейна – как мы уже видели, некоторые из его самых значительных вкладов в физику включали использование статистических методов для предсказания поведения большого количества частиц без необходимости рассмотрения деталей поведения любой отдельной частицы. В таких случаях, однако, он мог предполагать, что случайность покрывала незнание о детальных взаимодействиях.

Более глубокая теория, которая предсказывала бы специфические результаты для отдельных частиц, оставалась возможной, и в этом случае статистические методы стали бы просто договоренностью, инструментом, чтобы избежать невозможную задачу вычислений деталей взаимодействия между огромным количеством отдельных частиц. Мы делаем это с чисто классическими системами все время. Зная начальное положение и скорость шарика рулетки и колеса, можно в принципе точно предсказать, где остановится колесо, но на практике эти вычисления слишком сложны. Вместо этого мы можем считать игру как совершенно случайную и обсуждать результат в терминах вероятности.

Однако, по мере того как стала возникать квантовая механика, становилось ясно, что здесь случайность фундаментальна. Невозможность предсказать результат отдельного