Zmateni (confusion) - nelze predikovat, jakou zmenu
zasifrovaneho textu vyvola byt jen mala
zmena otevreneho textu <=> slozita
funkcni zavislost mezi zasifrovanym
textem a parem klic - otevreny
text.
Difuze(diffusion) - zmena otevreneho
textu se promita do mnoha mist zasifrovaneho
textu.
Bezpecny system - nelze ziskat
otevreny text na zaklade znalosti
odpovidajici sifry
kryptoanalytik hleda transformaci h : C->P, h nebyva jednoznacna
Efektivne bezpecny system - Prob(h(C) = P) < e.
Perfektni utajeni (perfect secrecy) - mejme
n moznych otevrenych textu,
stejne mnozstvi klicu
a moznych sifer.
Pokud algoritmus sifruje nekolik ruznych zprav, z nichz jedna je smysluplna, do stejne sifry, system muze byt bezpecny.
kazdy uzivatel vlastni par klicu:
tajny klic nelze efektivne odvodit
ze znalosti odpovidajiciho verejneho
klice
zalozen na problemu batohu, prenasena zprava je chapana jako vektor reseni, prenasena je vysledna suma - "hmotnost batohu"
a1, a2, ... an - posloupnost celych
cisel, T cilova suma = hmotnost
batohu, hledame vektor v takovy, aby
necht posloupnost a1, a2, ... an je superrostouci, problem nalezeni vektoru v je v tomto pripade zvladnutelny v linearnim case
Ze zvolenych hodnot sestavime jiz obecnou posloupnost
Posloupnost {si}i=1..n a cisla w
a m utajime, dale budou slouzit jako
soukromy klic.
Posloupnost {hi}i=1..n
zverejnime jakozto verejny klic.
w-1e(p) mod m |
= w-1(p1h1+p2h1+ ... +pnhn) mod m = = p1w-1h1+p2w-1h1+ ... +pnw-1hn mod m = = p1w-1ws1+p2w-1ws1+ ... +pnw-1wsn mod m = = p1s1+p2s1+ ... +pnsn mod m. |
Polozme
Pak ovsem plati
Spocitame posloupnost
Pro nejake k ovsem nastane
Lze ocekavat, ze s0 bude nejmensim
prvkem d. Zname-li s0, lze spocitat
w a tedy vsechny si.
Hodnoty w a m je mozne odhadovat pouze
z posloupnosti {hi}i=1..n. Hodnota m je vetsi
nez libovolne hi. Budeme zkouset ruzne
hodnoty pro w.
K prolomeni Merkle-Hellmanova systemu tedy neni nutne vyresit obecny problem batohu, ale staci pouzit naznaceneho postupu, ktery je daleko rychlejsi. M-H system tedy neni vhodny k ochrane dulezitych informaci.
Kryptoschema je zalozeno na Eulerove formuli
kde f(n) je pocet cisel z intervalu
1,..,n, ktera jsou s n nesoudelna.
Plati:
je treba znat cislo n, a cislo
d.
Prvocislo e nesmi delit (f(n)).
Nalezneme
Ze (2) plyne f(e) = e-1,
s pouzitim (1)
Polozime tedy
S pouzitim (1) a (6)
postupne dostavame
a zaroven
kde J(r, p) je Jacobiho funkce, definovana
nasledovne
Sifrovani
je treba znat cislo n a male
prvocislo e.
Otevreny text P prevedeme na posloupnost
cisel modulo n.
Kazdy blok Pj zasifrujeme dle vzorce
Desifrovani
Kazdy z bloku Cj desifrujeme takto:
Vypocet desifrovaciho klice d
Musi platit
Korektnost desifrovani
Vyber klicu, implementacni
poznamky
Verejny klic tvori par
(n, e), soukromy klic par
(n, d).
cislo n musi byt velmi velke,
nesmi mit male faktory. Pro realne
pouziti priblizne 100 az 200
cislic.
Necht n je soucinem prvocisel
p a q. Klic e volime
jako prvocislo vetsi nez
(p - 1) a (q - 1).
Pri teto volbe ma nepritel
na vyber zhruba
(n1/2/ln n) - (1050/100 ln 10)
moznych prvociselnych
cinitelu.
Volba prvocisel
Solovay-Strassenuv test prvociselnosti
Pokud p je cislo, ktere zkoumame a r
libovolne cislo, pak nutne
/ | 1 | pro r = 1 | |
J(r, p) = | - | J(r/2, p)*(-1)(p2-1)/8 | pro r sude |
\ | J(p mod r, r)*(-1)(r-1)(p-1)/4 | pro r liche |
Dano testovane cislo p.
Obecna linearni rekurence druheho
radu:
P a Q nesoudelna cela cisla. Necht x1 a x2 jsou koreny rovnice
Jsou-li c1 a c2 lib. cisla, plati
pro posloupnost
{c1x1n + c2x2n}
P(c1an-1) + c2bn-1 - Q(c2an-2 + c2bn-2) | = c1an-2(Pa - Q) + c2bn-2(Pb - Q) = = c1an-2a2 + c2bn-2b2 = = c1an + c2bn |
Zajimave linearni rekurence:
Un = (an - bn) / (a - b),
(tedy
c1 = -c2 = 1/(a - b)
)
Vn = an + bn,
(tedy
c1 = c2 = 1
)
Polozime-li U0 = 0, U1 = 1, V0 = 2, V1 = P jde o posloupnosti celych cisel, ktere nazyvame Lucasovymi funkcemi P a Q.
Dale plati
V2n = Vn2 - 2Qn (3)
V2n-1 = Vn2Vn-12 - PQn-1 (4)
V2n+1 = PVn2 - QVn2Vn-12 - PQn (5)
Vn2 = DUn2 + 4Qn (6)
2Vn+m = VnVm + DUnUm (7)
2QmVn-m = VnVm - DUnUm (8)
P nahradime Vk(P,Q) a Q nahradime Qk:
Tn=Vk(P,Q)Tn-1 - QkTn-2.
Koreny odpovidajici rovnice, a' a b', splnuji
a' + b' = Vk(P,Q) = ak + bk
a
a'b' = Qk = akbk,
tedy a' = ak a b' = bk
(a vice versa). Muzeme ziskat
Polozme Q = 1:
Dale budeme definovat Legendruv symbol:
= 0 prave kdyz p deli D, jinak = 1 pokud existuje cislo x tak, ze D = x2 mod p = -1 pokud zadne takove x neexistuje. |
S(N) je nasobkem
(p-) i (q-),
N = pq,
p a q jsou ruzna prvocisla
nedelici D = P2 - 4, s pouzitim
(10) a (11):
UkS(N)(P, 1) = 0 mod p (12)
VkS(N)(P, 1) = 2 mod p (13)
pro libovolne cele k.
Pokud navic e je libovolne cislo
nesoudelne s S(N), d zvolime
tak aby
ed = kS(N) + 1 pro vhodne k,
potom:
Vd(Ve(P, 1), 1) | = Vde(P, 1) | podle (9) | |
= VkS(N)-1(P, 1) | |||
= PVkS(N)(P, 1) - VkS(N)-1(P, 1) | podle (1) | ||
= PVkS(N)(P, 1) - 1/2(VkS(N)(P, 1)V1(P, 1) - DUkS(N)(P, 1)U1(P, 1)) | podle (8) | ||
= 2P - 1/2(2P - 0)) mod N | podle (12), (13) | ||
= P | (14) |
Zvolime N , e. N soucinem
prvocisel p a q.
e musi byt nesoudelne s (p
- 1) (q - 1) (p + 1) (q + 1).
M - zprava, mensi nez N,
nesoudelna s N.
Desifrovani odpovida sifrovani kde e nahradime d.