From 9021e9e6e681b8ab619e48da6d99bcf079ceffe7 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Mon, 24 Feb 2025 23:29:49 +0100
Subject: [PATCH] Intro: Meet in the middle

---
 01-intro/intro.tex | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/01-intro/intro.tex b/01-intro/intro.tex
index 5be8222..0140f20 100644
--- a/01-intro/intro.tex
+++ b/01-intro/intro.tex
@@ -447,6 +447,26 @@ pravděpodobnost, že ve skupině 23 lidí mají dva narozeniny tentýž den, je
 
 \subsection{Útoky setkáním na půli cesty}
 
-TODO
+Podívejme se na ještě jednu variantu útoku s~odmocninovou složitostí.
+Méjme autentikační protokol typu challenge-response jako v~oddílu \secref{introrng}.
+Server posílá $b$-bitovou nonci a klient odpoví jejím podpisem.
+
+V~první fázi útoku bude útočník odposlouchávat komunikaci, až nasbírá $s$~různých noncí a odpovídajících podpisů.
+Pak následuje druhá fáze, v~níž se $t$-krát pokusí navázat spojení a bude číhat, jestli se neobjeví některá ze známých noncí.
+Spočítejme pravděpodobnost toho, že neuspěje.
+
+První fáze vyprodukuje nějakou $s$-prvkovou podmnožinu~$S$ vybranou z~$n$-prvkové množiny~$N$ všech možných noncí,
+kde $n=2^b$. Druhou fázi můžeme popsat náhodnou funkcí~$f$ z~množiny pokusů $\{1,\ldots,t\}$ do množiny noncí~$N$.
+Útočník neuspěje, pokud je $f(x)\not\in S$ pro všechna~$x$.
+To nastane s~pravděpodobností
+$$
+	p = \left( 1 - {s\over n} \right) ^t \approx \e^{-{st\over n}}.
+$$
+Tato pravděpodobnost bude rovna (řekněme) $1/2$ pro $st\approx n$. Můžeme tedy zvolit
+například $s = t = c\cdot\sqrt{n}$ pro vhodnou konstantu~$c$. Celková složitost útoku
+pak bude opět odmocninová, což shora omezuje úroveň bezpečnosti protokolu na $b/2$.
+
+Můžeme si také všimnout, že paměťové nároky útoku jsou lineární v~$s$, takže může dávat
+smysl volit třeba $s=cn^{1/3}$ a $t=cn^{2/3}$. Tím jsme ušetřili paměť za cenu času.
 
 \endchapter
-- 
GitLab