Jaka jest różnica między szyfrowaniem przepływu a szyfrowaniem blokowym?

Szyfrowanie przepływu jest dobre dla aplikacji sprzętowych w czasie rzeczywistym.

Szyfrowanie przepływu

Podstawową ideą szyfru przepływu jest podział tekstu na małe bloki, jeden bit lub jeden bajt długości i kodowanie każdego bloku w zależności od wielu poprzednich bloków. Szyfrowanie przepływu wykorzystuje inny klucz kodowania, wartość, którą należy wprowadzić do algorytmu, dla każdego bitu lub bajtu, aby przy każdym kodowaniu tworzył inny zaszyfrowany tekst. Niektóre szyfry strumieniowe używają generatora przepływów kluczowych, który generuje strumień bitów losowo lub prawie losowo. Szyfrowanie wykonuje operację logiczną, nazywaną wyłączną operacją OR, między bitami w przepływie kluczy a bitami w zwykłym tekście w celu utworzenia zaszyfrowanego tekstu.

Blokuj szyfrowanie

Podstawową ideą szyfru blokowego jest dzielenie tekstu na relatywnie długie bloki, zwykle 64 lub 128 bitów, i kodowanie każdego bloku osobno. Ten sam klucz szyfrowania jest używany dla każdego bloku i jest kluczem szyfrującym, który określa kolejność, w której w każdym bloku wykonywane są podstawienia, transport i inne funkcje matematyczne. Silne algorytmy oznaczają, że inżynieria odwrotna systemu szyfrowania lub określenie, jakie funkcje zostały wykonane w każdym bloku, w jakiej kolejności, jest praktycznie niemożliwa.

Dyfuzja i zamieszanie

Szyfrowanie blokowe wykorzystuje techniki zwane pomieszaniem i dyfuzją w celu konwersji zwykłego tekstu na zaszyfrowany tekst. Ideą tego zamieszania jest uczynienie związku pomiędzy kluczem szyfrowania a zwykłym tekstem możliwie złożonym. Idealnie, każdy znak klucza szyfrowania musi mieć wpływ na każdy znak zaszyfrowanego tekstu. W przeciwieństwie do tego, dyfuzja rozszerza wpływ każdego znaku w postaci zwykłego tekstu na kilka znaków w zaszyfrowanym tekście, czyniąc szyfrowanie mniej podatnym na ataki statystyczne.

Plusy i minusy

Fakt, że szyfrowanie przepływu szyfruje i odszyfrowuje informacje po trochu, oznacza, że ​​są one szczególnie dostosowane do aplikacji sprzętowych w czasie rzeczywistym, takich jak aplikacje audio i wideo. Szyfrowanie przepływu jest słabsze i mniej wydajne niż szyfrowanie blokowe, jeśli chodzi o aplikacje i jest używane rzadziej w tym obszarze. Szyfrowanie blokowe jest łatwiejsze do wdrożenia w oprogramowaniu, ponieważ szyfruje informacje w długościach blues, które oprogramowanie już używa. Klucz szyfrowania często ma taką samą długość, jak rozmiar bloku.