Teoria informacji/TI Wykład 6: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 10: | Linia 10: | ||
* C – ze skończonego zbioru wartości <math>{\mathcal C}</math> (zaszyfrowane wiadomości) | * C – ze skończonego zbioru wartości <math>{\mathcal C}</math> (zaszyfrowane wiadomości) | ||
Dodatkowo musi istnieć funkcja <math>\mathit{Dec} : {\mathcal C} \times {\mathcal K} \to {\mathcal M}</math>: | Dodatkowo musi istnieć funkcja deszyfrująca<math>\mathit{Dec} : {\mathcal C} \times {\mathcal K} \to {\mathcal M}</math>: | ||
<center><math>M = Dec(C,K)</math></center> | |||
M = | |||
(czyli z szyfru i klucza uzyskuje się w sposób jednoznaczny pierwotną wiadomość). | (czyli z szyfru i klucza uzyskuje się w sposób jednoznaczny pierwotną wiadomość). | ||
Kryptosystem jest '''idealnie bezpieczny''' jeśli <math>I(C;M)=0</math>. | |||
{{przyklad|Szyfr Vernama (one-time pad)|| | {{przyklad|[Szyfr Vernama (one-time pad)]|| | ||
Definiujemy <math>{\mathcal M} ={\mathcal K} ={\mathcal C} = \{0,1\}^n</math> dla pewnego <math>n \in \mathbb{N}</math> i | Definiujemy <math>{\mathcal M} ={\mathcal K} ={\mathcal C} = \{0,1\}^n</math> dla pewnego <math>n \in \mathbb{N}</math> i | ||
<center><math>C = M \oplus K</math></center> | |||
Gdzie <math>\oplus</math> oznacza XOR po bitach (np. <math>101101 \oplus 110110 = 011011</math>). Tym samym <math>\mathit{Dec} (v,w) = v \oplus w</math> | Gdzie <math>\oplus</math> oznacza XOR po bitach (np. <math>101101 \oplus 110110 = 011011</math>). Tym samym <math>\mathit{Dec} (v,w) = v \oplus w</math> | ||
Linia 33: | Linia 32: | ||
Zaczynamy od: | Zaczynamy od: | ||
<center><math>\aligned | |||
<math> p(C = w) = \sum_{u \in {\mathcal M}} p (K = u \oplus w | M = u) \cdot p(M = u) | p(C = w) & = \sum_{u \in {\mathcal M}} p (K = u \oplus w | M = u) \cdot p(M = u)\\ | ||
& = \sum_{u \in {\mathcal M}} p (K = u \oplus w) \cdot p(M = u) \mbox{ (bo M i K są niezależne) } \\ | |||
& = \sum_{u \in {\mathcal M}} \frac{1}{2^n} \cdot p(M = u) \\ | |||
& = \frac{1}{2^n} | |||
\endaligned | |||
</math></center> | |||
Jeśli teraz skorzystamy z definicji C i niezależności M i K dostajemy: | Jeśli teraz skorzystamy z definicji C i niezależności M i K dostajemy: | ||
<center><math>\aligned | |||
<math>p (C = w \, \wedge \, M = u) = p (K = w \oplus v \, \wedge \, M = u) | p (C = w \, \wedge \, M = u) & = p (K = w \oplus v \, \wedge \, M = u)\\ | ||
& = \frac{1}{2^n} \cdot p ( M = u) | |||
\endaligned | |||
</math></center>}} | |||
Linia 58: | Linia 52: | ||
Każdy idealnie bezpieczny kryptosystem musi zapewniać: | Każdy idealnie bezpieczny kryptosystem musi zapewniać: | ||
<center><math>H(K) \ge H(M)</math></center> | |||
:<math>L_r (K) \ge H_r (K) \ge H_r (M) \ge L_r (M)-1</math>}} | W konsekwencji (na postawie [[Teoria informacji/TI Wykład 4#shannon_fano|kodowania Shannona-Fano]]): | ||
<center><math>L_r (K) \ge H_r (K) \ge H_r (M) \ge L_r (M)-1</math></center>}} | |||
Czyli aby uzyskać idealną tajność, musimy użyć klucza równie długiego jak przesyłana wiadomość. | |||
Jest to oczywiście bardzo niepraktyczne, ale w niektórych zastosowaniach konieczne. | |||
{{dowod|||Rozpisujemy: | |||
<center><math>H(M) = H(M| C,K) + \underbrace{I(M;C)}_{=H(M) - H(M|C)} + \underbrace{I(M;K|C)}_{=H(M|C) - H(M|K,C)}</math></center> | |||
Ale z definicji M jest funkcją (C,K), czyli <math>H(M|C;K)=0</math>. Wymagamy żeby <math>I(M;C)=0</math>, a więc: | |||
<center><math>H(M)=I(M;K|C)</math></center> | |||
Rozpisując analogicznie H(K) uzyskujemy: | |||
<center><math>H(K) = H(K | M,C) + I(K;C) + \underbrace{I(K;M|C)}_{=H(M)}</math></center>}} | |||
Ważną cechą informacji jest niemożliwość jej powiększenia przez lokalne obliczenia. Niech A i B będą zmiennymi losowymi. Przykładowo wyobraźmy sobie że A określa jakieś dane eksperymentalne, a B naszą wiedzę o nich. Okazuje się że wszelkie operacje jakich dokonamy na B (analiza, przetwarzanie danych itp.) mogą jedynie zmniejszyć naszą informację o A. | |||
Ważną cechą informacji jest niemożliwość jej powiększenia przez lokalne obliczenia. | |||
{{lemat||przetwarzanie|Jeśli A i C są niezależne warunkowo przy danym B (czyli <math>I(A;C|B)=0</math>), to | {{lemat||przetwarzanie|Jeśli A i C są niezależne warunkowo przy danym B (czyli <math>I(A;C|B)=0</math>), to | ||
<center><math>I(A;C) \le I(A;B)</math>.</center>}} | |||
{{dowod||| | {{dowod||| | ||
Skorzystajmy z zasady łańcuchowej: | Skorzystajmy z zasady łańcuchowej: | ||
<center><math>\underbrace{I(A; (B,C))}_{=H(A) - H(A|B,C)}= \underbrace{I(A;C)}_{=H(A) - H(A|C)} + \underbrace{I(A; B|C)}_{=H(A|C) - H(A|B,C)}</math></center> | |||
Z symetrii, używając niezależności warunkowej A i C dostaniemy: | Z symetrii, używając niezależności warunkowej A i C dostaniemy: | ||
<center><math> I(A; (B,C)) = I(A;B) + \underbrace{I(A; C | B)}_{=0}</math></center>}} | |||
Zauważmy że nierówność staje się równością, o ile dodatkowo A i B są warunkowo niezależne przy danym C (czyli I(A;B|C)=0). | Zauważmy że nierówność staje się równością, o ile dodatkowo A i B są warunkowo niezależne przy danym C (czyli <math>I(A;B|C)=0</math>). | ||
{{wniosek||do_przetwarzania|Dla dowolnej funkcji f, | {{wniosek||do_przetwarzania|Dla dowolnej funkcji f, | ||
<center><math>I(A;f(B)) \le I(A;B)</math></center>}} | |||
{{dowod|||Na podstawie lematu, gdyż | {{dowod|||Na podstawie lematu, gdyż | ||
<center><math>I(A; f(B) | B) = \underbrace{H (f(B) | B)}_{=0}-\underbrace{H (f(B) | A, B)}_{=0} = 0 </math></center>}} |
Wersja z 12:32, 2 sie 2006
Doskonale bezpieczne szyfrowanie
Pokażemy teraz jak przy pomocy teorii informacji możemy udowodnić że jakiś system kryptograficzny jest całkowicie bezpieczny.
Definicja [Kryptosystem]
- M – ze skończonego zbioru wartości (wiadomości)
- K – ze skończonego zbioru wartości (klucze)
- C – ze skończonego zbioru wartości (zaszyfrowane wiadomości)
Dodatkowo musi istnieć funkcja deszyfrująca:
(czyli z szyfru i klucza uzyskuje się w sposób jednoznaczny pierwotną wiadomość).
Kryptosystem jest idealnie bezpieczny jeśli .
Przykład [Szyfr Vernama (one-time pad)]
Definiujemy dla pewnego i
Gdzie oznacza XOR po bitach (np. ). Tym samym
Dodatkowo zakładamy że K jest wybierana z rozkładem jednostajnym na , czyli , i że M jest zmienną niezależną od K.
Przy powyższych założeniach Szyfr Vernama jest idealnie bezpieczny. Aby to udowodnić, wystarczy pokazać że M i C są niezależne, czyli że
(patrz twierdzenie o entropii łącznej).
Zaczynamy od:
Jeśli teraz skorzystamy z definicji C i niezależności M i K dostajemy:
Twierdzenie [Pesymistyczne Twierdzenie Shannona]
Każdy idealnie bezpieczny kryptosystem musi zapewniać:
W konsekwencji (na postawie kodowania Shannona-Fano):
Czyli aby uzyskać idealną tajność, musimy użyć klucza równie długiego jak przesyłana wiadomość. Jest to oczywiście bardzo niepraktyczne, ale w niektórych zastosowaniach konieczne.
Dowód
Ale z definicji M jest funkcją (C,K), czyli . Wymagamy żeby , a więc:
Rozpisując analogicznie H(K) uzyskujemy:

Ważną cechą informacji jest niemożliwość jej powiększenia przez lokalne obliczenia. Niech A i B będą zmiennymi losowymi. Przykładowo wyobraźmy sobie że A określa jakieś dane eksperymentalne, a B naszą wiedzę o nich. Okazuje się że wszelkie operacje jakich dokonamy na B (analiza, przetwarzanie danych itp.) mogą jedynie zmniejszyć naszą informację o A.
Lemat
Dowód
Zauważmy że nierówność staje się równością, o ile dodatkowo A i B są warunkowo niezależne przy danym C (czyli ).
Wniosek
Dowód