Documente Academic
Documente Profesional
Documente Cultură
cu cheie publica
(o scurta introducere)
1
I. Generalitati
1 Criptosistem
2
Exemplul 1. Fie n N fixat. Un alfabet de
n litere este Zn. Fie familia de criptosisteme
(afine):
fa,b : Zn Zn , fa,b(m) = am + b (mod n) ,
unde a, b Zn, a 6= 0.
Aici M = C = Zn sunt fixate, dar f este vari-
abila.
un algoritm
valorile parametrilor. Acestea se numesc
cheie de cifrare si se noteaza KE (encryption
key).
un algoritm
o cheie de descifrare, notata KD (decryption
key).
In practica se presupune:
4
2 Putina istorie
3 Cheie publica
K = (KE , KD )
(care se schimba periodic) pentru criptosis-
temul clasic.
8
4 Autentificare n criptosisteme cu cheie
publica
1
Alice transmite fB (fA (S)) la nceputul sau
la sfarsitul mesajului
1
Bob descifreaza ntregul mesaj aplicand fB
si vede mesajul text direct (plaintext) cu
1
exceptia unei parti, care este fA (S)
1
Deoarece doar Alice putea aplica fA , Bob
stie ca mesajul este de la Alice.
10
5 Functii hash
mp1 1 (mod p) .
= m1+k(p1)(q1) m (mod p)
med m (mod q) .
Deoarece p si q sunt numere prime distincte,
rezulta ca
med m (mod n) .
Urmeaza ca
cd (me)d m (mod n) .
14
Exemplu.
1. Generarea de cheie.
Userul A alege numerele prime p = 2357 si
q = 2551. Calculeaza
n = pq = 6012707
(n = 6012707, e = 3674911) ,
iar cheia privata a lui A este
(n = 6012707, d = 422191) .
15
2. Criptarea.
Pentru a cripta un mesaj
m = 5234673
userul B calculeaza (prin ridicari succesive la
patrat si reducere modulo)
c = me mod n =
= 52346733674911 mod n =
= 3650502 ,
valoare pe care o trimite lui A.
3. Decriptarea.
Pentru a decripta mesajul cifrat c, userul A
calculeaza
cd mod n =
= 3650502422191 mod n =
= 5234673 .
16
Aparent, M = C, dar acestea difera la fiecare
user. In practica se folosesc aceleasi multimi
pentru toti userii.
17
Exemplu. Fie N = 26, k = 3, l = 4. Deci:
24 262 + 4 26 + 18 = 16346 .
Calculam
16346eA mod nA =
= aed1 1 (mod n) , a Zn .
20
Fie ed 1 = 2st, unde t este impar. Se poate
arata ca
s1 t
a2 6 1 (mod n)
pentru cel putin jumatate dintre a Zn. La
gasirea unui astfel de a (numarul asteptat
de ncercari este 2), avem factorul netrivial
2s1 t
(a 1, n).
(n) = (p 1)(q 1) = n + 1 (p + q) .
21
Acum daca se cunosc n si (n), avem
pq = n
p + q = n + 1 (n)
25
Prevenire: impunerea unor obligativitati struc-
turale mesajelor de text direct. Daca un text
cifrat c este decriptat ntr-un mesaj care nu are
structura respectiva, c este respins. Daca c are
structura ceruta, atunci cu probabilitate mare
mx mod n nu o va avea pentru x Zn.
[1 + (e 1, p 1)] [1 + (e 1, q 1)] .
Deoarece e1, p1, q1 sunt impare, numarul
anterior este cel putin 9. Daca p, q si e
sunt alese aleator, atunci numarul anterior este
neglijabil. Deci mesajele care nu sunt ascunse
nu sunt o amenintare pentru securitatea RSA.
28
3 Aspecte practice ale RSA
3.1. Utilitate
Cu toate mbunatatirile de implementare (mul-
tiplicare modulara rapida, exponentiere modu-
lara rapida, aplicarea TCR pentru decriptare
rapida), RSA este mult mai lent decat algo-
ritmii mai mult sau mai putin clasici cu cheie
simetrica.
29
3.3. Alegerea numerelor prime p si q
c = seB mod nB =
c0 = s0eA mod nA =
RSA factorizarea
Criptosistemul Rabin: problema determinarii
radacinii patrate modulo n factorizarea
n = pq = 91687 .
Cheia publica a lui A este n = 91687, iar cheia
sa privata este (p = 277, q = 331).
m0 = 1001111001
de 10 biti, B repeta ultimii 6 biti obtinand
mesajul
m = 1001111001111001 ,
adica m = 40569. Apoi B calculeaza
m2 = 101011000010001 ,
m3 = 1001111001111001 ,
m4 = 1100011110101110 .
Doar m3 are redundanta stabilita, deci A de-
cripteaza c ca fiind m3 si obtine mesajul initial
m0 = 1001111001 .
Eficienta:
Criptarea Rabin necesita doar o ridicare la
patrat modulara n timp ce cea mai simpla
criptare RSA (pentru e = 3) necesita o ridicare
la patrat modulara si o multiplicare modulara.
Decriptarea Rabin si RSA sunt comparabile.
37
2 Problema logaritmului discret
2.1. Formulare
G = Fq (q = pm)
unde Fq este un corp finit, incluzand si Fp =
Zp. Nu se cunosc algoritmi de timp polinomial
pentru rezolvare.
38
Observatii.
1. Dificultatea PGLD nu depinde de genera-
tor.
Fie g1, g2 generatori pentru G si y G. Fie
x1 = logg1 y, x2 = logg2 y si z = logg1 g2. Deci
x x
g11 = y = g22 = (g1z )x2
= x1 = zx2 (mod n)
40
2.2. Algoritmul de calcul al indicelui
Idee:
se selecteaza o submultime relativ mica S,
numita baza de factori, de elemente ale lui G
astfel ca o mare parte dintre elementele lui G
sa poata fi eficient exprimate ca produse de
elemente din S
se precalculeaza logaritmii discreti ai ele-
mentelor din S, care se utilizeaza ulterior
6 6 6
6 6 6 6
F27 = Z2[x]/(f ) =
a0, . . . , a6 Z2} .
Inmultirea se face modulo f . Aici un generator
este x. Fie y = x4 + x3 + x2 + x + 1. Vrem sa
calculam
logxy = logx(x4 + x3 + x2 + x + 1) .
S = {x, x + 1, x2 + x + 1, x3 + x + 1, x3 + x2 + 1} .
46
2. Obtinem urmatoarele 5 relatii:
x 18 mod f = x6 + x4 = x4 (x + 1)2
x105 mod f = x6 + x5 + x4 + 1 =
2 (x3 + x2 + 1)
= x(x + 1)
x 72 mod f = x6 + x5 + x3 + x2 =
2 2 2
= x (x + 1) (x + x + 1)
x45 mod f = x5 + x2 + x + 1 =
= (x + 1) 2 (x3 + x + 1)
x121 mod f =
= x 6 + x5 + x4 + x3 + x2 + x + 1 =
= (x3 + x + 1)(x3 + x2 + 1)
Notam
p1 = logxx
p2 = logx(x + 1)
p3 = logx(x2 + x + 1)
= logx(x3 + x + 1)
p4
= logx(x3 + x2 + 1)
si obtinem sistemul:
47
105 p1
+ p4 (mod 127)
121 p
+ p5 (mod 127)
4
= x5 + x3 + x = x(x2 + x + 1)2
de unde urmeaza ca
logx(x4 + x3 + x2 + x + 1) =
48
3 Problema generalizata Diffie-Hellman
(PGDH)
49
4 Criptosistemul El Gamal (1985)
Exemplu.
Generarea de cheie. Userul A alege numarul
prim p = 2357 si generatorul g = 2 al grupului
Z2357. Apoi alege cheia privata a = 1751 si
calculeaza
g a mod p = 21751 mod 2357 = 1185 .
Cheia publica a lui A este
(p = 2357, g = 2, g a = 1185) .
= m (g a)k mod p =
Decriptarea. A calculeaza
p1a = 1430605 mod 2357 = 872
m = a mod p =
Observatii.
1. Toti userii pot alege acelasi numar prim p
(de cel putin 1024 de biti pentru securitate
pe termen lung) si acelasi generator g pentru
grupul Zp.
52
Avantaje:
Astfel, p si g nu mai trebuie publicati ca parte
a cheii publice.
De asemenea, se pot precalcula exponentieri.
Dezavantaj: este necesara folosirea unui modul
p mare pentru a elimina posibilitatea precal-
cularii.
2. Eficienta.
Criptarea necesita 2 exponentieri modu-
lare. Viteza poate creste prin alegerea unor
exponenti k avand anumite structuri particu-
lare. Un dezavantaj al criptarii El Gamal este
ca mesajul simplu creste de 2 ori prin cifrare.
3. Securitatea.
Spargerea criptosistemului El Gamal este
echivalenta cu rezolvarea PDH.
Pentru a nu deveni vulnerabil, trebuie folositi
exponenti diferiti k pentru a cripta mesaje
diferite. Daca se foloseste acelasi exponent
k pentru a cripta 2 mesaje m1 si m2 si tex-
tele cifrate sunt c1 = (1, 1) si c2 = (2, 2),
atunci 1/2 = m1/m2 si m2 poate fi calculat
daca se cunoaste m1.
53
4.2. Versiunea generalizata
m = (1100)
userul B alege aleator un numar k = 11 si cal-
culeaza
= x11 = (1110) ,
(xa)11 = (0100) ,
= m (xa)11 = (0101) .
Apoi B trimite lui A
= (1110) si = (0101) .
m = a = (1100) .
57
5 Schimb de chei
B A : g b mod p (2)
3. Actiunile protocolului.
3.1. A alege o valoare aleatoare a, 1 a p2
si trimite mesajul (1) lui B.
3.2. B alege o valoare aleatoare b, 1 b p2
si trimite mesajul (2) lui A.
3.3. B primeste g a si calculeaza cheia comuna
secreta K = (g a)b mod p.
3.4. A primeste g b si calculeaza cheia comuna
secreta K = (g b)a mod p.