Podręcznik
5. Szyfry i kryptografia
5.9. Szyfry strumieniowe
Szyfry strumieniowe (ang. stream ciphers) są ważną klasą szyfrów z kluczem symetrycznym. Należą do klasy szyfrów blokowych, (z długością bloku =1, a więc oddzielnie szyfrujemy każdą literę tekstu jawnego). Istotą szyfru strumieniowego jest to, że przekształcenie szyfrujące może zmieniać się dla każdego szyfrowanego symbolu.
Szyfry strumieniowe są użyteczne w sytuacji, gdy
- wysokie jest prawdopodobieństwo błędów transmisji, ponieważ w szyfrach strumieniowych nie ma propagacji błędu;
- dane muszą być przesyłane symbol po symbolu (np. szyfrator lub deszyfrator nie ma pamięci).
Zdefiniujemy teraz szyfr strumieniowy formalnie. Niech V1 i V2 będą alfabetami. Punktem wyjścia jest blokowa funkcja szyfrująca (szyfrująca bloki o długości 1) E : K V1 V2 i blokowa funkcja deszyfrująca (deszyfrująca bloki o długości 1) spełniające warunek:
Tworzymy ciąg (k1) , gdzie ki K dla każdego i N . Nazywamy ten ciąg strumieniem kluczy. Definiujemy nowy system kryptograficzny (V1 ,V2 , ) następująco. V1 i V2 są wprowadzonymi już alfabetami, {(<i>k</i><sub><i>i</i> </sub>)<sup><span class="equation" style="width:100%;;;;">
; ki K} zbiorem kluczy, : V1* V2* funkcją szyfrującą, dokładniej zadane jest wzorem:((ki ), * m1m2 ...mr ) E(k1, m1)E(k2 , m2 )...E(kr , mr ) c1c2 ...cr
: V2* V1* funkcją deszyfrującą, dokładniej zadane jest wzorem:
((ki ) c1c2 ...cr ) D(k1, c1)D(k2 , c2 )...D(kr , cr ) m1m2 ...mr
Taki system kryptograficzny nazywamy szyfrem strumieniowym.