Читатель TJ объясняет сложный метод шифрования на одном из самых понятных примеров — колоде карт.
Квантовая криптография будет играть важную роль в информационном обществе будущего. Это признаётся даже в самых высоких финансовых кругах. Протоколы квантового шифрования могут казаться чем-то очень сложным и далёким от обывателя. Но, как показала практика, даже блокчейн можно объяснить на пальцах. Поэтому я представляю вашему вниманию попытку описать простейший протокол квантового шифрования на примере карточной игры.
Прежде чем говорить о квантовой криптографии, стоит сказать пару слов о криптографии в целом. Это наука о том, как передать сообщение, которое могут прочесть только отправитель и получатель и никто больше. Традиционно шифрование осуществляется с помощью ключей — некоторой секретной информации, применение которой к шифрованному сообщению делает его читаемым, и наоборот. В этой статье я с помощью игральных карт покажу, как квантовая физика позволяет сделать так, чтобы, во-первых, секретный ключ смогли знать и отправитель, и получатель, а во-вторых (и это главное), чтобы любая попытка воровства ключа вскрывалась.
Сыграем в квантовый пасьянс
Для игры в квантовый пасьянс нужно будет представить себе такую штуку, как квантовые игральные карты. Квантовые карты похожи на обычные игральные карты: они могут быть неизвестны (лежать рубашкой вверх), их можно пытаться измерить (перевернуть и прочитать карту). Обычные карты могут иметь масть и достоинство. Для простоты мы будем рассматривать подколоду, состоящую только из четырёх карт: шесть пик, туз пик, шесть червей и туз червей.
Квантовые же карты отличаются тем, что мы не можем одновременно знать и масть, и достоинство карты — только что-то одно. Квантовая подколода, соответствующая классической подколоде, описанной выше, также будет состоять из четырёх карт: 6, Т, пика, черва.
Неопределённость — фундаментальная особенность квантовых карт. В тот момент, когда мы переворачиваем неизвестную квантовую карту, мы должны сказать, по какому признаку мы читаем (измеряем) карту: по масти или по достоинству. Причём если у карты была определённая масть, мы можем сколько угодно измерять её по масти, и всегда будем получать тот же самый результат.
Но стоит нам прочитать её по достоинству, её старая масть «слетает» и становится неопределённой. При этом достоинство карты может оказаться равным 6 или Т с вероятностями 50%. Таким образом, квантовые карты, в отличие от классических, могут менять свои признаки в течение игры.
Наконец, у квантовых карт есть ещё одно волшебное свойство — их можно раздать в состоянии запутанной пары. Это такое особенное состояние двух карт, при котором измерение одной карты автоматически и моментально измеряет другую (без переворота оной) с результатом, противоположным первой.
Например, мы мерим по масти одну карту из запутанной пары и получаем пику. В этом случае мы, не переворачивая вторую карту по масти (но не по достоинству), со 100% уверенностью можем сказать, что там черва. И то же самое с достоинствами. Нечто похожее может происходить и с классическими картами — например, в случае, если вы играете с крупье, который раздаёт вам пару карт, отбирая их по принципу разных мастей. Вскрыв одну карту, вы точно узнаете, какая масть и другой.
Генерация ключа
Волшебные свойства квантовых карт мы узнали, поэтому перейдём непосредственно к игре. Один из участников игры, например, Анна, получает из колоды пару запутанных карт. Одну карту она отправляет своему напарнику, например, Борису, а вторую оставляет себе. Анна может выбрать, измерить карту по масти, либо по достоинству, и переворачивает карту, никому не показывая результат.
В этот момент карта, идущая к Борису, переключается по дороге на значение, обратное измеренному Анной, и приходит к Борису рубашкой вверх. Теперь уже Борис выбирает, как измерить карту. Измерив, Борис вслух говорит способ измерения, но не говорит результат. Анна слышит это, и отвечает ему, угадал он или нет.
Если Борис не угадал, кон заканчивается, и карты раздаются заново. Если же Борис мерил так же, как и Анна, то оба записывают себе значение Бориса, закодированное в двоичной системе. При этом 6 и пика кодируются как 0, а Т и червы — как 1. После записи начинается новый кон.
Таким образом, после серии конов у Анны и Бориса получается идентичный набор нулей и единиц, но при этом не озвученный вслух. Этот набор можно использовать в качестве ключа для шифровки какого-нибудь сообщения.
Рисунок ниже иллюстрирует этот алгоритм на примере девяти конов игры. Каждый столбец из карт соответствует одному кону.
Прослушивание
Теперь в игру вступает Елена. Она сидит в той же комнате и внимательно слушает, что говорят Анна и Борис. Её задача — выкрасть ключ таким образом, чтобы никто об этом не догадался. Единственный способ — тайно перехватывать карту Бориса, мерить её, и отправлять Борису, как ни в чём не бывало.
Поскольку Елена тоже человек, она может не угадать способ измерения Анны. Тогда с некоторой вероятностью карта, которую получит Борис, будет отличаться от того, что ожидает Анна. Если Борис при этом угадывает способ измерения, то оба пишут себе цифры, но эти цифры будут с некоторой вероятностью отличаться.
Чтобы отследить это, Анна и Борис договариваются вслух сверять определённый процент цифр из ключа. Не слишком большой, чтобы ключ всё ещё сложно было подобрать, но и не слишком маленький, иначе есть шанс никогда не обнаружить прослушку. Если цифры в какой-то момент не совпадают, это означает, что канал связи скомпрометирован, и нужно срочно прекратить коммуникацию.
Заключение
Данная игра носит название протокола BB84 по первым буквам фамилий и году опубликования. На сегодняшний день существует множество других протоколов квантового шифрования, а также попыток их взлома. Здесь же приведён самый простой. В нём у Елены есть шанс остаться не обнаруженной, но он сильно падает с увеличением длины ключа.
В реальности роль квантовых карт играют фотоны, а роль мастей и достоинств — характеристики их поляризации. Физики особым образом научились создавать запутанные пары фотонов: измерение поляризации одного из них повлияет на статистику измерения поляризации у второго мгновенно и независимо от расстояния. Этот процесс и носит название квантовой телепортации.
В игру, описанную в этой статье, при определённом желании можно поиграть даже дома с друзьями. Правда, для этого нужно будет сделать карточки отдельно мастей и отдельно достоинств, а кто-то из участников должен исполнять роль квантового крупье, чтобы обеспечивать случайность измерения карт. Кроме того, данный алгоритм легко программируется.
TJ торт.
Не тж, а Маратос
Сначала Kat Vance, теперь Марат – на TJournal снизошла благодать в этом месяце.
Спасибо, чуваки, искренне.
Комментарий недоступен
Почему не Алиса и Боб? Потому что, а почему бы и нет, вот почему.
Афтар, пеши есчо
Комментарий недоступен
Сначала подумал, что я на Хабр зашёл
Комментарий недоступен
Tverdenkij Journal
же
Марат, я очень рад. Спасибо! Особенно за труд по оформлению и визуализации. Надеюсь, ты не против, что я добавил иллюстрацию в шапку.
спасибо
А вообще, Никит, при оформлении была проблема, связанная с обрезанием рисунков по высоте. Если ты присмотришься, то схемы с картами состоят аж из 3-х рисунков. Надеюсь, это будет исправления при редизайне.
Комментарий недоступен
Как перед первой брачной ночью?)
Вот только сверку они делают по тому же каналу контроль над которым есть у Елены, поэтому они обломаются
Комментарий недоступен
Комментарий недоступен
а толку от того что Елена узнает результат сверки?
Вообще, не понял, зачем сверку делать.
Отправляешь сообщение зашифрованное таким ключом. Если не расшифровалось, значит канал скомпроментирован.
Например, за границей иностранцы посылают друг другу сообщение «The quick brown fox jump over the lazy dog» (все английские буквы) десяток раз подряд, чтобы все могли проверить верно ли у них вбит в криптомашинку сегодняшний ключ шифрования: там он обычно напечатан на блокнотах, поэтому человеческий фактор может ввести q вместо g, например.
Марат, спасибо за пост, очень клево
Очень рад, если кому-нибудь стало понятнее. Хочу теперь попробовать такую штуку на семинарах со своим студентами с реальными картами и цифровыми замочками (3 числа - это как раз 10 бит, то есть 10 конов).
и т.н. обычные (не квантовые карты) тоже квантовые, если исходить из принципа "любое суждние - предположение, т.к. ошибаться можно всегда и во всем"; определенность, Марат, это скрытая неопределенность, никуда она в нашей жизни не девается и никуда вам от нее не уйти; все не то, чем кажется - не забывайте
Комментарий недоступен
Мне понравилась забавная гипотеза явления запутанности, как и двухщелевого опыта, согласно которому в нашей вселенной такое возможно из-за облегчения нагрузки для обработки физики нашего мира процессором. А мы лишь часть симуляции.
Если это так, то получается квантовая запутанность - это превращение бага в фичу пользователями системы)
Ну фиг знает, для своего описания запутанность требует более сложные математические конструкты, чем для описания факторизованных (незапутанных) частиц. Поэтому вряд ли.
Спасибо за статью, сугубо мое пожелание (не знаю, как удобнее остальным) - хотелось бы сразу в процессе несколько больших деталей о связи аналогий с реальными понятиями. В частности в начале упомянуть, какой конкретно алгоритм мы реализуем - чтобы проецировать аналогии в процессе, а не натягивать по результату.
Кароч, небольшая ремарка по поводу того, как это алгоритм реализуется в железе.
Допустим есть два города, условно, Женева и Париж. В каждой есть лаба. В жевевской создают два запутанных фотона. Один отправляют по оптоволокну в Париж. Другой мерят в рандомном базисе. Допустим, где-нибудь в Безансоне злоумышленники врезались в оптоволокно, поставили детектор и источник фотонов и надумали это всё читать. Но даже несмотря на то, что как запутанные фотоны, так и "публичные" сигналы идут по одному и тому же оптоволокну, воровство кода вычисляется.
да, спасибо. На основе дискуссии выше я пришёл к такому же выводу
На игральных картах нихрена не понятно. Вот бы кто-нибудь на хуях и говнах объяснил.
Спасибо, статья супер. Захотелось придумать карточную игру на квантовых картах.
Я уже придумал квантовый холдем покер. Хотел его запрограммировать, опробовать и выложить ссылку сюда. Правда, когда у меня ещё руки дойдут...
Зачем вообще дополнительно вычислять Елену, если они тупо при попытке обмена зашифрованной информацией из-за разницы в ключах не смогут друг друга расшифровать?
чтобы Елена не узнала весь ключ до конца, иначе Анна отправит сообщение, которая прочтёт Елена, но не прочтёт Борис
Я не понял только, почему в последнем примере, когда Елена или Борис меряют по масти могут получить достоинство и наоборот(меряют достоинство, а получают масть)?
Результат измерения ниже, а не выше метода измерения :)
Марат, вы ничего не знаете и знать не можете - вы можете только предполагать, всегда только преполагать. У вас нет и не может быть никакой твердой почвы под ногами - одни только предположения, не более.
Тот случай когда Россия и квантовый мир очень похожи