0Pricing
Cryptology Academy · Lekcja

Tryb CTR i działanie szyfrów strumieniowych

Użyć trybu licznika, aby przekształcić szyfr blokowy w generator strumienia klucza

Tryb CTR i działanie szyfrów strumieniowych 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

Tryb Counter (CTR) przekształca dowolny szyfr blokowy w szyfr strumieniowy. Można go wykonywać równolegle, nie wymaga dopełniania i stanowi podstawę AES-GCM. Opanujmy go.

Koncepcja trybu CTR

Wygeneruj strumień klucza, szyfrując kolejne wartości licznika: Keystream[i] = AES(K, Nonce || Counter_i) Ciphertext = Plaintext XOR Keystream Licznik zwiększa się dla każdego bloku. Odszyfrowywanie przebiega tak samo jak szyfrowanie.

CTR a CBC

CBC: szyfrowanie sekwencyjne (każdy blok zależy od poprzedniego). CTR: pełna możliwość równoległego przetwarzania (każdy blok jest niezależny). W przypadku pliku o rozmiarze 1 GB CTR może wykorzystać wszystkie rdzenie procesora, a CBC nie.

Brak konieczności dopełniania

CTR generuje strumień klucza o dowolnej długości. Tekst jawny jest łączony operacją XOR bajt po bajcie. Wiadomość o długości 100 bajtów wykorzystuje 100 bajtów strumienia klucza — dopełnianie nie jest potrzebne. To świetne rozwiązanie dla danych przesyłanych strumieniowo.

Struktura wartości nonce i licznika

Typowy podział dla 128-bitowego bloku AES: - losowa wartość nonce o długości 64 bitów (unikalna dla każdej wiadomości) - licznik o długości 64 bitów (zwiększany dla każdego bloku) Alternatywnie: nonce o długości 96 bitów + licznik o długości 32 bitów (standard GCM). Unikalność wartości nonce ma kluczowe znaczenie — nigdy nie należy ponownie używać pary (nonce, klucz).

Atak polegający na ponownym użyciu nonce w CTR

CTR z tą samą parą (klucz, nonce) generuje ten sam strumień klucza. Przy szyfrowaniu dwóch różnych wiadomości: C1 XOR C2 = P1 XOR P2. Działa to tak samo jak atak z wielokrotnie używaną maską jednorazową. Prowadzi do katastrofalnego wycieku informacji.

Swobodny dostęp w CTR

CTR umożliwia dostęp swobodny: aby odszyfrować blok 1000, należy bezpośrednio obliczyć AES(K, Nonce || 1000). Nie trzeba odszyfrowywać poprzednich bloków. To idealne rozwiązanie dla baz danych i szyfrowania dysków (w połączeniu z innymi trybami).

CTR w Pythonie

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os nonce = os.urandom(16) # Used as counter start cipher = Cipher(algorithms.AES(key), modes.CTR(nonce)) enc = cipher.encryptor() ciphertext = enc.update(plaintext) + enc.finalize()

CTR a propagacja błędów

W trybie CTR pojedynczy uszkodzony bit szyfrogramu zmienia dokładnie jeden bit tekstu jawnego. Błędy nie propagują się do innych bloków (w przeciwieństwie do CBC, w którym uszkodzenie bloku zniekształca następny blok). To dobre rozwiązanie dla kanałów podatnych na zakłócenia.

Tryb SIV odporny na niewłaściwe użycie nonce

AES-SIV (Synthetic IV) jest odporny na niewłaściwe użycie nonce: nawet jeśli nonce zostanie ponownie użyty, ujawnione zostaje tylko to, czy teksty jawne są identyczne — nie ich pełna treść. Stosuje się go w sytuacjach, w których trudno zagwarantować unikalność wartości nonce.

Od CTR do GCM

AES-GCM = AES-CTR + uwierzytelnianie GHASH. Tryb licznikowy obsługuje szyfrowanie. GHASH oblicza tag uwierzytelniający za pomocą mnożenia w ciele Galois. Razem zapewniają szyfrowanie uwierzytelnione.

Szybkie sprawdzenie

Jaka jest główna przewaga trybu CTR nad trybem CBC podczas szyfrowania dużych ilości danych?

Podsumowanie

Tryb CTR został opanowany! Następnie połączymy go z uwierzytelnianiem w AES-GCM, aby uzyskać szyfrowanie uwierzytelnione.

Często zadawane pytania

Czy lekcja „Tryb CTR i działanie szyfrów strumieniowych” jest bezpłatna?

Tak — pełny tekst „Tryb CTR i działanie szyfrów strumieniowych” 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 „Tryb CTR i działanie szyfrów strumieniowych”?

Użyć trybu licznika, aby przekształcić szyfr blokowy w generator strumienia klucza Ć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 „Tryb CTR i działanie szyfrów strumieniowych”?

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. Podstawy szyfrów blokowych i dopełnianie
  2. ECB a CBC: wzorce i wektory IV
  3. Tryb CTR i działanie szyfrów strumieniowych
  4. GCM i szyfrowanie uwierzytelnione
← Powrót do Cryptology Academy