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

Narozeninové útoky

parent b2d3cb13
No related branches found
No related tags found
No related merge requests found
......@@ -135,7 +135,7 @@ stranami, které si navzájem věří. Konstrukce je snadná: spočítáme otisk
slepením podepisovacího klíče se zprávou.
}
\section{Náhodné generátory}
\section[introrng]{Náhodné generátory}
Kryptografické protokoly také často potřebují generátor náhodných bitů \em{(RNG -- random number
generator)}. Ten má být nejen statisticky rovnoměrný, ale pro vnějšího
......@@ -199,7 +199,7 @@ generovat náhodně. Teoreticky se sice může zopakovat, ale jak uvidíme v~odd
malou pravděpodobností.
}
\section{Alice a Bob na dražbě}
\section[auction]{Alice a Bob na dražbě}
Na závěr této kapitoly zkusíme z~kryptografických primitiv poskládat jeden trochu složitější
protokol. Budeme (trochu naivně) předpokládat, že primitiva jsou dokonalá, ale i tak se objeví
......@@ -391,7 +391,59 @@ Za to ale zaplatíme omezeními použitelnosti šifry.
\subsection{Narozeninové útoky}
TODO
Může se stát, že protokol má úroveň bezpečnosti výrazně nižší než použitá primitiva.
Představme si protokol, v~němž Alice generuje $b$-bitové nonce a předpokládá,
že budou unikátní. Útočník si bude pamatovat všechny nonce, které už proběhly,
a číhat na okamžik, kdy se nějaká nonce zopakuje. Jak dlouho mu to typicky potrvá?
Zdálo by se, že $2^b$ kroků, ale ve skutečnosti to bude mnohem méně.
To, co útočník pozoruje, můžeme popsat jako náhodnou funkci~$f$ z~množiny $\{1,\ldots,m\}$
pokusů do množiny $n$ možných noncí (v~našem případě je $n=2^b$). Útok uspěje, pokud
tato funkce není prostá.
Počítejme pravděpodobnost, že $f$ je prostá, tedy podíl počtu prostých funkcí a počtu
všech funkcí:\foot{$n^{\underline m}$ je klesající mocnina definovaná jako $n(n-1)(n-2)\ldots(n-m+1)$.}
$$\eqalign{
{n^{\underline{m}} \over n^m}
&= {n\over n}
\cdot{n-1\over n}
\cdot{n-2\over n}
\cdot\ldots
\cdot{n-m+1\over n}
\cr
&= 1
\cdot\left( 1 - {1\over n} \right)
\cdot\left( 1 - {2\over n} \right)
\cdot\ldots
\cdot\left( 1 - {m-1\over n} \right).
}$$
Jelikož pro malé~$x$ je $\e^{-x}\approx 1-x$ (to jsou první dva členy Taylorovy řady),
můžeme pravděpodobnost aproximovat výrazem
$$
1
\cdot\e^{-{1\over n}}
\cdot\e^{-{2\over n}}
\cdot\ldots
\cdot\e^{-{m-1\over n}}
= \e^{-\left( 1 + 2 + \ldots + m-1 \over n \right)}
= \e^{-{m(m-1)\over 2n}}
\approx \e^{-{m^2\over 2n}}
.
$$
Hledejme nyni~$m$, pro které tato pravděpodobnost bude rovna $1/2$. Má platit:
$$
{1\over 2} = \e^{-{m^2\over 2n}}.
$$
Zlogaritmováním dostaneme $-\ln 2 = -(m^2/2n)$, tedy $m^2 = (2\ln 2)n$, což po
odmocnění dá $m = \sqrt{2\ln 2}\cdot\sqrt n \approx 1.18\sqrt{n}$.
Už po řádově odmocninovém počtu pokusů je tedy pravděpodobnost útoku $1/2$.
Místo očekávaných $2^b$ pokusů jich tedy stačí cca $\sqrt{2^b} = 2^{b/2}$.
Úroveň bezpečnosti je tedy nejvýše polovina délky nonce.
Útokům tohoto druhu se říká {\I narozeninové} podle známého \uv{narozeninového paradoxu}:
pravděpodobnost, že ve skupině 23 lidí mají dva narozeniny tentýž den, je větší než $1/2$.
\subsection{Útoky setkáním na půli cesty}
......
......@@ -143,6 +143,9 @@
% Asymptoticke O-cko
\protected\def\O{{\cal O}}
% Konkatenace
\def\concat{\mathop{\Vert}}
% Prirozena a realna cisla
\def\N{{\bb N}}
\def\R{{\bb R}}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment