2. Elementární teorie čísel

Dělitelnost

Euklidův algoritmus

Modulární operace

Prvočíselnost a její testování

Aplikace teorie čísel

RSA

DSA

lineární (n, k) kódy

polynomiální kódy

podepisování a šifrování

a/b

věta o dělení celých čísel se zbytkem

největší společný dělitel (gdc)

kongruence

čínská zbytková věta

Eulerova funkce

malá Fermatova věta

modulární umocňování

prvočíslo

test prvočíselnosti

zkusmé dělení

hledání prvočísel

Eratosthenovo síto

pravděpodobnostní algoritmy

Fermatův test

detekce a oprava chyb

digitální podpis

hammingova vzdálenost

nesoudělnost

nejmenší společný násobek

n = [a, b]

nsd = (a, b)

př.: krácení zlomků

určení největšího spol. dělitele (gdc)

bezoutova věta

rozšifrování RSA

φ(n) = (p-1)(q-1)

alg. pro výp. φ(n) --> ohrožení RSA

V --> S

nsd (a, p) = 1

Eulerova věta

obecně v polynomiálním čase

všechna N < x

N < než odmocnina x

2 + lichá čísla

expo. složitost, pro malá čísla optim.

nexp. slož.

zal. na malé Fermatově v.

čísla tvářící se jako p

neplatí -> není; platí -> možná je

větší pam. náročnost

vyrobím: v(n, e), s(n, d):

p, q... velká

n = p*q

φ(n) = (p-1)(q-1)

zvol e < φ(n); (e, φ(n)) = 1... V

spočti (eukl. alg.) d; ed ≡ 1 (mod φ(n)) ... S

šifr: c ≡ M^e (mod n) --> pošle c

dešifr: M ≡ c^d (mod n)

zal. na problému výpočtu diskr. alg.

ke k-bit slovu přidám (n-k)-bit

kódování: v = G*u

syndrom H*u

kontrolní matice H(n-k, n)

generující matice G(n, k)

detekce chyb

oba potřebují V i S

n veřejné, φ(n) X dopočítat

modulo

hash

El Gamal

bezoutova rovnost

nsd(a, b) = A*a + B*b