Główna różnica między szyfrem blokowym a szyfrem strumieniowym polega na tym, że szyfr blokowy szyfruje i odszyfrowuje blok tekstu na raz. Z drugiej strony, szyfr strumieniowy szyfruje i odszyfrowuje tekst, przyjmując jeden bajt tekstu na raz.
Wykres porównania
Podstawa do porównania | Zablokuj szyfr | Szyfr strumyka |
---|---|---|
Podstawowy | Konwertuje zwykły tekst, biorąc jego blok na raz. | Konwertuje tekst, biorąc jeden bajt zwykłego tekstu na raz. |
Złożoność | Prosta konstrukcja | Kompleksowo porównywany |
Liczba użytych bitów | 64 bity lub więcej | 8 bitów |
Zamieszanie i dyfuzja | Wykorzystuje zarówno zamieszanie, jak i dyfuzję | Polega tylko na pomyłce |
Używane tryby algorytmu | ECB (Electronic Code Book) CBC (Cipher Block Chaining) | CFB (Cipher Feedback) OFB (informacja zwrotna o wyjściu) |
Odwracalność | Odwracanie zaszyfrowanego tekstu jest trudne. | Używa XOR do szyfrowania, które można łatwo odwrócić do zwykłego tekstu. |
Realizacja | Feistel Cipher | Vernam Cipher |
Definicja szyfru blokowego
Szyfr blokowy przyjmuje komunikat i dzieli go na stały rozmiar bloków i natychmiast konwertuje jeden blok wiadomości. Na przykład, mamy komunikat w postaci zwykłego tekstu "STREET_BY_STREET" wymagany do zaszyfrowania. Używając szyfrowania Bock, "STREET" musi być najpierw zaszyfrowany, a następnie "_BY_" i nareszcie "ULICA".
W praktyce komunikacja odbywa się tylko w bitach. Dlatego STREET faktycznie oznacza binarny odpowiednik znaku ASCII STREET. Następnie dowolny algorytm szyfruje je; wynikowe bity są przekształcane z powrotem do ich odpowiedników ASCII.
Oczywistym problemem dotyczącym użycia Szyfrów Blokowych jest powtarzanie tekstu, dla którego generowany jest ten sam szyfr. W związku z tym dałoby to wskazówkę kryptoanalitykowi, dzięki czemu łatwiej jest znaleźć powtarzające się ciągi zwykłego tekstu. W rezultacie może ujawnić całą wiadomość.
Aby rozwiązać ten problem, stosuje się tryb łączenia . W tej technice poprzedni blok tekstu zaszyfrowanego jest mieszany z bieżącym blokiem, tak aby tekst szyfrowany był niejasny, co pozwala uniknąć powtarzających się wzorców bloków o tej samej treści.
Definicja szyfru strumieniowego
Strumień szyfrujący zazwyczaj szyfruje jeden bajt wiadomości w tym momencie zamiast bloków. Weźmy przykład, przypuśćmy , że oryginalna wiadomość (zwykły tekst) to "błękitne niebo" w ASCII (tj. Format tekstu). Po konwersji tych ASCII na równoważne wartości binarne, da wynik w postaci 0 i 1. Niech to będzie przetłumaczone na 010111001.
Do szyfrowania i deszyfrowania wykorzystywany jest pseudolosowy generator bitów, w którym ładowany jest klucz i zwykły tekst. Pseudolosowy generator bitów tworzy strumień 8-bitowych liczb, które są pozornie losowe, znane jako strumień klucza . Niech kluczem wejściowym jest 100101011. Teraz klucz i tekst jawny są XORed. Logika XOR jest prosta do zrozumienia.
XOR generuje wyjście 1, gdy jedno wejście ma wartość 0, a drugie ma wartość 1. Wyjście ma wartość 0, jeśli jedno z wejść ma wartość 0 lub oba wejścia mają wartość 1.
Zamieszanie to metoda gwarantująca, że tekst zaszyfrowany nie daje żadnego pojęcia o oryginalnym zwykłym tekście.
Dyfuzja jest strategią stosowaną w celu zwiększenia redundancji zwykłego tekstu poprzez rozłożenie go na wiersze i kolumny.
Kluczowe różnice między szyfrem blokowym a szyfrem strumieniowym
- Technika szyfrowania blokowego polega na szyfrowaniu jednego bloku tekstu na raz, tj. Pojedynczo. Podobnie, odszyfruj tekst, wykonując jeden blok po drugim. Natomiast technika szyfrowania Strumienia polega na szyfrowaniu i odszyfrowywaniu jednego bajtu tekstu na raz.
- Szyfr blokowy wykorzystuje zarówno zamieszanie, jak i dyfuzję, podczas gdy szyfr strumieniowy opiera się tylko na pomyłce.
- Zwykły rozmiar bloku może wynosić 64 lub 128 bitów w szyfrze blokowej. W przeciwieństwie do tego, 1 bajt (8 bitów) na raz jest konwertowany w szyfrze strumieniowej.
- Szyfr blokowy wykorzystuje tryby algorytmu ECB (Electronic Code Book) i CBC (Cipher Block Chaining) . Wręcz przeciwnie, Szyfrowanie Strumienia wykorzystuje tryby algorytmu CFB (Cipher Feedback) i OFB (Output Feedback) .
- Szyfr strumyka używa funkcji XOR do konwersji zwykłego tekstu na tekst szyfrujący, dlatego łatwo jest odwrócić bity XORed. Natomiast szyfr blokowy nie używa XOR do tego.
- Szyfr blokowy używa tego samego klucza do szyfrowania każdego bloku, podczas gdy szyfr strumieniowy używa innego klucza dla każdego bajtu.
Wniosek:
Szyfr blokowy i Szyfr strumyka różnią się sposobem, w jaki zwykły tekst jest szyfrowany i odszyfrowywany. Ideą kryptografu blokowego jest dzielenie zwykłego tekstu na bloki, które dodatkowo szyfrują te bloki. Podczas gdy szyfr strumieniowy konwertuje zwykły tekst bit po bicie, podobny do strumienia.