Соответственно, теперь эту последовательность фотонов нужно отправить второму участнику переписки: \/—||/—/\|. Но что же должен сделать он? Он же не знает, в какой именно поляризации отправлены фотоны, так что измерять он может любым из двух приборов: вертикально-горизонтальным или диагонально-диагональным. Для измерения можно выбрать один прибор, либо использовать для каждого прибора свой прибор, выбираемый случайным образом. Это абсолютно неважно, так как в среднем половина переданных фотонов будет измерена правильным прибором, а другая половина неправильным, и результат неправильного измерения случаен.
Например, пусть для указанной передачи получатель использовал вертикально-горизонтальный прибор. Тогда он мог получить такой результат: ||—||—|—|. Это соответствует последовательности битов 0010011010. А передана была 0110011100. Как же быть? Всё просто. Теперь отправитель связывается с получателем по открытому каналу — например, по телефону — и говорит, в какой поляризации были отправлены фотоны, а получатель сообщает, какие из них были измерены правильным образом. В нашем примере получается, что правильно были измерены только третий, четвёртый, пятый, седьмой и десятый фотоны, и именно их надо оставить, а неправильно измеренные фотоны выкинуть. И тогда получается двоичное число 10010, одинаковое и у отправителя, и у получателя. Это число и есть секретный ключ, который после передачи можно использовать для шифрования информации при помощи, например, одноразового блокнота.
Всё это было понятно. Папа попросил нас с Катей передать друг другу несколько последовательностей битов, записывая их на клочках бумаги, и мы немного потренировались. Проблем не возникало, мы получали одинаковые последовательности после вычёркивания неправильно измеренных битов. Тогда Катя спросила:
— Но всё равно непонятно, зачем четыре разных фотона? Ведь мы всё равно передаём биты.
Папа кивнул и сказал:
— Вот в этом-то суть метода. Это позволяет противостоять атаке «человек посередине». Вот смотрите. Некто перехватывает фотоны, посылаемые отправителем, и измеряет их. Но он же тоже не знает, в какой поляризации они посланы, а потому примерно половина фотонов будет измерена неправильно. А этот некто должен послать измеренный фотон дальше, чтобы у получателя не появилось подозрений, что их перехватывают. Если фотон измерен неверно и при этом злоумышленник даже не понимает, какие фотоны он измерил неверно, то он не сможет корректно передать данные. И отправитель с получателем смогут определить, что передача была скомпрометирована. Понятно?
Вроде бы интуитивно это было понятно, но всё равно надо проверить. Я попросил папу привести нам пример. Тогда он вновь нарисовал предыдущую таблицу, но добавил к ней три новые строки:
Второй участник переписки получает последовательность фотонов: |/\||/\ — \\. Он опять не знает, в какой поляризации их измерять, а потому измеряет случайным образом. На самом деле опять можно использовать только один прибор для измерения. Пусть, как и в прошлый раз, получатель измерил все фотоны вертикально-горизонтальным прибором. Он прочитает что-то типа такого: |—|||—|—. Это соответствует последовательности битов 0110001101. А передана была 0110011100. Как и в прошлый раз, получатель обращается к отправителю по открытому каналу и узнаёт, какие биты он измерил правильно. Как и в прошлый раз, правильно он измерил третий, четвёртый, пятый, седьмой и десятый фотоны, а потому остаются только эти биты. На стороне отправителя последовательность выглядит как 10010, а на стороне получателя 10011. Как видно, десятый бит пришёл с ошибкой — и злоумышленнику-перехватчику ещё повезло, что с ошибкой пришёл только один бит, поскольку в среднем ошибочными будет половина битов из оставшихся.
Чтобы проверить, не скомпрометирован ли канал и нет ли посередине зловредного человека, который его прослушивает, отправитель и получатель должны взять не менее половины битов из оставшихся одинаковых и сравнить их. Если хотя бы один бит не совпадает, то был перехват и фотонный канал скомпрометирован. Если все биты совпадают, то скорее всего канал был чистым. Эта вероятность не стопроцентная, однако чем больше битов проверяется, тем она выше, так что вероятность в любом случае можно довести до приемлемого уровня. Например, 99,999 %. Но поскольку биты сравниваются друг с другом по открытому каналу, после сравнения они должны быть отброшены. В итоге остаётся проверенная последовательность, которая и является секретным ключом.
Теперь всё стало понятно. Папа предложил нам проделать что-то вроде лабораторной работы, поскольку установленные нами лазерные пушки реализуют именно тот алгоритм передачи, о котором он нам только что рассказал.
Я взял свою рацию и пошёл в берёзки. Рация должна стать нашим открытым каналом. Папа выдал защитные очки Кате, а сам пошёл в штаб. Мы должны передать секретное послание, а потом рассказать ему про результаты, после чего мы обсудим то, как всё прошло.