0Pricing
Cryptology Academy · Lekcja

Szyfrowanie XOR i szyfr z kluczem jednorazowym

Zbuduj prosty szyfr XOR i poznaj jego wariant zapewniający idealną tajność.

Szyfrowanie XOR i szyfr z kluczem jednorazowym to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Szyfrowanie XOR jest proste: ciphertext = plaintext XOR key. Gdy klucz jest naprawdę losowy i używany tylko raz, otrzymujemy szyfr z kluczem jednorazowym — jedyny szyfr, którego niemożliwość złamania została formalnie udowodniona.

Podstawy szyfrowania XOR

key = bytes([0x5A, 0xF2, 0x3C, 0x11]) plaintext = bytes([0x48, 0x65, 0x6C, 0x6C]) # 'Hell' ciphertext = bytes(p^k for p,k in zip(plaintext,key)) # Result: 0x12 0x97 0x50 0x7D

Właściwość samoodwrotności XOR

Deszyfrowanie przebiega tak samo jak szyfrowanie: plain = cipher XOR key Dowód: (P XOR K) XOR K = P XOR (K XOR K) = P XOR 0 = P Dzięki temu szyfry XOR są w sposób trywialny symetryczne.

Koncepcja szyfru z kluczem jednorazowym

Szyfr z kluczem jednorazowym (OTP) korzysta z losowego klucza o długości równej długości wiadomości, używanego dokładnie raz. Jest teoretycznie niemożliwy do złamania: każdy szyfrogram można odszyfrować do każdego możliwego tekstu jawnego z takim samym prawdopodobieństwem.

Dowód doskonałej tajności Shannona

Claude Shannon dowiódł w 1949 roku, że szyfr zapewnia doskonałą tajność wtedy i tylko wtedy, gdy klucz jest losowy, ma co najmniej długość wiadomości i jest używany najwyżej raz. OTP jest jedynym takim praktycznym szyfrem.

Praktyczne ograniczenia OTP

Klucz musi mieć długość równą długości wiadomości. Musi być bezpiecznie dystrybuowany. Nie wolno go nigdy używać ponownie. Te ograniczenia sprawiają, że OTP jest niepraktyczny w większości zastosowań.

Atak przy ponownym użyciu klucza: szyfr wielokrotnego użycia

Jeśli C1 = P1 XOR K oraz C2 = P2 XOR K, to C1 XOR C2 = P1 XOR P2. Klucz się skraca! Osoba atakująca, mając dwa szyfrogramy, otrzymuje P1 XOR P2, co ujawnia wzorce.

Atak typu crib dragging

Jeśli osoba atakująca odgadnie fragment P1 (tak zwany crib, na przykład ' the '), wykonanie operacji XOR z P1 XOR P2 w każdej pozycji ujawnia odpowiadający mu tekst P2. Stopniowo odzyskiwane są pełne teksty jawne.

Rzeczywista porażka związana z ponownym użyciem klucza

Projekt Venona odszyfrował tysiące radzieckich wiadomości szyfru z kluczem jednorazowym, ponieważ agenci KGB ponownie używali tych samych nakładek w warunkach presji wojennej. Ponowne użycie klucza złamało szyfrowanie, którego doskonała tajność została formalnie udowodniona.

XOR w szyfrach strumieniowych

Współczesne szyfry strumieniowe (ChaCha20, RC4) generują pseudolosowy strumień klucza i wykonują na nim operację XOR z tekstem jawnym. Stanowią przybliżenie OTP, ale używają krótkiego klucza rozwijanego przez CSPRNG.

Demonstracja szyfrowania XOR w Pythonie

import os def otp_encrypt(plaintext: bytes) -> tuple: key = os.urandom(len(plaintext)) ciphertext = bytes(p^k for p,k in zip(plaintext,key)) return ciphertext, key ciphertext, key = otp_encrypt(b'Secret!')

Szybkie sprawdzenie

Dlaczego ponowne użycie klucza szyfru z kluczem jednorazowym jest katastrofalnie niebezpieczne?

Podsumowanie

XOR i szyfr z kluczem jednorazowym są fundamentalnymi elementami kryptografii. Następnie zbadamy, dlaczego naiwne schematy XOR zawodzą w praktyce i jakie ataki wykorzystują ponowne użycie klucza.

Często zadawane pytania

Czy lekcja „Szyfrowanie XOR i szyfr z kluczem jednorazowym” jest bezpłatna?

Tak — pełny tekst „Szyfrowanie XOR i szyfr z kluczem jednorazowym” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Szyfrowanie XOR i szyfr z kluczem jednorazowym”?

Zbuduj prosty szyfr XOR i poznaj jego wariant zapewniający idealną tajność. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Szyfrowanie XOR i szyfr z kluczem jednorazowym”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Powtórka operacji bitowych
  2. Szyfrowanie XOR i szyfr z kluczem jednorazowym
  3. Dlaczego sam XOR nie jest bezpieczny
  4. XOR wewnątrz AES i szyfrów strumieniowych
← Powrót do Cryptology Academy