Cryptology Academy · Lekcja

Dlaczego sam XOR nie jest bezpieczny

Poznaj ataki polegające na ponownym użyciu klucza i crib-dragging przeciwko słabemu szyfrowaniu XOR.

Lekcja 3 z 413 kroki

Dlaczego sam XOR nie jest bezpieczny to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 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

W tej lekcji wyjdziemy poza teorię i zademonstrujemy konkretne ataki na szyfrowanie XOR: ponowne użycie klucza, atak ze znanym tekstem jawnym oraz crib dragging.

Scenariusz słabego ponownego użycia klucza

Wyobraźmy sobie aplikację internetową szyfrującą tokeny sesji za pomocą tego samego klucza XOR. Osoba atakująca przechwytuje dwa zaszyfrowane tokeny. Wykonanie na nich operacji XOR anuluje klucz: C1^C2 = P1^P2.

Atak ze znanym tekstem jawnym

Jeśli P1 jest znany: K = P1 XOR C1. Teraz można odszyfrować każdy inny szyfrogram zaszyfrowany tym samym kluczem K: Pi = Ci XOR K. Jeden znany tekst jawny łamie cały system.

Crib dragging — krok 1

Gdy P1 jest nieznany: należy odgadnąć często występującą angielską frazę (crib), na przykład 'the '. Wykonaj operację XOR między cribem a P1^P2 w każdej pozycji. Jeśli w P2 pojawi się czytelny tekst, crib znajdował się w tej pozycji.

Crib dragging — krok 2

Wykorzystując ujawniony tekst P2 jako nowy, dłuższy crib, należy przesuwać się dalej wzdłuż strumienia XOR. Każde odkryte słowo pomaga znaleźć następne. Często umożliwia to odzyskanie pełnych wiadomości w ciągu kilku minut.

Statystyczne odzyskiwanie klucza

W przypadku wielu szyfrogramów używających tego samego klucza: pozycja, na której wynik XOR wynosi 0, oznacza, że Pi = Pj w tej pozycji. Wyrównanie dziesiątek wiadomości ujawnia kolejne bajty klucza.

Krótkie powtarzające się klucze XOR

Klucze krótsze niż wiadomości powtarzają się. Należy potraktować je jak szyfr Vigenère'a: określić długość klucza za pomocą IoC, a następnie przeprowadzić analizę częstości dla każdej pozycji niezależnie. Złamanie zajmuje sekundy.

Atak z wybranym tekstem jawnym

Jeśli osoba atakująca może szyfrować dowolne teksty jawne: należy przesłać P=0x00...00. Wtedy C = key bezpośrednio. Można też przesłać znaną wartość P, aby poznać K = P XOR C w dowolnej pozycji.

Atak bit-flipping

Szyfry XOR bez MAC umożliwiają atak bit-flipping: odwrócenie bitu i w szyrogramie → odwrócenie bitu i w tekście jawnym. Osoba atakująca może modyfikować zaszyfrowane dane bez znajomości klucza.

Dlaczego sam AES nie wystarcza

AES w trybie ECB jest deterministyczny — ten sam blok zawsze szyfruje się tak samo. Tryb CTR bez uwierzytelniania umożliwia atak bit-flipping. Zawsze należy używać szyfrowania uwierzytelnionego (AES-GCM).

Obrona: szyfrowanie uwierzytelnione

Szyfrowanie uwierzytelnione (AE) łączy szyfrowanie z kodem MAC. Każda modyfikacja szyfrogramu powoduje niepowodzenie weryfikacji MAC przed deszyfrowaniem. Schematy AEAD, takie jak AES-GCM, zapobiegają atakom bit-flipping.

Szybkie sprawdzenie

Osoba atakująca ma dwie wiadomości zaszyfrowane za pomocą tego samego klucza XOR. Co ujawni wykonanie operacji XOR na szyfrogramach?

Podsumowanie

Poznali Państwo sposób, w jaki XOR zawodzi bez właściwego zarządzania kluczami i uwierzytelniania. Następnie zobaczymy właściwą rolę XOR wewnątrz AES i współczesnych szyfrów strumieniowych.
Bezpłatny start

Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
67
Lekcje
261

Często zadawane pytania

Czy lekcja „Dlaczego sam XOR nie jest bezpieczny” jest bezpłatna?

Tak — pełny tekst „Dlaczego sam XOR nie jest bezpieczny” 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 „Dlaczego sam XOR nie jest bezpieczny”?

Poznaj ataki polegające na ponownym użyciu klucza i crib-dragging przeciwko słabemu szyfrowaniu XOR. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Dlaczego sam XOR nie jest bezpieczny”?

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