Jak to działa?
BB84 zgłoś się
Jak można dowiedzieć się z rozlicznych filmów akcji, nieodłączną częścią życia każdego szanującego się tajnego agenta jest wymiana tajnych informacji, najlepiej takich z wielką, czerwoną pieczęcią "Top Secret". Jeśli agent ma taką możliwość, najlepiej przekazać teczkę pełną tajemnic osobiście, jednak jest to luksus, na który może on pozwolić sobie w niewielu sytuacjach, gdyż nierzadko odbiorca tych tajemnic znajduje się na drugim końcu globu. W tej sytuacji konieczne staje się odpowiednie zaszyfrowanie naszych sekretów, aby nawet w przypadku przechwycenia ich przez oślizgłe macki szwarccharakterów, pozostały one sekretami.
Najskuteczniejszym (i najprostszym) sposobem szyfrowania jest one time pad, w którym tajny agent (nadamy mu kryptonim ) ustala z odbiorcą swoich wiadomości (nazywanym dalej admirałem ) klucz będący pewnym zerojedynkowym ciągiem. Kiedy chce przesłać uzyskane sekrety, najpierw konwertuje je w ustalony sposób na zerojedynkowy ciąg (np. itd.), a następnie wysyła ciąg (zwany kryptogramem), który na -tej współrzędnej ma resztę z dzielenia przez 2 sumy -tych współrzędnych ciągów i (operacja ta w informatycznej nowomowie nazywana jest xorem ciągów i i oznaczana przez ). W ten sposób, jeśli tajna informacja to a to kryptogramem jest Aby odcyfrować otrzymany kryptogram, wykonuje tę samą operację, która posłużyła do szyfrowania - oblicza Nietrudno sprawdzić, że mamy bowiem Ponadto, jeśli zostanie przechwycone przez wrogie siły (reprezentowane przez nikczemnego doktora ), to nie będą one w stanie wywnioskować stąd gdyż byłoby to równoważne z ustaleniem wartości klucza o którym zakładamy przecież, że jest znany tylko i
Słabym punktem powyższej procedury jest konieczność spotkania się i w celu ustalenia klucza, nie mogą go bowiem przesłać na odległość, gdyż mógłby on zostać "podsłuchany" przez doktora a może jednak mogą?
W 1976 roku Whitfield Diffie i Martin Hellman zaproponowali protokół (znany teraz pod nazwiskami twórców), który pozwala na ustalenie klucza w taki sposób, że nawet jeśli komunikacja zostanie podsłuchana, to strona podsłuchująca nie będzie w stanie odcyfrować prawdziwej wartości klucza. Protokół ten wiąże się z trudnością wykonania tzw. logarytmu dyskretnego, czyli odpowiedzi na pytanie w rodzaju "do jakiej potęgi należy podnieść 123, aby otrzymać resztę 321 z dzielenia przez 983?". Jak jednak można dowiedzieć się w tym numerze, w "postkwantowym" świecie z dostępem do wydajnych komputerów kwantowych logarytm dyskretny przestaje być zadaniem trudnym. Na szczęście (dla agenta ) komputery kwantowe dostarczają również nowe narzędzia do kodowania wiadomości i to takie, których w "dowodliwy" sposób same nie mogą przełamać. W tym kontekście podstawową własnością komputerów kwantowych jest fakt, że sprawdzenie stanu ich pamięci często powoduje zmianę tego stanu, co pozwala na wykrycie próby podsłuchania informacji i zerwanie połączenia, a potem poszukiwanie bezpieczniejszego kanału komunikacji. Realizacja tej idei została opisana w 1984 roku przez Charlesa Bennetta i Gillesa Brassarda, a przedstawiony przez nich protokół to tytułowy BB84.
Aby wytłumaczyć działanie BB84, zanurzymy się w oparach absurdu i będziemy wyobrażać sobie najprostszy, jednokubitowy komputer kwantowy jako czarną skrzynkę, w której zamknięta jest tarcza zegara wraz ze wskazówką godzinową - godzinę przez nią wskazywaną nazwiemy stanem komputera. W jaki sposób można czegoś się o nim dowiedzieć? Można poprosić komputer o porównanie swojego stanu z konkretną "eLką" - pod tym pojęciem rozumieć będziemy układ dwóch "prostopadłych" godzin, np. 1:30 i 4:30, a ogólnie godzinę wraz z godziną Jeśli poprosimy komputer znajdujący się w stanie o porównanie z eLką to możemy otrzymać dwie odpowiedzi: z prawdopodobieństwem oraz z prawdopodobieństwem gdzie to kąty, jakie tworzy godzina odpowiednio z godzinami i (prawdopodobieństwa te sumują się do 1, dlaczego?). Ponadto po przedstawieniu odpowiedzi komputer nagina do niej rzeczywistość, to znaczy zmienia swój stan na zgodny z odpowiedzią.
Dla przykładu, jeśli komputer był w stanie i poprosiliśmy go o porównanie z eLką to z prawdopodobieństwem otrzymamy odpowiedź (i wówczas stan komputera zmieni się na ), a z prawdopodobieństwem usłyszymy i taką godzinę zacznie wskazywać wskazówka wewnątrz czarnej skrzynki. Zwróćmy ponadto uwagę, że jeśli stan komputera pokrywa się z jedną z godzin z wybranej przez nas eLki, to na pewno uzyskamy tę godzinę w odpowiedzi, a stan komputera nie ulegnie zmianie. Przejdźmy do opisu protokołu. Wyróżnijmy na początku dwa rodzaje eLek: i Agent zaopatruje się w jednokubitowych komputerów kwantowych (gdzie jest raczej duże) i wybiera losowo dwa ciągi zerojedynkowe: oraz a następnie stan -tego komputera ustawia na godzinę będącą -szą współrzędną eLki W ten sposób, jeśli to stan piątego komputera zostanie ustawiony na drugą współrzędną czyli na Następnie agent przesyła pocztą wszystkie komputery do Ten ostatni również ustala zerojedynkowy ciąg i odczytuje stan -tego komputera przy użyciu eLki Później na swojej stronie internetowej (lub innym ogólnodostępnym medium, które tylko on może edytować) udostępnia użyty ciąg w odpowiedzi na co agent publikuje na swojej stronie ciąg Zauważmy, że wszędzie tam, gdzie admirał odczytał godzinę zakodowaną przez agenta a skoro wie również, jaka eLka posłużyła do jej zakodowania, pozna Zwróćmy ponadto uwagę, że szansa na to, by wynosi dlatego powinien poznać około połowy wyrazów ciągu Na koniec upublicznia połowę z tych wyrazów które powinien był poznać Dlaczego?
Przypomnijmy, że cały ten ambaras miał na celu popsucie szyków nikczemnemu doktorowi który przechwycił paczkę z komputerami i postanowił odczytać ich stany. Poprzez odczyt stanu -tego komputera stwarza on szansę na zmianę tego stanu i tylko w tej sytuacji możliwe jest, aby pomimo równości odczytał złą wartość Rozpatrzmy sytuację, w której doktor użył do odczytania stanu -tego komputera, przy czym i użyli na tej współrzędnej identyczne eLki (a zatem, gdyby nie podsłuch, na pewno poznałby wartość ). Jeśli również zakodował wiadomość przy użyciu eLki to odczytał pierwotny stan -tego komputera (w związku z czym również ) i go nie zmienił, w związku z czym szpiegostwo pozostanie niewykryte. Jeśli jednak użył to zmienił stan komputera na którąś z godzin i w każdym z tych przypadków będzie miał szansę na błędny odczyt Podsumowując, jeśli doktor wybrał eLkę do odczytu stanu -tego komputera, to z prawdopodobieństwem 25% admirał odczyta złą wartość
Okazuje się, że jest tak niezależnie od eLki wybranej przez doktora (uzasadnienie jest wdzięcznym ćwiczeniem z trygonometrii). Fakt ten tłumaczy ostatnią, "kontrolną" fazę naszego protokołu: jeśli po ujawnieniu przez agenta połowy wyrazów ciągu dla których admirał stwierdzi jakąkolwiek niezgodność ze swoimi odczytami, oznaczać to będzie, że komunikacja została podsłuchana i w związku z tym należy ją powtórzyć, najlepiej przy użyciu bardziej wiarygodnej poczty. Jeśli natomiast wszystkie wartości ujawnione przez zgadzały się z odczytami to prawdopodobieństwo takiego zdarzenia przy założeniu o podsłuchiwaniu kanału wyniosłoby (gdzie to liczba indeksów dla których ), co dla odpowiednio dużych wartości jest na tyle małe, że można z czystym sumieniem odrzucić hipotezę o podsłuchu i wykorzystać nieujawnione przez agenta i poprawnie obliczone przez wartości jako wspólny klucz.
Najwyższy czas opuścić opary absurdu i stawić czoła brutalnej, szpiegowskiej rzeczywistości - przecież żaden tajny agent nie będzie wysyłał pocztą tysiąca jednokubitowych komputerów kwantowych. Pocztą pewnie nie, ale już światłowodem bez problemu! Okazuje się bowiem (za czym stoi fizyczna magia, o której trochę piszemy w tym numerze), że jednokubitowy komputer kwantowy, ta czarna skrzynka z zamkniętym w środku zegarem, to (w rozsądnym uproszczeniu) po prostu foton, a tych przecież nie brakuje i przesyłać przy użyciu światłowodu też je można. Nie jest to jednak tanie - agenci chcący zaopatrzyć się w parę odbiorników oraz odpowiedni światłowód muszą liczyć się z wydatkiem rzędu 100 tysięcy dolarów; czego jednak się nie robi w tajnej służbie Jej Królewskiej Mości...