Teoria informacji/TI Wykład 7: 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 1: Linia 1:
===Doskonale bezpieczne szyfrowanie===
===Kanały===


Pokażemy teraz jak przy pomocy teorii informacji możemy udowodnić że jakiś system kryptograficzny jest całkowicie bezpieczny.
{{definicja|[Kanał komunikacyjny]|kanał|'''Kanałem komunikacyjnym''' <math>\Gamma</math> nazywamy trójkę:}}


* skończony zbiór <math>\mathcal{A}</math> symboli ''wejściowych''
* skończony zbiór <math>\mathcal{B}</math> symboli ''wyjściowych''
* mapowanie <math>\mathcal{A} \times \mathcal{B} \to [0,1]</math> określające dla każdej pary (a,b) prawdopodobieństwo <math>P(a \to b)</math> zamiany symbolu a na B, spełniające warunek:
<center><math>\forall_{a \in \mathcal{A}} \sum_{b \in {\mathcal B}} P (a \to b) = 1</math></center>


{{definicja|[Kryptosystem]|kryptosystem|'''Kryptosystemem''' nazywamy trójkę zmiennych losowych:}}


* M – ze skończonego zbioru wartości <math>{\mathcal M}</math> (wiadomości)
Zmienne losowe A i B o wartościach odpowiednio z <math>\mathcal{A}</math> i <math>\mathcal{B}</math> stanowią parę ''wejście-wyjście'' dla kanału <math>\Gamma</math> jeśli dla dowolnych <math>a \in \mathcal{A},b \in \mathcal{B}</math>
* K – ze skończonego zbioru wartości <math>{\mathcal K}</math> (klucze)
* C – ze skończonego zbioru wartości <math>{\mathcal C}</math> (zaszyfrowane wiadomości)


Dodatkowo musi istnieć funkcja deszyfrująca<math>\mathit{Dec} : {\mathcal C} \times {\mathcal K} \to {\mathcal M}</math>:
<center><math>p (B = b | A = a) = P (a \to b)</math></center>
<center><math>M = Dec(C,K)</math></center>


(czyli z szyfru i klucza uzyskuje się w sposób jednoznaczny pierwotną wiadomość).
Kanał taki możemy zobrazować jako
<center><math>A \to</math>[[grafika:Gamma.PNG]]<math>\to B</math></center>


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


Możemy od razu zauważyć że
<center><math>p ( A = a \, \wedge \, B = b)  = P (a \to b) \cdot p ( A = a )</math></center>


{{przyklad|[Szyfr Vernama (one-time pad)]||
A więc rozkład (A,B) jest jednoznacznie wyznaczony przez A (dla ustalonego <math>\Gamma</math>. W szczególności odpowiednie B zawsze istnieje i jest zdefiniowane jako <math>p (B = b)  = \sum_{a \in {\mathcal A}} P (a \to b) \cdot p ( A = a )</math>


Definiujemy <math>{\mathcal M} ={\mathcal K} ={\mathcal C} = \{0,1\}^n</math> dla pewnego <math>n \in \mathbb{N}</math> i
Więdząc to, można bezpośrednio policzyć <math>H(A,B)</math>, <math>H(B|A)</math>, <math>I(A;B)</math> itp. (w zależności od <math>\Gamma</math> i A).
<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>


Dodatkowo zakładamy że K jest wybierana z rozkładem jednostajnym na <math>\{0,1\}^n</math>, czyli <math>\forall_{v \in \{0,1\}^n} p(K=v)=\frac{1}{2^n}</math>, i że M jest zmienną niezależną od K.
{{definicja|[Przepustowość kanału]|przepustowość|'''Przepustowość kanału komunikacyjnego''' definiujemy jako
<center><math>C_{\Gamma } = \max_{A} I (A;B)</math></center>}}


(dla ustalenia uwagi, tutaj<math>I=I_2</math>). Maksimum jest tutaj brane po wszystkich rozkładach zmiennej losowej A na <math>\mathcal{A}</math>. Istnieje ono zawsze, ponieważ <math>I(A;B)</math> jest ciągłym odwzorowaniem ze zbioru zwartego <math>\{ p \in [0,1]^{{\mathcal A}} : \sum_{a \in {\mathcal A}} p(a) = 1 \}</math> w <math>\mathbb{R}</math>, i dodatkowo ograniczonym (<math>I(A;B) \le H(A) \le \log|\mathcal{A}|</math>).


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>  
Jeśli <math>\mathcal{A}= \{ a_1, \ldots , a_m \}</math> i <math>\mathcal{B}= \{ b_1, \ldots , b_n \}</math>, to możemy kanał reprezentować jako macierz:
(patrz [[Teoria informacji/TI Wykład 5#do_łącznej|twierdzenie o entropii łącznej]]).


Zaczynamy od:
<center><math>\left(
<center><math>\aligned
\begin{matrix}
p(C = w) & = \sum_{u \in {\mathcal M}} p (K = u \oplus w | M = u) \cdot p(M = u)\\
P_{1 1} & \ldots & P_{1 n} \\
& = \sum_{u \in {\mathcal M}} p (K = u \oplus w) \cdot p(M = u) \mbox{ (bo M i K są niezależne) } \\
\ldots  & \ldots & \ldots \\
& = \sum_{u \in {\mathcal M}} \frac{1}{2^n} \cdot p(M = u) \\
P_{m 1} & \ldots & P_{m n}
& = \frac{1}{2^n}
\end{matrix}
\endaligned
\right) </math></center>
 
gdzie <math> P_{i j} = p (a_i \to b_j )</math>
 
W tej postaci wzór na rozkład zmiennej losowej B ma postać:
 
<center><math>\left( p (a_1) , \ldots , p (a_m) \right)
\cdot
\left(
\begin{matrix}
P_{1 1} & \ldots & P_{1 n} \\
\ldots  & \ldots & \ldots \\
P_{m 1} & \ldots & P_{m n},
\end{matrix}
\right)
=
\left( p (b_1) , \ldots , p (b_n)\right)</math></center>
 
 
===Przykłady===
 
Proste kanały łatwo przedstawiać jako dwudzielne grafy skierowane o wierzchołkach z <math>\mathcal{A}</math> i <math>\mathcal{B}</math>, i krawędziach <math>a \to b</math> etykietowanych przez <math>P(a \to b)</math>
(rysowanych o ile <math>P(a \to b) > 0</math>).
 
 
{{przyklad|[Wierny (bezszumowy) kanał]|wierny_kanal|
Niech <math>\mathcal{A}=\mathcal{B}=\{0,1\}</math>. Wierny kanał przekazuje informację bez przekłamań:
 
<center>[[grafika:faithful.PNG]]</center>
 
Macierz reprezentująca ten kanał to
<center><math>\left(
\begin{matrix}
1 & 0 \\
0 & 1
\end{matrix}
\right)</math></center>
 
Skoro A jest zawsze równe B, to <math>I(A;B)=H(A)</math>, a więc przepustowość tego kanału jest równa
<center><math> C_{\Gamma } = \max_{A} I(A;B) \max_{A} H(A) = \log_2 |{\mathcal A}| = 1</math></center>}}
 
 
{{przyklad|[Wierny kanał odwracający]|odwracajacy_kanal|
Kanał analogiczny do poprzedniego, ale odwracający wszystkie przekazywane bity:
 
<center>[[grafika:inverse.PNG]]</center>
 
Reprezentacja macierzowa to
<center><math>\left(
\begin{matrix}
0 & 1 \\
1 & 0
\end{matrix}
\right)</math></center>
 
przepustowość tak jak w poprzednim przykładzie <math> C_{\Gamma } = 1</math>}}
 
 
{{przyklad|[Kanał zaszumiony bez nakładania]|bez_nakladania_kanal|
<math>\mathcal{A}= \{0,1\}, \mathcal{B}=\{0,1,2,3\}</math>
 
<center>[[grafika:wooverlap.PNG]]</center>
 
Macierz ma postać:
<center><math>\left(
\begin{matrix}
\frac{1}{2} & \frac{1}{2} & 0 & 0  \\
0 & 0 & \frac{1}{3} & \frac{2}{3}
\end{matrix}
\right)
</math></center>
</math></center>


Jeśli teraz skorzystamy z definicji C i niezależności M i K dostajemy:
Jak widać, A jest tutaj funkcją B, a więc <math>I(A;B)=H(A)-H(A|B)=H(A)</math>.
<center><math>\aligned
Czyli znów <math> C_{\Gamma } = 1</math>}}
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>}}




{{przyklad|[Wadliwa maszyna do pisania]|maszyna_kanal|
Niech <math>\mathcal{A}=\mathcal{B}=\{a,b,\ldots z\}</math> (załóżmy 26 liter), i
<center><math> p (\alpha \to \alpha ) = p (\alpha \to \mathit{next} ( \alpha ) ) = \frac{1}{2}</math></center>


{{twierdzenie|[Pesymistyczne Twierdzenie Shannona]|pesymistyczne|
gdzie
<math>\mathit{next} (a) = b</math>,
<math>\mathit{next} (b) = c</math>, . . .
<math>\mathit{next} (y) = z</math>,
<math>\mathit{next} (z) = a</math>.


Każdy idealnie bezpieczny kryptosystem musi zapewniać:
(wyobrażenie sobie reprezentacji grafowej i macierzowej zostawiamy czytelnikowi).
<center><math>H(K) \ge H(M)</math></center>


W konsekwencji (na postawie [[Teoria informacji/TI Wykład 4#shannon_fano|kodowania Shannona-Fano]]):
Aby obliczyć przepustowość, zacznijmy od obserwacji:
<center><math>L_r (K) \ge H_r (K) \ge  H_r (M) \ge L_r (M)-1</math></center>}}
<center><math>H(B | \alpha ) = p ( \alpha | \alpha ) \cdot \log \frac{1}{p ( \alpha | \alpha )} + p ( \mathit{next} ( \alpha )| \alpha ) \cdot \log \frac{1}{p ( \mathit{next} (\alpha )| \alpha )} = (\frac{1}{2} + \frac{1}{2}) \cdot \log_ 2 = 1</math></center>


Czyli aby uzyskać idealną tajność, musimy użyć klucza równie długiego jak przesyłana wiadomość.  
A skoro tak, to możemy łatwo policzyć przepustowość rozpisując ją następująco:
Jest to oczywiście bardzo niepraktyczne, ale w niektórych zastosowaniach konieczne.
<center><math>C_{\Gamma } = \max_{A} I(A;B) = \max_{A} H(B) - \underbrace{H(B|A)}_{=1} = \log 26  - 1 = \log 13</math></center>
(ponieważ możemy uzyskać maksymalną entropię B, np. dla jednostajnego rozkładu prawdopodobieństwa na A).}}


{{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:
Czytelnik być może już ma intuicyjne pojęcie przepustowości kanału jako konkretnej liczby, tak jak informacja lub entropia. Zadamy zatem kolejne pytanie: jakie kanały mają zerową przepustowość?
<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>}}


'''Złe kanały''' Aby uzyskać <math> C_{\Gamma } = 0</math>, musimy mieć I(A;B)=0 dla dowolnego rozkładu danych wejściowych, czyli pary A i B zawsze muszą być niezależne. Formalnie to wymaganie oznacza że <math>p(B=b|A=a)=p(B=b)</math>, dla wszystkich <math>a \in \mathcal{A}, b \in \mathcal{B}</math>. Przykładowymi złymi kanałami są:


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.
<math>\left(
\begin{matrix}
\frac{1}{2} & \frac{1}{2} \\
\frac{1}{2} & \frac{1}{2}
\end{matrix}
\right)
</math>


<math>\left(
\begin{matrix}
\frac{1}{2} & 0 & \frac{1}{6} &\frac{1}{3}  \\
\frac{1}{2} & 0 & \frac{1}{6} &\frac{1}{3}
\end{matrix}
\right)
</math>


{{lemat||przetwarzanie|Jeśli A i C są niezależne warunkowo przy danym B (czyli <math>I(A;C|B)=0</math>), to
<math>\left(
<center><math>I(A;C) \le I(A;B)</math>.</center>}}
\begin{matrix}
0 & 0 & 1 \\
0 & 0 & 1 \\
0 & 0 & 1
\end{matrix}
\right)
</math>


{{dowod|||
Ostatni przykład przedstawia szczególnie bezużyteczny kanał, który na wyjściu zawsze daje taką samą wartość. W tym przypadku <math>H(B)=0</math>, co pokazuje że entropia może czasem maleć przy przesyłaniu wiadomości przez kanał. Najbardziej interesujące są jednak przypadki gdy ta entropia rośnie. Jednym z takich przypadków zajmiemy się teraz dokładniej:
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:
===Binarny kanał symetryczny (BSC)===
<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 <math>I(A;B|C)=0</math>).
W tym przypadku znów <math>\mathcal{A}=\mathcal{B}=\{0,1\}</math>


<center>[[grafika:BSC.PNG]]</center>


{{wniosek||do_przetwarzania|Dla dowolnej funkcji f,
Wprowadzając oznaczenie <math>\bar{P}=1-P</math>, macierz kanału możemy zapisać jako:
<center><math>I(A;f(B)) \le I(A;B)</math></center>}}


{{dowod|||Na podstawie lematu, gdyż
<center><math>\left(
<center><math>I(A; f(B) | B) = \underbrace{H (f(B) | B)}_{=0}-\underbrace{H (f(B) | A, B)}_{=0} = 0 </math></center>}}
\begin{matrix}
P & \bar{P} \\
\bar{P} & P
\end{matrix}
\right)
</math></center>




===Kryptografia kwantowa===
{{fakt||entropia_BSC|Jeśli (A,B) jest parą wejście-wyjście dla BSC, to
<center><math> H(B) \ge H(A) </math></center>}}


Korzystanie z szyfru Vernama jest bardzo niewygodne z powodu konieczności wcześniejszego ustalenia klucza równie długiego jak przesyłana wiadomość. Dlatego w większości zastosowań rezygnuje się z idealnej tajności na rzecz ''bezpieczeństwa złożonościowego''. W takich metodach (stosowanych praktycznie wszędzie w sieci) bezpieczeństwo opiera się na trudności obliczeniowej rozwiązania pewnych problemów algorytmicznych. Odszyfrowanie wiadomości bez znajomości klucza jest możliwe, ale zakłada się że nikt nie dysponuje wystarczająco potężną mocą obliczeniową aby tego dokonać. Z punktu widzenia teorii informacji zaszyfrowane wiadomości zawierają jednak pełną informację, czyli <math>I(C;M)=H(M)</math>.
Ponadto równości zachodzi wyłącznie jeśli <math>P \in \{0,1\}</math> (czyli kanał jest wierny lub wierny-odwracający), lub jeśli H(A)=1 (czyli entropia A jest maksymalna).


Obecnie jedyną metodą pozwalającą uzyskać idealną tajność bez wcześniejszego ustalenia klucza jest zastosowanie '''kryptografii kwantowej'''. W ogólności kwantowa teoria informacji nie mieści się w zakresie tego kursu, ale ogólne idee postaramy się tu przedstawić.
{{dowod|||Niech <math>q=p(A=0)</math>. Wtedy <math>p(A=1)=\bar{q}</math>, i możemy wyznaczyć rozkład B z formuły:


<center><math>\left( q, \bar{q} \right)
\cdot
\left( \begin{matrix}
P & \bar{P} \\
\bar{P} & P
\end{matrix}
\right)
=
( \underbrace{q P +\bar{q} \bar{P}}_{p(B = 0)},
\underbrace{q \bar{P} + \bar{q} P}_{p(B = 1)} )
</math></center>


W kwantowej teorii zastępuje się klasyczne bity ich odpowiednikami, tzw. '''kubitami'''. Kubit jest najmniejszą
Wprowadźmy oznaczenie <math>r=p(B=0)</math>. Wtedy
porcją kwantowej informacji. Tak jak klasyczny bit może przyjmować wartości <math>0</math> i <math>1</math>. W odróżnieniu od niego może jednak przyjmować też dowolną '''superpozycję''' tych wartości, czyli być w stanie „pomiędzy” <math>0</math> a <math>1</math>. Formalnie jego stan można opisać wektorem z dwuwymiarowej przestrzeni
<center><math>\aligned
<center><math>|\psi\rangle = \alpha|0\rangle + \beta|1\rangle</math></center>
H(A)& =-q \log q - \bar{q} \log \bar{q}\\
H(B)& =-r \log r - \bar{r} \log \bar{r}
\endaligned
</math></center>


gdzie <math>|0\rangle</math> i <math>|1\rangle</math> oznaczają wektory bazowe, a liczby zespolone <math>\alpha</math> i <math>\beta</math> nazywane są ''amplitudami''.
Przypominamy naszą [[Teoria informacji/TI Wykład 2#konwencja_log|konwencję]] <math>0 \log_r 0 = 0 \log_r \frac{1}{0} = 0</math>, i oznaczamy przez h funkcję
<center><math>h(x)=x \ln x + (1-x) \ln (1-x) </math></center>


Dla <math> 0 \le x \le 1 </math>. Łatwo możemy policzyć (dla <math> 0<x<1 </math>):
<center><math>\aligned
h'(x)& =1+\ln x -1 -\ln (1-x)\\
h''(x)&=\frac{1}{x}+\frac{1}{1-x} > 0
\endaligned
</math></center>


'''Pomiar''' takiego kubitu daje w wyniku <math>0</math> z prawdopodobieństwem <math>|\alpha|^2</math> i <math>1</math> z prawdopodobieństwem <math>|\beta|^2</math> (zawsze <math>|\alpha|^2+|\beta|^2=1</math>).
Zatem na podstawie [[Teoria informacji/TI Wykład 2#do_wypukłej|lematu o funkcjach wypukłych]], funkcja <math>h(x)</math> jest ściśle wypukła na przedziale <math>[0,1]</math>, a więc wypukła jest też funkcja
<center><math>\log_2 e \cdot h(x) = x \log_2 x + (1-x) \log_2 (1-x)</math></center>


Po dokonaniu pomiaru stan kubitu ustala się na zmierzonym wektorze (a więc po pomiarze <math>|\psi\rangle = |0\rangle</math> lub <math>|\psi\rangle = |0\rangle</math>). Ta własność jest kluczowa dla bezpieczeństwa kryptografii kwantowej.
Korzystając teraz z faktu że zdefiniowane wyżej r jest kombinacją liniową q i <math>\bar{q}</math> (kontretnie
<math>r=Pq+(1-P)\bar{q}</math>), a <math>h(q)=h(\bar{q})</math>, otrzymujemy


Na kubitach można dokonywać operacji ''unitarnych'' (to znaczy takich które nie zmieniają <math>|\alpha|^2+|\beta|^2=1</math>). Przykładem takiej operacji jest ''bramka Hadamarda''
<center><math> q \log q + \bar{q} \log \bar{q} \ge r \log r + \bar{r} \log \bar{r}</math></center>
<center><math> H = \frac{1}{\sqrt{2}}\left( \begin{matrix} 1 & 1 \\ 1 & -1 \end{matrix}\right)</math></center>


Warto zauważyć że ta bramka jest inwolucją
<center><math> H^2 = \frac{1}{\sqrt{2}} \left( \begin{matrix} 1 & 1 \\ 1 & -1 \end{matrix}\right)\cdot\frac{1}{\sqrt{2}}\left( \begin{matrix} 1 & 1 \\ 1 & -1 \end{matrix}\right)= \frac{1}{2}\left( \begin{matrix} 1+1 & 1-1 \\ 1-1 & 1+1 \end{matrix}\right) = \left( \begin{matrix} 1 & 0 \\ 0 & 1 \end{matrix}\right)</math></center>


<center><math> H(A) \le H(B)</math></center>


Analogicznie opisuje się układy wielu kubitów: dwa bity mogą przyjmować 4 możliwe wartośći, dlatego układ dwóch kubitów opisywany jest jako wektor z czterowymiarowej przestrzeni. Układ trzech kubitów opisywany jest jako wektor z ośmiowymiarowej przestrzeni itd. Jedyne dopuszczalne ingerowanie w takie układy to pomiary oraz operacje unitarne.
i równość ma miejsce tylko jeśli <math>P \in \{0,1\}</math>, lub jeśli <math>q=q'</math> (czyli gdy <math>H(A)=1</math>).}}


Istotną cechą operacji unitarnych jest ich odwracalność - dla każdej z nich istnieje macierz odwrotna. Pociąga to za sobą krytyczną własność informatyki kwantowej, nie mającą odpowiednika w informatyce klasycznej:


{{twierdzenie|[Brak klonowania]|brak_klonowania|
Wyliczymy teraz <math> C_{\Gamma }</math>. Wygodnie będzie nam używać notacji
Nie istnieje operacja kwantowa kopiująca wiernie dowolne kubity, tzn. taka <math>U</math> że dla dowolnego <math>|\psi\rangle</math>:
<center><math> H(s) = - s \log_2 s - (1-s) \log_2 (1-s) </math></center>
<center><math>U |\psi\rangle |0\rangle = |\psi\rangle |\psi\rangle</math></center>}}


(co interpretujemy jako entropię zmiennej binarnej o prawdopodobieństwach s i 1-s).


Układy wielu kubitów teoretycznie pozwalają na znacznie efektywniejsze obliczenia niż przy użyciu klasycznych komputerów. Praktyczna ich implementacja jest jednak bardzo trudna, i do tej pory nikomu nie udało się przeprowadzić dużego obliczenia kwantowego. Operowanie na pojedynczych kubitach jest za to dosyć proste, i istnieją komercyjne urządzenia używające ich do bezpiecznego przesyłania danych. W takich urządzeniach kubity realizowane są jako pojedyncze fotony. Najprostszy protokół ustalania klucza wygląda następująco:
Z definicji entropii warunkowej dostajemy:


'''Protokół BB84'''
<center><math>\aligned
1. Gracz A przygotowuje losowy ciąg kubitów z następującym rozkładem:
H (B |A)& = p(A = 0) \cdot \left( p (B = 0 | A = 0) \cdot \log \frac{1}{p (B = 0 | A = 0)} + p (B = 1 | A = 0) \cdot \log \frac{1}{p (B = 1 | A = 0)} \right)\\
<math>|\psi\rangle=\bigg\{ \begin{matrix} |0\rangle & \mbox{z prawd.} & \frac{1}{2}\\ |1\rangle & \mbox{z prawd.} & \frac{1}{2} \end{matrix}</math>
& + p(A = 1)  \cdot \left( p (B = 0 | A = 1) \cdot \log \frac{1}{p (B = 0 | A = 1)} + p (B = 1 | A = 1) \cdot \log \frac{1}{p (B = 1 | A = 1)} \right)\\
2. Gracz A do każdego kubitu aplikuje z prawdopodobieństwem <math>\frac{1}{2}</math> bramkę Hadamarda.
& = p(A = 0) \cdot \left( P \cdot \log \frac{1}{P} + \bar{P} \cdot \log \frac{1}{\bar{P}} \right) + p(A = 1) \cdot \left( \bar{P} \cdot \log \frac{1}{\bar{P}} + P \cdot \log \frac{1}{P} \right)\\
3. Gracz A wysyła tak przygotowane kubity do gracza B
& = P \cdot \log \frac{1}{P} + \bar{P} \cdot \log \frac{1}{\bar{P}}\\
4. Gracz B do każdego otrzymanego kubitu aplikuje z prawdopodobieństwem <math>\frac{1}{2}</math> bramkę Hadamarda.
& = H(P)  
5. Gracz B dokonuje pomiaru wszystkich kubitów.
\endaligned
6. Gracze A i B ogłaszają publicznie do których kubitów aplikowali bramkę Hadamarda
</math></center>
7. Tajnym kluczem stają się wartości kubitów przy których obaj gracze zachowali się tak samo
(to znaczy obaj aplikowali bramkę lub obaj nie aplikowali).
 
Ustalony w ten sposób klucz gracze mogą wykorzystać do zwykłego zaszyfrowania wiadomości (np. szyfrem Vernama).


Dla każdego bitu dla którego gracze zachowali się tak samo, wynik pomiaru B powinien być identyczny ze stanem w jakim A początkowo przygotował qubit. W przypadku gdy tylko jeden z graczy zaaplikował bramkę Hadamarda, wynik pomiaru powinien być dokładnie losowy (dać <math>0</math> i <math>1</math> z prawdopodobieństwem <math>\frac{1}{2}</math>).
A zatem <math>H(B|A)</math> nie zależy od A.


Trzeci gracz, usiłujący podsłuchać przesyłany klucz, musi to zrobić w punkcie 3. Teoretycznie może tu przeprowadzić dowolną kombinację operacji unitarnych i pomiarów. Gdyby wiedział na których kubitach gracz A użył bramki Hadamarda, mógłby  odwrócić jej działanie, zmierzyć wartości kubitów, przygotować je ponownie i przesłać do B. Nie mając tej informacji i nie mogąc skopiować wiernie przesyłanych bitów, ryzykuje że zaburzy przygotowane wcześniej stany.
Do wykrycia podsłuchującego wystarczy zatem że po zakończeniu protokołu A i B ogłoszą kilka bitów ustalonego przez siebie klucza (usuwając je z klucza) - jeśli część z nich nie będzie się zgadzać, oznacza to że kanał komunikacyjny nie jest bezpieczny. Formalnie dowód tego bezpieczeństwa jest bardziej skomplikowany, tutaj pokażemy tylko jak to wygląda z punktu widzenia teorii informacji. Jeśli przesyłane pierwotnie wiadomości oznaczymy jako <math>X_A</math>, informacje które docierają do B jako <math>X_B</math> a informacje odczytane przez C jako <math>X_C</math>, to otrzymamy następującą interesującą własność:
<center><math>H(X_A) \ge I(X_A;X_B) + I(X_A;X_C)</math></center>


Innymi słowy, tyle informacji ile gracz C „podsłucha” musi być przez B „stracone”. Jest to konsekwencja zasady nieoznaczoności, i powoduje że gracze A i B są w stanie z dużym prawdopodobieństwem wykryć ingerencję w kanał.
Korzystając z powyższego wyliczenia rozkładu B, mamy
<center><math> H(B)=H(qP+\bar{q}\bar{P})</math></center>


Inne kwantowe protokoły kryptograficzne wykorzystują teleportację kwantową, ale ich zasada jest bardzo podobna. Bezpieczeństwo zawsze opiera się na zasadzie nieoznaczoności, i odrzucaniu komunikatów które zostały zmodyfikowane przez podsłuchującego.
Możemy teraz znaleźć rozkład A który maksymalizuję tę wartość (dla <math>q=\frac{1}{2}</math>), i otrzymujemy:
<center><math>C_{\Gamma}= \max_{A} H(B) - H(B|A) = 1 - H(P)</math></center>

Wersja z 12:26, 11 sie 2006

Kanały

Definicja [Kanał komunikacyjny]

Kanałem komunikacyjnym Γ nazywamy trójkę:
  • skończony zbiór 𝒜 symboli wejściowych
  • skończony zbiór symboli wyjściowych
  • mapowanie 𝒜×[0,1] określające dla każdej pary (a,b) prawdopodobieństwo P(ab) zamiany symbolu a na B, spełniające warunek:
a𝒜bP(ab)=1


Zmienne losowe A i B o wartościach odpowiednio z 𝒜 i stanowią parę wejście-wyjście dla kanału Γ jeśli dla dowolnych a𝒜,b

p(B=b|A=a)=P(ab)

Kanał taki możemy zobrazować jako

AB


Możemy od razu zauważyć że

p(A=aB=b)=P(ab)p(A=a)

A więc rozkład (A,B) jest jednoznacznie wyznaczony przez A (dla ustalonego Γ. W szczególności odpowiednie B zawsze istnieje i jest zdefiniowane jako p(B=b)=a𝒜P(ab)p(A=a)

Więdząc to, można bezpośrednio policzyć H(A,B), H(B|A), I(A;B) itp. (w zależności od Γ i A).


Definicja [Przepustowość kanału]

Przepustowość kanału komunikacyjnego definiujemy jako
CΓ=maxAI(A;B)

(dla ustalenia uwagi, tutajI=I2). Maksimum jest tutaj brane po wszystkich rozkładach zmiennej losowej A na 𝒜. Istnieje ono zawsze, ponieważ I(A;B) jest ciągłym odwzorowaniem ze zbioru zwartego {p[0,1]𝒜:a𝒜p(a)=1} w , i dodatkowo ograniczonym (I(A;B)H(A)log|𝒜|).

Jeśli 𝒜={a1,,am} i ={b1,,bn}, to możemy kanał reprezentować jako macierz:

(P11P1nPm1Pmn)

gdzie Pij=p(aibj)

W tej postaci wzór na rozkład zmiennej losowej B ma postać:

(p(a1),,p(am))(P11P1nPm1Pmn,)=(p(b1),,p(bn))


Przykłady

Proste kanały łatwo przedstawiać jako dwudzielne grafy skierowane o wierzchołkach z 𝒜 i , i krawędziach ab etykietowanych przez P(ab) (rysowanych o ile P(ab)>0).


Przykład [Wierny (bezszumowy) kanał]

Niech 𝒜=={0,1}. Wierny kanał przekazuje informację bez przekłamań:

Macierz reprezentująca ten kanał to

(1001)

Skoro A jest zawsze równe B, to I(A;B)=H(A), a więc przepustowość tego kanału jest równa

CΓ=maxAI(A;B)=maxAH(A)=log2|𝒜|=1


Przykład [Wierny kanał odwracający]

Kanał analogiczny do poprzedniego, ale odwracający wszystkie przekazywane bity:

Reprezentacja macierzowa to

(0110)
przepustowość tak jak w poprzednim przykładzie CΓ=1


Przykład [Kanał zaszumiony bez nakładania]

𝒜={0,1},={0,1,2,3}

Macierz ma postać:

(121200001323)

Jak widać, A jest tutaj funkcją B, a więc I(A;B)=H(A)H(A|B)=H(A).

Czyli znów CΓ=1


Przykład [Wadliwa maszyna do pisania]

Niech 𝒜=={a,b,z} (załóżmy 26 liter), i

p(αα)=p(αnext(α))=12

gdzie next(a)=b, next(b)=c, . . . next(y)=z, next(z)=a.

(wyobrażenie sobie reprezentacji grafowej i macierzowej zostawiamy czytelnikowi).

Aby obliczyć przepustowość, zacznijmy od obserwacji:

H(B|α)=p(α|α)log1p(α|α)+p(next(α)|α)log1p(next(α)|α)=(12+12)log2=1

A skoro tak, to możemy łatwo policzyć przepustowość rozpisując ją następująco:

CΓ=maxAI(A;B)=maxAH(B)H(B|A)=1=log261=log13
(ponieważ możemy uzyskać maksymalną entropię B, np. dla jednostajnego rozkładu prawdopodobieństwa na A).


Czytelnik być może już ma intuicyjne pojęcie przepustowości kanału jako konkretnej liczby, tak jak informacja lub entropia. Zadamy zatem kolejne pytanie: jakie kanały mają zerową przepustowość?


Złe kanały Aby uzyskać CΓ=0, musimy mieć I(A;B)=0 dla dowolnego rozkładu danych wejściowych, czyli pary A i B zawsze muszą być niezależne. Formalnie to wymaganie oznacza że p(B=b|A=a)=p(B=b), dla wszystkich a𝒜,b. Przykładowymi złymi kanałami są:

(12121212)

(12016131201613)

(001001001)

Ostatni przykład przedstawia szczególnie bezużyteczny kanał, który na wyjściu zawsze daje taką samą wartość. W tym przypadku H(B)=0, co pokazuje że entropia może czasem maleć przy przesyłaniu wiadomości przez kanał. Najbardziej interesujące są jednak przypadki gdy ta entropia rośnie. Jednym z takich przypadków zajmiemy się teraz dokładniej:

Binarny kanał symetryczny (BSC)

W tym przypadku znów 𝒜=={0,1}

Wprowadzając oznaczenie P¯=1P, macierz kanału możemy zapisać jako:

(PP¯P¯P)


Fakt

Jeśli (A,B) jest parą wejście-wyjście dla BSC, to
H(B)H(A)

Ponadto równości zachodzi wyłącznie jeśli P{0,1} (czyli kanał jest wierny lub wierny-odwracający), lub jeśli H(A)=1 (czyli entropia A jest maksymalna).

Dowód

Niech q=p(A=0). Wtedy p(A=1)=q¯, i możemy wyznaczyć rozkład B z formuły:
(q,q¯)(PP¯P¯P)=(qP+q¯P¯p(B=0),qP¯+q¯Pp(B=1))

Wprowadźmy oznaczenie r=p(B=0). Wtedy

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned H(A)& =-q \log q - \bar{q} \log \bar{q}\\ H(B)& =-r \log r - \bar{r} \log \bar{r} \endaligned }

Przypominamy naszą konwencję 0logr0=0logr10=0, i oznaczamy przez h funkcję

h(x)=xlnx+(1x)ln(1x)

Dla 0x1. Łatwo możemy policzyć (dla 0<x<1):

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned h'(x)& =1+\ln x -1 -\ln (1-x)\\ h''(x)&=\frac{1}{x}+\frac{1}{1-x} > 0 \endaligned }

Zatem na podstawie lematu o funkcjach wypukłych, funkcja h(x) jest ściśle wypukła na przedziale [0,1], a więc wypukła jest też funkcja

log2eh(x)=xlog2x+(1x)log2(1x)

Korzystając teraz z faktu że zdefiniowane wyżej r jest kombinacją liniową q i q¯ (kontretnie r=Pq+(1P)q¯), a h(q)=h(q¯), otrzymujemy

qlogq+q¯logq¯rlogr+r¯logr¯


H(A)H(B)
i równość ma miejsce tylko jeśli P{0,1}, lub jeśli q=q (czyli gdy H(A)=1).


Wyliczymy teraz CΓ. Wygodnie będzie nam używać notacji

H(s)=slog2s(1s)log2(1s)

(co interpretujemy jako entropię zmiennej binarnej o prawdopodobieństwach s i 1-s).

Z definicji entropii warunkowej dostajemy:

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned H (B |A)& = p(A = 0) \cdot \left( p (B = 0 | A = 0) \cdot \log \frac{1}{p (B = 0 | A = 0)} + p (B = 1 | A = 0) \cdot \log \frac{1}{p (B = 1 | A = 0)} \right)\\ & + p(A = 1) \cdot \left( p (B = 0 | A = 1) \cdot \log \frac{1}{p (B = 0 | A = 1)} + p (B = 1 | A = 1) \cdot \log \frac{1}{p (B = 1 | A = 1)} \right)\\ & = p(A = 0) \cdot \left( P \cdot \log \frac{1}{P} + \bar{P} \cdot \log \frac{1}{\bar{P}} \right) + p(A = 1) \cdot \left( \bar{P} \cdot \log \frac{1}{\bar{P}} + P \cdot \log \frac{1}{P} \right)\\ & = P \cdot \log \frac{1}{P} + \bar{P} \cdot \log \frac{1}{\bar{P}}\\ & = H(P) \endaligned }

A zatem H(B|A) nie zależy od A.


Korzystając z powyższego wyliczenia rozkładu B, mamy

H(B)=H(qP+q¯P¯)

Możemy teraz znaleźć rozkład A który maksymalizuję tę wartość (dla q=12), i otrzymujemy:

CΓ=maxAH(B)H(B|A)=1H(P)