Квантова криптографія на гральних картах

Читач TJ пояснює складний метод шифрування на одному з найзрозуміліших прикладів — колоді карт.

Квантова криптографія відіграватиме важливу роль в інформаційному суспільстві майбутнього. Це визнається навіть у найвищих фінансових колах. Протоколи квантового шифрування можуть здаватися чимось складним і далеким від обивателя. Але, як показала практика, навіть блокчейн можна пояснити на пальцях. Тому я представляю вашій увазі спробу описати найпростіший протокол квантового шифрування на прикладі гри.

Перш ніж говорити про квантову криптографію, варто сказати пару слів про криптографію в цілому. Це наука про те, як передати повідомлення, яке можуть прочитати лише відправник та одержувач і ніхто більше. Традиційно шифрування здійснюється за допомогою ключів - деякої секретної інформації, застосування якої до шифрованого повідомлення робить його читаним, і навпаки. У цій статті я за допомогою гральних карт покажу, як квантова фізика дозволяє зробити так, щоб по-перше секретний ключ змогли знати і відправник, і одержувач, а по-друге (і це головне), щоб будь-яка спроба крадіжки ключа розкривалася.

Зіграємо у квантовий пасьянс

Для гри в квантовий пасьянс потрібно буде уявити таку штуку, як квантові гральні карти. Квантові карти схожі на звичайні гральні карти: вони можуть бути невідомими (лежати сорочкою вгору), їх можна намагатися виміряти (перевернути та прочитати карту). Звичайні карти можуть мати масть та гідність. Для простоти ми розглядатимемо підколоду, що складається тільки з чотирьох карт: шість пік, туз пік, шість черв'яків і туз черв'яків.

Квантові карти відрізняються тим, що ми не можемо одночасно знати і масть, і гідність карти - тільки щось одне. Квантова підколода,відповідна класичній підколоді, описаній вище, також складатиметься з чотирьох карт: 6, Т, піку, хробака.

Невизначеність – фундаментальна особливість квантових карт. У той момент, коли ми перевертаємо невідому квантову карту, ми повинні сказати, за якою ознакою ми читаємо (вимірюємо) карту: по масті або гідно. Причому якщо у карти була певна масть, ми можемо скільки завгодно вимірювати її по масті, і завжди будемо отримувати той самий результат.

Але варто нам прочитати її гідно, її стара масть «злітає» і стає невизначеною. При цьому вартість карти може виявитися рівним 6 або Т з ймовірностями 50%. Таким чином, квантові карти, на відміну класичних, можуть змінювати свої ознаки протягом гри.

Нарешті, квантові карти мають ще одну чарівну властивість — їх можна роздати в стані заплутаної пари. Це такий особливий стан двох карт, при якому вимір однієї карти автоматично і моментально вимірює іншу (без перевороту) з результатом, протилежним першої.

Наприклад, ми міряємо по масті одну карту із заплутаної пари та отримуємо піку. У цьому випадку ми, не перевертаючи другу карту по масті (але не гідно), зі 100% впевненістю можемо сказати, що там черв'яка. І те саме з перевагами. Щось схоже може відбуватися і з класичними картами — наприклад, якщо ви граєте з круп'є, який роздає вам пару карт, відбираючи їх за принципом різних мастей. Розкривши одну карту, ви точно дізнаєтеся, яка масть та інший.

Генерація ключа

Чарівні властивості квантових карт ми дізналися, тому перейдемо безпосередньо до гри. Один із учасників гри, наприклад, Ганна, отримує з колоди пару заплутаних карт. Одну карту вона відправляє своєму напарнику, наприклад,Борису, а другу лишає собі. Анна може вибрати, виміряти карту по масті, або гідно, і перевертає карту, нікому не показуючи результат.

У цей момент карта, що йде до Бориса, перемикається дорогою на значення, зворотне виміряному Ганною, і приходить до Бориса сорочкою вгору. Тепер Борис вибирає, як виміряти карту. Вимірявши, Борис вголос каже спосіб виміру, але не каже результат. Анна чує це, і відповідає йому, вгадав він чи ні.

Якщо Борис не вгадав, кін закінчується, і карти лунають заново. Якщо Борис міряв так само, як і Ганна, то обидва записують собі значення Бориса, закодоване в двійковій системі. У цьому 6 і піку кодуються як 0, а Т і черви — як 1. Після запису починається новий кін.

Таким чином, після серії конів у Анни та Бориса виходить ідентичний набір нулів та одиниць, але при цьому не озвучений вголос. Цей набір можна використовувати як ключ для шифрування будь-якого повідомлення.

Малюнок нижче ілюструє цей алгоритм з прикладу дев'яти конів гри. Кожен стовпець із карт відповідає одному кону.