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

Teorie čísel: Efektivní CRT

parent dfc409bc
No related branches found
No related tags found
No related merge requests found
......@@ -189,7 +189,7 @@ Pokud se sejde méně než~$\ell$, v~každé $\ell$-tici nějaká část chybí,
takže z~žádné $\ell$-tice se nic nedozvíme.
}
\subsection{Shamirovo schéma}
\subsection[shamir]{Shamirovo schéma}
Efektivní konstrukci $(k,\ell)$-schémat popsal v~roce 1979 Adi Shamir.
Začneme triviálním případem.
......
......@@ -376,6 +376,30 @@ Dále pokračujeme indukcí podle~$k$, přičemž případ pro $k=2$ použijeme
jako indukční krok.
\qed
Nám se ovšem bude hodit i konstruktivní důkaz, který nám umožní hledané~$x$ efektivně najít.
\theoremn{Efektivní CRT}{
$f\inv(a_1,\ldots,a_k)$ lze spočítat v~čase $\O(kb^2)$.
}
\proof
Větu opět stačí dokázat pro $k=2$ a pak použít indukci.
Inspirujeme se Lagrangeovou interpolací z~oddílu \secref{shamir}.
Pokud bychom znali čísla $u_1$ a~$u_2$ taková, že $f(u_1) = (1,0)$
a $f(u_2) = (0,1)$, řešením je jejich lineární kombinace
$x = (a_1u_1 + a_2u_2) \bmod N$.
Jelikož $f$ je homomorfismus, je lineární. Proto platí:
$f(x) = a_1f(u_1) + a_2f(u_2) = a_1(1,0) + a_2(0,1) = (a_1,a_2)$.
Zbývá si pořídit~$u_1$ ($u_2$~najdeme obdobně)
Nejprve si všimneme, že $f(N_2) = (v_1,0)$ pro nějaké~$v_1$.
Pokud je $v_1=1$, položíme $u_1=N_2$ a jsme hotovi.
Jinak najdeme multiplikativní inverzi~$w_1$ čísla $v_1$ modulo~$N_1$
a položíme $u_1=w_1N_2$. Bude platit $f(u_1) = f(w_1N_2) = w_1f(N_2)
= w_1(v_1,0) = (w_1v_1\bmod N_1,0) = (1,0)$.
\qed
\subsection{Eulerova funkce}
Už jsme zavedli funkci~$\varphi(n)$, která udává, kolik prvků ze~$Z_n$ je nesoudělných s~$n$,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment