Teoria informacji/TI Wykład 6: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Stromy (dyskusja | edycje)
Nie podano opisu zmian
Stromy (dyskusja | edycje)
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 = Dec(C,K)


(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>.


Kryptosystem jest ''idealnie bezpieczny'' jeśli I(C;M)=0.


{{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
:<math>C = M \oplus K</math>
<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)</math>
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) } \\
::<math>= \sum_{u \in {\mathcal M}}  p (K = u \oplus w) \cdot p(M = u) </math> (bo M i K są niezależne)
& = \sum_{u \in {\mathcal M}} \frac{1}{2^n} \cdot p(M = u) \\
 
& = \frac{1}{2^n}
::<math>= \sum_{u \in {\mathcal M}} \frac{1}{2^n} \cdot p(M = u)</math>
\endaligned
 
</math></center>
::<math>= \frac{1}{2^n}</math>


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) </math>
p (C = w \, \wedge \, M = u) & = p (K = w \oplus v \, \wedge \,  M = u)\\
 
& = \frac{1}{2^n} \cdot p ( M = u)
::<math>= \frac{1}{2^n} \cdot p ( M = u) </math>
\endaligned
 
</math></center>}}
QED.
 
 
(TODO na ćwiczeniach: Niezależność M i K jest warunkiem koniecznym)




Linia 58: Linia 52:


Każdy idealnie bezpieczny kryptosystem musi zapewniać:  
Każdy idealnie bezpieczny kryptosystem musi zapewniać:  
:<math>H(K) \ge H(M)</math>
<center><math>H(K) \ge H(M)</math></center>
 
W konsekwencji (link TODO):


:<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.


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>


{{dowod|||
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:
:<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><math>H(M)=I(M;K|C)</math></center>


Ale z definicji M jest funkcją (C,K), czyli H(M|C;K)=0. Wymagamy żeby I(M;C)=0, a więc:
Rozpisując analogicznie H(K) uzyskujemy:
:<math>H(M)=I(M;K|C)</math>
<center><math>H(K) = H(K | M,C) + I(K;C) + \underbrace{I(K;M|C)}_{=H(M)}</math></center>}}


Rozbijając analogicznie H(K) uzyskujemy:
:<math>H(K) = H(K | M,C) + I(K;C) + \underbrace{I(K;M|C)}_{H(M)}</math>}}


 
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. Przykładowo niech A i B będą zmiennymi losowymi. 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||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
:<math>I(A;C) \le I(A;B)</math>.}}
<center><math>I(A;C) \le I(A;B)</math>.</center>}}


{{dowod|||
{{dowod|||
Skorzystajmy z zasady łańcuchowej:
Skorzystajmy z zasady łańcuchowej:
:<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><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:
:<math> I(A; (B,C)) = I(A;B) + \underbrace{I(A; C | B)}_{=0}</math>}}
<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,  
:<math>I(A;f(B)) \le I(A;B)</math>}}
<center><math>I(A;f(B)) \le I(A;B)</math></center>}}


{{dowod|||Na podstawie lematu, gdyż
{{dowod|||Na podstawie lematu, gdyż
:<math>I(A; f(B) | B) = \underbrace{H (f(B) | B)}_{=0}-\underbrace{H (f(B) | A, B)}_{=0} = 0 </math>}}
<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]

Kryptosystemem nazywamy trójkę zmiennych losowych:
  • 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ącaDec:𝒞×𝒦:

M=Dec(C,K)

(czyli z szyfru i klucza uzyskuje się w sposób jednoznaczny pierwotną wiadomość).

Kryptosystem jest idealnie bezpieczny jeśli I(C;M)=0.


Przykład [Szyfr Vernama (one-time pad)]

Definiujemy =𝒦=𝒞={0,1}n dla pewnego n i

C=MK

Gdzie oznacza XOR po bitach (np. 101101110110=011011). Tym samym Dec(v,w)=vw

Dodatkowo zakładamy że K jest wybierana z rozkładem jednostajnym na {0,1}n, czyli v{0,1}np(K=v)=12n, 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 p(C=wM=u)=p(C=w)p(M=u) (patrz twierdzenie o entropii łącznej).

Zaczynamy od:

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned 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 }

Jeśli teraz skorzystamy z definicji C i niezależności M i K dostajemy:

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned p (C = w \, \wedge \, M = u) & = p (K = w \oplus v \, \wedge \, M = u)\\ & = \frac{1}{2^n} \cdot p ( M = u) \endaligned }


Twierdzenie [Pesymistyczne Twierdzenie Shannona]

Każdy idealnie bezpieczny kryptosystem musi zapewniać:

H(K)H(M)

W konsekwencji (na postawie kodowania Shannona-Fano):

Lr(K)Hr(K)Hr(M)Lr(M)1

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

Rozpisujemy:
H(M)=H(M|C,K)+I(M;C)=H(M)H(M|C)+I(M;K|C)=H(M|C)H(M|K,C)

Ale z definicji M jest funkcją (C,K), czyli H(M|C;K)=0. Wymagamy żeby I(M;C)=0, a więc:

H(M)=I(M;K|C)

Rozpisując analogicznie H(K) uzyskujemy:

H(K)=H(K|M,C)+I(K;C)+I(K;M|C)=H(M)


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

Jeśli A i C są niezależne warunkowo przy danym B (czyli I(A;C|B)=0), to
I(A;C)I(A;B).

Dowód

Skorzystajmy z zasady łańcuchowej:

I(A;(B,C))=H(A)H(A|B,C)=I(A;C)=H(A)H(A|C)+I(A;B|C)=H(A|C)H(A|B,C)

Z symetrii, używając niezależności warunkowej A i C dostaniemy:

I(A;(B,C))=I(A;B)+I(A;C|B)=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 I(A;B|C)=0).


Wniosek

Dla dowolnej funkcji f,
I(A;f(B))I(A;B)

Dowód

Na podstawie lematu, gdyż
I(A;f(B)|B)=H(f(B)|B)=0H(f(B)|A,B)=0=0