Elementární teorie čísel
Editovat
Note
|
Dělitelnost, Euklidův algoritmus, modulární operace, prvočíselnost a její testování, aplikace teorie čísel (RSA, DSA, lineární a polynomiální kódy). MB104/MB204 |
Teorie čísel je odvětví matematiky zabývající se vlastnostmi čísel - zejména celých.
— Wikipedie
Celá čísla jsou množina. Ba co víc je to obor integrity . Platí tedy následující tabulka vlastností:
Note
|
V následující tabulce: |
Vlastnost | Sčítání | Násobení |
---|---|---|
Uzavřenost |
||
Asociativita |
||
Komutativita |
||
Neutrální prvek |
||
Inverzní prvek |
není grupa, jen monoid |
|
Distributivita |
Dělitelnost
Dělitelnost je binární relace nad celými čísly taková, že platí
Celé číslo dělí celé číslo , právě když existuje celé číslo takové, že .
Vlastnosti dělitelnosti
Vlastnost | Popis |
---|---|
Všechno dělí nulu |
|
Všechno dělí samo sebe |
|
Tranzitivita |
|
Bezoutova věta |
, což se může zdát neintuivní, než si uvědomíš, že celý čísla můžou být záporný. |
Dělitelnostní™ pojmy
- Největší společný delitěl
-
je nejvetší takové, že . Zapisuje se taky jako , což vůbec není matoucí.
- Nejmenší společný násobek
-
je nejmenší takové, že .
- Nesoudělná čísla (coprimes)
-
Celá čísla a jsou nesoudělná, právě tehdy když 1 je jejich jediný společný dělitel.
Note1 je nesoudělná se vším! - Prvočíslo
-
Číslo , které je dělitelé pouze číslem 1 a sebou samým. Nebo jinými slovy, není násobkem žádných dvou menších celých čísel různých od 1.
- Bezoutovy koeficienty
-
Čísla z věty výše. Počítají se jako vedlejší produkt Euklidova algoritmu.
- Inverze vzhledem k násobení
-
Číslo takové, že .
lze vyřešit jako Bezoutovu rovnici pomocí Euklidova algoritmu.
- Eulerova funkce
-
Počet čísel nesoudělných s v intervalu . Pár zajímavostí:
-
Pokud je prvočíslo, pak .
-
Pokud , kde je prvočíslo, pak .
-
Platí .
-
Třeba .
-
Euklidův algoritmus
Najde nejmenšího společného dělitele (GCD) dvou celých čísel.
def gcd(a: int, b: int) -> int:
# `a` must be greater than `b`
a = a mod b
if a == 0:
return b
return gcd(b, a)
- Příklad s 133 a 15
-
Modulární operace
Líbilo by se nám nějak vyjádřit, že, když dvě celá čísla mají po dělení stejným číslem stejný zbytek, tak jsou si tak nějak "podobná". Téhle relaci se říká kongruence modulo .
Note
|
Kongruence je relace ekvivalence vztahující se k nějaké operaci. Ne nutně modulo . Hlavní je, aby kongruentní prvky daly ten samý výsledek, když na ně člověk tu operaci použije. |
Vlastnosti modulární aritmetiky
Note
|
V následující tabulce: |
Pokud , pak:
Vlastnost | Popis |
---|---|
Komutativita |
|
Přidání konstanty |
|
Přidání násobku |
, |
Násobení konstantou |
|
Násobení modulu konstantou |
|
Dělení modulu konstantou |
|
Sčítání kongruencí |
|
Násobení kongruencí |
|
Fermatova malá věta |
|
Eulerova věta |
|
Rozklad modulu na 2 nesoudělná čísla |
Modulární (ve smyslu souvislosti s modulem) pojmy
- Čínská zbytková věta
-
Pro , kde , má soustava kongruencí:
právě jedno řešení v .
- Řád čísla
-
Pro je řád čísla nejmenší takové, že .
- Primitivní kořen
-
Pro je primitivní kořen číslo takové, že jeho řád je roven .
Testování prvočíselnosti
Pro otestování zda je prvočíslo existuje několik přístupů:
-
Postupné dělení čísly z intervalu (resp. stačí ).
-
Eratosthenovo síto: Vyrob si seznam čísel a postupně z něj odebírej násobky 2, 3, 5, …, . To, co ti v seznamu zůstane, jsou prvočísla.
-
Fermatův test: Pokud Fermatova malá věta platí pro čísla nesoudělná s , pak je nejspíš prvočíslo. (Ano, jen nejspíš.)
Kryptografie
Teorie čísel má své využití zejména v oblasti šifrování a digitálních podpisů.
Problém diskretního logaritmu
Kryptografie mnohdy spoléhá na výpočetní náročnost diskrétního logaritmu.
Pro daný základ a číslo je diskrétní logaritmus číslo takové, že , píšeme .
Kryptografie nepoužívá všechna , ale jen nějakou cyklickou grupu o prvcích, proto , kde je primitivní kořen a .
Rivest-Shamir-Adleman (RSA)
Asymetrická šifra používájící dva klíče: veřejný, který dáš všem, a soukromý, který si necháš pro sebe.
- Generování klíčů
-
-
Zvol dvě velká, ruzná prvočísla a .
-
.
-
Spočítej .
-
Zvol celé číslo menší než takové, že .
-
Nalezni číslo takové, že .
-
Veřejný klíč je , soukromý klíč je .
-
- Šifrování zprávy
-
-
Měj zprávu a veřejný klíč . Platí .
-
Zašifrovaná zpráva je .
-
- Dešifrování zprávy
-
-
Měj zašifrovanou zprávu a soukromý klíč .
-
Původní zpráva je .
-
ElGamal
- Vytvoření klíčů
-
-
Zvol prvočíslo .
-
Spočítej — primitivní kořen .
-
Zvol soukromý klíč .
-
Spočítej .
-
Tvůj veřejný klíč je , tvůj soukromý je .
-
- Šifrování zprávy
-
-
Zvol náhodně .
-
Spočítej .
-
Spočítej .
-
Pošli .
-
- Dešifrování
-
Digital Signature Algorithm (DSA)
Standard pro digitální podpisy podobný algoritmu ElGamal.
- Podepsání
-
-
Vyrob hash zprávy.
-
Zašifruj hash svým soukromým klíčem.
-
Přilož podpis ke zprávě a zprávu pošli.
-
- Ověření
-
-
Vyrob hash zprávy.
-
Dešifruj přiložený podpis odesílatelovým veřejným klíčem.
-
Porovnej hashe.
-
Kódy
Chyby při přenosu se dějí a úplně zabránit se jim nedá. Přenášená informace se ale dá transformovat kódem tak, že poznáme, že k chybě došlo nebo ji dokonce můžeme opravit. Kódy využívají teorie čísel.
- Hammingova vzdálenost
-
Počet bitů, ve kterých se slova (posloupnosti bitů) liší.
- -kód
-
Původní informace má délku bitů. Zakódovaná informace má délku bitů, kde . Přidáním bitů jsme schopní detekovat a opravovat chyby způsobené přenosem informace.
Lineární kódy
Lineární kód je takový kód, kde lineární kombinace dvou kódových slov je opět kódové slovo.
- Generující matice
-
Linární kód lze reprezentovat generující maticí o řádcích a sloupcích, která funguje jako báze vektorového podprostoru kódových slov. Pro každé slovo je kódové slovo.
- Matice kontroly parity
-
Matice o řádcích a sloupcích, kde pro každé kódové slovo platí . Pokud , pak ( je matice identity o velikosti ).
- Syndrom slova
-
Je hodnota . Pokud je nenulový, slovo je chybné. Pokud syndrom připočteme ke všem validním kódovým slovům. Výsledná hodnota z nejméně jedničkami odpovídá původní zprávě za předpokladu, že nastalo nejmenší možné množství chyb.
Polynomiální kódy
Mějme polynom , kde a . Polynomiální kód generovaný polynomem je lineární -kód, jehož kódová slova jsou polynomy stupně menšího než dělitelné .
Note
|
je množina polynomů, kde . |
- Zakódování
-
,
kde je zbytek po dělení polynomu polynomem .
- Chybový polynom
-
Pokud , pak zpráva obsahuje chybu a je chybový polynom.