Skip to content
Snippets Groups Projects
Commit 1b3a15f9 authored by Martin Mareš's avatar Martin Mareš
Browse files

Dokonalá bezpečnost: Začátek

parent dbe6f9c2
No related branches found
No related tags found
No related merge requests found
TOP=..
include ../Makerules
\ifx\chapter\undefined
\input adsmac.tex
\singlechapter{2}
\fi
\chapter[perfect]{Dokonalá bezpečnost}
V~ideálním světě bychom o~každém kryptografickém primitivu uměli dokázat,
že je bezpečné. To je mnohem těžší, než se zdá, ale přeci jen existují
konstrukce, pro které takový důkaz známe. V~této kapitole si několik těchto
výjimečných případů předvedeme. Ukáže se ale, že mají dost omezené využití.
\section{Jednorázové klíče}
Uvažujme následující symetrickou šifru. Jejím vstupem bude zpráva ${\bf x}
\in \{0,1\}^n$ a stejně dlouhý klíč ${\bf k} \in \{0,1\}^n$. Zašifrovanou
zprávu ${\bf y}\in \{0,1\}^n$ spočítáme jako {\csc xor} původní zprávy s~klíčem,
tedy $y_i = x_i \oplus k_i$ pro všechna~$i$.
Dešifrovat můžeme druhým vyxorováním s~klíčem:
$y_i \oplus k_i = (x_i \oplus k_i) \oplus k_i = x_i \oplus (k_i + k_i)
= x_i \oplus 0 = x_i$.
\theorem{
Pakliže klíč zvolíme jako rovnoměrně náhodnou posloupnost bitů,
je zašifrovaná zpráva také rovnoměrně náhodná posloupnost bitů.
}
\proof
Jelikož různé bity zprávy spolu neinteragují, stačí větu dokázat pro jediný bit:
\list{o}
\:Pokud $x_i=0$, pak s~pravděpodobností $1/2$ nastane $k_i=0$, a~tedy $y_i = 0 \oplus 0 = 0$, nebo $k_i=1$, a~tedy $y_i = 0 \oplus 1 = 1$.
\:Pokud $x_i=1$, pak s~pravděpodobností $1/2$ nastane $k_i=0$, a~tedy $y_i = 1 \oplus 0 = 1$, nebo $k_i=1$, a~tedy $y_i = 1 \oplus 1 = 0$.
\endlist
V~obou případech tedy $y_i$ nabývá hodnot 0 a~1 se stejnou pravděpodobností.
\qed
Z~toho plyne, že zašifrovaný text nenese vůbec žádnou informaci o~původním textu
kromě jeho délky. Takové šifře se říká {\I dokonale bezpečná.}
Ovšem pozor -- takhle silnou záruku bezpečnosti dostáváme pouze tehdy, když jeden
klíč použijeme pro jedinou zprávu. Takovým klíčům se říká {\I jednorázové klíče
(one-time pad).}
Podívejme se, co se stane, pokud stejný klíč~${\bf k}$ použijeme pro dvě zprávy
${\bf x}$ a~${\bf x'}$. Víme, že $y_i = x_i \oplus k_i$ a $y'_i = x'_i \oplus k_i$.
Pokud zašifrované zprávy vyxorujeme, dostaneme
$y_i \oplus y'_i = (x_i \oplus k_i) \oplus (x'_i \oplus k_i)
= (x_i \oplus x'_i) \oplus (k_i \oplus k_i)
= (x_i \oplus x'_i) \oplus 0
= x_i \oplus x'_i$.
Zašifrované zprávy se tedy liší přesně tam, kde se liší původní zprávy.
Vzhledem k~tomu, jak velkou redundanci mají přirozené jazyky, tato informace
obvykle postačí k~rekonstrukci většiny obsahu zpráv. Jen nerozlišíme jejich pořadí.
Vypadá to tedy, že jsme si nepomohli -- místo bezpečného přenosu zprávy teď potřebujeme
bezpečně přenést stejné dlouhý klíč. To přesto může být praktické. Pokud vysíláme
do ciziny tajného agenta, můžeme ho vybavit knížkou s~jednorázovými klíči.
Každou stránku použije na jednu zprávu a pak ji zničí.
Také časem sestrojíme zajímavé šifry tak, že dokonale náhodnou posloupnost
nahradíme výstupem pseudonáhodného generátoru. To už ovšem nebude dokonale
bezpečné.
Kromě toho si všimněme, že změna jednoho bitu zašifrované zprávy způsobí
změnu příslušného bitu dešifrované zprávy. Zbytek dešifrované zprávy zůstane
nezměněn. Tato vlastnost nám komplikovala život už v~první kapitole a zde vidíme,
že se může projevit i u~dokonale bezpečných šifer. Proto zopakujeme: šifra
zaručuje utajení, nikoliv integritu.
Dodejme ještě, že šifru s~jednorázovým klíčem poprvé popsal Frank Miller v~roce 1882,
znovu ji objevil Gilbert Vernam v~roce 1917 (proto se této šifře často říká Vernamova)
a dokonalou bezpečnost dokázal Claude Shannon v~roce 1945 (proto místo dokonale
bezpečné někdy říkáme shannonovsky bezpečné).
\subsection{Zobecnění}
Stejný princip můžeme použít v~libovolné grupě. Kdykoliv máme nějakou
komutativní grupu $(G,+,{\bf 0},-)$, můžeme zprávu $x\in G$
zašifrovat náhodným klíčem $k\in G$ jako $y = E(x,k) = x+k$, a~tedy dešifrovat jako
$D(y, k) = y-k = (x+k)-k = x$.
Předchozí \uv{xorovací} verzi dostaneme volbou $G = \Z_2^n$.
Opět nahlédneme, že sečtením libovolného prvku grupy s~rovnoměrně náhodným
prvkem dostaneme rovnoměrně náhodný prvek. (Pro každé $a\in G$ je $x \mapsto a+x$
permutace na~$G$.) Proto je i~tato šifra dokonale bezpečná.
Dokonalou bezpečnost můžeme interpretovat i takto:
Nechť Alice vybere zprávu $X\in G$ z~nějakého neznámého pravděpodobnostního rozdělení~$\cal D$
a rovnoměrně rozdělený klíč $K\in G$.
My jsme zpozorovali nějakou konkrétní hodnotu~$y$ náhodné veličiny $Y=E(X,K)=X+K$
a ptáme se, jaká je za této podmínky pravděpodobnost, že $X$ je rovno nějaké konkrétní
zprávě~$x$.
Zajímá nás tedy $\Pr[X=x \mid Y=y]
= \Pr[X=x \mid X+K=y]
= \Pr[X=x \mid K=y-X]$.
Ovšem $K$ je zvoleno nezávisle na~$X$, takže jevy $X=x$ a $K=y-x$
jsou nezávislé, a~tudíž je podmíněná pravděpodobnost rovna nepodmíněné $\Pr[X=x]$.
Pozorování $Y=y$ tedy nepřináší vůbec žádnou informaci o~hodnotě~$X$.
\endchapter
...@@ -10,6 +10,7 @@ include Makerules ...@@ -10,6 +10,7 @@ include Makerules
CHAPTERS= \ CHAPTERS= \
01-intro 01-intro
02-perfect
chapters: chapters:
for ch in $(CHAPTERS) ; do $(MAKE) -C $$ch pics ; done for ch in $(CHAPTERS) ; do $(MAKE) -C $$ch pics ; done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment