Szyfr strumieniowy: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Dane binarne
Matekm (dyskusja | edycje)
poprawa definicji, dodatkowa treść, źródła
Linia 1: Linia 1:
'''Szyfr strumieniowy''' – nazywany także algorytmem strumieniowym, algorytmem potokowym lub szyfrem strumieniowym; jest to [[algorytm symetryczny]], który [[szyfr|szyfruje]] oddzielnie każdy bit wiadomości. Algorytm ten składa się z generatora strumienia bitowego, będącego kluczem szyfrującym oraz elementu dodającego (na przykład operacji [[Alternatywa wykluczająca|XOR]])<ref name="Schneier1">{{Cytuj książkę | nazwisko = Schneier | imię = Bruce | tytuł = Kryptografia dla praktyków : protokoły, algorytmy i programy źródłowe w języku C | data = 2002 | wydawca = Wydawnictwa Naukowo-Techniczne | miejsce = Warszawa | isbn = 83-204-2678-2 | strony = 30-31 }}</ref>.
'''Szyfr strumieniowy''' – [[algorytm symetryczny]], który koduje generując potencjalnie nieskończony binarny strumień szyfrujący (''keystream'') i oblicza jego [[Alternatywa wykluczająca|alternatywę wykluczającą XOR]] z [[Dane binarne|danych binarnych]] wiadomości:

Wykorzystując operację XOR szyfrowanie wiadomości wygląda następująco:
:<math>C_i = S_i \oplus M_i</math>
:<math>C_i = S_i \oplus M_i</math>

gdzie <math>S_i</math> to strumień bitów będący kluczem, <math>M_i</math> to [[tekst jawny]] a <math>C_i</math> to [[szyfrogram]]


Odszyfrowywanie zakodowanej wiadomości odbywa się w identyczny sposób &ndash; generujemy strumień szyfrujący i XOR-ujemy go z szyfrogramem:
Odszyfrowywanie zakodowanej wiadomości odbywa się w identyczny sposób &ndash; generujemy strumień szyfrujący i XOR-ujemy go z szyfrogramem:
:<math>S_i \oplus C_i = S_i \oplus S_i \oplus M_i = M_i</math>
:<math>S_i \oplus C_i = S_i \oplus S_i \oplus M_i = M_i</math>


Istnieją szyfry strumieniowe oparte na [[generator liczb pseudolosowych|generatorach liczb pseudolosowych]] &ndash; jeśli generator jest kryptograficznie silny, to ziarno¹ 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.
Istnieją szyfry strumieniowe oparte na [[generator liczb pseudolosowych|generatorach liczb pseudolosowych]] &ndash; jeśli generator jest kryptograficznie silny, to ziarno 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 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 (tryb licznikowy)|CTR]] [[szyfr blokowy|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.
Szyframi strumieniowymi są też tryby [[CFB]], [[OFB]] i [[CTR (tryb licznikowy)|CTR]] [[szyfr blokowy|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.


{{Przypisy}}
¹) zobacz [[generator liczb pseudolosowych]].


[[Kategoria:Kryptologia]]
[[Kategoria:Szyfry strumieniowe|*]]
[[Kategoria:Szyfry strumieniowe|*]]



Wersja z 21:59, 21 lut 2010

Szyfr strumieniowy – nazywany także algorytmem strumieniowym, algorytmem potokowym lub szyfrem strumieniowym; jest to algorytm symetryczny, który szyfruje oddzielnie każdy bit wiadomości. Algorytm ten składa się z generatora strumienia bitowego, będącego kluczem szyfrującym oraz elementu dodającego (na przykład operacji XOR)[1].

Wykorzystując operację XOR szyfrowanie wiadomości wygląda następująco:

gdzie to strumień bitów będący kluczem, to tekst jawny a to szyfrogram

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

Istnieją szyfry strumieniowe oparte na generatorach liczb pseudolosowych – jeśli generator jest kryptograficznie silny, to ziarno 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 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.

  1. Bruce Schneier: Kryptografia dla praktyków : protokoły, algorytmy i programy źródłowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 30-31. ISBN 83-204-2678-2.