Wolna encyklopedia

Szyfr strumieniowy (stream cipher) to szyfr symetryczny, który koduje generując potencjalnie nieskończony strumień szyfrujący (keystream) i XOR-ując go z wiadomością:

C_i = S_i \oplus M_i

Odszyfrowywanie zakodowanej wiadomości odbywa się w identyczny sposób – generujemy strumień szyfrujący i XOR-ujemy go z szyfrogramem:

S_i \oplus C_i = S_i \oplus S_i \oplus M_i = M_i

Istnieją szyfry strumieniowe oparte na generatorach liczb pseudolosowych – jeśli generator jest kryptograficznie silny, to seed generatora może służyć jako klucz, a generowany strumień pseudolosowych liczb jako strumień szyfrujący. Blum Blum Shub jest przykładem generatora, dla którego (co rzadkie w kryptografii) istnieje dowód, że złamanie go jest co najmniej równie trudne jak rozbicie liczby stanowiącej klucz na czynniki.

Szyframi strumieniowymi są też tryby CFB, OFB i CTR szyfrów blokowych. Generują one z samego klucza i z wektora inicjalizującego (nie korzystając z danych) strumień szyfrujący, po czym XOR-ują go z danymi.

Źródło: „haslo,Szyfr_strumieniowy