Prywatność i bezpieczeństwo
6 min czytania

Czym jest szyfr one-time pad? Szyfrowanie i OTP

Dowiedz się, jak one-time pad wykorzystuje XOR i nowe losowe klucze, czym jest doskonała tajność, dlaczego ponowne użycie klucza szkodzi i czym różni się od kodu OTP.

LOCK.PUB
Opublikowano:
Czym jest szyfr one-time pad? Szyfrowanie i OTP

One-time pad, czyli szyfr z kluczem jednorazowym, szyfruje wiadomość za pomocą tajnego losowego klucza co najmniej tak długiego jak ona sama. Każde szyfrowanie wymaga nowego materiału kluczowego. Przy spełnieniu rygorystycznych warunków obserwacja szyfrogramu nie daje napastnikowi żadnych dodatkowych informacji o wiadomości.

Skrót OTP może też oznaczać jednorazowe hasło lub kod do logowania. One-time pad, kod OTP do logowania i link otwierany tylko raz rozwiązują różne problemy.

Warunki prawdziwego szyfru one-time pad

Dla wiadomości o długości n bitów konstrukcja binarna wymaga n nowych tajnych bitów klucza:

  • Klucz należy losować z rozkładu jednostajnego: każdy klucz o długości n bitów musi mieć jednakową szansę wyboru.
  • Należy generować go niezależnie od wiadomości i pozostałego materiału kluczowego.
  • Musi pozostać tajny dla obserwatora.
  • Każdego fragmentu klucza wolno użyć do zaszyfrowania tylko jednej wiadomości. Nie wolno ponownie wykorzystywać nakładających się fragmentów w innym szyfrowaniu.

Na tych założeniach opiera się dowód bezpieczeństwa przedstawiony w rozdziale Mike'a Rosuleka o one-time pad. Łatwa do zapamiętania fraza ani powtarzający się klucz ich nie spełniają.

Czterobitowy przykład XOR

XOR, zapisywany jako ⊕, daje 0, gdy dwa bity są takie same, i 1, gdy się różnią. Szyfrowanie łączy wiadomość z kluczem; odszyfrowanie ponownie stosuje ten sam klucz.

Etap Działanie Wynik
Szyfrowanie 1010 ⊕ 0110 1100
Odszyfrowanie 1100 ⊕ 0110 1010

W tym przykładzie wiadomość to 1010, klucz to 0110, a szyfrogram to 1100. Ponowne wykonanie XOR usuwa wpływ klucza. Przykład pokazuje zasadę matematyczną; rzeczywista komunikacja wymaga również bezpiecznego zarządzania kluczami i uwierzytelniania.

Co naprawdę oznacza doskonała tajność

W sekcji 10 oryginalnej pracy Claude'a Shannona doskonała tajność oznacza, że poznanie szyfrogramu nie zmienia prawdopodobieństw przypisywanych wiadomościom przez obserwatora.

Nie wymaga to, by wszystkie wiadomości były jednakowo prawdopodobne. Jeśli jedna wiadomość tej samej długości była wcześniej bardziej prawdopodobna, może taka pozostać również później. Szyfrogram nie dostarcza dodatkowych przesłanek. Standardowy model o stałej długości nie ukrywa też czasu komunikacji, jej uczestników ani długości wiadomości.

Dlaczego ponowne użycie klucza niweczy gwarancję

Jeśli dwie wiadomości tej samej długości wykorzystują ten sam klucz K, to C1 = M1 ⊕ K oraz C2 = M2 ⊕ K. Połączenie szyfrogramów usuwa K:

C1 ⊕ C2 = M1 ⊕ M2

Napastnik poznaje zależność między wiadomościami. Nie ujawnia to automatycznie obu pełnych tekstów. Jednak znany fragment tekstu jawnego pozwala odtworzyć odpowiadający mu fragment klucza i tę samą część drugiej wiadomości. Przewidywalna struktura może też pomóc napastnikowi sprawdzać przypuszczenia.

Ograniczenia praktyczne poza równaniem

Obie strony muszą już wcześniej współdzielić wystarczającą ilość tajnego materiału kluczowego. Muszą bezpiecznie go przechowywać, synchronizować pozycje wykorzystania i zapobiegać ponownemu użyciu zużytych fragmentów. Ilość kluczy wymagających dystrybucji rośnie wraz z ilością przesyłanych informacji; operacja XOR nie rozwiązuje tego problemu.

Sam klucz jednorazowy nie zapewnia integralności ani uwierzytelnienia nadawcy. Zmiana bitu szyfrogramu zmienia odpowiadający mu bit po odszyfrowaniu, bez wbudowanego ostrzeżenia. Sama poufność nie potwierdza, kto wysłał wiadomość ani czy została ona zmieniona.

One-time pad, kod OTP i link do jednokrotnego odczytu

Pojęcie Cel Co oznacza „jednorazowy”
One-time pad Szyfrowanie treści wiadomości Materiał kluczowy służy do jednego szyfrowania
Kod OTP do logowania Potwierdzenie posiadania uwierzytelniacza Wygenerowany kod jest akceptowany raz w okresie ważności
Link do jednokrotnego odczytu Ograniczenie dostępu przez usługę Po skutecznym odblokowaniu kolejne ujawnienia są blokowane

Wytyczne NIST dotyczące uwierzytelniaczy, sekcja 3.1.4 opisują kody OTP do logowania generowane przy użyciu sekretu uwierzytelniacza oraz wartości czasu lub licznika. Służą one do uwierzytelniania; nie są kluczami one-time pad do szyfrowania wiadomości.

Jaką rolę pełni LOCK.PUB

Notatka chroniona hasłem w LOCK.PUB to standardowa notatka, którą można otwierać ponownie; domyślnie nie jest ograniczona do jednego odczytu. Nie implementuje one-time pad ani szyfrowania end-to-end: serwer przetwarza tekst jawny notatki.

Limit jednego odczytu stanowi odrębną zasadę dostępu. Gdy jest stosowany, skuteczne odblokowanie hasłem blokuje kolejne ujawnienia. Nie usuwa to zapisanej treści ani nie cofa pobrań, zrzutów ekranu czy innych wykonanych już kopii.

Praktyczne wskazówki znajdziesz w poradniku dotyczącym tajnych notatek. Poradnik szyfrowania tekstu online wyjaśnia, jak działa udostępnianie tekstu chronionego hasłem.

Często zadawane pytania

Czy one-time pad jest nie do złamania?

Idealny schemat zapewnia doskonałą tajność przy spełnieniu swoich założeń. Ujawnione klucze, ponownie użyte fragmenty, przejęte urządzenia i modyfikacje wymagają odrębnej analizy.

Czy krótki zalążek może dać prawdziwy klucz one-time pad?

Bezpieczny generator pseudolosowy może rozszerzyć krótki zalążek, czyli seed, do dłuższej maski, oferując bezpieczeństwo obliczeniowe przy określonych założeniach. Jego wyjście nie ma rozkładu jednostajnego na zbiorze wszystkich dłuższych ciągów, więc nie zapewnia doskonałej tajności one-time pad.

Czy „jednorazowy” oznacza, że wiadomość znika?

W one-time pad chodzi o użycie klucza. W przypadku linku chodzi o dostęp. Żadne z tych określeń samo w sobie nie potwierdza usunięcia wiadomości ani nie usuwa kopii, które ktoś już wykonał.

Utwórz notatkę

Utwórz notatkę

Słowa kluczowe

one-time pad
czym jest one-time pad
szyfr z kluczem jednorazowym
one-time pad a OTP
Czym jest szyfr one-time pad? Szyfrowanie i OTP | LOCK.PUB Blog