From cf4d5bbf95730cfdf090e2ff23b4149bb67e8d98 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Fri, 11 Apr 2025 21:50:44 +0200
Subject: [PATCH] =?UTF-8?q?Teorie=20=C4=8D=C3=ADsel:=20=C4=8C=C3=A1st=20di?=
 =?UTF-8?q?skr=C3=A9tn=C3=ADch=20logaritm=C5=AF=20a=20hled=C3=A1n=C3=AD=20?=
 =?UTF-8?q?prvo=C4=8D=C3=ADsel?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 07-teorie-cisel/teorie-cisel.tex | 54 ++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/07-teorie-cisel/teorie-cisel.tex b/07-teorie-cisel/teorie-cisel.tex
index 5662fc8..2782495 100644
--- a/07-teorie-cisel/teorie-cisel.tex
+++ b/07-teorie-cisel/teorie-cisel.tex
@@ -589,8 +589,62 @@ nicméně pan Rabin později nahlédl, že svědků vždy existuje alespoň $3/4
 a randomizovaný algoritmus byl na~světě.
 }
 
+\subsection{Hledání prvočísel}
+
+Často potřebujeme opatřit si nějaké velké ($b$-bitové) prvočíslo. Nabízí se
+generovat náhodná $b$-bitová čísla (začínající na~1), testovat, zda to jsou
+prvočísla, a~opakovat, dokud nedostaneme prvočíslo.
+
+TODO
+
 \section{Diskrétní logaritmy}
 
+Důležitou vlastností těles modulo prvočíslo je, že se v~nich dá logaritmovat.
+Nejprve uvedeme bez důkazu následující větu:
+
+\claim{
+Pro každé prvočíslo~$p$ je multiplikativní grupa~$\Zsp$ cyklická. Existuje
+tedy alespoň jedno~$g$ (generátor) takové, že $\Zsp = \{g^0,\ldots,g^{p-2}\}$.
+}
+
+Grupa $\Zsp$ je tedy izomorfní s~grupou $\Z_{p-1}$.
+Izomorfismus v~jednom směru je funkce $e: x \mapsto g^x \bmod p$, v~druhém směru
+její inverze, které se říká \em{diskrétní logaritmus.}
+Zatímco mocniny modulo~$p$ dokážeme počítat efektivně (v~čase $\O(b^3)$),
+diskrétní logaritmus nikoliv. Podobně jako u~faktorizace neznáme žádný polynomiální
+algorimus, ale známe zajímavé subexponenciální algoritmy a polynomiální kvantový algoritmus.
+
+Často potřebujeme nějaký generátor najít. K~tomu se hodí otestovat, zda dané číslo~$g$ je generátorem.
+
+\theorem{
+$g\in\Zsp$ je generátorem~$\Zsp$ právě tehdy, když pro všechny prvočíselné dělitele~$d$ čísla~$p-1$
+platí $g^{(p-1)/d} \not\equiv 1$.
+}
+
+\proof
+Pokud pro některého z~dělitelů vyjde $g^{(p-1)/d} \equiv 1$, znamená to, že $g$~není generátorem celé grupy,
+nýbrž jen nějaké menší podgrupy.
+
+Pro opačnou implikaci uvažme $g$, které generuje jen nějakou podgrupu $H = \{g^0,\ldots,g^{t-1}\} \allowbreak\subset \Z_p$,
+přičemž $g^t \equiv 1$.
+Podle Lagrangeovy věty platí $t = |H| \divs |\Z_p| = \varphi(p) = p-1$.
+
+Pro $d=(p-1)/t$ by tedy bylo $g^{(p-1)/d} \equiv 1$. Jenže $d$ nemusí být prvočíslo
+(a~testovat všechny neprvočíselné dělitele by trvalo příliš dlouho).
+V~takovém případě uvážíme rozklad $d=d'e$, kde $d'$ je prvočíslo a $e>1$.
+Potom $g^{(p-1)/d'} \equiv g^{((p-1)/d)e} \equiv \left( g^{(p-1)/d} \right)^e \equiv 1^e \equiv 1$.
+Takže $g$ z~negenerování usvědčíme volbou prvočíselného dělitele~$d'$.
+\qed
+
+\corr{
+Známe-li faktorizaci čísla $p-1$, umíme otestovat, zda $g$ je generátor, v~čase $\O(b^4)$.
+Prvočíselných dělitelů totiž musí být $\O(b)$.
+}
+
+\subsection{Hledání generátoru}
+
+TODO
+
 \section{Diskrétní odmocniny}
 
 \sectionstar{Rozbor Rabinova-Millerova testu}
-- 
GitLab