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 19: Linia 19:
Kryptosystem jest ''idealnie bezpieczny'' jeśli I(C;M)=0.
Kryptosystem jest ''idealnie bezpieczny'' jeśli I(C;M)=0.


 
{{przyklad|Szyfr Vernama (one-time pad)||
'''Przykład: 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>
:<math>C = M \oplus K</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>
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 32: Linia 29:




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 <math> p (C = w \, \wedge \, M = u) = p (C = w) \cdot p ( M = u)</math>. (link TODO)
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 <math> p (C = w \, \wedge \, M = u) = p (C = w) \cdot p ( M = u)</math>  
(patrz [[Teoria informacji/TI Wykład 5#do_łącznej|twierdzenie o entropii łącznej]]).


Zaczynamy od:
Zaczynamy od:
Linia 53: Linia 51:




(do udowodnienia na ćwiczeniach: Niezależność M i K jest warunkiem koniecznym)
(TODO na ćwiczeniach: Niezależność M i K jest warunkiem koniecznym)




Linia 69: Linia 67:
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.


'''Dowód'''
{{dowod|||
 
:<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>
:<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>


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


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




Linia 91: Linia 83:
:<math>I(A;C) \le I(A;B)</math>.}}
:<math>I(A;C) \le I(A;B)</math>.}}


'''Dowód'''
{{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>
:<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>


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>}}
:<math> I(A; (B,C)) = I(A;B) + \underbrace{I(A; C | B)}_{=0}</math>
 
QED.




Linia 111: Linia 98:
:<math>I(A;f(B)) \le I(A;B)</math>}}
:<math>I(A;f(B)) \le I(A;B)</math>}}


'''Dowód''' 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>
:<math>I(A; f(B) | B) = \underbrace{H (f(B) | B)}_{=0}-\underbrace{H (f(B) | A, B)}_{=0} = 0 </math>}}

Wersja z 06:50, 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 Dec:𝒞×𝒦:

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.

{{przyklad|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:

p(C=w)=up(K=uw|M=u)p(M=u)

=up(K=uw)p(M=u) (bo M i K są niezależne)
=u12np(M=u)
=12n

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

p(C=wM=u)=p(K=wvM=u)

=12np(M=u)

QED.


(TODO na ćwiczeniach: Niezależność M i K jest warunkiem koniecznym)


Twierdzenie [Pesymistyczne Twierdzenie Shannona]

Każdy idealnie bezpieczny kryptosystem musi zapewniać:

H(K)H(M)

W konsekwencji (link TODO):

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

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


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

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