Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Ú
Úvod do kryptografie
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Martin Mareš
Úvod do kryptografie
Commits
98482dba
Commit
98482dba
authored
3 months ago
by
Martin Mareš
Browse files
Options
Downloads
Patches
Plain Diff
Teorie čísel: Přeznačení v CRT
parent
aef897af
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
07-teorie-cisel/teorie-cisel.tex
+28
-28
28 additions, 28 deletions
07-teorie-cisel/teorie-cisel.tex
with
28 additions
and
28 deletions
07-teorie-cisel/teorie-cisel.tex
+
28
−
28
View file @
98482dba
...
@@ -310,17 +310,17 @@ $x^{\varphi(n)} \equiv x^{jk} \equiv (x^j)^k \equiv 1^k \equiv 1$.
...
@@ -310,17 +310,17 @@ $x^{\varphi(n)} \equiv x^{jk} \equiv (x^j)^k \equiv 1^k \equiv 1$.
\subsection
{
Čínská věta o~zbytcích
}
\subsection
{
Čínská věta o~zbytcích
}
Nyní se zamysleme nad tím, jak najít číslo~
$
x
$
, které dává modulo~
$
N
_
1
$
Nyní se zamysleme nad tím, jak najít číslo~
$
x
$
, které dává modulo~
$
n
_
1
$
zadaný zbytek~
$
a
_
1
$
a modulo~
$
N
_
2
$
zbytek~
$
a
_
2
$
. Řešíme tedy soustavu kongruencí:
zadaný zbytek~
$
a
_
1
$
a modulo~
$
n
_
2
$
zbytek~
$
a
_
2
$
. Řešíme tedy soustavu kongruencí:
$$
\eqalign
{
$$
\eqalign
{
x
&
\equiv
a
_
1
\pmod
{
N
_
1
}
\cr
x
&
\equiv
a
_
1
\pmod
{
n
_
1
}
\cr
x
&
\equiv
a
_
2
\pmod
{
N
_
2
}
\cr
x
&
\equiv
a
_
2
\pmod
{
n
_
2
}
\cr
}$$
}$$
Především si můžeme všimnout, že najdeme-li nějaké řešení, přičtením
Především si můžeme všimnout, že najdeme-li nějaké řešení, přičtením
libovolného násobku čísla
$
N
=
N
_
1
N
_
2
$
získáme další řešení. Stačí se tedy
libovolného násobku čísla
$
n
=
n
_
1
n
_
2
$
získáme další řešení. Stačí se tedy
omezit na
$
x
\in\Z
_
N
$
.
omezit na
$
x
\in\Z
n
$
.
Také si všimneme, že jsou-li
$
N
_
1
$
a~
$
N
_
2
$
soudělná, nemusí řešení vůbec
Také si všimneme, že jsou-li
$
n
_
1
$
a~
$
n
_
2
$
soudělná, nemusí řešení vůbec
existovat -- například v~soustavě
existovat -- například v~soustavě
$$
\eqalign
{
$$
\eqalign
{
x
&
\equiv
2
\pmod
6
\cr
x
&
\equiv
2
\pmod
6
\cr
...
@@ -330,25 +330,25 @@ první kongruence vynucuje, aby $x$~bylo sudé, zatímco druhá, aby bylo liché
...
@@ -330,25 +330,25 @@ první kongruence vynucuje, aby $x$~bylo sudé, zatímco druhá, aby bylo liché
Za chvíli uvidíme, že soudělnost je jediná překážka.
Za chvíli uvidíme, že soudělnost je jediná překážka.
\obs
{
\obs
{
Nechť
$
N
_
1
\perp
N
_
2
$
.
Nechť
$
n
_
1
\perp
n
_
2
$
.
Uvažme funkci
$
f:
\Z
_
N
\rightarrow
\Z
_{
N
_
1
}
\times
\Z
_{
N
_
2
}$
Uvažme funkci
$
f:
\Z
n
\rightarrow
\Z
_{
n
_
1
}
\times
\Z
_{
n
_
2
}$
definovanou takto:
definovanou takto:
$$
$$
f
(
x
)
=
(
x
\bmod
N
_
1
, x
\bmod
N
_
2
)
.
f
(
x
)
=
(
x
\bmod
n
_
1
, x
\bmod
n
_
2
)
.
$$
$$
Zamysleme se nad jejími vlastnostmi:
Zamysleme se nad jejími vlastnostmi:
\list
{
n.
}
\list
{
n.
}
\:
Nejprve si všimneme, že
$
f
$
je prostá.
\:
Nejprve si všimneme, že
$
f
$
je prostá.
Pokud
$
f
(
x
)=
f
(
y
)
$
, pak
$
x
\bmod
N
_
1
=
y
\bmod
N
_
1
$
, tedy
$
N
_
1
\divs
(
x
-
y
)
$
.
Pokud
$
f
(
x
)=
f
(
y
)
$
, pak
$
x
\bmod
n
_
1
=
y
\bmod
n
_
1
$
, tedy
$
n
_
1
\divs
(
x
-
y
)
$
.
Podobně dostaneme
$
N
_
2
\divs
(
x
-
y
)
$
. Jelikož
$
N
_
1
\perp
N
_
2
$
, plyne z~toho
Podobně dostaneme
$
n
_
2
\divs
(
x
-
y
)
$
. Jelikož
$
n
_
1
\perp
n
_
2
$
, plyne z~toho
také
$
N
\divs
(
x
-
y
)
$
. To je ovšem pro
$
x,y
\in\Z
_
N
$
možné jen tehdy, když
$
x
=
y
$
.
také
$
n
\divs
(
x
-
y
)
$
. To je ovšem pro
$
x,y
\in\Z
n
$
možné jen tehdy, když
$
x
=
y
$
.
\:
Každá prostá funkce mezi dvěma stejně velkými množinami musí být bijekce.
\:
Každá prostá funkce mezi dvěma stejně velkými množinami musí být bijekce.
To znamená, že naše soustava kongruencí má pro každé
$
a
_
1
$
a~
$
a
_
2
$
právě
To znamená, že naše soustava kongruencí má pro každé
$
a
_
1
$
a~
$
a
_
2
$
právě
jedno řešení
$
f
\inv
(
a
_
1
,a
_
2
)
$
.
jedno řešení
$
f
\inv
(
a
_
1
,a
_
2
)
$
.
\:
Naše funkce~
$
f
$
je dokonce izomorfismus okruhů
$
Z
_
N
$
a
$
Z
_{
N
_
1
}
\times
\Z
_{
N
_
2
}$
.
\:
Naše funkce~
$
f
$
je dokonce izomorfismus okruhů
$
Z
_
n
$
a
$
Z
_{
n
_
1
}
\times
\Z
_{
n
_
2
}$
.
(Součinem okruhů
$
R
_
1
$
a~
$
R
_
2
$
se myslí okruh, jehož nosná množina je kartézský
(Součinem okruhů
$
R
_
1
$
a~
$
R
_
2
$
se myslí okruh, jehož nosná množina je kartézský
součin nosných množin
$
R
_
1
\times
R
_
2
$
a operace se aplikují po složkách.)
součin nosných množin
$
R
_
1
\times
R
_
2
$
a operace se aplikují po složkách.)
Platí totiž
$
f
(
0
)=(
0
,
0
)
$
,
$
f
(
1
)=(
1
,
1
)
$
,
$
f
(
x
+
y
)
=
f
(
x
)
+
f
(
y
)
$
a
$
f
(
xy
)
=
f
(
x
)
\cdot
f
(
y
)
$
.
Platí totiž
$
f
(
0
)=(
0
,
0
)
$
,
$
f
(
1
)=(
1
,
1
)
$
,
$
f
(
x
+
y
)
=
f
(
x
)
+
f
(
y
)
$
a
$
f
(
xy
)
=
f
(
x
)
\cdot
f
(
y
)
$
.
...
@@ -361,17 +361,17 @@ se jí říká proto, že byla známa už ve starověké Číně. Zkracuje se ja
...
@@ -361,17 +361,17 @@ se jí říká proto, že byla známa už ve starověké Číně. Zkracuje se ja
Chinese Remainder Theorem.
}
Ukážeme si její dvě verze:
Chinese Remainder Theorem.
}
Ukážeme si její dvě verze:
\theoremn
{
Čínská o~zbytcích neboli CRT
}{
\theoremn
{
Čínská o~zbytcích neboli CRT
}{
Nechť
$
N
_
1
,
\ldots
,
N
_
k
$
jsou navzájem nesoudělná kladná čísla,
Nechť
$
n
_
1
,
\ldots
,
n
_
k
$
jsou navzájem nesoudělná kladná čísla,
$
N
=
N
_
1
\cdot\ldots\cdot
N
_
k
$
a
$
a
_
i
\in\Z
_{
N
_
i
}$
pro
$
i
=
1
,
\ldots
,k
$
.
$
n
=
n
_
1
\cdot\ldots\cdot
n
_
k
$
a
$
a
_
i
\in\Z
_{
n
_
i
}$
pro
$
i
=
1
,
\ldots
,k
$
.
Pak existuje právě jedno
$
x
\in\Z
_
N
$
takové, že
$
x
\bmod
N
_
i
=
a
_
i
$
pro všechna~
$
i
$
.
Pak existuje právě jedno
$
x
\in\Z
n
$
takové, že
$
x
\bmod
n
_
i
=
a
_
i
$
pro všechna~
$
i
$
.
}
}
\theoremn
{
Algebraická formulace CRT
}{
\theoremn
{
Algebraická formulace CRT
}{
Nechť
$
N
_
1
,
\ldots
,
N
_
k
$
jsou navzájem nesoudělná kladná čísla a
Nechť
$
n
_
1
,
\ldots
,
n
_
k
$
jsou navzájem nesoudělná kladná čísla a
$
N
=
N
_
1
\cdot\ldots\cdot
N
_
k
$
.
$
n
=
n
_
1
\cdot\ldots\cdot
n
_
k
$
.
Pak funkce
$
f:
\Z
_
N
\rightarrow
Z
_{
N
_
1
}
\times
\ldots
\times
\Z
_{
N
_
k
}$
Pak funkce
$
f:
\Z
n
\rightarrow
Z
_{
n
_
1
}
\times
\ldots
\times
\Z
_{
n
_
k
}$
definovaná jako
$
f
(
x
)
=
(
x
\bmod
N
_
1
,
\ldots
, x
\bmod
N
_
k
)
$
definovaná jako
$
f
(
x
)
=
(
x
\bmod
n
_
1
,
\ldots
, x
\bmod
n
_
k
)
$
je izomorfismus okruhů
$
Z
_
N
$
a
$
Z
_{
N
_
1
}
\times
\ldots
\times
\Z
_{
N
_
k
}$
.
je izomorfismus okruhů
$
Z
_
n
$
a
$
Z
_{
n
_
1
}
\times
\ldots
\times
\Z
_{
n
_
k
}$
.
}
}
\proof
\proof
...
@@ -392,16 +392,16 @@ Větu opět stačí dokázat pro $k=2$ a pak použít indukci.
...
@@ -392,16 +392,16 @@ Větu opět stačí dokázat pro $k=2$ a pak použít indukci.
Inspirujeme se Lagrangeovou interpolací z~oddílu
\secref
{
shamir
}
.
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
)
$
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
a
$
f
(
u
_
2
)
=
(
0
,
1
)
$
, řešením je jejich lineární kombinace
$
x
=
(
a
_
1
u
_
1
+
a
_
2
u
_
2
)
\bmod
N
$
.
$
x
=
(
a
_
1
u
_
1
+
a
_
2
u
_
2
)
\bmod
n
$
.
Jelikož
$
f
$
je homomorfismus, je lineární. Proto platí:
Jelikož
$
f
$
je homomorfismus, je lineární. Proto platí:
$
f
(
x
)
=
a
_
1
f
(
u
_
1
)
+
a
_
2
f
(
u
_
2
)
=
a
_
1
(
1
,
0
)
+
a
_
2
(
0
,
1
)
=
(
a
_
1
,a
_
2
)
$
.
$
f
(
x
)
=
a
_
1
f
(
u
_
1
)
+
a
_
2
f
(
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ě)
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
$
.
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.
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
$
Jinak najdeme multiplikativní inverzi~
$
w
_
1
$
čísla
$
v
_
1
$
modulo~
$
n
_
1
$
a položíme
$
u
_
1
=
w
_
1
N
_
2
$
. Bude platit
$
f
(
u
_
1
)
=
f
(
w
_
1
N
_
2
)
=
w
_
1
f
(
N
_
2
)
a položíme
$
u
_
1
=
w
_
1
n
_
2
$
. Bude platit
$
f
(
u
_
1
)
=
f
(
w
_
1
n
_
2
)
=
w
_
1
f
(
n
_
2
)
=
w
_
1
(
v
_
1
,
0
)
=
(
w
_
1
v
_
1
\bmod
N
_
1
,
0
)
=
(
1
,
0
)
$
.
=
w
_
1
(
v
_
1
,
0
)
=
(
w
_
1
v
_
1
\bmod
n
_
1
,
0
)
=
(
1
,
0
)
$
.
\qed
\qed
\subsection
{
Eulerova funkce
}
\subsection
{
Eulerova funkce
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment