Sunteți pe pagina 1din 65

Traducere partial din cursul:

ECE 575 Data Security & Cryptography


Prof. Tom Schmidt
Oregon State University
http://islab.oregonstate.edu/koc/ece575/

................................................................

TEORIA LUI SHANNON

Teoria comunicatiilor a lui Shannon este piatra de temelie n proiectarea


cifrurilor sigure. Teoria aceasta const n trei principii importante:
1. Difuzia
2. Confuzia
3. Securitatea neconditionat
n continuare sunt explicate cu mai multe detalii aceste trei principii.

Iterarea cifrurilor (difuzia)

O iterare a unei transformri simple poate indica initial caracteristicile


convingtoare ale unei criptri de calitate, dar poate esua a fi o criptare bun n
final. Imediat, un exemplu.
Se consider un ptrat unitate S = {(x, y): 0 x, y 1} cu o nfsurare toroidal
si transformarea T(x, y) = (y, x) astfel nct
x + y 1 pentru x+ y 1
y =
x+ y pentru 0 x + y < 1
Distorsiunea afin a imaginii este dat de matricea
0 1
1 1
Se observ c dac fn este cel de al n-lea numr Fibonacci, atunci
n
0 1 = f n 1 f n
1 1 f n f n + 1
Se observ c
4
0 1 = 2 3 = 1 0 + 3 1 1
1 1 3 5 0 1 1 2
8
0 1 = 13 21 = 1 0 + 3 4 7
1 1 21 34 0 1 7 11
16
0 1 = 610 987 = 1 0 + 21 29 47
1 1 987 1597 0 1 47 76
Aceasta d puncte fixe pentru transformarea T, adic puncte (x, y) pentru care
T(x, y) = (x, y).

1
Ca exemplu, ultima egalitate implic
16
0 1 i / 21 = i / 21 + 29i + 47 j
1 1 j / 21 j / 21 47i + 76k
ceea ce d 400 de puncte fixe pentru transformarea T16, puncte cu coordonatele
(i/21, j/21), 0 < i, j < 21. (De observat c proprietatea toroidal implic faptul c
ambele coordonate ale vectorului cel mai din dreapta sunt nule.)

Fig.72. nvierea lui Poincar

2
Principiul confuziei

Shannon a pus ntrebarea: Se admite c se doreste transmiterea unui mesaj


printr-un canal (n care simbolurile pot fi distorsionate). Care este rata maxim
de transmitere supus conditiei ca receptorul s poat recupera mesajul originar
fr erori?
Dac V este multimea de simboluri de transmis se definesta graful G = (V, E) cu
multimea de arce E(a, b) simbolul a poate fi confundat cu simbolul b.

Toate cele cinci simboluri pot fi utilizate pentru transmitere. Dar deoarece se
urmreste evitarea erorilor, se pot trimite cel mult dou: fie a, c, fie a, d, fie b,
d, fie b, e, fie c, e, adic o multime independent de noduri si rata informatiei
este 1 = log2.
Graful G definit astfel este numit si graful de confuzie al simbolurilor.
Rata informatiei poate fi crescut prin transmiterea a n simboluri deodat,
pentru n = 1, 2, 3,
Cum poate fi perechea xy confundat cu perechea xy? Dac are loc una din
situatiile:
x = x si y y pot fi confundate
y = y si x x pot fi confundate
x x pot fi confundate si y y pot fi confundate.
Aceasta echivaleaz cu a lua produse ale grafului cu el nsusi, de pild G, G2 =
GG, G3 = GGG,
Gn se numeste graful de confuzie de lungime n.
Pentru un graf G, fie (G) dimensiunea celei mai mari (sub)multimi
independente.
Rata informatiei pentru siruri de lungime n este definit ca
log (G n )
= log(( (G n ))1 / n )
n
Este usor de vzut c (Gn) ((G))n.
Shannon a definit drept capacitatea la eroare zero a unui graf G prin (G) =
supn ( (G n ))1/ n . Astfel, pentru graful ciclic pentagonal C5, (C5) = 2 si rata
informatiei este 1.

3
Se poate calcula (C5)? Iat imediat graful C5C5.

Multimea aa, bc, ce, db, ed este independent. Asadar, (C5C5) = 5. Decurge
de aici c (C5) 5 si mai departe, rata informatiei pe dou simboluri este de
cel putin
log 5
1,16 > 1
2
Nu este foarte simplu a arta c (C5) 5 . O problem celebr deschis este
evaluarea limitei (C7) si mai general a limitelor (Cn) pentru n impar.

CIFRURI PRODUS (care creaz confuzie)

Pentru simplitate se consider sisteme de criptare astfel nct P = C.


Fiind date dou sisteme de criptare S1, S2 cu spatiile cheilor K1, K2 se defineste
produsul sistemelor de criptarea S1S2 ca avnd spatiul keilor K1K2, regula de
criptare
E( k1 , k 2 ) ( x) = Ek 2 ( Ek1 ( x))
si regula de decriptare
D( k1 , k 2 ) ( y ) = Dk1 ( Dk 2 ( y ))
Exemplu: Se defineste cifrul multiplicativ M prin regula de criptare Ea(x) = ax
mod 26, cu gcd(a, 26) = 1. Dac S este cifrul prin deplasare (shift) atunci este
usor a arta c SM = MS (comutativitate) este cifrul afin.
Operatia produs asupra cifrurilor este asociativ dar nu este comutativ.
Operatia produs poate fi iterat pentru a obtine cifruri noi. Fiind dat un cifru S
se pot defini S2 = SS, Sn+1 = SnS.
Dac S2 = S cifrul se numeste idempotent. Similar, se poate cuta un cel mai
mic ntreg n astfel nct Sn = S, dac un asemenea ntreg exist.
Exemplu: Cifrurile prin deplasare (shift), prin substitutie, afine, Hill, Vigenere
si permutante sunt toate idempotente.

4
Nu are nici un sens a itera cifruri idempotente. Dar chiar dac un cifru nu este
idempotent nu exist vreo garantie c iterarea (repetat) conduce la un cifru bun
(exemplu mai jos).
Ideea cifrurilor produs si iteratiile sunt utilizate n construirea cifrurilor de
genul DES (Data Encryption Standard).

DIFUZIA SI CONFUZIA

Shannon a introdus conceptele de difuzie si confuzie pentru a contine cele dou


blocuri constructive ale oricrui sistem de criptare.
Cifrurile sunt construite ca produs al acestor dou operatii de baz. n cazul
cifrurilor ideale, compunerea dibace a acestor operatii ar duce la parametri
statistici astfel nct textul cifrat este independent de cheie.
n difuzie structura statistic a textului n clar este disipat. Aceast disipare se
obtine prin afectarea fiecrui caracter din textul cifrat de mai multe caractere ale
textului clar, de pild adugnd k litere succesive de text clar pentru a obtine
o liter de text cifrat (pentru k suficient de mare).
n confuzie relatiile ntre parametrii statistici ai textului cifrat si ai cheii de
criptare sunt fcute ct mai complexe poosibil. Pentru aceasta se utilizeaz
algoritmi complecsi de substitutie, cum ar fi permutrile.

Siguranta neconditionat

Se va dezvolta acum o teorie a securittii neconditionate utiliznd cadrul


generos al teoriei probabilittilor.
Fiind date varabilele aleatoare X, Y se definesc:
p(x) = Pr[X = x], p(y) = Pr[Y = y].
probabilitatea combinat: p(x, y) = Pr[X = x, Y = y].
probabilitatea conditionat: p(x|y) = Pr[X = x|Y = y].
independenta: p(x, y) = p(x)p(y).
fomula: p(x, y) = p(x|y)p(y) = p(y)p(y, x).
Teorema lui Bayes: p(x|y) = p(x)p(y|x)/p(y) care presupune p(y) > 0.
X, Y sunt independente dac si numai dac p(x|y) = p(x) dac si numai dac p(y|
x) = p(y) pentru orice x si orice y.

DISTRIBUTII N SISTEMELE DE CRIPTARE

Se presupune c o cheie dat este utilizat numai pentru o criptare.


Distributiile probabilistice sunt date pe spatiul textului clar P si pe spatiul
cheilor K: pP(x), pK(k).
Este rational a presupune c distributiile acestea sunt independente, deoarece
cheia este aleas fr vreo cunostint prealabil asupra textului clar.
Cele dou distributii induc o distributie pe spatiul cifrului C, pC(y) care urmeaz
a fi evaluat.
Fie C(k) = {Ek(x): x P} multimea textelor cifrate care sunt criptate cu cheia k.

5
Calculele care urmeaz pot fi fcute de oricine cunoaste distributiile
probabilistice a textelor n clar si a spatiului cheilor.
Pentru un text cifrat dat y C are loc:
pC ( y ) = p (k ) pP ( Dk ( y ))
{k: y C ( k )}
K

Se poate calcula cu usurint probabilitatea conditionat ca y C s fie textul


cifrat dat fiind x P ca textul clar corespunztor:
pC ( y | x ) = pK ( k )
{ k : x = D k ( y )}

Folosind formula lui Bayes, se poate calcula si probabilitatea conditionat ca x


s fie textul clar fiind dat textul cifrat y:
pP ( x) pK ( k )
{ k:x = Dk ( y )}
pC ( x | y ) =
K (k ) pP ( Dk ( y))
p
{k: y C ( k )}

Un sistem de criptare este perfect secret dac pP(x|y) = p(x) pentru orice x P
si y C.
Exemplu: Fie P = {a, b}, K = {k1, k2, k3}, cu pP(a) = 1/4, pP(b) = 3/4, pK(k1) =
1/2 si pK(k2)= pK(k3) = 1/4. Fie C = {1, 2, 3, 4}.
Criptarea Ek:

Distributia probabilistic pC:


pC(1) = 1/8
pC(2) = 3/8 + 1/16 = 7/16
pC(3) = 3/16 + 1/16 = 1/4
pC(4) = 3/16
Distributiile probabilistice conditionate:
pP(a|1) = 1 pP(b|1) = 0
pP(a|2) = 1/7 pP(b|2) = 6/7
pP(a|3) = 1/4 pP(b|3) = 3/4
pP(a|4) = 0 pP(b|4) = 1

Cifrurile prin deplasare sunt perfect secrete

Se presupune c cele 26 de chei au probabilitti egale, 1/26. Probabilittile pC se


calculeaz astfel:
p (y k)
pC ( y ) = pK (k ) pP ( D( y )) = P
k 25 k 25 26
Deoarece {y k: y C} este o permutare a celor 26 de caractere ale cifrului
trebuie s aib loc:

6
pP ( y k ) 1 1
k 25 26
=
26 k 25
pP ( y ) =
26
Pentru fiecare pereche x, y exist un k unic (si anume, k = y x) astfel nct
Ek(x) = y. Astfel, pC(y|x) = pK(y x) = 1/26. Prin mijlocirea formulei lui Bayes
se obtine:
p ( x) pC ( y | x ) pP ( x) / 26
pP ( x | y ) = P = = pP ( x )
pC ( y ) 1 / 26
Asadar, cifrul prin deplasare (shift cipher0 este inatacabil (nu poate fi spart) dat
fiind faptul c o cheie nou aleatoare este folosit la criptarea fiecrui caracter
din textul clar.

Secretul perfect

Fr a reduce din generalitate, se poate presupune c pC(y) > 0, y C (dac


nu este asa, atunci y nu este utilizat niciodat si poate fi omis din discutie). Se
presupune c sistemul de criptarea este perefect de secret.
Conform teoremei lui Bayes: pP(x|y) = pP(x), x P, y C pC(y|x) =
pC(y), x P, y C.
Se fixeaz x P. Pentru fiecare y C are loc
pC ( y | x ) = pK (k ) = pC ( y) > 0 .
{k : x D k ( y )}

Astfel, pentru fiecare y C exist cel putin o cheie k K astfel nct Ek(x) = y.
Decurge de aici c |K| |C|. n orice sistem de criptare totdeauna trebuie ca |C|
|P|, astfel c, n sintez |K| |C| |P|.
Ce se ntmpl n cazul limit |K| = |C| = |P|?
Teorema lui Shannon: Se presupune c un sistem de criptarea (P, C, K, E, D)
satisface conditia |K| = |C| = |P|. Atunci ele este perfect secret dac si numai
dac (a) fiecare cheie este utilizat cu probabilitate egal 1/|K| si (b) x P
!k K (Ek(x) = y).
( ) Se admite c sistemul de criptare asigur secretul perfect, adic pP(x|y) =
pP(x), x P, y C. Din observatia precedent, pentru fiecare x P si y
C exist cel putin o cheie k K astfel nct Ek(x) = y. Asadar, |C| = |{Ek(x):k
K}| |K|. Prin ipotez |C| = |K|. De aici decurge c nu exist chei k1 k2 astfel
nct Ek1 ( x ) = Ek 2 ( x) = y .
Aceasta dovedeste partea (b) a implicatiei: x P !k K (Ek(x) = y).
Urmeaz demonstratia prtii (a). Se fixeaz y C. Se pune n = |K| si fie P =
{x1, x2, , xn} si K = {k1, k2, , kn} n asa fel nct
Ek1 ( x) = Ek 2 ( x ) = ... = Ek n ( x) = y .
Conditia de secret perfect si teorema lui Bayes conduc la
p ( y | xi ) pP ( xi ) pK (ki ) pP ( xi )
pP ( xi ) = pP ( xi | y ) = C =
pC ( y ) pC ( y )

7
Aceasta implic pK(ki) = pC(y) pentru orice i = 1, 2, , n si completeaz
demonstratia prtii (b).
Reciproc, dac (a) si (b) implic secretul perfect repet demonstratia secretului
perfect pentru cifrurile cu deplasare parcurs mai devreme.

(Vernam) One-time Pad

Teorema lui Shannon ofer o demonstratie riguroas a secretului perfect pentru


cfrul lui Vernam, propus mai nti de Vernam n 1917. Sistemul de criptare
poate fi descris astfel: |P| = |C| = |K| = (Z2)n.
Cheia k = (k0, k1, , kn 1) este o secvent aleatoare de biti generat de un
generator aleator de calitate.
Un text clar x = (x0, x1, , xn 1) este criptat prin Ek(x) = x0 + k0 mod 2, , xn 1
+ kn 1 mod 2).
Un text cifrat y = (y0, y1, , yn 1) este decriptat prin Dk(y) = y0 + k0 mod 2, ,
yn 1 + kn 1 mod 2).
Din nefericire, este vulnerabil la atacul prin cunoasterea textului clar: k poate fi
evaluat din x si Ek(x).
De asemenea, faptul c |K| |P| nseamn c sunt de comunicat chei ntr-o
cantitate ct este si cantitatea de text clar.

ENTROPIE

Se consider cazul n care o cheie este utilizat pentru numai o criptare. Ce se


ntmpl cnd aceeasi cheie este folosit mai mult dect un text clar?
Instrumentul de baz este entropia care msoar si incertitudinea unui sistem.
Se consider o variabil aleatoare X care ia valori ntr-o multime finit de valori
cu distributia probabilistic p(x): Pr[X = x].
Se pune ntrebarea: Care este informatia cstigat de un eveniment care are loc
cu probabilitatea p(x)?
ntrebare echivalent: Dac evenimentul n-a avut loc, care este incertitudinea
care planeaz asupra rezultatului?
Incertitudinea aceasta, aceast cantitate este numit entropia lui X si este nutat
cu H(X).
Exist un interes a cuantifica informatia n sensul teoriei probabilittilor, ceea
ce nu este acelasi lucru cu informatia din limbajul curent.
Conceptul nu are nimic de-a face cu semnificatia. n schimb este mai mult
legat de surpriz.
1. Era zpad n Ottawa n iulie.
2. Mine mi voi consuma cina zilnic.
3. JQQS QRVQ UQAT QQAB.
Prima propozitie este cea mai surprinztoare, a doua are sens dar nu reprezint
vreo surpriz si a treia este nimicul pur.
Fiind dat un experiment cu n rezultate echiprobabile E1, E2, , En, ct
informatie este purtat n medie de un mesaj M care spune ce rezultat s-a produs

8
efectiv? Pare rational a lua ca msur a acestei informatii lungimea medie a
mesajului, cunoscut fiind c M este scris ntr-un mod economic. De pild, se
poate presupune c se utilizeaz un cod binar de lungime t, o secvent de biti
b1b2bt. Este evident c exist 2t astfel de secvente de lungime t. Pentru a
identifica n conditii de unicitate toate evenimentele, trebuie ales un t astfel
nct n < 2t. Asadar, t = logn ar putea fi o definitie rezonabil a cantittii de
informatie continut n mesaj.
Fie acum evenimentele E1, E2, , En asociate cu alte probabilitti, diferite, p1,
p2, , pn. Se execut acum un experiment de N ori si se trimite un mesaj M care
poart rezultatul ntregii secvente de ncercri. Un experiment este o secvent
Ei1 , Ei2 , ..., Ei N cu Eik rezultatul ncercrii numrul k.
Dac Nk este numrul de aparitii ale evenimentului Ek, atunci pk Nk/N,
conform legii numerelor mari; astfel Nk Npk si N = N1 + N2 + + Nn.
Numrul total de rezultate este
N!
sn
N1!...N n !
Aceast relatie sugereaz c numrul mediu de biti t necesar pentru a coda
mesajul M ar trebui s satisfac relatia t = lnsn/N. Utiliznd aproximarea Stirling
n relatia de mai sus se obtine
2 N N N e N
sn
2 N1 N1N1 e N1 ... 2 N n N nN n e N n
Urmeaz c
N N
ln sn N ln N
k=1
N k ln( N k ) = N ln N
k=1
Npk ln( Npk ) =
N N N
= N ln N
k=1
Npk ln( N )
k=1
Npk ln( pk ) = N pk ln( pk )
k=1

si n final
N
ln sn
t= = pk ln( pk )
N k=1
Exemplul 1: Fie X notatia pentru aruncarea unei monede corecte cu Pr[X = cap]
= Pr[X = pajur] = 1/2. Informatia sau entropia aruncrii unei asemenea
monede este 1 bit deoarece este necesar un singur bit pentru a coda cele dou
rezultate. Similar, entropia a n aruncri independente logn.
Exemplul 2: Fie X notatia pentru o variabil aleatoare care ia valorile x1, x2, x3
cu probabilittile Pr[X = x1] = 1/2, Pr[X = x2] = Pr[X = x3] = 1/4. Codarea cea
mai eficient a celor trei evenimente const n a pune 0 pentru X = x1, 01,
respectiv 11 pentru X = x2 si X = x3. Numrul mediu de biti al acestei codri este
(1/2)1 + (1/4)2 + (1/4)2 = 3/2.
Cele dou exemple sugereaz c numrul de biti potrivit codrii unui
evenimemt X = x ar putea fi aproximativ logPr[X = x] ceea ce d nastere
definitiei care urmeaz.

9
Entropia unei variabile aleatoare X se defineste ca
H ( X ) = Pr[ X = x] log Pr[ X = x ]
x
Pentru un sistem de criptare, prezint interes entropiile H(K), H(P), H(C) ale
variabilelor aleatoare din K, P, C.
Remarc: Dac Pr[X = x] = 0 se defineste Pr[ X = x] log Pr[ X = x] = 0
(conform limitei limt0tlogt = 0).
Fie variabila aleatoare X care ia valorile x1, , xn.
Dac Pr[X = xi] = 1/n pentru orice i, atunci
n
H ( X ) = Pr[ X = xi ] log Pr[ X = xi ] = log n
i= 1
Este usor de a vedea c dac pentru un i Pr[X = xi] = 1 si celelalte probabilitti
sunt nule, atunci H(X) = 0.
Exemplu (reluat): Fie P = {a, b}, K = {k1, k2, k3} cu distributiile (1/4, 3/4),
respectiv (1/2, 1/4, 1/4). Fie C = {1, 2, 3, 4}. Distributia pC este
pC(1) = 1/8
pC(2) = 3/8 + 1/16 = 7/16
pC(3) = 3/16 + 1/16 = 1/4
pC(4) = 3/16
Se pot calcula imediat entropiile
H(P) = (1/4)log(1/4) (3/4)log(3/4) 0,81
H(K) = (1/2)log(1/2) 2(1/4)log(1/4) = 1,5
H(C) 1,85

CODRILE HUFFMAN

Fie X o variabil aleatoare care ia un numr finit de valori. O codare a lui X este
o functie f: X {0, 1}*. Functia f poate fi extins la o functie functie f: X*
{0, 1}* n maniera evident. Fiind dat un sir finit de evenimente x1xn se
defineste
f(x1, , xn) = f(x1)||||f(xn)
cu || operatorul de concatenare. Dac sirul x1xn este propus de o surs fr
memorie potrivit unei distributii pe X, atunci probabilitatea sirului x1xn este
produsul p(x1)p(xn).
Exemplu: Fie X = {a, b, c, d} si fie urmtoarele codri:
f(a) = 1 f(b) = 10 f(c) = 100 f(d) = 1000
g(a) = 0 g(b) = 10 g(c) = 110 g(d) = 111
h(a) = 0 h(b) = 01 h(c) = 10 h(d) = 11
Se observ c f si g sunt injective dar h nu este deoarece h(ac) = h(ba) = 010.

CODRILE HUFFMAN SI ENTROPIA

Pentru orice codare a lui X si pentru orice distributie probabilistic a lui X se


defineste eficienta codrii prin

10
L( f ) =
x X
p( x) | f ( x) |

ntrebare: Cum se poate minimza L(f)?


Teorem: Exist un algoritm (cunoscut ca algoritmul lui Huffman) care
calculeaz o codare minimal. Mai mult, codarea produs de algoritm
satisface relatia
H(X) L(f) H(X) + 1
Algoritmul este urmtorul: Se ncepe cu distributia probabilistic a lui X si se
atribuie fiecrui element. La fiecare iteratie se pun laolalt dou elemente cu
cele mai mici probabilitti ntr-unul singur si se nsumeaz cele dou
probablitti. Celui mai mic dintre ele ca sans de producere i se atribuie 0, celui
mai mare i se atribuie 1. Cnd rmne un singur element, codul pentru fiecare x
X se poate construi prin lectura invers a secventei binare constituite.
Exemplu: Fie X = {a, b, c, d, e} cu probabilittile date n prima linie a tabelului
alturat. Algoritmul Huffman decurge astfel:

a b c d e
0,05 0,10 0,12 0,13 0,60
0 1
0,15 0,12 0,13 0,60
0 1
0,15 0,25 0,60
0 1
0,40 0,60
0 1
1,00
000 001 010 011 1

Codul rezultat este dat n linia ultim a aceluiasi tabel.


Se poate vedea imediat c L(f) = 1,8 si H(X) = 1,7402.

Arborele Huffman

11
Entropia conditionat msoar informatia medie despre X evidentiat prin Y.
Pentru variabilele aleatoare X, Y se defineste entropia conditionat prin relatiile
H ( X | y ) = p ( x | y ) log p ( x | y )
x

H ( X | Y ) = p( y) H ( X | y)
y

PROPRIETTI ALE ENTROPIEI

Fie variabila aleatoare X care ia valorile x1, , xm si fie pi = Pr[X = xi]. Fie
variabila aleatoare Y care ia valorile y1, , yn si fie pj = Pr[Y = yj].
1. H(X) logm cu egalitate numai cnd pi = 1/m pentru orice indice i.
2. H(X, Y) H(X) + H(Y) cu egalitate numai pentru X, Y independente.
3. H(X, Y) = H(Y) + H(X|Y).
4. H(X|Y) H(X), cu egalitate numai pentru X, Y independente.
Pentru demonstratii este necesar inegalitatea lui Jensen. Dac f este o functie
continu si strict concav pe intervalul I (de pild logx) si ai > 0 pentru orice i,
a1 + + am = 1 atunci
m
m
i = 1 i i i = 1 ai xi
a f ( x ) f

cu egalitate numai cnd coeficientii ai sunt egali.


Demonstratie pentru proprietatea 1:
m m m
H(X) =
i= 1
pi log xi =
i= 1
pi log(1 / xi )
i= 1
pi (1 / xi ) = logm

cu egalitate pentru si numai pentru p1 = = pm = 1/m.


Demonstratie pentru proprietatea 2: Se noteaz cu ri,j = Pr[X = xi, Y = yj] si se
observ c
n m
pi =
j= 1
ri , j , qi = ri , j
i= 1
m n

H(X) + H(Y) = i= 1
pi log pi
j= 1
q j log q j =
m n n m m n

=
i= 1 j= 1
ri , j log pi
j= 1 i= 1
ri , j log q j =
i= 1 j= 1
ri , j log( pi q j )

si
1
H(X, Y) =
i, j
ri , j log ri , j = i, j
ri , j log
ri , j
Din acestea si din inegalitatea lui Jensen rezult
H(X, Y) H(X) H(Y) =
pi q j pq
= ri , j log log ri , j i j = log pi q j = 0
i, j ri , j i, j ri , j i, j

cu egalitate dac si numai dac numerele ri,j/piqj iau toate aceeasi valoare, 1.

12
Demonstrarea propriettilor 3 si 4 este facil.

ENTROPIA SI SISTEMELE DE CRIPTARE

Echivocatia prin cheie: H(K|C).

Teorem: Pentru orice sistem de criptare H(K|C) = H(K) + H(P) H(C).


Se observ c n conformitate cu proprietatea 3,
H(K, P, C) = H(K, P) + H(C|K, P)
H(K, P, C) = H(K, C) + H(P|K, C)
Deoarece cheia si textul clar determin unic textul cifrat, adic y = Ek(x), are loc
H(C|K, P) = 0, ceea ce modific n consecint prima din cele dou relatii de mai
sus. Similar, cheia si textul cifrat determin n mod unic textul clar, adic x =
Dk(y). Rezult H(P|K, C) = 0 si modificarea corespunztoare a relatiei a doua.
Deoarece K si P sunt independente. H(K, P) = H(K) + H(P).
n final,
H(K, P, C) = H(K, P) = H(K) + H(P)
H(K|C) = H(K, C) H(C) = H(K, P, C) H(C) = H(K) + H(P) H(C).
Exemplu (n reluare): Fie P = {a, b}, K = {k1, k2, k3} cu distributiile (1/4, 3/4),
respectiv (1/2, 1/4, 1/4). Fie C = {1, 2, 3, 4}.
H(P) = (1/4)log(1/4) (3/4)log(3/4) 0,81
H(K) = (1/2)log(1/2) 2(1/4)log(1/4) = 1,5
H(C) 1,85
Echivocatia acestui sistem de criptare este dat de formula
H(K|C) = H(K) + H(P) H(C) = 1,5 + 0,81 1,85 = 0,46
Aceasta este cantitatea de informatie asupra cheii dezvluit de textul cifrat.

CHEI NSELTOARE

Se admite c un text cifrat este examinat numai din punctul de vedere al


atacurilor dintr-un sistem de criptare dat. Fie textul clar x = x1xn ntr-un
limbaj natural, cifrat sub forma y = y1yn.
n general, este posibil a se elimina anumite chei, dar multe chei posibile
rmn. Cheile posibile dar incorecte care rmn sunt numite chei nseltoare.
Exemplu: Se consider textul cifrat WNAIW care a fost criptat utiliznd cifrul
cu deplasare. Prin analiza textului cifrat se observ cu usurint c exist numai
dou texte cu semnificatie: river si arena. Una din cele dou chei este corect
(cu deplasarea 5), cealalt este nseltoare (cu deplasarea 22).
ntrebare: Exist o limit n ceea ce priveste numrul (asteptat statistic) cheilor
nseltoare?

ENTROPIE SI REDUNDANT

Fie Pn variabila aleatoare care are ca distributie probabilistic aceea a tuturor


celor n-grame de text clar dintr-un limbaj (natural).

13
Pentru un limbaj natural dat L, entropia lui L este definit prin
H (Pn )
H L = lim n
n
si este cantitatea medie de informatie pe liter ntr-un sir de text clar cu
semnifcatie, cu sens. De observat c un sir aleator de litere are entropia log26
4,76. Redundanta limbajului L este dat de
HL
RL = 1
log | P |
Un limbaj aleator are entropia log|P| si redundanta nul astfel nct RL msoar
fractia de caractere n exces care sunt presupuse a fi redundante.
Exemplu: Pentru limba englez s-au fcut tabele cu H(Pn). n capul tabelului se
regsesc H(P) 4,19, H(P2) 3,90. Printr-o statistic a tri-gramelor etc. limita
obtinut este situat astfel: 1,0 HL 1,5, adic continutul informational n
limba englez este de cca. 1,5 biti pe liter. Prin substitutie

HL RL
1,00 1 1,00/log26 = 0,79
1,25 1 1,25/log26 = 0,74
1,50 1 1,50/log26 = 0,69

Asadar, redundanta n limba englez este ntre 69% si 79%, astfel dac RL =
1,25 se poate stabili o codare Huffman pentru n-grame (pentru n suficient de
mare) care comprim engleza la aproximativ un sfert din lungimea obisnuit,
original.
Teorem: Se consider un sistem criptat cu |P| = |C|, cu chei alese echiprobabil
si cu RL redundanta limbajului utilizat. Pentru n suficient de mare, nurul mediu
statistic (notat sn ) de chei nseltoare pentru un sir dat ca text cifrat de lungime
n satisface relatia
|K|
sn 1
| P |nRL
Demonstratie: Se consider multimea cheilor posibile stiind c textul cifrat
este y C n , adic
K ( y ) = {k K : x P n ( Ek ( x) = y pP ( x) > 0)}
Deoarece numai una din cheile posibile este corect, numrul de chei
nseltoare este |K(y)| 1.
Numrul mediu statistic de chei nseltoare este dat de
sn = p( y )(| K ( y ) | 1) = p ( y ) | K ( y ) | p ( y ) = 1 + p ( y ) | K ( y ) |
y C n y C n y C n y C n

n virtutea teoremei de mai devreme, H(K|C ) = H(K) + H(P ) H(Cn).


n n

Pentru n suficient de mare H(Pn) nHL = n(1 RL)log|P| si evident, H(Cn)


nlog|C|. Deoarece |C| = |P|, se poate scrie
H(K|Cn) H(K) nRLlog|P|.

14
Totodat
H(K|Cn) = n
p( y ) H ( K | y) =
y C

= p ( y ) log | K ( y ) | p( y ) | K ( y ) | = log(s + 1)
n
y C n y C n

Prin combinarea ultimelor dou relatii se obtine inegalitatea


log(sn + 1) H(K) nRLlog|P|.
Cnd cheile sunt echiprobabile, H(K) = log|K| si teorema este demonstrat.

DISTANTA DE UNICITATE

Distanta de unicitate unui sistem de criptare este valoarea lui n la care numrul
mediu statistic al cheilor nseltoare devine zero, altfel spus media cantittii de
text cifrat necesar pentru a calcula cheia admitnd un timp de calcul suficient.
Dac se face sn = 0 si se rezolv pentru n se obtine formula
log | K |
n
RL log | P |
Exemplul 1: n cifrul cu substitutie |P| = 26 si |K| = 26!. Dac se ia RL = 0,75 se
obtine ca distant de unicitate valoarea
log(26!)
n 25
0,75 log 26
ceea ce nseamn c fiind dat un cifru de cel putin 25 de caractere este posibil
o decriptare unic.
Exemplul 2: n cifrul cu deplasare |P| = |K| = 26 si distanta de unicitate este
aproximativ 1,33.

DES (Data Encryption Standard) SIMPLU

DES-ul simplu este un cifru bloc care cripteaz un bloc de 10 biti de text n clar
utiliznd o cheie de 10 biti si care produce un bloc de 8 biti de text cifrat.
Algoritmul de criptare implic cinci functii executate n ordinea urmtoare:
1. O permutare initial IP
2. O functie fK
3. O functie de comutare SW care comut dou jumtti
4. Din nou functia fK
5. Inversa IP1 a permutrii IP.
Pasii 2 si 3 utilizeaz keile K1 si K2, respectiv, chei care sunt generate printr-un
algoritm de generare a cheilor.

GENERAREA CHEILOR

Generarea cheilor implic trei functii care sunt aplicate ntr-o secvent de cinci
pasi pentru a produce dou subchei:

15
1. O permutare P10 care permut intrarea de 10 biti.
2. O deplasare la stnga.
3. O permutare pe 8 biti care produce o iesire tot de 8 biti; rezultatul este
prima subcheie K1.
4. Iesirea de la pasul 2 este supus din nou unei deplasri duble spre stnga.
5. O permutare pe 8 biti care produce o a doua iesire de 8 biti; aceasta este
subcheia a doua K2.
Ar putea fi aplicate mai multe alternative, ca, de pild, fie utilizarea unei chei
mai lungi, fie utilizarea a dou chei independente.

STRUCUTRA DES-ului SIMPLU

Casetele S (S-Boxes):
1 0 3 2 0 1 2 3
0 3
S0 = 03 2
2
1
1 3 S1 = 2
3
0
0
1
1 0
3 1 3 2 2 1 0 3

Permutarea P10:
3 5 2 7 4 10 1 9 8 6
1 2 3 4 5 6 7 8 9 10
Permutarea P8:
6 3 7 4 8 5 10 9
1 2 3 4 5 6 7 8
Permutarea P4:
2 4 3 1
1 2 3 4

16
FUNCTIILE DE BAZ ALE DES-ULUI SIMPLU

Algoritmul de criptare pe cheia K:


y = EK ( x) = IP 1 f K 2 SW f K1 IP( x)
unde
K1 = P8(Shift(P10(K))
K2 = P8(Shift(Shift(P10(K))))
Exemplu de generare de cheie:
1. Cheia: 1010000010 K
2. P10: 1000001100
3. Partitionare: 10000 01100
4. (a) Deplasare spre stnga: 00001 11000
5. (a) Concatenare: 0000111000
6. (a) P8: 10100100 K1
4. (b) Dubl deplasare spre stnga: 00100 00011
5. (b) Concatenare: 0010000011
6. (b) P8: 01000011 K2
Astfel este utilizat cheia initial K pentru a genera cele dou chei de 8 biti K1 si
K2.
Algoritmul de decriptare pe cheia K:
x = DK ( y ) = IP 1 f K1 SW f K 2 IP( y )
Functiile sunt definite astfel:
1. Permutarea initial:
IP : 12 62 3 3
1 4 8 5 7
4 5 6 7 8

2. Inversa permutrii initiale:
IP 1 : 14 12 33
5 7 2 8 6
4 5 6 7 8

Desigur, IP(IP1(x)) = IP1(IP(x)) = x, pentru orice x. Trebuie artat acum c
DK(EK(x)) = x
Demonstratia acestei relatii depinde de definitia functiei fK, care va fi formulat
mai departe. Se va da o demonstratie la descrierea cifrurilor Feistel.
3. Functia comutator SW: Schimb ntre ele grupele de 4 biti din stnga si din
dreapta astfel nct la a doua aplicare, functia fK opereaz pe o multime diferit
de 4 biti. (n a doua instant, E, S0, S1, P4 rmn aceleasi si cheia de intrare este
K2).
4. Functia de deplasare Shift: Este o deplasare circular (rotatie) spre stnga
cu o pozitie, executat asupra primilor 5 biti sau asupra ultimilor 5 biti.
5. Functia fK:
fK(L, R) = (L F(R, SK), R)
n care L, R sunt subsirurile de 4 biti din sirul de intrare de 8 biti al functiei fK,
cel mai din stnga si cel mai din dreapta, si F este o aplicatie de siruri de 4 biti

17
pe siruri de 4 biti, nu n mod absolut necesar biunivoc, si SK este o subcheie
(fie K1, fie K2, dup caz).
Exemplu: Se presupune F(R, SK) = 1110 si L = 1011, R = 1101 pentru care
fK(L, R) = (L F(R, SK), R) = (1011 1110, 1101) = (0101, 1101)
5a. Operatia de expandare E: Se extinde un sir de 4 biti la un sir de 8 biti
4 1 2 3 2 3 4 1
1 2 3 4 5 6 7 8
(E nu este o permutare!). Iesirea pentru intrarea n1n2n3n4 este reprezentat de
n n n n
E(n1n2n3n4) = n4 n1 n3 n4
2 3 4 1

K1 = (k11, k12, k13, k14, k15, k16, k17, k18) este pus acum ntr-un sau exclusiv (XOR)
pentru a obtine
n4 k11 n1 k12 n3 k13 n4 k14
n2 k15 n3 k16 n4 k17 n1 k18
abreviat ca
p00 p01 p02 p03
p10 p11 p12 p13
Acestea sunt introduse acum n casetele S: partea de sus n S0, partea de jos n
S1.
5b. Casetele S: Primii 4 biti (prima linie) sunt introdusi acum n caseta S0
pentru a produce o iesire de 2 biti si ceilalti 4 biti (linia a doua) se introduc n
caseta S1 pentru a produce o alt iesire de 2 biti. Casetele S opereaz astfel:
primul si al patrulea bit de intrare sunt tratati ca un numr de 2 biti care
specific o linie a casetei S, iar al doilea si al treilea bit specific o coloan.
Iesirea, rezultatul este acum elementul casetei n acea linie/coloan. Similar
decurg lucrurile si n caseta S1.
Exemplu: Fie p00p01p02p03 = 0110 linia de sus. Atunci p00p03 = 00 = 0 si p01p02 =
11 = 3 si iesirea este din linia 0 si coloana 3 a lui S0 care este 2 (= 10 n binar).
n faza urmtoare cei 4 biti produsi sunt permutati conform P4 si aceast iesire
este totodat iesirea lui F.
Atacul exclusiv asupra textului cifrat: Atacul brutal este fezabil deoarece sunt
numai 210 posibilitti pentru cheile de 10 biti.
Atacul pe text n clar cunoscut: Se poate descrie relatia ntre un bloc de text n
clar unic p1p2p3p4p5p6p7p8 si un text cifrat unic c1c2c3c4c5c6c7c8 n termeni de
ecuatii matematice (neliniare) cu necunoscute cei 10 biti din cheia
k1k2k3k4k5k6k7k8k9k10.
Aceasta implic expresii din procedura de criptare de mai sus.
De pild, dac
p0p1p2p3
q0q1q2q3
sunt cele dou linii de iesire de 4 biti ale operatorului de expansiune din (5a)
atunci se obtine o iesire de 4 biti xyzw din cele dou caste S.

18
ANALIZA CRIPTOGRAFIC A DES-ului SIMPLU

Dac xy este iesirea de 2 biti a lui S0 atunci urmtoarele ecuatii sunt adevrate
x = p0p1p2p3 + p0p1 + p0p2 + p3
y = p0p1p2p3 + p0p1p3 + p0p1 + p0p2 + p0p3 + p0 + p2 + 1
n care adunrile sunt toate modulo 2.
O pereche similar de ecuatii se obtine si pentru zw din caseta S1.
La suprafat aceasta nu este o analiz criptografic eficient deoarece sunt
implicate prea multe ecuatii si prea multe necunoscute.

CIFRURILE FEISTEL

Cifrurile Feistel se bazeaz pe proiectarea de cifruri bloc care maximizeaz


efectul Shannon de confuzie si difuzie .

19
Pentru ca criptarea s fie revesibil (adic decriptarea s fie posibil) blocurile
generate trebuie s fie unice. Asta nseamn c transformarea este biunivoc.
Dimensiunea blocului nu poate fi prea mic deoarece cifrul rezultat ar putea fi
insuficient de complicat. n acelasi timp, o permutare mare a unui bloc nu este
practic. Feistel a propus o aproximare a sistemelor cu cifru bloc ideal, pentru
dimensiuni de bloc mari, din componente mai mici usor de construit.
Intrarea cifrului este un text clar de lungime 2n si o cheie K.
Blocul de text clar este divizat n dou prti: L0 (stnga) si R0 (dreapta).
Cele dou jumtti trec prin r runde de procesare si apoi se combin pentru a
produce blocul de text cifrat.
Intrarea (Li1, Ri1) pentru runda i se obtine ca iesire a rundei (i 1) odat cu o
subcheie. Subcheile sunt diferite de K si sunt diferite una de alta.
Fiecare rund este parametrizat de subcheia de rund si are aceeasi structur:
Se execut o subtitutie asupra jumttii din stnga prin aplicarea unei functii F
de rund pe jumtatea din dreapta a datelor. Urmtoare substitutiei este o
permutare care const n interschimbarea celor dou jumtti ale datelor.

PARAMETRI DE PROIECTARE

Dimensiunea blocului si a cheii: Cu ct este mai mare blocul (si cheia) cu att
se asigur o securitate mai bun si cu att viteza criptrii/decriptrii este mai
redus. Dimensiunea de bloc acceptat curent este de 64 de biti, iar
dimensiunea cheii este de 128 de biti.
Numrul de runde: O dimesiune tipic este cea de 16 runde.
Generarea de subchei si functia de rund: Cu ct complexitatea algoritmului
este mai mare cu att mai voluminoas este analiza critografic.
Viteza de criptare/decriptare: Este preocuparea major n orice aplicatie.
Usurinta analizei: Algoritmul trebuie s fie usor de analizat pentru a-i ntelege
slbiciunile si a spori ncrederea utilizatorului.

ALGORITMUL LUI FEISTEL

Criptarea: LEi+1 = REi


REi+1 = LEi F(REi, Ki+1) (i = 0, 1, , 15)
Decriptarea: LDi+1 = RDi
RDi+1 = LDi F(RDi, K16i1) (i = 0, 1, , 15)
Se poate arta prin inductie c LDi = RE16i si c RDi = LE16i.
Acestea sunt adevrate pentru pasul initial i = 0. Se presupune c sunt adevrate
pentru i
LDi+1 = RDi = LE16i. = RE16i1
RDi+1 = LDi F(RDi, K16i1) =
= RE16i F(LDi+1, K16i1) =
= RE16i F(RE16i1, K16i1) =
= LE16i1 F(RE16i1, K16i) F(RE16i1, K16i1) =

20
= LE16i1
Asadar, decriptarea este inversa criptrii.

RUNDA FEISTEL

Este iterat n 16 pasi. Schema invers este utilizat la decriptare.


n cifrurile bloc parctice, confuzia si difuzia sunt amplificate n unele runde prin
aplicarea unor substitutii suplimentare.

Algoritmi de tip Feistel

Exist multi algoritmi care difer prin dimensiunile de bloc si de cheie utilizate
ca si prin numrul de runde.

Ghid general de proiectare

NBS-ul (Nationa Bureau of Standards) sugera n 1973 urmtoarele linii


generale de proiectare:
1. Nivel nalt de sigurant.
2. Specificarea complet si usurinta ntelegerii.
3. Siguranta trebuie s se bazeze pe cheie, nu pe secretul algoritmului.

21
4. Sistemul s fie accesibil tuturor utilizatorilor.
5. Adaptabilitate pentru aplicatii diverse.
6. Implementare economic cu dispozitive electronice.
7. Algoritmi eficienti n utilizare.
8. Algoritmii trebuie s fie usor de validat.
9. Algoritmii trebuie s fie exportabili.
Aceste principii erau orientate spre cresterea ncrederii publice si spre utilizarea
larg a sistemelor criptate.

Standard de ciptare a datelor

DES a fost adoptat ca standard n ianuarie 1977 si este cel mai larg utilizat
sistem de criptare, n special n tranzactiile financiare, generarea codurilor PIN
etc.
A fost publicat prima oar n Registrul Federal n martie 1975.
Dezvoltat de IBM, este o modificare a unui sistem mai vechi cunoscut sub
numele LUCIFER.
Rennoirea cea mai recent dateaz din ianuarie 1994 si nu urmeaz vreo alt
rennoire.
Nu este considerat sigur pentru tranzactii viitoare. Este de asteptat ca un
recent apel la propuneri noi s conduc la un succesor al lui DES.

................................................................

CRIPTOGRAFIA CU CHEIE PUBLIC

Public sau non-public. Spre deosebire de criptografia cu cheie privat,


criptografia cu cheie public nu necesit un schimb de chei. n loc de asta,
exist un numr de telefon public, disponibil oricrui utilizator si o cheie
privat.

22
TRAPDOOR

Criptografia cu cheie public (PKC Public Key Cryptography) se bazeaz pe


ideea unei functii trapdoor f:X Y, adic o functie biunivoc, usor de calculat,
public, cu invers greu de calculat, cu inversa usor de calculat dac este
cunoscut acea trapdoor.
Astfel, desi n criptografia conventional este necesar un schimb prealalbil de
chei, n criptografia cu cheie public nu este necesar un asemenea schimb.
Ideea de PKC a fost propus prima oar de Diffie si Hellman n 1976. Iat cele
cteva PKC-uri importante care vor fi studiate mai departe.
RSA
Rabin
Merkle-Hellman
McEliece
ElGamal
Elliptic Curve

SISTEMUL DE CRIPTARE RSA

n, p, q: Se defineste n = pq cu p si q dou numere prime mari.


d, e: gcd(e, (n)) = 1 si ed 1 mod (n)1
M: M este numrul care reprezint mesajul de criptat
C: C este numrul care reprezint textul cifrat (textul criptat).
Informatie public: n, e.
Informatie privat: d.

NUMERE PRIME

Un ntreg n > 1 este prim dac numerele 1 si n sunt singurii lui divizori.
Euclid: Exist o infinitate de numere prime.
Dac p1 < p2 < < pn sunt primele n numere prime, atunci orice divizor prim al
ntregului 1 + p1p2 pn trebuie s fie mai mare dect pn.
Numrul (n) de numere prime mai mici sau egale cu n este asimptotic egal cu
n/lnn. Mai general,
Dirichlet-Hadamard-de la Vall Poussin: Dac gcd(a, b) = 1 atunci numrul
a,b(n) al numerelor prime p n de forma p = ak + b este asimptotic egal cu (1/
(a))( n/lnn).
Postulatul lui Bertrand: Pentru orice ntreg n, exist totdeauna un numr prim
ntre n + 1 si 2n. Erds a dat o demonstratie elementar elegant.

PROBLEME INTERESANTE CU NUMERE PRIME

1
gcd(a, b) greatest common divisor cel mai mare divizor comun a dou ntregi; a b mod n
congruenta modulo n a doua numere ntregi.

23
Ce se observ dac se scriu ntregi consecutivi ntr-o spiral rulat n sens
antiorar?

Numerele prime par a se alinia pe diagonale. Se poate dovedi sau nu aceast


observatie? Se poate experimenta.
Care este raportul primelor de forma n2 + n + 17? Dar ntre cele de forma n2 + n
+ 41? Probleme dificile. Nici un polinom de o singur variabil cu coeficienti
ntregi nu poate genera toate numerele prime (n legtur cu problema a zecea a
lui Hilbert).

FUNCTIA TOTIENT A LUI EULER

(n) este numrul de ntregi nenegativi mai mici dect n care sunt relativ primi
cu n.

Cteva valori importante ale lui (n):

24
TEORIA NUMERELOR

Exemplul 1: Este usor de generat e astfel nct gcd(e, (n)) = 1 deoarece


|{e < n: gcd(e, (n)) = 1}| = ((n))
Exemplul 2: Fie p = 101, q = 113, n = 11413.
Atunci (n) = (p 1)(q 1) = 11200 = 26527.
Astfel, orice ntreg care nu este divizibil cu 2, 5, 7 poate fi utilizat ca cheie
public. Se poate alege e = 3533. Folosind algoritmul lui Euclid, se poate
calcula usor e1 mod 11200 = 6597.
Exemplul 3: Fie Fie p = 5, q = 7, n = 35. Se poate alege e = 11. Cum se
calculeaz 1211 mod 35?
Mai multe concepte din teoria numerelor vor fi rememorate aici.

CUM LUCREAZ RSA?

Criptarea RSA: M E(M) := M e C mod n.


Decriptarea RSA: C D(C) := C d M mod n.
Cnd si de ce lucreaz? De rememorat c (n) = (p 1)(q 1). Pentru ca RSA
s lucreze M < n, gcd(e, (p 1)(q 1)) = 1, p si q sunt prime si de 1 mod (p
1)(q 1).
RSA lucreaz deoarece: Cd (Me)d Med M1 + k(p 1)(q 1) mod n.
Se admite c gcd(M, q) = gcd(M, p) = 1. Atunci, conform micii teoreme a lui
Fermat:
Cd M(Mp 1)k(q 1) M(1)k(p 1) M mod p
Cd M(Mq 1)k(p 1) M(1)k(q 1) M mod q
Astfel, Cd M mod n.

REPREZENTRI ALE NUMERELOR

Reprezentri n baza b.
n mod b = akbk + ak 1bk 1 + + a0 mod b = a0
n k1 k2
b mod b = ak 1b + ak 2b + + a1 mod b = a1

n
bi mod b = ai
Folosind acest fapt se poate scrie un algoritm de schimbare a reprezentrii unui
numr n orice baz.

Procedure scriere_n_baza_b (n, b)


q := n
k := 0
while q 0

25
ak := q mod b
q
q :=
b
k := k + 1
end while
return (ak 1a1a0)b

OPERATII CU NUMERE

Adunarea a dou numere de k biti se poate executa ntr-un timp O(k).


010110101
11010010
---------
110000111
Multiplicarea a dou numere de k biti se poate executa ntr-un timp O(k2).
1011
110
--------
0000
1011
1011
--------
1000010
Ambii algoritmi sunt binecunoscuti. Exist desigur algoritmi mai rapizi (v.
Knuth: Art of Computer Programming).
Exponentierea a dou numere de k biti se poate face ntr-un timp O(k3).
Exemplu: p = 5, q = 7, n = 35.
Se poate alege e = 11. Fie mesajul M = 12. Pentru a calcula 1211 mod 35:
Se scrie mai nti (11)10 = (1011)2. Apoi se calculeaz
3 2 1 0 2 1 0
M 11 = M 1.2 + 0.2 + 1.2 + 1.2 = ( M 1.2 + 0.2 + 1.2 ) 2 M
1 0
= (( M 1.2 + 0.2 ) 2 M ) 2 M = (( M 2 ) 2 M ) 2 M
Algoritmul formal este urmtorul: se calculeaz reprezentarea binar
k1
e=
i= 0
ei 2i cu k = log 2 e

si se execut urmtoarea procedur:

Procedure exponentiere (x, e, n)


z := 1
for i := k 1 downto 0 do
z := z2 mod n
if ei = 1 then z := zx mod n
return xe mod n

26
ATACUL PRIN TEMPORIZARE

Acest atac este similar celui prin care un pungas observ ct timp i ia cuiva
pentru a forma la disc cifrul unui seif. Genul acesta de atac se poate aplica si
altor sisteme cu criptare.
Un analist criptolog poate calcula o cheie privat prin urmrirea pas cu pas a
duratei necesare unui calculator pentru a descifra un mesaj. Exponentul este
calculat bit cu bit ncepnd cu bitul cel mai putin semnificativ.
Pentru un text cifrat dat este posibil a msura ct timp este necesar pentru a
executa exponentierea modular. Se pot asadar determina bitii necunoscuti prin
exploatarea diferentelor de timp n rspuns (acest atac a fost implementat de
Koeher n 1996).
Problema este eliminat prin utilizarea unui din urmtoarele remedii: (a) timp
de exponentiere constant, (b) ntrzieri aleatoare sau (c) orbirea prin
multiplicarea textului cifrat cu un numr aleator nainte de exponentiere.

ALGORITMUL LUI EUCLID

Aflarea gcd(a, b) fr factorizarea numerelor a si b utilizeaz algoritmul lui


Euclid. Fr a pierde din generalitate se presupune a > b.
Lem: Fie a = bq + r cu a, b, q si r numere ntregi, r < b. Atunci gcd(a, b) =
gcd(b, r).
Demonstratie: Fiind date conditiile din enunt, dac d este un numr care divide
att pe a ct si pe b, atunci d|(a bq). Deoarece (a bq) = r atunci d|r. Asadar,
orice divizor al numerelor a si b divide si pe r. Aceasta implic gcd(a, b) =
gcd(b, r). Deoarece r = a bq, rezult r = a mod b.
Se itereaz (r0 = a, r1 = b, r2 = r, q1 = q):
r0 = q1r1 + r2 0 < r2 < r1
r1 = q2r2 + r3 0 < r3 < r2
.............
ri = qi + 1ri + 1 + ri + 2 0 < ri + 2 < ri + 1
Se defineste gcd(x, 0) = x. Se observ c secventa r0 > r1 > > rn este
descresctoare. Deoarece exist un termen rn astfel nct rn + 1 = 0 si gcd(rn, 0) =
rn, rezult gcd(a, b) = rn.
Fie fn al n-lea numr Fibonacci. De rememorat: f0 = f1 = 1, fn = fn1 + fn2.
Rezolvnd aceast ecuatie cu diferente (prin aprecierea c fn = Rn, pentru un
amumit R) se obtine fn = ((1 + 5 ) / 2) n .
Frumusetea si media de aur: Dreptunghiul este cel mai plcut estetic cnd
prin tiere, portiunea rmas este asemenea cu dreptunghiul initial! (Construirea
Parthenonului a utilizat acest principiu!).

27
Dreptunghiul mare are dimensiunile ab. Dreptunghiul mic are dimensiunile
a(a b). Asemnarea cere ca
a b 1
R= = , R=
b a b 1 R
Prin tratarea ultimei egalitti ca o ecuatie, se obtine R = (1 + 5 ) / 2 .
Prin inductie se poate dovedi c rni fi. Pasul de nceput, pentru i = 0 este facil.
Apoi
rn(i + 1) = qnirni + rn+1i rni + rn+1i fi + fi1 = fi+1
Rezult c a = r0 fn si n = O(loga).

Procedure gcd(a, b; ntregi pozitivi)


x := a;
y := b;
while y 0 do
r := x mod y
x := y
y := r
end while
return x

Teorem: Dac a si b sunt ntregi pozitivi, atunci exist doi ntregi s si t astfel
nct gcd(a, b) = sa + tb. n plus, s, t se pot calcula ntr-un timp logaritmic n
lungimea argumentelor.
Exemplu: 1 = gcd(50, 21).
50 mod 21 8 8 = 50 221
21 mod 8 5 5 = 21 28
8 mod 5 3 3 = 8 15
5 mod 3 2 3 = 5 13
3 mod 2 1 1 = 3 12
Prin inversarea pasilor se obtine succesiv
8 = 50 221
5 = 21 28
5 = 21 2(50 221)
5 = 521 250
3 = 8 15
3 = (50 221) 1 (521 250)
3 = 721 +350
2 = 5 13

28
2 = (521 250) 1 ( 721 250)
2 = 1221 550
1 = 3 12
1 = ( 721 + 350) 1 (1221 550)
1 = 1921 + 850
Acest mod de calcul poate fi utilizat pentru stabilirea inverselor modulare, de
pild 501 mod 21 = 8.

ATACUL PRIN FACTORIZARE

Mesajul criptat poate fi decriptat dac se cunoaste cheia de decriptare. Un


posibil atac RSA poate consta n ncercarea de a factoriza pe n.
Dac ar fi posibil atunci s-ar calcula p, q astfel nct n = pq. Cu p si q
cunoscute, cu e cunoscut ca parte a cheii publice ar fi de rezolvat ecuatia
ex 1 mod (p 1)(q 1)
Rezultatul ar fi exponentul d de decriptare.
Problema factorizrii nu este deloc usoar!

TEOREMA RESTULUI CHINEZESC

S se afle un numr x care are restul 1 la mprtirea cu 3, restul 2 la mprtirea


cu 5 si restul 3 la mprtirea cu 7. Formulare echivalent: un x care s verifice x
1 mod 3, x 2 mod 5 si x 3 mod 7. Solutia acestei probleme este x 52
mod 105. Cum a fost gsit?
Teorem: Fie m1, m2, , mn ntregi pozitivi mutual primi doi cte doi si Mk =
m/mk. Sistemul
x1 a1 mod m1
x2 a2 mod m2
......
xn an mod mn
are o solutie unic modulo m = m1m2mn.
Demonstratie: Fie m = m1m2mn si Mk = m/mk. Pentru fiecare valoare Mk se
stabileste inversul yk modulo mk (adic Mkyk 1 mod mk). Atunci x = a1M1y1 +
a2M2y2 + + anMnyn. Ceea ce ncheie demonstratia.
Pentru n = pq, aplicatia Zn* Zp*Zq*: x mod n (x mod p, x mod q) este
biunivoc, dar si pentru c |Zn*| = (n) = (p)(q) = |Zp*||Zq*|.
Teorema restului chinezesc d posibilitatea de a rezolva congruentele de modul
compus prin inversa(rea) aplicatiei de mai sus. Iat cum lucreaz.
Pentru o pereche (a1, a2) Zp*Zq*. Se consider b1 = q1 mod p si b2 = p1 mod
q. Se pune a = a1b1q + a2b2p si se observ c
a = a1b1q + a2b2p a1 mod p
a = a1b1q + a2b2p a2 mod q
Exemplu: S se rezolve x 5 mod 7, x 6 mod 11. Se calculeaz 71 mod 11 =
8 si 111 mod 7 = 2. Astfel, a = 5211 + 687 = 446 61 mod 77 este solutia
celor dou congruene simultane.

29
Zn : multimea de ntregi 0 a < n este un grup aditiv modulo n.
Zn* : multimea de numere ntregi 0 a < n care sunt prime cu n este grup
multiplicativ modulo n.
Exemplu: Tablele de adunare pentru (Z6, +) si de multiplicare pentru (Z6*, ):

Mica teorem a lui Fermat: Dac p este prim si p nu divide pe a atunci a p1 1


mod p.

Demonstratie: Fie a un numr care nu se divide cu p. Fie lista tuturor


elementelor din Zp*, x1, x2, , xp1. Lista ax1, ax2, , axp1 reproduce (eventual
ntr-o alt ordine) lista anterioar si
x1x2xp1 = (ax1)(ax2)(axp1) = ap1(x1x2xp1)
Grupul Zp este ciclic n sensul c exist un element generator g astfel nct Zp*
*

= { g0, g1, , g p1}. Faptul acesta a fost dovedit prima oar de Gauss care a
dovedit si un adevr ceva mai general:
Pentru orice m, Zm* este ciclic dac si numai dac m este de forma 1, 2, 4, pk,
2pk, cu p un numr prim impar si cu k un ntreg pozitiv.
Ordinul unui element a Zp* este cel mai mic i 1 pentru care a i = 1.
Teorema lui Lagrange: Dac H este un subgrup al unui grup G, atunci |H|
divide pe |G|.
Demonstratie: Se defineste pe multimea elementelor lui G relatia de
echivalent
a ~ b ab1 H
Este usor de artat c clasele de echivalent sunt comultimile Ha = {ha: h
H}. Toate aceste comultimi au acelasi cardinal si anume |H|. Urmeaz c |H|
divide pe |G|.

30
Pentru un generator g al lui Zp*, elementul gk are ordinul (p 1)/gcd(p 1, k).
Mai mult, gk genereaz pe Zp* dac si numai dac gcd(p 1, k) = 1.
Grupul Zp* are (p 1) generatori.
Teorema lui Euler: Dac a este un ntreg care este prim cu n, atunci a(n) 1
mod n.

Atac asupra sistemului RSA prin functia totient

Exist un algoritm eficient prin care, fiind dat un n (produs de dou numere
prime), s se calculeze (n)?
Se presupune c un asemenea algoritm n (n) exist!
Se poate dovedi c n + 1 (n) = p + q. Acest fapt se ntmpl deoarece
(n) = (p 1)(q 1) = pq p q + 1 = n p q + 1
Urmeaz c (n) = (p 1)(n/p 1) = n n/p p + 1 si apoi ecuatia de gradul al
doilea
p2 (n + 1 (n))p + n = 0
Formula binecunoscut conduce la
n + 1 ( n) ( n + 1 (n)) 2 4n
p=
2
Asadar, existenta unui algoritm eficient n (n) implic existenta unui
algoritm eficient de factorizare a lui n.

ATACUL PRIN TEXTUL CIFRAT ALES

Sistemul RSA este vulnerabil la atacurile prin textul cifrat ales n conformitate
cu argumentul care urmeaz.
Atacul descris imediat arat c sistemul RSA nu este bun pentru semntur!
Se presupune c un analist criptolog care ascult comunicarea citeste un text
cifrat C si vrea s recupereze M astfel nct M = Cd mod n.
Analistul alege la ntmplare un numr r inferior lui n si utilizeaz cheia public
pentru a calcula x = re mod n, y = xC mod n, t = r1 mod n si obtine y semnat cu
cheia privat d, adic u = yd mod n. Analistul criptolog poate s calculeze acum
tu r1(xC)d r1xdCd r1rM M mod n.
Un remediu care va fi discutat mai departe const n utilizarea hashing-ului.

ATACURILE RSA-BIT

Se admite c n = pq este impar. Atacurile RSA-bit au ca tint anumiti biti din


iesirea RSA, de pild bitul cel mai putin semnificativ.
Cunoasterea bitului cel mai putin semnificativ al unui mesaj criptat prin RSA
este echivalent cu localizarea mesajului ntr-un anumit subinterval din [0, n].
Mai precis, se definesc

31
Parity(M e mod n) = bitul de ordinul cel mai de jos al lui M, adic 0 dac M este
par, 1 n caz contrar.
Half(M e mod n) = 0 dac 0 M < n/2 si 1 dac n/2 M < n, adic Half(M e mod
n) = 0 dac si numai dac 2M < n. Asadar,
Half(M e mod n) = Parity((2M)e mod n)
Parity(M e mod n) = Half((M/2)e mod n)
Cu aceste definitii si cu aceste precizri
n
Half(M e mod n) = 0 M 0,
2
n n 3n
Half((2M)e mod n) = 0 M 0, ,
4 2 4
n n 3n n 5n 3n 7 n
Half((4M)e mod n) = 0 M 0, , , ,
8 4 8 2 8 4 8
Prin cutare binar se poate localiza precis valoarea lui M.
Aceasta nseamn c exist un algoritm eficient pentru calculul bitului RSA de
cel mai sczut ordin (adic functia Parity) si mai departe exist un algoritm
eficient de a calcula mesajul original.
Asadar, bitul de ordinul cel mai sczut RSA este la fel de sigur ca RSA.

RESTURI PTRATICE

p2 1 p2 1
a 1 a 1 a + 1 0 mod p
p 1


Se definesc simbolurile lui Legendre astfel
p 1

+ 1 a 2
+ 1mod p (a 0 mod p)
a p 1
= 1 a 2 1mod p (a 0 mod p)
p 0 a 0 mod p


Aceasta implic faptul c
p 1
a
a 2 mod p
p
Mai general, fiind dat factorizarea n = p11 p22 ... pkk se defineste simbolul lui
r r r

Jacobi
r1 r2 rk
a a a a
= ...
n p1 p2 pk
Exemplu: Dac se cunoaste factorizarea 9975 = 35279 atunci se poate calcula

32
2
6278 6278 6278 6278 6278
= =
9975 3 5 7 19
2
2 3 6 8
= = ( 1)( 1) 2 ( 1)( 1) = 1
3 5 7 19
Calculul simbolului lui Jacobi nu necesit factorizarea lui n. Se discut mai
departe un algoritm n stil euclidian. Se presupun m, n impare. Sunt corecte
urmtoarele proprietti:
a b
1. a b mod n =
n n
2
2a. = 1 dac n 1 mod 8
n
2
2b. = 1 dac n 3 mod 8
n
k
2k t 2 t
2c. = dac t este impar
n n n
ab a b
3. =
n n n
m n
4a. = dac m n 3 mod 4
n m
m n
4b. = altminteri.
n m
Exemplu: Dac nu se cunoaste factorizarea lui 383 se poate utiliza algoritmul
de calcul urmtor:
2
219 383 2 41 41 219
= = = = =
383 219 219 219 219 41
14 2 7 7 41 1
= = = = = =1
41 41 41 41 7 7
Definitie: a este un reziduu cuadratic modulo p (se noteaz a QR p ) dac si
numai dac b Z p astfel nct a b2 mod p.
*

a
Important: Dac pentru un a Z p , a QR p = 1 atunci presupunnd a
*

p
p 1 p 1
b2 mod p pentru b Z p rezult a
*
2
(b )
2 2
b p 1 1 mod p .

33
Invers, lund un generator g al lui Zp*, urmeaz c a = gi pentru un anumit i. Se
a p 1 p 1 i ( p 1)
admite c = 1 . Asadar, a 2 1mod p si, deci, a 2 g 2 1mod p .
p
i ( p 1)
De aici, ( p 1) | si i trebuie s fie par si a QR p .
2
Acest fapt are aplicatii semnificative n testarea primalittii.

Test pentru numere pseudo-prime

Intrare: n
Se ia la ntmplare a [1, n].
Se calculeaz g = gcd(a, n).
Dac g 1 atunci n este compus.
Dac g = 1 atunci se calculeaz e = an1 mod n.
Dac e 1 atunci n n-a trecut testul.
Dac e = 1 atunci n a trecut testul.
Care este probabilitatea ca numr compus s treac testul? Se pare c prin
repetarea testului sansa unui rspuns corect creste!
Din nefericire exist numere compuse care trec testul pentru toate bazele fat
de care ele sunt relativ prime (acestea sunt cunoscute ca numere Carmichael si
sunt o infinitate de asemenea numere!)

TESTE DE PRIMALITATE PROBABILISTICE

Nu este cunoscut vreun algoritm cu timp polinomial pentru testarea primalittii.


Este stiut c problema este n NP co NP.
n testele de primalitate probabilistice se construieste o secvent de multimi
{ }
Pn Z n* : n 1 astfel nct (i) Pn = dac n este prim, (ii) este usor de
verificat care elemente apartin lui Pn si (iii) Pr[ x Z n : x Pn ] c pentru o
*

constant c < 1 independent de n.

Intrare: n
1. Se alege aleator 1 a n
2a. Dac a Pn atunci Iesire = PRIM
2b. Dac a Pn atunci Iesire = COMPUS

Teorem: Dac algoritmul produce iesirea COMPUS, atunci n este compus. n


plus, dac n este compus, atunci Pr[Iesire = PRIM] c.
Deoarece c < 1 se poate reduce eroarea prin iterarea testului de un numr de ori
suficient de mare.

34
TESTUL SOLOVAY-STRASSEN

Intrare: n (impar)
1. Se alege aleator 1 a n
n 1
a
2a. Dac a 2 mod n atunci Iesire = PRIM
n
a n 1


2b. Dac a 2
mod n atunci Iesire = COMPUS
n

Teorem (Solovay-Strassen): Dac algoritmul produce COMPUS, atunci n este


compus, fr ndoial.
a n 1
1
Fie Pn = a Z n : a 2 mod n . Se demonstreaz c Pr[ Z n \ Pn ] .
* *

n 2
Desigur, se observ mai nti c multimea de mai sus este un subgrup al lui Zn*.
Conform teoremei lui Lagrange din teoria grupurilor, afirmatia decurge dac se
* a
n 1

dovedeste c acesta este un subgrup propriu, adic a Z n : a 2 mod n
n
Zn . Fr pierdere n generalitate se poate presupune n = pq. Se ia u QRp.
*

Prin teorema restului chinezesc exist un a Zn* astfel nct a u mod p, a 1


a a a n 1 n 1
mod q. Asadar, = = ( 1) (+ 1) = 1 . Deoarece a 2 1 2 1 mod
n p q
a n 1

q, rezult a 2 mod n .
n

TESTUL MILLER-RABIN

Intrare: n (impar)
1. Se alege aleator 1 a n
Se scrie n 1 =2km, cu m impar.
l
2a. Dac a m 1mod n sau l < k (a 2 m 1mod n) atunci Iesire =
PRIM
2b. Dac se produce contrarul, atunci Iesire = COMPUS

Teorem (Miller-Rabin): Dac algoritmul produce COMPUS, atunci n este


compus.
Se presupune n prim.
l k k 1 k 1
( )(
Atunci an 1 a 2 m 1mod n , adic a 2 m 1 a 2 m 1 a 2 m + 1 0 mod n . )
k1 k1 m
Asadar, fie a 2 m
1mod n , fie a 2 m
1mod n . Continund, se obtine a 1

35
l
mod n sau l < k (a 2 m 1mod n) , adic testul va produce verdictul n este
PRIM.
Fr demonstratie, se afirm
Teorema: Dac n este compus atunci Pr[Iesire = PRIM] 1/4.

GENERAREA DE NUMERE PRIME PENTRU CRIPTAREA RSA


(euristic)

1. Se alege la ntmplare un ntreg p impar lung de k biti.


2. Se divide p prin toate numerele prime mici, mai mici sau egale cu un prim
mic.
3. Dac p trece testul de mai sus atunci se aplic testul Miller-Rabin pentru r
baze diferite
4. Dac p trece toate aceste teste atunci el este prim cu o probabilitate
superioar cel putin egal lui 1 4r.
5. Dac p nu este prim atunci se schimb p n p + 2 si se reia cu pasul 1.

CONGRUENTE

Congruentele sunt ca si egalittile dar cu semnul = schimbat cu . O


congruent liniar are forma
ax b mod n
cu x variabila necunoscut.
Congruenta aceasta are o solutie dac si numai dac gcd(a, n)|b. Dac x0 este o
solutie atunci orice alt solutie este de forma x = x0 + in/gcd(a, n) cu 0 i <
gcd(a, n).
Se pot rezolva si congruente de grad mai nalt cum ar fi
xm 1 mod n
Similar, se poate determina exact cnd
xm 1 mod n
are solutie. Pentru a rezolva congruentele ultime sunt necesari logaritmii
discreti ai ambelor prti si se reduc la congruente liniare.

ATACUL PRIN EXPONENTUL DE LA DECRIPTARE

Se admite c exist un algoritm eficient A cruia, fiindu-i dat exponentul e de


criptare RSA, produce exponentul de decriptare RSA. Acesta se foloseste mai
departe pentru a da un algoritm eficient Las Vegas pentru factorizarea lui n.
1. Se alege un ntreg aleator 1 w n 1 si se calculeaz z = gcd(w, n). Dac
1 < z < n atunci s-a obtinut un factor prim. Calculul se ncheie si se
raporteaz succesul.
( n) 1 1
Pr[gcd( w, n) = 1] = = 1 1
n p q

36
2. Se calculeaz d = A(e), care satisface ed 1 mod (n). Se scrie ed 1 = 2sr
cu r impar si se calculeaz v = wr mod (n). n mod clar, 2sr 0 mod (n),
s s
ceea ce implic v 2 w2 r w0 1mod n . Urmeaz c
(s 1
)(
s 2
)
v 2 + 1 v 2 + 1 (v + 1)(v 1) 0 mod n
3. De aici rezult testul urmtor:

if v 1 mod n quit (eec)


while (v 1 mod n) do
v0 = v
v v2 mod n
if v0 1 mod n then quit (eec)
else se calculeaz gcd(v0 + 1, n) (succes)

4. Dac rezultatul este succes, la finalul buclei while se regseste o valoare


v0 astfel nct v0 1mod n , (v0 1 mod n). Dac v0 1 mod n algoritmul
2

esueaz. n caz contrar rezult c v0 satisface conditiile


v02 1 mod n , (v0 1 mod n), (v0 1 mod n)
care pot fi folosite pentru a-l factoriza pe n.
Teorem: Pr[succes] 1/2.
Demonstratie: Algorimul poate esua n unul din urmtoarele moduri:
wr 1 mod n
t
w2 r 1mod n , 0 t s 1
ceea ce produce s + 1 congruente. Orice solutie a sistemului conduce la esec.
Se scrie p 1 = 2i p1 , q 1 = 2 j q1 . Ambele numere p1 si q1 sunt impare. Astfel,
2i + jp1q1 = (n)|ed 1 = 2sr
ceea ce implic i + j s si p1q1|r.
Se stie c xm 1 mod n are o solutie dac si numai dac v2(m) < v2(p 1), v2(q
1). Solutiile se pot numra prin reducere la o congruen liniar m index(x)
index( 1) mod (n). Acelasi lucru se aplic la congruentele de forma xm 1
mod n care au totdeauna solutii.
(1) gcd(r , p 1) gcd(r , q 1)

Numrul solutiilor = t ( 2) gcd( 2 t
r , p 1) gcd(2t r , q 1), dac t < min{i, j}
(2)t 0, altminteri
Se observ c
gcd(r, p 1) = p1
gcd(r, q 1) = q1
gcd(2tr, p 1) = 2min{t, i}p1
gcd(2tr, q 1) = 2min{t, j}q1
Fr a pierde din generalitate se poate presupune i j. Din cele de mai sus
nPr[eec] p1q1 + p1q1(1 + 22 + 24 + + 22(i 1))
= p1q1(1 + (22i 1)/3)
= p1q1(2/3 + 22i/3)

37
2p1q1/3 + p1q12i+j/3
= 2p1q1/3 + (n)/3 = 2p1q1/3 + n/3
De aici
Pr[eec] (p1q1/n)(2/3) + 1/3 (1/4)(2/3) + 1/3 = 1/2
Ceea ce ncheie demonstratia.

SISTEMUL DE CRIPTARE RABIN

Public: n, 0 b n 1.
Privat: p, q astfel nct n = pq si p q 3 mod 4.
Criptare:
M E(M) = M(M + b) mod n
Decriptare:
b2 b
N D(N) = + N mod n
4 2
Exist o ambiguitate la decriptare deoarece sunt posibile patru rdcini ptrate
modulo n. Dac este o rdcin ptrat netrivial a unittii modulo n, atunci
este usor a observa c cele patru rdcini ptrate sunt
M, M b, (M + b/2) b/2, (M + b/2) b/2
Dac p 1 mod 4, nu este cunoscut vreun algoritm pentru a afla rdcnile
ptrate.
Dac p 3 mod 4, atunci exist o formul. Acum, fie x QRn. Atunci x QRp
si x QRq. Deoarece p 3 mod 4, are loc 4|(p + 1). De aici
2
p+ 1
p+ 1 p 1
x 4 x 2 mod p x 2 x mod p x mod p


p 1 p+ 1
(de observat c x 2 1 mod p pentru c x QRp). Asadar, x 4 sunt
rdcini ptrate ale lui x mod p. Cu un rationament similar se poate conchide c
q+ 1
x4 sunt rdcini ptrate ale lui x mod q.
Acum, cu cele dou rdcini ptrate modulo p si cu cele dou rdcini ptrate
modulo q, folosind teorema restului chinezesc, se pot afla cele patru rdcini
ptrate modulo n.
Exemplu: n = 77 = 711, b = 9. Se observ c 7 11 3 mod 4. Se observ c
21 = 39 mod 77 si 41 = 58 mod 77.
Criptare: M E(M) = M(M + 9) = M2 + 9M mod 77.
81 9
Decriptare: N D(N) = ( )
+ N = 1 + N 43 mod 77.
4 2
Dac de pild textul criptat este N = 22, trebuie calculat 23 mod 77. Aceasta
nseamn, n etape
23(p + 1)/4 232 22 4 mod 7

38
23(q + 1)/4 233 13 1 mod 11
Teorema restului chinezesc conduce la cele patru rdcini ptrate ale lui 23
modulo 77. Acestea sunt
10 mod 77, 32 mod 77.
Cele patru texte criptate posibile sunt
(10 43) 44 mod 77, (10 43) 24 mod 77
(32 43) 66 mod 77, (32 43) 2 mod 77.
Decriptarea: Fiind dat N trebuie gsit x astfel nct x(x + b) N mod n. Pentru
aceasta se completeaz ptratele.
x(x + b) N mod n
x2 + 2x(b/2) + (b2/4) N + (b2/4) mod n
(x + (b/2))2 N + (b2/4) mod n
Fiind date N, n, b se calculeaz N + (b2/4) care trebuie s fie un ptrat rezidual
modulo n. Cum s-a artat mai sus, se pot calcula toate rdcinile ptrate modulo
n.
Securitatea criptrii: Exist un algoritm eficient A prin care fiind dat un text
criptat N s rezulte x = A(N) astfel nct x(x + b) N mod n? Admitnd c un
asemenea algoritm exist, este dat imediat un algoritm Las Vegas de factorizare
a lui n cu probabilitate de cel putin de 1/2.
Ideea de plecare: Dac x2 y2 mod n, atunci n|(x y)(x + y). Atunci, dac nu
are loc x y mod n, atuci gcd(x y, n) este un factor al lui n netrivial.

ALGORITMUL DE FACTORIZARE LAS VEGAS

Intrare: n, b
1. se alege aleator 1 r < n
2. se calculeaz y (r2 b2/4) mod n
3. se calculeaz x = A(y)
4. se calculeaz x1 = x + b/2
5. dac x1 r mod n
atunci final (esec)
altminteri evalueaz si returneaz gcd(x1 + r, n)
final.
Teorem: Probabilitatea succesului este cel putin de 1/2.
Demonstratie: Se defineste o relatie de echivalent
r ~ s r2 s2 mod n.
Clasele de echivalent sunt n numr de patru [y] = {y, y}, cu o rdcin
netrivial a unittii modulo n. Se consider valoarea returnat de oracolul A
pentru argumentul y, adic x = A(y). Dac r = y, atunci algoritmul esueaz,
dac r = y, atunci algoritmul reuseste. Deoarece r este aleator uniform
repartizat, teorema este dovedit.

39
ALGORITMI DE FACTORIZARE

Problem: A se factoriza un numr n dat.


Este o foarte important problem. Nu este cunoscut vreun algoritm eficient
(care s ruleze ntr-un timp polilogaritmic n n).
Provocarea anului 1996 se referea la o criptare RSA cu o cheie lung de 130 de
cifre zecimale. Implementarea a fost fcut pe Internet.

MIPS-Years nseamn Millions of Instructions Per Second numrate n ani, ca


exemplu un Pentium 200 este o masin de 50 MIPS.

Algoritmi de factorizare existenti.

Ciurul/sita lui Eratostene (cel mai vechi algoritm de factorizare cunoscut).


Sita de cmp numeric (NFS Number Field Sieve).
Sita de cmp numeric special (SNFS Special Number Field Sieve).
Sita de cmp numeric general (GNFS General Number Field Sieve). Este cel
mai rapid algoritm de factorizare cunoscut pentru numere cu mai mult de 110
cifre zecimale.
Sita cudratic (QS Quadratic Sieve) este cel mai rapid algoritm de factorizare
cunoscut pentru numere cu mai putin de 110 cifre zecimale.
Metoda curbei eliptice (ECM Elliptic Curve Method) lucreaz bine pentru
numere cu mai putin de 40 de cifre zecimale.
Pollard p 1.
Pollard p.
Algoritmul Pollard Monte Carlo.
Metoda fractiilor continue este de interes restrns, pentru mediul intelectual.

Timpi de executie experimentali

Selectarea lungimii pentru o cheie RSA depinde de gradul de sigurant urmrit


si de durata de viat asteptat a acelei chei. De pild, dac se doreste o cheie
care s rmn sigur pe o perioad de 20 de ani, o lungime de 1024 biti este
prea scurt!
Iat un tabel cu timpii de factorizare sub algoritmii NFS si SNFS.

40
Pentru sigurant, cu certitudine se pot utiliza chei foarte mari, dar, de retinut,
timpul de calcul devine nerezonabil de ndelungat. Iat n tabelul urmtor unele
predictii n lungimi n biti:

Timpi de executie teoretici

Tabelul urmtor contine timpii de executie statistic asteptati pentru ctiva


algoritmi folositi n practic:

Pentru a evita atacurile prin metoda Pollard p 1, RSA utilizeaz p = 2p1 + 1, q


= 2q1 + 1, cu p1, q1 numere prime aproximativ de aceeasi lungime.
Pentru factori RSA de dimensiune egal, sita cuadratic este cea mai de succes.
Metoda curbei eliptice este util atunci cnd numrul are factori primi de
dimensiuni diferite.
Sita de cmp numeric (NFS Number Field Sieve) este testul cel mai recent.

METODA POLLARD p 1

Input: n, B
1. a=2
2. for j = 2 to B do a aj mod n
3. d = gcd(a 1, n)
4. if 1 < d < n then d este factor al lui n
else eec

Ideea algoritmului: Fie p un divizor prim al lui n. Fie B ales astfel nct fiecare
putere a unui prim care divide pe p 1 este cel mult egal cu B. Urmeaz c (p
1)|B!. De aceea, la finalul buclei for a = 2B! 1 mod n. Deoarece p|n, are loc

41
si a = 2B! 1 mod p. Urmeaz c p|(a 1) si deci p|gcd(a 1, n) = d. n faza
urmtoare se evidentiaz factori d, n/d s.a.m.d.
Timpul de rulare: Fiecare exponentiere modular necesit O(logB)
multiplicri modulare care iau, fiecare, un timp O(log2n). Cel mai mare divizor
comun (gcd) poate fi calculat ntr-un timp O(logn). Asadar, complexitatea este
O(BlogBlog2n + log3n).
Exemplu
Dezavantaj: Se cere ca n s aib un factor prim p astfel nct p 1 s aib
factori mici ca valoare.
Fie n = 15770708441. Nu este este cunoscut vreun factor de-al lui n. Se
presupune c exist unul, fie acela p, astfel nct p 1 are factori mici. Se
bnuieste c toti acei factori primi ai lui p 1 sunt cel mult egali cu B = 180.
Se itereaz si la pasul 3 se calculeaz valoarea a = 11620221425.
Din aceasta se calculeaz d = gcd(a 1, n) = 135979.
Factorizarea complet a lui n este stabilit a fi
n = 135979115979
Dac p = 135979 se vede c p 1 = 23131173. Prin urmare alegerea lui B =
180 a fost corect si productiv. Se putea lua chiar ceva mai mic, de pild B =
173.

ALGORITMUL LUI DIXON

Se selecteaz o baz de factori (primi) B = {p1, p2, , pB} si o constant C B


+ 10.
Pentru j C se consider vectorul aj = (a1,j mod 2, a2,j mod 2, , aB,j mod 2)
(Z2)B astfel nct o submultime a lor se nsumeaz pentru a da (0, 0, , 0)
modulo 2. Asta nseamn a gsi o dependent liniar ntre acesti vectori.
a a a
Se presupune c pentru j C sunt accesibile congruenele x j p1 1, j p2 2 , j ... pBB , j
2

mod n. Prin multiplicarea lor se obtine congruena x2 y2 mod n care poate fi


utilizat la factorizarea lui n.
Aflarea vectorilor aj, j C corespunde cu a gsi o dependent liniar peste Z2
(ceea ce exist pentru c C > B).
Pentru a genera ntregi xj astfel nct xj2 mod n s se factorizeze complet peste
baza B se utilizeaz algoritmul sitei cuadratice.
Exemplu pentru algortimul lui Dixon
Fie n = 157707084441 si B = {2, 3, 5, 7, 11, 13}.
Se iau congruenele
83409341562 37 mod n
120449429442 2713 mod n
27737000112 2313 mod n
Se multiplic toate acestea si se reduce produsul pentru a obtine
97034357852 (2.3.7.13)2 546 mod n
Apoi se obtine factorul

42
gcd(9703435785 546, 15770708441) = 115759
Cei trei vectori sunt
a1 = (0, 1, 0, 1, 0, 0)
a2 = (1, 0, 0, 1, 0, 1)
a3 = (1, 1, 0, 0, 0, 1)
si satisfac relatia
a1 + a2 + a3 = (0, 0, 0, 0, 0, 0)

SISTEME DE CRIPTARE BAZATE PE GRUPURI

Un grup finit este o pereche (G, ), cu G o multime finit si : GG G o


operatie binar astfel nct
1. operatia este asociativ: u, v, w G, u(vw) = (uv)w
2. orice element are un invers unic: u, v, uv = e, cu e un element
distinct (unitate, neutru). Elementul invers se noteaz u1.
De ce sunt interesante grupurile n cromatografie?
Pornind de la un element u al grupului se pot itera puteri ntregi ale lui, adic u,
u2, u3 etc. care sunt elemente ale lui G.
Fiind dat o baz u G si un element v G care este o putere ntreag a lui
u, de pild uk, se poate calcula k?
Exemplu: n grupul Z19* se pot forma puteri 7i mod 19.
70 1 mod 19
71 7 mod 19
72 11 mod 19
73 1 mod 19
74 7 mod 19
75 11 mod 19
Acum, fiind dat un element, de pild 11, se poate calcula exponentul 5 care
satisface relatia 75 11 mod 19?
Cu ct numrul prim implicat este mai mare, cu att este mai complicat
problema.
Un alt exemplu: n grupul Z2579*, numrul 435 este o putere a lui 2. Se poate
stabili exponentul?

Clase de grupuri

Zn* (multimea ntregilor relativi primi cu n, modulo n).


Grupul multiplicativ din cmpul Galois GF(pn); cele mai utilizate, cu p =2.
Grupurile curbelor eliptice peste Zp*.
Grupurile simetriilor (de pild multimea simetriilor unui poligon regulat).
Grupurile de permutri.
Grupurile formate din cuvinte si relatii.

43
Sistemul de criptare ElGamal

Pentru orice grup (G, ) se defineste sistemul de criptare urmtor:


Sistemul de criptare ElGamal (G, , ):
Public: (G, ), , G
Privat: Exponentul a Z supus relatiei a =
Criptarea: Pentru a cripta mesajul M se alege un ntreg aleator k si se face
criptarea dup schema M E(M) = (k, Mk)
Decriptarea: (y1, y2) D(y1, y2) = y2(y1a) 1
n continuare se discut securitatea acestui sistem de criptare n relatie cu
dificultatea de a calcula logaritmii discreti din grupul (G, ).
Fie G.
Problema logaritmului discret al lui : Fiind dat un element <> s se
gseasc un ntreg s astfel nct = s.
ElGamal se aplic la orice subgrup ciclic <> al lui (G, ) astfel nct problema
logaritmului discret este dificil pe acest subgrup.
ElGamal se aplic uzual grupului multiplicativ Zp*, pentru un numr p prim
mare.
Exemplu de ElGamal (2579, 2, 949):
Privat: a = 765
Public: p = 2579, = 2
= 765 mod 2579 = 949
Pentru a trimite un mesaj M = 1299 se alege la ntmplare k = 853 si se
calculeaz
y1 = 2853 mod 2579 = 435
y2 = 1299949853 mod 2579 = 2396
Textul cifrat este (435, 2396). Pentru decriptare se calculeaz
2396(435765) 1 mod 2579 = 1299
Sistemul de criptare cu curbe eliptice este n esent ElGamal pe o clas special
de grupuri denumite grupuri eliptice.

REPREZENTRI DE GRUP

Ct de dificil este rezolvarea problemei logaritmilor discreti? Depinde de


reprezentarea grupului!
Se consider grupul (Zp*, ) si grupul (Zp1, +). Se ia un generator g al lui Zp* si
se defineste aplicatia
(Zp1, +) (Zp*, ): x (x) = gx mod p
Este clar c
1. (x + y mod p) = ((x)(y)) mod (p 1)
2. af() = (a mod p) mod (p 1)
3. a mod p () a() mod (p 1)
Este usor a rezolva congruente liniare! nseamn asta c este usor si a rezolva
problema logaritmilor discreti?

44
Nu! A stabili izomorfismul nseamn a gsi generatorul! Dar sunt prea multi
generatori posibili!

LOGARITMI DISCRETI n Z11*

Atacuri la logaritmii discreti

Atacurile care urmeaz au n vedere descompunerea


e e e
p 1 = p1 1 p2 2 ... pk k

Asadar, algoritmul Pohlig-Hellman cere factorizarea numrului p 1.

O metod general

Se consider o permutare f:X Y a unei multimi de n elemente X, o permutare


fr puncte fixe, adic f(x) x pentru toti x-ii.

45
Exemplu: f:Zp* Zp*: u u.
Fie definit orbita lui x X ca Orbf(x) = [x, f(x), f2(x), , fn(x)]. Fiind dat un y
Orbf(x), s se gseasc un ntreg k astfel nct y = fk(x).
Se pune m = n . Prin mprtirea euclidian, orice ntreg a < n este de forma a
= qm + r, cu 0 q, r < n. Asadar,
fa(x) = fqm+r(x) = fqm(fr(x)) = fmfm(fr(x))
r
Se calculeaz (r, f (y)) pentru r m si se sorteaz dup coordonata a doua. Se
calculeaz de asemenea (q, fqm(x)) pentru q m si se sorteaz dup a doua
coordonat.
Se gsesc dou perechi (q, fqm(x)), (r, fr(y)) care au a doua coordonat identic,
adic fr(y) = fqm(x). Decurge de aici c y = fqm+r(x).
Timpul de cutare este O( n ) .

LOGARITMI DISCRETI n Zp*

Instant a problemei: p prim, generator pentru Zp* si un element din Zp*.


Obiectiv: Stabilirea unui k p 1 unic astfel nct = k mod p (se introduce
notatia k = log).
O cale de a obtine pe k poate consta n a genera toate puterile lui (, 2, 3,
) si a retine exponentul corect printr-o explorare exhaustiv.
Aceasta consum un timp O(p).
O alt cale poate fi utilizarea metodei generale precedente pentru a reduce
timpul de cuatre la O( n ) . Aceasta este cunoscut ca algoritmul lui Schank.

ALGORITMUL LUI SCHANK

Algoritmul lui Schank (p, , ): Dac m =


p 1 atunci se observ c
fiecare ntreg a < p 1 este de forma a = qm + r, cu 0 q, r m 1. Astfel, a
(m)qr mod p.
1. Se calculeaz (r, r mod p) pentru r = 0, 1, , m 1 si se sorteaz dup
coordonata a doua.
2. Se calculeaz (q, mq mod p) pentru q = 0, 1, , m 1 si se sorteaz dup
coordonata a doua.
3. Se gsesc dou perechi identice la a doua coordonat, adic (r, r mod p)
si (q, mq mod p) astfel nct r mq mod p.
Timpul de executie a algoritmului este O( n ) .
Exemplu: Fie p = 809 si se urmreste calcularea lui log3(525). n cazul acesta

= 3, = 525, m = 808 = 29 si 29 mod 809 = 99. Se tabeleaz apoi (i, 99i
mod 809) si (i, 525(3i)1 mod 809), pentru i = 0, , 28.

46
(10, 644) si (19, 644) au acceasi a doua coordonat. Asadar, log3525 = 2910 +
19 = 309.

POHLIG-HELLMAN (p, , )
e
Fie p 1 = p1 1 p2 2 ... pk k . Dac = a mod p atunci a = log este unic
e e

e
determinat modulo p 1. Astfel este suficient a calcula a mod pi i , i = 1, , k
si a utiliza teorema restului chinezesc.
Se presupune q prim n conditiile p 1 mod qc i (p 1 mod qc+1). Se exprim
c 1
x= i= 1
i qi

cu 0 ai q 1. Se scrie a = x + sqc. Se poate face urmtoarea


Afirmatie:
p 1 0 ( p 1)

q
q
mod p
Demonstratie:
p 1 p 1 p 1
a ( x + sq c )
q q q
mod p
Este, prin urmare, suficient a arta c
p 1 p 1
( x + sq c ) 0
q
mod p q

ceea ce este echivalent cu a demonstra congruenta exponentilor modulo (p 1)


p 1 p 1
( x + sq c ) 0 mod ( p 1)
q q
adic

47
p 1 p 1 c c 1

( x + sq c 0 ) = sq 0 + i q i =
q q i= 0
p 1 c c 1
c 1

= sq + i q i = ( p 1) sq c 1 + i q i 1 0 mod ( p 1)
q i= 1 i= 1
p 1 p 1
Se calculeaz acum q . Dac q
1mod p atunci 0 = 0. Dac nu, atunci
se calculeaz
p 1 p 1 p 1
2 i
q
mod p , q
mod p , , q
mod p ,
p 1 p 1
pn cnd q q mod p . Urmeaz c 0 = i.
i

Dac c = 1 calculul s-a ncheiat.


Altminteri, c >1. Se defineste 1 = 0 si fie x1 = log1 mod qc. Urmeaz c
c 1 p 1 ( p 1)
x1 = i q i si q 2
0

i= 1
1 q2
mod p . Se poate calcula 1 ca ma sus. Dac c =
2 calculul s-a ncheiat, altminteri c > 2 si se continu ca mai sus.
p 1
i
1. Se calculeaz q mod p pentru i < q.
i

2. Se pune j = 0 si j =
while j c 1 do
p 1
calculeaz = q j + 1 mod p
caut i astfel nct = i
j = i
jq j
j + 1 = j mod p
j=j+1

Exemplu pentru Pohlig-Hellman (29, 2, 18)

p 1 = 28 = 227, = 2, = 18; se urmreste evaluarea logaritmului discret


log218. Exponentul a pentru care 2a = 18 mod 29 este necunoscut. Se calculeaz
separat a mod 22 si a mod 7.
q = 2, c = 2: 28/2 = 214 = 28 mod 29
28/2 = 1814 = 28 mod 29
asadar 0 = 1
q = 2 , c = 2: 1 = 01 = 9 mod 29
2

128 / 4 = 97 = 28 mod 29
asadar 1 = 1 si a = 3
q = 7, c = 1: 28/4 = 24 = 16 mod 29
28/4 = 1814 = 25 mod 29

48
asadar 0 = 4 si a = 4.
Se utilizeaz teorema restului chinezesc pentru a rezolva sistemul x 3 mod 4,
x 4 mod 7 pentru a obtine x = 11. Asadar, log218 = 11.

METODA INDEX CALCULUS

Metoda uzeaz de baza de factori B = {p1, p2, , pB}.


Pasul 1: Se calculeaz logaritmii a B numere prime din baza B, adic logp1,
, logpB.
x
Explicatii la pasul 1: Se iau C = B + 10 congruene j p1 1, j ... pB B , j mod p , j
C, ceea ce este totuna cu xj 1,jlogp1 + + B,jlogpB mod (p 1). Aceasta
conduce la un sistem liniar de C congruene n necunoscutele logpi, i C.
Pasul 2: Se calculeaz log folosind cunostintele de la pasul 1.
Explicatii la pasul 2: Acest calcul se face cu un algoritm Las Vegas. Se admite
succesul n pasul 1 si cunoasterea valorilor logp1, , logpB. Se alege la
ntmplare 1 s p 2.
Se calculeaz s mod p n baza de factori dat B = {p1, p2, , pB}, de pild
s p1c1 p2c 2 ... pBc B mod p . Urmeaz c s = s + c1logp1 + + cBlogpB.
Analizele arat c precalculul are un timp de executie asimptotic
( )
O e (1+ O (1)) ln p ln ln p
si timpul de aflare a logaritmului discret este
( 1 + O (1)) ln p ln ln p
O e 2

EXEMPLU

p = 10007, = 5, = 9451, B = {2, 3, 5, 7}.


Mai nti se calculeaz log52, log53, log55, log57. Se ncearc factorizarea lui x
pentru x = 4063, 5136, 9865.
54063 42 = 237 mod 10007
55136 54 = 233 mod 10007
59865 189 = 337 mod 10007
care dau congruenele liniare
log52 + log53 + log57 4063 mod 10006
log52 + 3log53 5136 mod 10006
3log53 + log57 9865 mod 10006
cu solutia unic log52 = 6578, log53 = 6190, log57 = 1301. Pentru a afla
log59451 se alege un exponent aleator s = 7736 si se calculeaz 94515776
8400 mod 10007. Peste B, acesta se factorizeaz ca 24315271. Se dezvolt
log59451 7736 + 4log52 + log53 + 2log55 + log57 46678 + 6190 + 21 +
1301 6057.

49
BITII LOGARITMULUI DISCRET

Fie un generator al lui Zp*.


Bitul cel mai putin semnificativ LSB():
LSB() = 0 log este par
QRp
p 1
2 1mod p
Astfe, bitul cel mai putin semnificativ este acesibil prin testul Euler.
Alti biti: Se scrie p 1 = 2st, cu t impar.
Teorema 1: Este usor a se calcula bitul al i-ilea ca seminifcatie (n ordine
cresctoare) pentru i s.
Teorema 2: Dac exist un algoritm eficient pentru calculul bitului al (s + 1)-
lea ca semnificatie (n ordine cresctoare) atunci acel algoritm poate fi utilizat
pentru calculul eficient al lui log.
Demonstrarea teoremei 2 pentru s = 1. Se presupune c exist un algoritm
eficient pentru calculul celui de al doilea bit ca semnificatie.
p 1 = 2t cu t impar. Asadar, p 3 = 2(t 1) ceea ce implic p 3 mod 4. n
p+ 1
cazul acesta, dac este un reziduu ptratic modulo p, atunci valorile 4
sunt cele dou rdcini ptrate ale lui modulo p.
Afirmatie: Pentru orice , log este par dac si numai dac log(p ) este
impar.
Demonstratie: ( ) Se presupune c log este par. Deoarece a este un
p2 1
generator al lui Zp*, are loc ? mod p . Prin teorema lui Fermat,

p 1
1mod p . Se presupune c = mod p, pentru un a par. Atunci,
a
2

p 1 p 1
+a
p 2
a
2
mod p
ceea ce implic
p 1
log ( p ) + a mod( p 1)
2
Implicatia invers ( ) se demonstreaz prin parcurgerea invers a pasilor.
Fie date , , p. Se urmreste stabilirea lui log.
Fie L2() al doilea bit ca semnificatie al lui log.
Dac L1() este impar, atunci se nlocuieste cu 1 mod p. Acest nou
satisface L1() = 0.
Fie a mod p, pentru un a par. Atunci
p+ 1 a
4
2
mod p

50
Prin ipotez, valoarea L2() poate fi calculat eficient si, n plus, L2() = L1(a/
2
). Asadar, si L1(a/2) poate fi calculat eficient. n consecint se poate determina
care din cele dou posibilitti de semn () este corect.
p4+ 1 p+ 1
Dac 2 L ( ) = L
1
atunci se pune
4 , altminteri se pune

p 1
L2 ( )
p 4 . Apoi se pune si se itereaz.

CMPURILE GALOIS (utilizate cu ElGamal)

(Zp, +, ) este un cmp Galois pentru orice p prim. Cmpul are p elemente.
Fie Zp[x] multimea polinoamelor n nedeterminata x, cu coeficienti n Zp.
Polinoamele acestea se pot aduna, se pot multiplica. Astfel, (Zp[x], +, ) se
structureaz ca un inel.
Se defineste o relatie de echivalent g(x) h(x) mod f(x) dac si numai dac
f(x)|[g(x) h(x)]. Multimea claselor de echivalent se structureaz ca inel notat
uzual ca Zp[x]/f(x).
Dac plinomul f(x) este ireductibil, adic dac el nu are divizori proprii, atunci
Zp[x]/f(x) devine un cmp finit.
Dac plinomul f(x) este ireductibil si are gradul n, atunci Zp[x]/f(x) este un cmp
Galois de dimensiune pn.
Cum se construiesc polinoamele ireductibile?
Exemplu: O privire asupra lui Z2[x]. Sunt patru polinoame de gradul 3 cu
termenul liber egal cu unitatea: x3 + 1, x3 + x + 1, x3 + x2 + 1, x3 + x2 + x + 1.
Dintre acestea, x3 + 1 = (x + 1)(x3 + x + 1) si x3 + x2 + x + 1 = (x + 1)(x2 + 1).
Celelalte dou sunt ireductibile. Acestea produc cmpurile Zp[x]/(x3 + x + 1) si
Zp[x]/(x3 + x2 + 1). Cele dou cmpuri sunt identice si au 23 elemente. n
particular pentru x3 + x + 1:

Pentru a obtine elementele, se face mprtirea la x3 + x + 1 si se retine de fiecare


dat restul, un polinom de gradul doi (n tabel reprezentat prin coeficienti).

PROPRIETTI ALE CMPURILOR

Exist un polinom de gradul n ireductibil n Zp[x], pentu orice n 1.

51
Prin urmare, pentru orice n 1, exist un cmp Galois (unic) cu pn elemente,
notat uzual ca GF(pn).
Desigur, GF(p) este izomorf cu Zp.
Grupul multiplicativ GF(pn) este ciclic si are pn 1 elemente.
Cele mai studiate cmpuri sunt cmpurile Galois GF(2n). Algoritmii precedenti
(cum sunt Shanks si Pohlig-Hellman) pot fi modificati pentru a lucra n
conditiile curente. Logaritmul discret este considerat intractabil (de nerezolvat)
pentru n mare n conditiile n care 2n 1 are un factor prim mare. Exist
implementri hardware pentru GF(2127), cu p(x) = x127 + x + 1.

SISTEMELE KNAPSACK (sac de umr)

Sistemele de criptare bazate pe problemele np-hard nu sunt totdeauna sigure. Se


dau mai departe dou astfel de exemple: primul nesigur, al doilea sigur.
Pe baza problemei suma de submultime (Subset Sum):
Instan: s1, s2, , sn, T sunt ntregi pozitivi.
ntrebare: Exist un vector de zerouri si unitti (x1, x2, , xn) astfel nct
n

i= 1
xi si = T ?

Problema sumei de submulime este facil pentru instanele supercresctoare,


adic pentru si < s j pentru orice j.
i< j

for i = n downto 1 do
if T si then T = T si, xi = 1 else xi = 0
n
if
i= 1
xi si = T then x1, x2, , xn este solutia else nu exist solutie

Reprezentarea de mai sus a lui T este unic dac secventa s1, s2, , sn este
supercresctoare.

KNAPSACK (sac de umr) MERKLE-HELLMAN

n
Pentru s = (s1, s2, , sn) se consider functia de criptare Es: {0, 1}n [0,
i= 1
si

]:
n
x = (x1, x2, , xn) Es(x) =
i= 1
xi si

De observat c functia Es este biunivoc si este usor de decriptat dac s este o


secvent supercresctoare.

52
Strategie: Se permut valorile si astfel nct secventa s nu mai fie
n
supercresctoare. Fie p un numr prim mai mare dect
i= 1
si .

Sistemul de criptare knapsack:


s o secvent supercresctoare
f o transformare liniar unidirectional, de pild x ax mod p
Public: (f(s1), , f(sn))
Privat: s si functia trap f
Criptare: E( f ( s1 ),... f ( s n ))
Decriptare: Fiind dat N se rezolv problema sumei de submultime pentru
f 1(N).
Acest sistem de criptare este acum numai de interes istoric deoarece a fost deja
spart n anii 80 ai secolului trecut. Totusi, ar putea exista alte functii
unidirectionale care l-ar putea face sigur!
Exemplu: Secventa de intrare 2, 5, 9, 21, 45, 103, 215, 450, 946 este clar
supercresctoare. Transformarea f se defineste astfel: se alege un modul p =
2003 si un ntreg a = 1289. Transformarea liniar unidirectional f este
x (ax) mod p: x (1289x) mod 2003
ntregul a este trapa. Acesta d urmtoarea cheie public:
575, 436, 1586, 1030, 1921, 569, 721, 1183, 1570
Textul n clar 101100111 este criptat ca
575 + 1586 + 1030 +721 + 1183 + 1570 = 6665
Pentru a recupera textul clar se calculeaz
a1y 3176665 1643 mod 2003
Din asta se obtine textul n clar 101100111.

CODURI

Un cod [n, k] este un subspatiu k-dimensional al spatiului (Z2)n. O matrice


generatoare G pentru un cod [n, k] este o matrie kn ale crei linii formeaz o
baz pentru codul C. d(x, y) este distanta Hamming dintre cuvintele x si y.
d (C ) = min x , y C , x y d ( x, y ) . Un cod [n, k, d] este un cod C [n, k] pentru care
d(C) = d.
Corectarea erorilor: Fie G matricea generatoare a unui cod C din clasa [n, k,
d].
A transmite x (Z2)k: codeaz y = xG (Z2)n si transmite y prin canalul de
comunicatie.
B primeste r (Z2)n: B stabileste y C pentru care
d ( y ' , r ) = min u C d (u , r )
(decodare prin retinerea vecinului cel mai apropiat) si produce x = yG.
Afirmatie: Dac numrul de erori n r este cel mult egal cu (d 1)/2 atunci y =
y si n consecint x = x.

53
Demonstratie: d(y, y) d(y, r) + d(r, y) 2d(r, y) 2(d 1)/2 = d 1 < d.
Astfel, d(y, y) = 0.

Decodarea prin metoda vecinului cel mai apropiat

Sindrom: Se consider matricea de control/verificare H asociat codului C,


adic o matrice (n k)n, o matrice cu elemente binare, care este o baz pentru
spatiul C (complementul ortogonal al spatiului C). Sindromul lui r este
vectorul HrT. De retinut c pentru x (Z2)n au loc: (1) x C HrT = 0 si (2)
dac r = x + e, cu x C si cu e (Z2)n, atunci HrT = HeT. Asadar, sindromul
depinde numai de erori si nu de cuvntul particular transmis.
Decodarea sindromului: Se calculeaz s = HrT. Dac sindromul s este nul,
atunci nu sunt erori si r se decodeaz ca r. Dac s 0 se genereaz toti vectorii
e posibili, de pondere 1 si pentru fiecare se calculeaz HeT. Se poate ntmpla ca
unul din rezulate s fie HeT = s si atunci se decodeaz r ca r e. Altminteri, se
continu cu generarea tuturor vectorilor cu ponderi 2, 3, , (d 1)/2. Operatia
de decodare decurge pentru cel mult
d1
1 + Cn1 + Cn2 + ... + Cn 2
cazuri. De observat c dac B compar pe r cu toate cuvintele de cod, este
necesar un timp de ordinul 2k deoarece |C| = 2k.

SISTEMUL McELIECE

Matricea G este generatoarea unui cod C [n, k, d] Goppa (aceasta este o clas de
coduri pentru care decodarea este facil), n = 2m, d = 2t + 1, k = n mt. S este o
matrice inversabil kk, P este o matrice de permutri nn si G = SGP.
Public: G
Privat: G, S, P
Criptare: x xG + e, pentru un vector aleator de pondere t
Decriptare: y D(y)
Se calculeaz y1 = yP1
Se decodeaz y1 ca y1 = x1 + e1 dac x1 C
Se calculeaz x0 din x0G = x1
Se calculeaz x = x0S1
Corectitudinea:
xG + e = x0S1SGP + e = x0GP + e = x1P + e = y1P e1P + e = y e1P + e = y

Un cod Hamming [7, 4, 3]

Matricea
1 0 0 0 1 1 0
G = 0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1

54
genereaz un cod [7, 4, 3]. Se aleg matricile
0 1 0 0 0 0 0
1 1 0 1 0 0 0 1 0 0 0
, P = 1 0 0 0 0 0 0
0 0 0 0 0 0 1
S = 10 10 10 1
1 0 0 1 0 0 0 0
1 1 0 0
0 0 0 0 0 1 0
0 0 0 0 1 0 0
Matricea generatoare public este
1 1 1 1 0 0 0
G' = 1 1 0 0 1 0 0
1 0 0 1 1 0 1
0 1 0 1 1 1 0
Textul n clar x = [1 1 0 0] este criptat ca y = xG + e = [0 1 1 0 1 1 0] cu e un
vector eroare [0 0 0 0 1 0 0].

CURBE ELIPTICE: MOTIVATIE

O ntrebare fundamental este dac o ecuatie cu coeficienti ntregi


F(x1, , xn) = 0 (1)
are solutii ntregi; F este un polinom n variabilele x1, , xn cu coeficienti
ntregi.
1. Are ecuatia (1) solutii ntregi?
2. Are ecuatia (1) solutii rationale?
3. Numrul solutiilor ntregi este finit sau infinit?
4. Numrul solutiilor rationale este finit sau infinit?
O ecuatie n dou variabile F(x, y) = 0 reprezint o curb n plan. Se caut
metode geometrice-aritmetice pentru a afla solutiile.

ECUATII LINIARE

ax + by = c, a, b, c Z

Ecuatia are o solutie ntreag dac si numai dac gcd(a, b)|c cel mai mare
divizor comun al coeficientilor a, b divide pe c si dac are o solutie, are o
infinitate de solutii.
Multimea solutiilor rationale este infinit.

55
EXEMPLE

2x + 3y = 13 are o solutie ntreag, si anume x = 2, y = 3. Are si solutii


rationale. Pentru fiecare valoare rational a lui x, valoarea corespunztoare a
lui y este (13 2x)/3.
4x 6y = 13 nu are solutii ntregi deoarece gcd(4, 6) = 2, numr care nu-l
divide pe 13. Dar are solutii rationale.
Triplele pitagorice (x, y, z) sunt triple de intregi care satisfac ecuatia x2 + y2
= z2, de pild (3, 4, 5). Exist o echivalent cu rezolvarea ecuatiei x2 + y2 = 1
n numere rationale. Solutiile sunt
1 t2 2t
x= , y=
1+ t 2
1+ t2
Pentru n 3, ecuatia xn + yn = zn nu are solutii ntregi (conjectura lui
Fermat), ceea ce este echivalent cu a spune c ecuatia xn + yn = 1 nu are
solutii rationale pentru n 3.

ECUATII CONICE (PTRATICE)

Ecuatiile de acest tip au forma general


ax2 + by2 + cxy + dx + ey + f = 0, cu a, b, c, d, e, f Q
O transformare de variabile (rotatie si translatie) aduce aceast form la o
ecuatie familiar a unei elipse sau a unei hiperbole (c = d = e = 0). Dac se
caut intersectia unei drepte rationale cu conica, punctele de intersectie sunt sau
nu rationale?

Rezolvarea sistemului de ecuatii, a conicei si a dreptei, trece prin rezolvarea


unei ecuatii ptratice care are dou solutii. n plus, dac una din solutii este
rational la fel este si cealalt (radicalul din formul are ca rezultat un numr
rational).
Dac se cunoaste un punct rational, de pild O, iat cum se stabilesc toate
celelalte. Pentru un punct P oarecare, se traseaz linia OP si se determin
intersectia P cu linia rational L. Dac P este rational atunci P este rational si
reciproc.
ntrebare: Cum se face testarea pentru un punct rational?
Se converteste ecuatia la forma ei omogen (prin schimbarea x = X/Z, y = Y/Z)
aX2 + bY2 = cZ2 (2)

56
Teorem (Legendre): Exist un ntreg m care depinde de a, b, c astfel nct
ecuatia (2) s aib o solutie ntreag netrival dac si nuai dac aX2 + bY2 cZ2
mod m are o solutie n Zm*.
Exemplu: Se poate aplica metoda pe cercul C: x2 + y2 = 1. Se consider punctul
(x, y) mobil pe cerc. Se ia linia L care leag (0, 0) de (x, y). Aceast linie
intersecteaz axa y n (0, t).

Ecuatia dreptei L este L: y = t(1 + x). Deoarece punctul se afl pe dreapt si pe


cerc, 1 x2 = y2 = t2(1 + x2) ceea ce produce ecuatiile parametrice familiare
1 t2 2t
x= , y=
1+ t 2
1+ t2
n plus, t este rational dac si numai dac x si y sunt rationale, ceea ce d toate
punctele rationale de pe cerc.

ECUATII CUBICE

Este vorba de ecuatii de forma


ax3 +by3 +cx2y + dxy2 + exy + fx + gy + h = 0
cu coeficienti rationali. Weierstrass a artat c prin utilizarea unor transformri
potrivite (proiective, care este posibil a schimba coeficientii) ecuatia devine
echivalent cu forma normal Weierstrass

57
y2 = x3 + ax2 + bx + c
Admitnd c rdcinile ei sunt distincte ea este expresia unei curbe eliptice.
Polinomul x3 + ax2 + bx + c are fie o rdcin real si dou complexe, fie toate
trei rdcinile reale.

DE UNDE NUMELE DE CURB ELIPTIC?

Se consider elipsa
x2 y 2
+ =1
a 2 b2
Rezult
b2 x2
y 2 = b2
a2
Prin diferentiere se obtine
b2 x
yy =
a2
si mai departe
b4 x2 b4 x2
( y ) 2 = =
a4 y2 a4 b2 x2
b2 2
a

Lungimea elipsei este dat de formula


1 k 2 x2 1 k 2 x2
1 + ( y ) 2 dx = 1 x2
dx = (1 x 2 )(1 k 2 x 2 )
dx (3)

cu constanta k aleas potrivit.


Se noteaz g(x) = (1 x2)(1 k2x2). Se consider curba u2 = g(x). Prin utilizarea
transformrilor

58
1 u
, y= xu=
2
x=
x 1 ( x 1) 2
u2 = g(x) devine u2 = f( x ) asa nct
1 1 1
f ( x ) = g ' (1) x 3 + g ' ' (1) x 2 + g ' ' ' (1) x + g ' ' ' ' (1)
2 6 24
si ecuatia (3) devine
1 k 2 x2
+ = u dx
2
1 ( y ) dx

SINGULARITTI

Pentru o curb eliptic y2 = x3 + ax2 + bx + c se defineste F(x, y) = y2 f(x). O


singularitate a curbei eliptice este un punct (x0, y0) pentru care
F F
= = 0
x ( x0 , y 0 ) y ( x0 , y 0 )
F F
Deoarece = f ' ( x) si = 2 y , singularittile apar cnd 2y = f(x) = 0.
x y
Dar y = 0 dac si numai dac f(x) = 0. Asadar, singularittile apar n x0 dac
f(x0) = f(x0) = 0, adic acolo unde x0 este rdcin comun pentru f(x) si pentru
derivata sa, ceea ce nseamn c f(x) are pe x0 ca rdcin cel putin dubl.
Urmeaz c y2 = f(x) are o singularitate dac si numai dac f(x) are o rdcin
dubl. Situatia aceasta este prezentat n cele dou grafice alturate, pentru
singularittile y2 = x2(x + 1) si y2 = x3.

Cubicele singulare sunt usor de analizat deoarece ele au o comportare similar


cu cea a curbelor conice. Se traseaz axa de de simetrie si se proiecteaz
punctele rationale.
Uzual se admite c curbele eliptice nu au singularitti.
Dac o curb eliptic este y2 = f(x), cu f(x) = x3 + ax2 + bx + c, atunci f(x) are
forma
f(x) = (x )(x2 + x + )
Urmeaz c

59
Afirmatie: Dac dou rdcini ale unei curbe eliptice sunt rationale, tot
rational este si a treia.

Mai general, dac P, Q sunt puncte rationale pe curba eliptic, tot rational este
si punctul P*Q nftisat n figur. Aceast operatie nu defineste nc un grup
(pentru c nu este asociativ) dar poate fi una de acest gen dac se adaug un
punct suplimentar O.

FORMAREA UNUI GRUP

Prin adugarea unui punct rational O la infinit se poate determina o structur de


grup.

De observat c dac P = Q atunci se traseaz linia tangent la curba eliptic n P


si se formeaz punctul P + P la fel ca mai devreme.
Demonstratia faptului c este vorba de un grup este continut n figurile
urmtoare (cu exceptia asociativittii care este ceva mai complicat).

60
PROPRIETTILE GRUPULUI

Se dovedeste c este vorba de un grup abelian si c operatia + este


independent de alegerea punctului O.
Acum se poate rspunde la ntrebarea initial.
Teorem (Mordel): Grupul punctelor rationale ale unei curbe eliptice
nesingulare este generat infinit.
n practic, punctul O se determin utiliznd putin geometrie proiectiv. Se
presupune c O este un punct la infinit care este un punct rational pentru cubic.
Acum se pot dezvolta formule explicite pentru operatiile n grup.

61
FORMULE EXPLICITE

Se pot dezvolta formule explicite pentru punctul P1 + P2 n functie de punctele


P1 = (x1, y1) si P2 = (x2, y2). Se consider curba eliptic y2 = x3 + ax2 + bx + c si
se noteaz P1*P2 = (x3, y3), P1 + P2 = (x3, y3).
Se presupune c (x1, y1) (x2, y2). Ecuatia dreptei prin P1, P2 este y = x + v, cu
= (y2 y1)/(x2 x1) si v = y1 x1 = y2 x2. Prin substitutie se obtine y2 = (x
+ v)2 = x3 + ax2 + bx + c, adic x3 + (a 2)x2 + (b 2v)x + (c v2) = 0 = (x
x1)(x x2)(x x3), deoarece toate trei punctele (x1, y1), (x2, y2), (x3, y3) satisfac
aceast ecuatie.
Dac se face multiplicare si se egaleaz termenii se obtine n mod trivial x3 = 2
a x1 x2, y3 = x3 + v.
Asadar, se obtin formulele
(x1, y1) * (x2, y2) = (2 a x1 x2, (x3 x1) + y1)
(x1, y1) + (x2, y2) = (2 a x1 x2, (x1 x3) y1)
Pentru P1 = P2 sunt necesare formule diferite. Se stabileste tangenta la curba
eliptic n P1 (care este si panta a tangentei n P1) prin diferentierea implicit a
relatiei y2 = x3 + ax2 + bx + c. Rezult = y = f(x)/2y.
Problem deschis: Nu este cunoscut vreun algoritm de determinare a
existentei sau inexistentei unui punct rational pe o curb eliptic.
Exemplu: Se consider curba eliptic y2 = x3 + 17. Ea are dou puncte rationale
P1 = (1, 4) si P2 = (2, 5).
8 109 8 109
P1 * P2 = , si P1 + P2 = ,
9 27 9 27
Tangenta n P1 are panta = 3/8. Cu formula de mai devreme se obtine 2P1 =
137 2651
, .
64 512

EVITAREA SINGULARITTILOR

Fie E(a, b) grupul abelian al punctelor rationale ale curbei eliptice


y2 = f(x) = x3 + ax + b

62
S-a artat c o curb eliptic nu are puncte singulare dac si numai dac f(x) nu
are rdcin dubl.
A avea rdcin dubl echivaleaz cu a avea f(x) = f(x) = 0, adic
x3 + ax + b = 3x2 + a = 0 (4)
Urmeaz c x = a/3. Dar totodat x4 + ax2 + bx = 0. Asta implic a2/9 + a(a/
2

3) + bx = 0 si, n consecint, x = 2a2/9b.


Prin substituire n (4) se obtine 3(2a2/9b)2 + a = 0 si n cele din urm 4a3 + 27b2
= 0.
Teorem: Curba y2 = x3 + ax + b este nesingular dac si numai dac 4a3 +
27b2 0.

CURBE ELIPTICE PESTE Zp

Aproape toate cele spuse mai sus se potrivesc si cmpurilor finite.


Fiind dat un numr prim p, o curb eliptic peste Zp este o congruent y2 = x3 +
ax + b mod p la care se adaug un punct O la infinit astfel nct conditia de
nesingularitate 4a3 + 27b2 0 mod p s fie satisfcut.
Fiind date punctele P1 = (x1, y1) si P2 = (x2, y2) pe curba eliptic se defineste
P1 + P2 = (2 x1 x2, (x1 x3) y1)
cu
y2 y1
x x pentru P1 P2
= 2 2 1

3 x1 + a pentru P1 = P2
2 y1
Se consider totodat c (x1, y1) + (x1, y1) = O si P1 + O = O + P1 = P1. Acesta
este un grup abelian denumit Ep(a, b).
Acceasi idee se potriveste si cmpului finit GF(pn).

PROPRIETTI

Fie p un numr prim mai mare dect 3.


Hasse: p + 1 2 p < |Ep(a, b)| < p + 1 + 2 p
Schoof: Exist un algoritm eficient ca O(log8p) pentru a calcula |Ep(a, b)|.
Waterhouse: Pentru orice ntreg n care
p+12 p <n<p+1+2 p
exist a, b < p astfel nct |Ep(a, b)| = n. n plus, ordinele grupurilor de curbe
eliptice sunt uniform distribuite n acest interval.
Teorem: |Ep(a, b)| Z n1 Z n 2 , pentru n1, n2 astfel nct n2|n1 si n2|(p 1).
Exemplu: Se consider curba eliptic y2 = x3 + x + 6 peste Z11*. Pentru a
determina punctele din E, se ia fiecare punct din Z11, se calculeaz x3 + x + 6 si
apoi se rezolv ecuatia y2 x3 + x + 6 mod 11.

63
Calculul acesta cere evaluarea de radicali modulo 11. Exist o formul explicit
pentru aceasta deoarece 11 3 mod 4. De fapt rdcinile ptrate ale unui rest
ptratic r sunt r(11 + 1)/4 r3 mod 11. Pentru calcul se completeaz tabelul
urmtor:

x x3 + x + 6 QR11? y
0 6 nu
1 8 nu
2 5 da 4, 7
3 3 da 5, 6
4 8 nu
5 4 da 2, 9
6 8 nu
7 4 da 2, 9
8 9 da 3, 8
9 7 nu
10 4 da 2, 9

Curba eliptic are pe ea 13 puncte (x, y), incluznd si punctul de la infinit. Fiind
de ordinul prim 13 ea nssi trebuie s fie un grup ciclic. De pild, dac se ia
generatorul = (2, 7).
Puterile lui , de pild (2, 7) + (2, 7), pot fi calculate dup cum urmeaz. Se
evalueaz mai nti :
= (322 + 1)(27)1 mod 11 = (23)1 mod 11 = 24 mod 11 = 8
Asadar x3 = 82 2 2 = 5 mod 11 si y3 = 8(2 5) 7 = 2 mod 11. Decurge de
aici c (2, 7) + (2, 7) = (5, 2).
Apoi, (2, 7) + (2, 7) + (2, 7) = 2(2, 7) + (2, 7) = (5, 2) + (2, 7).

SISTEME DE CRIPTARE CU CURBE ELIPTICE

Algoritmul ElGamal se poate aplica la un subgrup ciclic Z n1 al lui Ep(a, b), dar
factorul lui de dezvoltare este 4 (fat de 2 peste Zp). n plus, spatiul textelor n
clar (plaintext space) const din punctele din Ep(a, b) si nu exist metod
convenabil de a genera n mod determinist puncte din Ep(a, b).
Se ia o curb eliptic Ep care contine un subgrup ciclic H = Z n1 cu algoritm
discret intractabil. Spatiul textelor n clar este Z p Z p si spatiul textelor cifrate
* *

(ciphertext) este E p Z p Z p .
* *

Un program care poate fi utilizat n timp real poate fi gsit la adresa:


http://www-fs.informatik.uni-
tuebingen.de/~reinhard/krypto/English/4.4.en.html

64
Sistemul Menezes Vanstone:
Public: , Ep
Privat: a astfel ca = a
Criptare: Se alege aleator k Z n1
(x, k) E(x, k) = (y0, y1, y2):
y0 = k, (c1, c2) = k
x = (x1, x2), y1 c1x1 mod p i y2 c2x2 mod p
Decriptare: ( )
(y0, y1, y2) D(y0, y1, y2) = y1c1 1 mod p, y2c2 1 mod p cu
ay0 = (c1, c2).

FACTORIZARE, PRIMALITATE, GRUPURI

Se d un ntreg n pentru a fi testat dac este prim si un grup G ( Z n ) , pentru


k

un anumit k. Pentru x G se defineste |x|G ca ordinul lui x n G.


Premis: Exist o multime de ntregi SG astfel nct x G (| x |G SG ) n
este prim.
Testul de primalitate: x G (| x |G SG ) ?
Se poate testa |x|G = m astfel:
m
|x|G = m xm = e & ( prim p | m)( x p e) .
Astfel, testarea primalittii lui n se reduce la factorizarea lui m SG. De obicei,
factorii primi pentru orice m SG sunt cunoscuti.
Grupurile de curbe eliptice En(a, b) sunt utilizate pentru testarea primalittii si
pentru factorizarea lui n.

65

S-ar putea să vă placă și