wtorek, 25 lutego 2014

Kryptografia kwantowa

Dream A Little Dream Of Me

Termin „kwantowy” jest bardzo medialny. Pop-nauka lubi wspominać o kwantowych efektach, kwantowych komputerach, cudach kwantowego splątania i tak dalej. Słówko jest fajne, fizyki kwantowej i tak nikt nie rozumie, więc stosunkowo łatwo naściemniać, trudniej się przyczepić. Kłopotliwość zagadnienia nieźle symbolizuje to, że istnieją spory co do tego czy komputer D-Wave to komputer kwantowy czy nie. Najzabawniejszy komentarz jaki widziałem w tym temacie brzmiał „komputery kwantowe są i nie są przyszłością elektroniki”.

W związku z tą modą od jakiegoś czasu miałem ambicję napisać o czymś kwantowym tak, żeby było przystępnie i bez ściemniania. Ostatecznie padło na kryptografię kwantową. Protokół BB84 to nie jakieś teoretyczne rozważania, ale realna metoda ustalania tajnego klucza na odległość pomiędzy dwoma użytkownikami sieci, która gwarantuje, że albo uzyskamy bezpieczny klucz albo w ogóle nie uda się go ustalić (jeśli na przykład ktoś podsłuchuje).

Clou mechanizmu jest wykorzystanie bitów kwantowych – kubitów. Choć ostateczny klucz będzie unikalnym ciągiem zer i jedynek (np. potwierdzających tożsamość), do ustalenia tegoż klucza na odległość wykorzystujemy kwantowe bity, gdzie jedynka jedynce nie równa i zero zeru nie równe. Żeby korzystać z dobrodziejstw świata kwantowego posługujemy się najczęściej polaryzacją fotonów*.


W największym uproszczeniu – foton spolaryzowany pionowo przeniknie przez pionowe szczeliny, spolaryzowany poziomo, przejdzie przez szczeliny poziome. Dzięki tak zwanym dwójłomnym kryształom można skonstruować odbiornik sygnału optycznego, który będzie rozróżniał „pionowe” (przyjmijmy, że nazwiemy je jedynkami) i „poziome” fotony (te nazwiemy zerami). Jeśli foton spolaryzujemy ukośnie, w 50% przypadków zostanie odebrany jako jedynka, w 50% przypadków jako zero. No chyba, że nasz odbiornik ustawimy „ukośnie” wtedy będzie radził sobie idealnie z ukośnymi fotonami. Tak więc mamy dwa alfabety.

Teraz gwóźdź programu, czyli ustalanie klucza. Alicja wysyła do Bogdana ciąg zer i jedynek, czasem używając alfabetu prostego, czasem ukośnego. Bogdan odbiera ciąg losowo ustawiając swój odbiornik – czasem prosto, czasem ukośnie. Bogdan publicznie informuje jak kolejno ustawiał odbiornik, a Alicja odpowiada mu, mówiąc jedynie kiedy ustawienie było poprawne a kiedy nie. Oboje odrzucają z ciągu wyników te zera i jedynki, które Bogdan odebrał z źle ustawionym odbiornikiem, ponieważ takie wyniki są niepewne. Chociaż nie podali publicznie swoich wyników, mają pewność, że otrzymali identyczny ciąg zer i jedynek.


A co z potencjalnymi podsłuchiwaczami? Raz jeszcze z pomocą przychodzi nam fizyka kwantowa. Pomiar zawsze zaburza stan kwantowy, dlatego nie można podsłuchiwać pasywnie, bez wpływania na polaryzację. Nie da się również sklonować nieznanego stanu kwantowego. Użytkownik usiłujący podsłuchać komunikację musiałby najpierw odebrać sygnał od Alicji, a następnie przesyłać odczytany wynik do Bogdana. Niestety, nie wie jak ustawić odbiornik, a jeśli zrobi to źle – polaryzacja fotonu zmieni się (np. z pionowej na ukośną). Wtedy, Bogdan używając poprawnej bazy (w tym wypadku prostej) może odebrać inny bit niż przesłany przez Alicję. W ten sposób często dochodziłoby do przekłamań. Choć Alicja i Bogdan mieliby ustawione jednakowe alfabety, klucze by się nie zgadzały i natychmiast byłoby wiadomo, że ktoś zakłócił proces ustalania klucza.


Voilà! Rozumiecie teraz coś kwantowego. Następnym razem (czytaj: kiedyś): co to jest kwantowa teleportacja i czemu nie ma nic wspólnego z natychmiastowym przekazywaniem informacji.


* - postanowiłem przemilczeć zachwyty nad tym, że potrafimy budować urządzenia zdolne nadawać pojedyncze fotony światła i sieć, która umożliwia przesyłanie ich tak, by zachować polaryzację.
** - obrazek na górze to element komputera D-Wave, który nie ma nic wspólnego z kryptografią kwantową. Po prostu potrzebowałem ładnego obrazka na początek notki.


9 komentarzy:

  1. cool story bro.. :) jest fajny artykul, jest szydera z nieukow i innych piszacych mietkie artykuly.

    Pisz nastepny

    OdpowiedzUsuń
  2. "Choć Alicja i Bogdan mieliby ustawione jednakowe alfabety, klucze by się nie zgadzały i natychmiast byłoby wiadomo, że ktoś zakłócił proces ustalania klucza."
    W jaki sposób by się dowiedzieli o tym że mają różne klucze? (bez przesyłania klucza miedzy sobą)

    OdpowiedzUsuń
    Odpowiedzi
    1. Przesyła się zakodowaną wiadomość, której nie rozkodujesz bez klucza. Więc B. dostaje wiadomość, próbuje rozkodować i nic z tego - więc wiadomo, że doszło do zakłócenia.

      Usuń
  3. jeżeli przesyłają zwykłą wiadomość i odrzucają ciąg zer i jedynek które Bogdan źle odebrał, to wiadomość jest niepełna. Brakujące zera i jedynki zaburzają treść wiadmomości. Przekazując tą metodą brakujące znaki, mogą to robić w nieskończoność, bo statystycznie mogą cały czas źle synchronizować nadajnik z odbiornikiem. Więc do przesyłania zwykłych wiadomości to nie zadziała. Tylko do przekazania sobie hasła (tajnego klucza) które jest im znane i nie zostało definiowane lub przekazywane wcześniej przez sieć (kilo marek dobrze kmini, że wcześniej musieli sobie jakość ten klucz przekazać, musiał być im znany) . Problem z bezpiecznym definiowaniem nowego hasła (tajnego klucza) przez sieć byłby podobny jak z przekazywaniem wiadomości który opisałem na początku komentarza.

    OdpowiedzUsuń
    Odpowiedzi
    1. czyli tak jak było we wstępnie artykułu, jest to metoda do weryfikacji/ustalenia czy podane hasło jest poprawne

      Usuń
  4. Metoda nadal wymaga PKI i certyfikatów bo jeśli podszyje się pod Boba to ustalę klucz z Alice i odczytam jej wiadomość. Potem podszyje się pod Alice i wyślę ta sama (lub zmienioną jeśli taka jest moja intencją) wiadomość do Boba. Dlatego muszą być w stanie zweryfikować z kim gadają. Jeśli coś przeoczyłem to proszę o wytknięcie błędu. Dzięki

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja to rozumiem tak (być może źle).
      1. Alicja mówi publicznie, np. publikując wiadomość na fb, którą każdy może przeczytać :D, "za godzinę zacznę nadawać".
      2. Bob ustawia sobie losowo odbiorniki i zaczyna odczytywanie.
      3. Koniec transmisji od Alicji.
      4. Bob wysyła publicznie wiadomość, ustawiłem odbiorniki tak i tak.

      Nikt nie może podszyć się pod Alicję, Boba, bo prawdziwa Alicja, Bob mogli by też odczytać taką publiczną wiadomość i zacząć krzyczeć, że to oszust.

      Można publicznie przekazać te wiadomości, bo tylko ktoś, kto ustawił odbiorniki dokładnie tak samo jak Bob dostanie w ten sposób jakąś informację.

      Usuń
    2. Głupoty napisałem w: "Można publicznie przekazać te wiadomości, bo tylko ktoś, kto ustawił odbiorniki dokładnie tak samo jak Bob dostanie w ten sposób jakąś informację."

      Można publicznie przekazać te wiadomości, bo jeśli ktokolwiek inny by słuchał transmisji od Alicji, to Bob dostanie losowe dane.

      Usuń
    3. W uproszczeniu tak - generalnie jeśli tylko podsłuchiwacz jakimś cudem nie ma identycznej sekwencji na dekoderze, to Bob będzie miał po prostu nieprawdidłowe dane więc jego klucz nie zadziała i będą z Alice wiedzieli, ze ktoś próbował podsłuchiwać.

      Usuń