Sunteți pe pagina 1din 200

Introducere n Criptografie

Funcii Criptografice, Fundamente


Matematice i Computaionale







Bogdan Groza


Prefa

Prezenta lucrare, extinde lucrarea autorului publicat n 2007 sub titlul
Introducere n criptografia cu cheie public
1
. Aceast extensie, care refolosete o
bun parte din textul anterior era necesar din dou motive: pe de o parte textul
anterior cerea mbuntiri i actualizri, pe de alt parte o carte dedicat strict
criptografiei cu cheie public adresa o ni pentru care era greu de gsit o
audien potrivit (cel puin n cadrul universitii n care autorul i desfoar
activitatea didactic).
Astfel, prezenta lucrare completeaz lucrarea anterioar cu detalii
privitoare la criptografia cu cheie simetric, funcii hash, coduri de autentificare,
noiuni de baz despre curbe eliptice, etc., oferind o imagine mult mai complet
asupra criptografiei. Nu n ultimul rnd, prezenta carte este vzut de autor ca
fiind prima dintr-o serie de trei volume ce formeaz un compendiu de criptografie
i securitatea informaiei. Volumul 1 este dedicat funciilor criptografice i
fundamentelor matematice i computaionale, n timp ce volumul 2 va fi dedicat
protocoalelor criptografice i aplicaiilor practice iar volumul 3 unor concepte
avansate n criptografie. Orizontul de timp n care se dorete publicarea celorlalte
dou volume este 5-10 ani.
Trecnd mai bine de trei decenii de la intrarea criptografiei n domeniul
academic, exist multe cri de referin ale domeniului i desigur ne putem
ntreba de ce este util nc o carte, aceasta. n contextul actual nu pare fezabil a
preda criptografie dup niciuna din crile mari ale domeniului, n special la
nivelul studiilor de licen. Poate acest lucru ar deveni fezabil n civa ani, sau
poate este parial fezabil i acum la ciclul master, dar din punctul de vedere al
autorului este necesar mult mai mult seriozitate din partea studenilor care
particip. Altfel riscm a preda criptografie doar pentru 5% din audien. Mijloace
moderne de predare (computerul i proiectorul) fac flexibil predarea i ne ofer
posibilitatea de a modela o program de studii dup cum dorim. Dar foliile de curs
n format de proiectare conin doar informaie fragmentar, incomplet, punnd
studentul la a rezolva un puzzle prin citirea lor. Desigur poate fi un puzzle mai
greu sau mai simplu n funcie de priceperea autorului, la fel i cartea, dar n orice
caz cartea ofer informaii mai fluente, mai uor de interpretat i este n general
un instrument de nvare mai bun.

1
Bogdan Groza, Introducere in Criptografia cu Cheie Publica, Editura Politehnica, 2007.
3
Nu n ultimul rnd, o carte ofer viziunea personal a autorului asupra
domeniului i poate chiar modul n care autorul l-a nvat. Cu riscul de a nu fi cea
mai bun cale, n lipsa unui criteriu pentru aceasta, trebuie s ne asumm puterea
de a spune ce avem de spus.
Existena unor cri n limba romn, ntr-un moment n care limba
tiinei la nivel mondial este engleza, nu poate fi justificat prin prisma noiunii de
cultur tiinific naional, deoarece tiina nu are o naie, ea este n cele din
urm a tuturor (matematica nu difer ntre continente). Dar, existena unor cri
n limba naional, devine peste ani dovada incontestabil a existenei unui
nvmnt naional de tradiie n acel domeniu. Pentru a conserva partea pozitiv
din identitatea nvmntului romnesc, este bine s avem i cri de studiu n
limba romn.



Timioara, 2012


Cuprins


1 INTRODUCERE ............................................................................................................................. 9
1.1 SECURITATEA INFORMAIEI, DEFINIREA PROBLEMEI ..................................................................... 9
1.2 INCIDENTUL CA MOTIVAIE, EVOLUIA CAUZELOR INCIDENTELOR DE LA INTERNE LA
EXTERNE 11
1.3 CADRUL DE LUCRU I ECUAIA DE BAZ (VULNERABILITATE + ADVERSAR = RISC DE
SECURITATE) ........................................................................................................................................................ 13
1.4 ADVERSARI (CU CINE NE CONFRUNTM) ....................................................................................... 14
1.5 OBIECTIVE DE SECURITATE (INTE ALE ADVERSARULUI) ........................................................... 15
1.6 VULNERABILITI (CE EXPLOATEAZ ADVERSARUL) .................................................................. 19
1.7 ATACURI ASUPRA CANALULUI DE COMUNICARE (CAPABILITI ALE ADVERSARULUI) ........... 20
1.8 CRIPTOGRAFIA I ROLUL EI ............................................................................................................... 23
1.9 GARANIA OFERIT DE CRIPTOGRAFIE: NIVELUL DE SECURITATE ............................................. 25
1.10 SCURT ISTORIC AL CRIPTOGRAFIEI .................................................................................................. 27
1.11 ISTORIA CRIPTOGRAFIEI CU CHEIE PUBLIC N PARTICULAR ....................................................... 31
1.12 O PRIVIRE DE ANSAMBLU ASUPRA FUNCIILOR CRIPTOGRAFICE ................................................ 34
1.13 DEZIDERATE N SISTEMELE CRIPTOGRAFICE CONTEMPORANE .................................................. 36
1.14 LITERATUR RELEVANT N DOMENIU........................................................................................... 37
1.15 S NU SUPRAEVALUM CRIPTOGRAFIA: SECURITATEA ESTE UN PROCES, NU UN PRODUS ...... 39
2 SCHEME DE CRIPTARE CU CHEIE SIMETRIC (CRIPTAREA CU CHEIE SECRET)
40
2.1 DEFINIIE I PROPRIETI ............................................................................................................... 40
2.2 CLASIFICARE: CODURI BLOC I CODURI STREAM ............................................................................ 43
5
2.3 PRINCIPII CONSTRUCTIVE: SUBTITUIA I TRANSPOZIIA, CIFRU PRODUS ............................... 44
2.4 MAINA ENIGMA ................................................................................................................................ 44
2.5 REEAUA FEISTEL .............................................................................................................................. 46
2.6 CRIPTOSISTEMUL DES ...................................................................................................................... 47
2.7 3DES ................................................................................................................................................... 51
2.8 CRIPTOSISTEMUL AES ...................................................................................................................... 51
2.9 MODURI DE OPERARE A CRIPTRILOR SIMETRICE: ECB, CBC CM I ALTELE ......................... 53
2.10 TIPURI DE ATAC ASUPRA FUNCIILOR DE CRIPTARE .................................................................... 58
3 FUNCII CRIPTOGRAFICE FR CHEIE: FUNCII HASH ............................................. 60
3.1 DEFINIIE I PROPRIETI ................................................................................................................ 60
3.2 FUNCII HASH FRECVENT UTILIZATE N PRACTIC: MD5 I FAMILIA SHA ............................. 61
3.3 NOUA GENERAIE DE FUNCII HASH SHA3................................................................................... 65
4 CODURI DE AUTENTIFICARE A MESAJELOR (HASH-URI CU CHEIE) ...................... 66
4.1 DEFINIIE I PROPRIETI ............................................................................................................... 66
4.2 CODURI MAC N PRACTIC: CBC-MAC I H-MAC ..................................................................... 69
5 GENERATOARE DE NUMERE ALEATOARE I PSEUDO-ALEATOARE ...................... 71
5.1 GENERATORUL LINEAR CONGRUENIAL ......................................................................................... 72
5.2 GENERATOARE LFSR (FIBONACCI I GALOIS) ............................................................................. 73
5.3 GENERATORUL BLUM-BLUM-SHUB ................................................................................................ 74
5.4 GENERATOARE HARDWARE .............................................................................................................. 75
6 SCHEME DE CRIPTARE CU CHEIE ASIMETRIC (CRIPTAREA CU CHEIE PUBLIC)
76
6.1 DEFINIIE I PROPRIETI ............................................................................................................... 76
6.2 TAXONOMIE A CRIPTOSISTEMELOR CU CHEIE PUBLIC ................................................................ 79
6.3 SCHIMBUL DE CHEIE DIFFIE-HELLMAN-MERKLE ........................................................................ 81
6.4 SECURITATEA SCHIMBULUI DE CHEIE DIFFIE-HELLMAN-MERKLE ........................................... 82
6.5 CRIPTAREA ASIMETRIC RSA .......................................................................................................... 84
6.6 SECURITATEA CRIPTOSISTEMULUI RSA ......................................................................................... 85
6.7 CRIPTAREA ASIMETRIC RABIN ....................................................................................................... 90
6.8 SECURITATEA CRIPTOSISTEMULUI RABIN ...................................................................................... 92
6.9 CRIPTAREA ASIMETRIC EL-GAMAL ............................................................................................... 93
6.10 SECURITATEA CRIPTOSISTEMULUI ELGAMAL ............................................................................... 94
6.11 CRIPTOSISTEMUL GOLDWASSER-MICALI ....................................................................................... 95
6.12 SCHIMBUL DE CHEIE DIFFIE-HELLMAN FOLOSIND CURBE ELIPTICE (ECDH) ............................ 97
6.13 LIPSA SECURITII N VARIANTELE TEXT-BOOK ALE ALGORITMILOR DE CRIPTARE ............ 99
6.14 VARIANTE CONTEMPORANE ALE CRIPTOSISTEMOR CLASICE DE CRIPTARE CU CHEIE PUBLIC
(REZISTENA IND/NM-CCA2) ..................................................................................................................... 102
6.15 FUNCIA DE PADDING OAEP ......................................................................................................... 105
6.16 FUNCIA DE PADDING PKCS .......................................................................................................... 108
7 SCHEME DE SEMNARE DIGITAL ..................................................................................... 109
7.1 PROPRIETI I CLASIFICARE: SEMNTURI CU APENDICE I CU RECUPERAREA MESAJULUI 109
7.2 SEMNTURA DIGITAL RSA (VARIANTA TEXT-BOOK) ............................................................. 112
7.3 VARIANTE SIGURE N PRACTIC PENTRU SEMNTUR RSA: FDH, PSS, PKCS V.1.5 ........ 115
7.4 SEMNTURA DIGITAL RABIN ....................................................................................................... 118
7.5 SEMNTURA BLIND BAZAT PE RSA ......................................................................................... 120
7.6 SEMNTURA DIGITAL ELGAMAL ................................................................................................. 121
7.7 SEMNTURA DIGITAL DSA........................................................................................................... 122
7.8 SEMNTURA DIGITAL FOLOSIND CURBE ELIPTICE (ECDSA) ................................................. 124
7.9 TIPURI DE ATAC ASUPRA SEMNTURILOR DIGITALE .................................................................. 124
8 FUNDAMENTE MATEMATICE ............................................................................................ 126
8.1 ELEMENTE DE TEORIA PROBABILITILOR ................................................................................ 126
8.2 ELEMENTE DE ALGEBR: GRUPURI, INELE I CMPURI .............................................................. 129
7
8.3 ELEMENTE DE TEORIA NUMERELOR ............................................................................................ 130
8.3.1 Mulimea de resturi Zn ........................................................................................................ 130
8.3.2 Teorema Chinez a Resturilor .......................................................................................... 131
8.3.3 Teoremele lui Fermat i Euler .......................................................................................... 133
8.3.4 Ordinul unui element i generatori n Zn ..................................................................... 135
8.3.5 Congruene polinomiale n Zn .......................................................................................... 136
8.3.6 Reziduuri cvadratice n Zn ................................................................................................. 137
8.3.7 Numrul de reziduuri cvadratice n Zn ......................................................................... 139
8.3.8 Simbolurile Legendre i Jacobi ......................................................................................... 141
8.3.9 Utilizarea reziduurilor cvadratice n criptanaliz ................................................... 144
8.3.10 Curbe Eliptice .................................................................................................................... 146
9 FUNDAMENTE COMPUTAIONALE ................................................................................. 148
9.1 ELEMENTE DE TEORIA COMPLEXITII ....................................................................................... 151
9.2 ELEMENTE DE TEORIA INFORMAIEI ........................................................................................... 154
9.3 CALCULUL OPERAIILOR ELEMENTARE ........................................................................................ 156
9.4 CALCULUL C.M.M.D.C. I INVERSELOR MULTIPLICATIVE ............................................................ 161
9.5 CALCULUL RDCINII DE ORDIN E CU RELATIV PRIM LA ORDINUL GRUPULUI ........................ 163
9.6 CALCULUL RDCINII PTRATE ..................................................................................................... 164
9.7 CALCUL RDCINII PTRATE PENTRU MODULE BLUM............................................................... 166
9.8 VERIFICAREA APARTENENEI LA MULIMEA REZIDUURILOR CVADRATICE ............................ 167
9.9 PROBLEMA FACTORIZRII NTREGI (IFP) .................................................................................... 169
9.9.1 Algoritmi de factorizare clasici ........................................................................................ 172
9.9.2 Algoritmi de factorizare dedicai .................................................................................... 174
9.9.3 Algoritmi de factorizare generali .................................................................................... 176
9.10 PROBLEMA LOGARITMULUI DISCRET (DLP) ............................................................................... 178
9.11 GENERAREA NUMERELOR PRIME ................................................................................................... 179
9.12 MULTIPLICAREA UNUI PUNCT DE PE O CURB ELIPTIC ............................................................ 182
10 BIBLIOGRAFIE ......................................................................................................................... 183
11 ANEXE ........................................................................................................................................ 191




1 INTRODUCERE

"Cryptography is communication in the
presence of adversaries" R. Rivest.


Ce este securitatea informaiei i care este rolul criptografiei, acestea sunt
dou ntrebri la care dorim s rspundem. Evitnd o explicaie tip dicionar care
nu ar sluji scopului acestei cri, vom ncerca s conturm un rspuns mai larg n
cadrul unui context general. Vom face aceasta n cadrul obiectivelor de securitate
i al adversarilor la adresa acestora, un cadru ce poate ncadra funciile
criptografice ca obiecte ce au un scop precis. Continum apoi cu o scurt privire
istoric asupra criptografiei i o taxonomie a funciilor criptografice. Nu n ultimul
rnd, facem o trecere n revist a literaturii relevante n domeniu.
1. 1 SECURITATEA INFORMAIEI, DEFINIREA PROBLEMEI
Un instrument trebuie vzut n primul rnd n cadrul contextului din care
face parte, criptografia reprezint instrumentul de baz n domeniul mai larg al
securitii informaiei. ntr-un secol n care informaia este indispensabil,
asigurarea securitii acesteia devine o preocupare de prim rang. Aceasta se
datoreaz faptului c informaia este lipsit de valoare atta timp ct atributele ei
de securitate nu sunt asigurate. n mare, securitate nseamn protecie n faa unei
poteniale ameninri iar n ceea ce privete informaia ameninrile pot varia de
la simpla alterare neintenionat a acesteia pn la accesarea de ctre persoane
neautorizate sau distrugerea ei.
Securitatea informaiei este domeniul care se ocup de studiul
mecanismelor de protecie a informaiei, n scopul asigurrii unui nivel de
ncredere n informaie, i este corect a spune c nivelul de ncredere n
informaie depinde de nivelul mecanismelor de securitate care i garanteaz
protecia n faa riscurilor care apar asupra securitii ei. Tehnicile de asigurare a
securitii informaiei adreseaz informaie indiferent de natura ei i este
important de remarcat c informaia are valoare n special atunci cnd este
subiect al schimbului sau procesrii, deci tocmai atunci cnd este vulnerabil n
10 Funcii Criptografice, Fundamente Matematice i Computaionale
faa unor pri ce nu pot fi considerate de ncredere. Astfel, fr a exclude valoarea
informaiei stocate, valoarea informaiei crete evident n aciunea de schimb sau
de procesare i este evident c o informaie complet izolat nu conduce la riscuri
de securitate foarte mari dar n acelai timp nici nu poate aduce foarte multe
beneficii avnd n general valoare sczut.
n diverse materiale pot fi gsite numeroase definiii i denumiri asociate
domeniului mai larg al securitii informaiei. Este relevant definiia din
glosarului lucrrii [26] unde Securitatea Sistemelor Informatice (INFOSEC
Information System Security) este definit dup cum urmeaz:
Securitatea Sistemelor Informatice (INFOSEC) nseamn protecia
sistemelor informatice mpotriva accesului neautorizat sau a modificrii
informaiei, fie stocat, procesat sau n tranzit, i mpotriva refuzului de servicii
ctre utilizatorii autorizai sau asigurrii de servicii ctre utilizatorii neautorizai,
incluznd acele metode necesare detectrii, documentrii i respingerii acestor
ameninri.
Securitatea informaiei este un domeniu care provoac practicantul la un
mod de a gndi. Pentru a defini specificaiile de securitate ale unui sistem, trebuie
s existe o imagine suficient de clar asupra sistemului i pericolelor ce planeaz
asupra sa. O imagine devine clar pe msur ce apar ct mai multe ntrebri i
desigur rspunsuri. Nu exist nici un diagnostic general i nici o reet universal
pentru a face securitate. Exist totui cteva ntrebri relevante n faa crora
trebuie s dm un rspuns nainte de a proiecta o potenial soluie de securitate,
iat cteva dintre acestea, conform lucrrii [31]: cum ajunge adversarul la sistem?
Care sunt obiectivele de securitate ce trebuie asigurate n sistem? Care este
nivelul de securitate la care trebuie s rspund sistemul? Desigur perspectivele
deschise de aceste ntrebri nu sunt nici pe departe exhaustive i nici suficient de
detaliate. De exemplu, poate c fr a introduce problematici noi, putem nuana
aceste trei ntrebri prin altele cum ar fi [3]: ce trebuie protejat? Care sunt
ameninrile i vulnerabilitile? Care sunt implicaiile n cazul distrugerii sau
pierderii echipamentului? Care este valoarea echipamentului pentru organizaie?
Ce poate fi fcut pentru a minimiza expunerea la pericole? O expunere succint a
problemelor de evaluare a ameninrii i riscurilor se gsete n [3].
Este de remarcat c n cadrul rspunsului la prima ntrebare putem
distinge dou situaii: situaia n care adversarul ajunge personal la sistem i
situaia n care ajunge pe cale electronic la sistem. Pentru prima situaie soluiile
de tratare se ncadreaz n categoria soluiilor de securitate fizic. Pentru cea de
a doua situaie vorbim de securitate electronic, tehnicile criptografice joac un
rol fundamental n acest context. Este de remarcat c aceste dou tipuri distincte
de soluii de securitate pot adesea s se contopeasc, de exemplu un lact ataat
1. Introducere 11
unei ui este un dispozitiv de securitate fizic, dar unui astfel de lact i se poate
ataa un dispozitiv de autentificare bazat pe tehnici criptografice, cum ar fi de
exemplu un smart-card. Acest nivel de detaliere este suficient pentru prezentul
capitol, dar n practic nu este nici pe departe complet deoarece n cazul
securitii electronice exist de asemenea multe alte moduri n care adversarul
poate ajunge la sistem i problema se complic n continuare (de exemplu poate
ajunge de pe un suport de date, sau prin intermediului unei reele etc.).
1. 2 INCIDENTUL CA MOTIVAIE, EVOLUIA CAUZELOR
INCIDENTELOR DE LA INTERNE LA EXTERNE
O caracteristic interesant pentru adoptarea practicilor bune de
securitate (i a dezvoltrii tehnicilor criptografice n general) este faptul c
aceasta este n general motivat de incidente, de cele mai multe ori incidente cu
urmri negative. ntr-adevr, de cele mai multe ori, lumea evit s adopte msuri
de securitate sub pretexte de forma: aa ceva nu se poate ntmpla. Astfel, din
comoditate, lumea evit de exemplu s instaleze un software de securitate pe un
smart-phone, software care ar permite n cazul furtului trimiterea unui simplu
SMS ce ar porni un sistem de localizare sau tergerea datelor ce au caracter
personal. Odat ce telefonul este furat, posesorul regret acest lucru. Este nevoie
aadar de incident pentru a contientiza riscul de securitate. Aici exemplele sunt
numeroase, multe lucruri sunt aparent greu crezut, probabil i nainte de ziua
neagr 9/11 puini ar fi crezut c un zgrie-nori ar putea fi lovit i dobort de un
avion deturnat de teroriti.
Dac n perioada 1982-2000 exista un echilibru ntre sursele incidentelor
de securitate, aa cum este sugerat n Figura 1.1 i), acestea provenind n esen
din trei direcii distincte: externe, interne, accidentale; n perioada 2001-2003 pe
lng faptul c numrul de atacuri crete semnificativ i acest echilibru este
pierdut, marea parte a problemelor de securitate ncepnd s fie datorate
factorilor externi, lucru sugerat n Figura 1.1 ii) [19] .
Explicaia acestui fapt vine exact din deschiderea natural a sistemelor
ctre utilizarea reelelor publice i utilizarea componentelor standard impuse de
pia. Deschiderea sistemului (adversarul are acces la sistem) este datorat
faptului c nu mai exist perimetre securizate n sensul de izolare informatic.
Chiar deconectarea de la Internet nu garanteaz acest lucru deoarece un USB
drive infectat odat introdus poate infecta sistemul izolat (aceasta pare s fi fost
calea de intrare a viermelui Stuxnet n centralele de prelucrare a uraniului din
Iran).
12 Funcii Criptografice, Fundamente Matematice i Computaionale



i) ii)
FIGURA 1.2. CDEREA DE ENERGIE ELECTRIC DIN AUGUST, 2003: I) NAINTE II)
DUP (COPYRIGHT: POZELE APARIN DOMENIULUI PUBLIC I SUNT FCUTE DE U.S.
NATIONAL OCEANIC AND ATHMOSPHERIC ADMINISTRATION )


i) ii)
FIGURA 1.1. CAUZELE INCIDENTELOR DE SECURITATE I) N PERIOADA 1982-2000 II)
N PERIOADA 2001-2003
1. Introducere 13
Dispariia securitii prin obscuritate este datorat standardelor
(adversarul cunoate sistemul). Securitatea prin obscuritate nu este o soluie
deoarece ea expune sistemul n faa oamenilor din interior care pot fi uor de
corupt sau cumprat (n cele din urma oamenii din interior sunt angajai cu salarii
modeste dar care cunosc detalii critice).
Blackout-ul din August 2003 (cdere de energie electric pe coasta de Est
a continentului american) cu toate c nu este rezultatul direct al unui atac
informatic este un exemplu clar al pagubelor pe care un astfel de incident poate s
le aduc: o arie de 24.000 km
2
a fost afectat, 265 de centrale electrice au fost
afectate din care 22 erau nucleare, 50 de milioane de oameni au fost afectai din
care peste 21 milioane din New York. Figura 1.2 surprinde imaginea din satelit
asupra acestui incident. Pierderile totale sunt estimate la 6 miliarde de dolari. Una
dintre cauzele cderii a fost o problem n sistemele informatice care nu au
declanat semnalul de alarm fcnd astfel ca luarea de msuri pentru a preveni
cderea s ntrzie pn cnd a fost prea trziu. Desigur, este doar o problem de
timp pn cnd adversari, precum micrile extremiste de exemplu, ar putea
exploata vulnerabiliti de securitate criptografic pentru a cauza pagube
similare. Acest lucru este recunoscut n mod curent n special n Statele Unite n
sectoarele de distribuie a gazului i electricitii aa cum arat lucrri de ultim
or.

1. 3 CADRUL DE LUCRU I ECUAIA DE BAZ
(VULNERABILITATE + ADVERSAR = RISC DE SECURITATE)
Existena unei vulnerabiliti i a unui potenial adversar implic existena
unui risc de securitate, aceasta este o lege nescris a securitii informaiei pe
care datorit importanei o vom scrie ca ecuaie:
Vulnerabilitate + Adversar = Risc de Securitate
Cadrul general de lucru este ilustrat n Figura 1.3. Entitile participante la
comunicare, numite simplu participani, n general notate cu A i B, schimb
succesiv rolul de emitor i receptor. Se distinge pe lng acestea prezena unui
adversar, care obtureaz canale nesigure de comunicare (prin acestea nelegnd
canale publice care pot fi accesate de ctre adversar), i prezena unei pri de
ncredere, aceasta fiind util n special n scenariile cu chei secrete unde rolul
prii de ncredere este de a distribui chei de sesiune ntre participani. De
asemenea ne raportm la un cadru de timp. Este posibil i prezena unor canale
sigure de comunicare, prin acestea nelegnd n general canale cu securitate
14 Funcii Criptografice, Fundamente Matematice i Computaionale
fizic dar pentru a nu ncrca figura le vom omite. n principiu orice element al
imaginii poate s lipseasc, mai puin un participant care este ntotdeauna
necesar i adversarul n faa cruia dorim s asigurm diverse obiective de
securitate.



1. 4 ADVERSARI (CU CINE NE CONFRUNTM)
Entitatea care comite un atac o vom numi n limbaj de securitate adversar
(mai rar se folosete termenul de atacator, i mai rar cel de intrus). Lista
potenialilor adversari poate fi un punct de pornire n evaluarea riscurilor. Cu
privire la acetia intereseaz cteva coordonate cum ar fi: resursele de calcul,
resursele financiare, resursele intelectuale, motivaia, amploarea i natura
pagubelor care le pot cauza. Fr a face o enumerare exhaustiv a acestora i fr
Parte de incredere
CANAL PUBLIC (NESIGUR)
CANAL PUBLIC (NESIGUR)
Adv
A
B



FIGURA 1.3. CADRUL DE LUCRU: CLIENI ONETI (A, B), ADVERSAR (ADV), PARTE DE
NCREDERE I TIMP.
1. Introducere 15
a insista pe detaliile cu privire la coordonatele anterior amintite, conform [72]
aceasta ar fi o potenial list:
i) Hackerii dispun de resurse de calcul i financiare sczute i atac sisteme
n general doar motivai de dorina de a brava sau pentru amuzament.
ii) Clienii unei reele au putere de calcul limitat i sunt motivai de
interese economice, de exemplu: fraudarea valorii facturate n reeaua termo-
electric etc.
iii) Comercianii dispun de putere de calcul modest i de resurse financiare
apreciabile avnd interes n aflarea sau manipularea secretelor pentru ctigarea
avantajelor financiare.
iv) Crima organizat are putere de calcul modest i putere financiar
ridicat avnd interes n alterarea parametrilor la care funcioneaz sistemele
pentru ctigarea unor avantaje financiare.
v) Teroritii dispun de putere ridicat de calcul i financiar fiind motivai
de raiuni politico-religioase cu scopul de a rspndii panic i pagube de ordin
financiar.
vi) Guvernele statelor adversare, dispun de putere de calcul i financiar
ridicat, i mai mult, de operatori pricepui i antrenai cu experien n domeniu.
Scopul acestora este n general de a afecta infrastructurile n atacuri complexe de
natur fizic sau electronic.
vii) Oamenii din sistem sunt persoane care dein informaii de detaliu i au
acces la elementele cheie n funcionare, sunt motivai n general de interese sau
nemulumiri de ordin salarial/financiar.
viii) O combinaie a variantelor de mai sus este cel mai periculos tip de
adversar; n practic este posibil orice combinaie i aceasta are cele mai mari
anse de succes ntr-un atac.
1. 5 OBIECTIVE DE SECURITATE (INTE ALE ADVERSARULUI)
n ceea ce privete obiectivele de securitate care trebuie asigurate n
sistem acestea variaz ntr-un diapazon destul de larg. n ceea ce privete
criptografia n general, i nu securitatea n ansamblu, putem distinge patru
obiective majore de securitate care sunt recunoscute de orice autor n domeniu:
confidenialitate, integritate, autenticitate i non-repudiere.
Confidenialitatea nseamn asigurarea faptului c informaia rmne
accesibil doar prilor autorizate n acest sens. Acesta este cel mai vechi obiectiv
al criptologiei. n rndul necunosctorilor este nc larg rspndit opinia c
noiunea de criptografie este sinonim cu cea de confidenialitate. Sigur opinia
16 Funcii Criptografice, Fundamente Matematice i Computaionale
este eronat pentru c criptografia se ocup i de asigurarea obiectivelor ce sunt
enumerate n continuare i care nu au nici o legtur cu pstrarea secret a
informaiei. n ceea ce privete asigurarea acestui obiectiv prin tehnici
criptografice, el este ndeplinit cu ajutorul funciilor de criptare. n general
datorit eficienei se folosesc funcii simetrice (cu cheie secret), dar scenarii
practice conduc n general la orchestrarea acestora cu funcii asimetrice (cu cheie
public).
Integritatea se refer la asigurarea faptului c informaia nu a fost
alterat pe parcursul transmisiei sau de ctre un posibil adversar. Funciile
criptografice utilizate n acest scop sunt funciile hash care fac ca modificarea unui
singur bit de informaie s poat fi detectat. Menionm c n principiu este
greit utilizarea funciilor de criptare simetrice i asimetrice n acest scop,
instrumentul criptografic dedicat fiind funciile hash (i codurile MAC sau
semnturile digitale n contextul mai larg al autentificrii). Desigur, exist i
funcii simetrice i asimetrice de criptare care pot asigura i integritatea dar
alegerea lor pentru acest scop trebuie fcut cu precauie.
Autentificarea are dou coordonate distincte: autentificarea entitilor i
autentificarea informaiei. Autentificarea entitilor se refer la existena unei
garanii cu privire la identitatea unei anume entiti. Autentificarea informaiei se
refer la determinarea sursei de provenien a informaiei n mod implicit
aceasta garanteaz i integritatea informaiei deoarece dac informaia nu mai are
integritate, deci un potenial adversar a alterat-o, atunci nici sursa ei de
provenien nu mai este aceeai. ns doar integritatea informaiei nu implic i
autenticitatea ei deoarece nu garanteaz identitatea sursei de provenien.
Autentificarea se realizeaz n general prin protocoale care pot avea la baz ntreg
arsenalul de funcii criptografice: funcii hash, MAC, criptri simetrice i
asimetrice, semnturi digitale. Autentificarea include de cele mai multe ori i un
factor temporal care implic o garanie cu privire la momentul de timp la care
entitatea de care este legat a depozitat-o (deoarece n absena unei garanii
temporale, informaia putea fi replicat i depus de orice alt entitate pierzndu-
se astfel o valen a autentificrii).
Non-repudierea (sau nerepudierea) previne o entitate n a nega o aciune
ntreprins (aciune materializat desigur n transmisia unei informaii). Aceasta
nseamn c dac la un moment dat o entitate neag ca ar fi emis o anume
informaie, entitatea care a primit informaia respectiv poate demonstra unei
pri neutre c informaia provine ntr-adevr de la entitatea n cauz. Non-
repudierea se realizeaz prin utilizarea semnturilor digitale.
Este util de spus, n special din considerente istorice n domeniu, c acum
mai bine de 20 de ani n securitatea informaiei trei obiective au fost considerate
1. Introducere 17
ca fiind fundamentale, acestea formeaz aa numita triad CIA: confidenialitate,
integritate, disponibilitate (CIA adic Confidentiality, Integrity, Availability).
Recent ns, n 2002, Donn Parker a propus extinderea acestora la ase obiective
care poart numele de Hexada Parkerian: Confidenialitate, Posesie sau Control,
Integritate, Autenticitate, Disponibilitate, Utilitate (Confidentiality, Possession or
Control, Integrity, Authenticity, Availability, and Utility). De asemenea, la fel de
bine cunoscut i vehiculat este tetrada PAIN care provine de la
Confidenialitate, Disponibilitate-Autenticitate, Integritate, Non-repudiere
(Privacy, Availlability-Authentication, Integrity, Non-repudiation).
Desigur c
aceste obiective nu sunt
o sintez complet a
obiectivelor de
securitate existente n
practic. Exist desigur
i alte obiective, ceva
mai particulare dar la fel
de relevante, care
trebuie s le amintim.
Rmne o problem deschis dac obiectivele urmtoare pot sau nu s fie
derivate din cele amintite anterior, util pentru aceast lucrare este s le
enumerm i s le explicm succint n cele ce urmeaz.
Actualitatea informaiei se refer la asigurarea faptului c informaia
primit este actual (proaspt). Acest aspect poate fi interpretat n dou moduri:
pe de o parte se refer la faptul c informaia poate expira dup o anumit
perioad de timp, pe de alt parte se refer la faptul c un posibil adversar ar
putea schimba ordinea n care pachetele cu informaie ajung la destinaie (diverse
scenarii pot fi imaginate). Se realizeaz n general prin utilizarea parametrilor
variani n timp: amprente temporale (time stamps), numere aleatoare (nonce),
contoare (counter), etc.
Anonimitatea se refer la mpiedicarea identificrii identitii unei
entiti care a solicitat un serviciu. Spre exemplu, poate fi extrem de util n
tranzacii bancare cnd nu se dorete identificare persoanei care sau ctre care se
face o plat, sau n servicii de e-mail pentru pstrarea anonimitii expeditorului,
etc. Se realizeaz fie prin protocoale, fie prin funcii criptografice adaptate acestui
scop. De exemplu exist un puternic segment de cercetare n zona funciilor de
criptare cu renegare (deniable encryption), prin care se poate cripta informaie al
crei coninut poate fi schimbat la decriptare, fcnd astfel renegabil orice
informaie criptat (nu exist pentru aceasta soluii eficiente pn n prezent).

Secolul XXI
Tetrada PAIN
Triada CIA
Hexada Parkeriana
Secolul XX


FIGURA 1.4. EVOLUIA OBIECTIVELOR DE SECURITATE
18 Funcii Criptografice, Fundamente Matematice i Computaionale
Autorizarea se refer la controlul accesului i la prevenirea intrrii
agenilor neautorizai n sistem. Relaia ntre obiectivul autentificrii entitilor i
controlul accesului const n aceea c cel din urm obiectiv se construiete n
general pe primul (e normal s fie necesar o metod de a autentifica entitatea
nainte de a-i permite accesul) dar obiectivele sunt totui distincte. Aceasta
deoarece autorizarea nseamn utilizarea unui mecanism de autentificare i a
unei politici de securitate pentru a decide dreptul de acces al unor entiti asupra
unor resurse.
Disponibilitatea se refer la asigurarea faptului c un serviciu este
accesibil atunci cnd un utilizator legitim l solicit. Asigurarea acestui obiectiv
presupune c o entitate neautorizat nu poate bloca accesul unei entiti
autorizate la serviciile sistemului. n acest caz ns nu intr n discuie problemele
legate de autorizarea accesului, anterior amintite, ci cele de disponibilitate a
resursei n sine. Aceasta presupune a evita problemele de epuizare a resurselor
sistemului din cauza utilizrii nelegitime a acestora. Atacurile asupra acestui
obiectiv sunt cele de tip Denial of Services (DoS) i cauzeaz att pagube
economice dar i de siguran n funcionare.
Protecia prilor tere se refer la evitarea transmiterii pericolului
asupra prilor cu care exist o legtur. De exemplu atacul asupra unei anume
componente IT nu va defecta i alt component, sau din punct de vedere
economic: cderea unei componente datorit unei erori de manipulare nu va duce
la discreditarea productorului, etc.
Revocarea se refer la posibilitatea de a revoca un drept oferit. Poate cel
mai relevant exemplu n legtur cu criptografia este posibilitatea de a revoca un
certificat de cheie public de ctre entitatea care l-a emis.
Trasabilitatea sau urmrirea unui sistem se refer la posibilitatea de a
reconstrui istoricul funcionrii sistemului pe baza nregistrrilor, de exemplu
nregistrarea comenzilor relevante, a persoanelor care le-au lansat etc. Obiectivul
este relevant n determinarea cauzelor eventualelor problemelor de funcionare,
deci este utilizat n diagnosticare.
Nici aceast list de obiective nu este complet, aproape fiecare carte n
domeniu prezint liste mai mult sau mai puin complete, iar prezentarea lor
exhaustiv poate fi n sine subiectul unei cri. Totui aceste obiective pot crea o
imagine parial asupra a ceea ce trebuie protejat n sisteme informatice i asupra
modului n care criptografia contribuie la aceasta.

1. Introducere 19
1. 6 VULNERABILITI (CE EXPLOATEAZ ADVERSARUL)
Vulnerabilitatea este un punct slab al unui sistem care poate fi exploatat
de un potenial adversar. Vis-a-vis de vulnerabiliti, trebuie reinut regula
comun enunat n crile de securitate c un sistem nu este mai sigur dect cea
mai vulnerabil component a sa.
Vulnerabilitile unui sistem informatic pot fi clasificate conform [31] n:
vulnerabiliti de proiectare (de exemplu proiectarea greit a unui protocol de
comunicare), vulnerabiliti de implementare (de exemplu overflow),
vulnerabiliti fundamentale (de exemplu alegerea unor parole slabe). n [62]
sunt evideniate cteva vulnerabiliti ce duc frecvent la cderea protocoalelor de
securitate: vulnerabilitatea unei primitive criptografice ce poate fi amplificat de
protocolul de securitate (este important de subliniat c multe funcii criptografice
au vulnerabiliti ascunse, iar pe de alt parte chiar i folosirea celei mai solide
funcii criptografice n mod necorespunztor poate duce la pierderea total a
securitii), asumarea unor garanii de securitate care sunt supra-specificate sau
prost nelese (poate cea mai comun astfel de eroare este utilizarea unei funcii
de criptare i prezumia faptului c aceasta va asigura i faptul c datele nu vor fi
alterate), neatenia n aplicarea unor principii generale aplicabile unei clase mai
largi de primitive (de exemplu criptarea folosind un mecanism cu cheie public a
unei informaii de entropie sczut care poate fi uor aflat cu un atac de tip
forward-search).
Dac lum ca studiu de caz sistemele industriale, sunt relevant exemplele
din lucrarea [72] unde ntre deficienele de securitate n sisteme SCADA se
enumer urmtoarele: lipsa definiiilor formale, lipsa unui buget de securitate
incremental, absena expertizei necesare n domeniul securitii, incapacitatea de
a instala uor tehnologia necesar, necesitatea educaiei cu privire la bunele
practici n vederea asigurrii securitii. Sigur toate aceste deficiene nu sunt uor
de acoperit i exist i recomandri concrete n vederea asigurrii securitii. De
exemplu lucrarea [88] indic 21 de pai pentru a asigura securitatea sistemelor
SCADA, ntre acetia muli au la baz utilizarea unor tehnici criptografice: de
exemplu pasul 5 se refer la eliminarea protocoalelor personalizate (custom) a
cror securitate se bazeaz pe obscuritatea protocolului (singura soluie care nu
se bazeaz pe obscuritatea protocolului este criptografia) iar pasul 21 se refer la
introducerea unor politici de securitate i cursuri pentru ca personalul s fie
contient de protejarea informaiei senzitive (inclusiv parolele care sunt un
ingredient criptografic). Nu n ultimul rnd exist i produse program destinate
asigurrii securitii n sisteme SCADA precum IntruShield de la McAfee. n topul
primelor 10 deficiene de securitate ale reelelor SCADA lucrarea (McAfee, 2007)
enumer: politici de securitate inadecvate, sisteme slabe de control ale reelelor,
20 Funcii Criptografice, Fundamente Matematice i Computaionale
proasta configurare a sistemelor, comunicare wireless neadecvat, autentificare
neadecvat la comunicare, lipsa mecanismelor de detecie i restricionare a
drepturilor de acces la sisteme de control, absena uneltelor pentru detecia i
raportarea activitilor anormale, utilizarea reelei pentru trafic neautorizat, lipsa
mecanismelor de detecie a erorilor ce pot conduce la epuizarea bufferelor, lipsa
mecanismelor de control a schimbului de software. Multe dintre aceste
ameninri au ca soluie utilizarea criptografiei, de exemplu ameninrile legate
de autenticitatea comenzilor i de controlul accesului. Iar potenialele atacuri
ncep s se diversifice de la o aplicaie la alta conducnd spre o palet relativ larg
de obiective de securitate ce trebuie asigurate.

1. 7 ATACURI ASUPRA CANALULUI DE COMUNICARE
(CAPABILITI ALE ADVERSARULUI)
Un atac este o agresiune asupra unui obiectiv de securitate. Exist o gam
foarte larg de atacuri i diverse clasificri ale acestora n funcie de diverse
criterii. De exemplu n [31] acestea sunt clasificate n: atacuri nedirecionate ce
constau n infiltrri n sistem n scopul exploatrii oricrei vulnerabiliti gsite i
atacuri direcionate ce au un scop precis care const n exploatarea unei
anumite pri a sistemului (de exemplu extragerea unei anumite informaii, furtul
unei parole etc.). O clasificare ceva mai clasic a atacurilor, preferat de
majoritatea crilor de securitate cum ar fi [80] este n: atacuri pasive i atacuri
active.
Atacurile pasive sunt citirea mesajelor i analiza de trafic. Diferena
ntre cele dou atacuri este c la analiza de trafic nu este necesar citirea efectiv
a mesajelor transmise ci doar observarea unor modele n comunicare, de exemplu
ce natur are informaia trimis, e vorba de un download pentru un film, o
convorbire telefonica prin Internet, etc. Este important de remarcat c aceste
atacuri sunt violri ale obiectivului numit confidenialitate.
Atacurile active sunt cele de: modificarea informaiei vehiculate ntre
dou entiti care presupune alterarea detectabil sau nu a informaiei,
impostura (impersonarea sau mascaradarea) care nseamn a pretinde o alt
identitate dect cea real, retransmisie care nseamn a transmite o informaie
care a fost transmis anterior de un participant i ntreruperea legturii care
nseamn efectiv tierea canalului de comunicare (adic Denial Of Services - DoS).
Este important de remarcat, din punct de vedere al obiectivelor de securitate, c
primele trei atacuri sunt o agresiune a obiectivului de autenticitate iar ultimul o
agresiune a disponibilitii.
1. Introducere 21
Toate aceste atacuri se mai numesc i atacuri asupra canalului de
comunicare i pentru combaterea lor se folosesc cu succes n practic tehnici
criptografice. Figura 1.5 i Figura 1.6 prezint aceste atacuri.


Desigur, exist i alte atacuri asupra securitii unui sistem pentru a cror
contracarare nu se folosesc n general tehnici criptografice, ele fiind contracarate
prin alte mijloace. Exemple de cauze ale unor astfel de atacuri sunt: i) virui
informatici care duc n general la distrugerea software-ului prin infiltrare n
fiiere existente i fac imposibil funcionarea sistemului prin execuia unor
aciuni duntoare, ii) programe tip Cal Troian sunt programe folosite n scopul
obinerii accesului la anumite informaii, de exemplu aflarea parolelor n sisteme
de operare perimate gen Win98, iii) programe tip Vierme care sunt programe
care se propag automat fr controlul unui utilizator i n general afecteaz rata
de transfer a reelei (spre deosebire de virui nu se infiltreaz n fiiere existente).

CANAL PUBLIC (NESIGUR)
CANAL PUBLIC (NESIGUR)
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
CANAL PUBLIC (NESIGUR)
CANAL PUBLIC (NESIGUR)
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
*-+#
*-+#
*-+#
INTERCEPTAREA CONVERSATIILOR
ANALIZA DE TRAFIC
A
Adv
B
Adv
A
B

FIGURA 1.5. ATACURI PASIVE ASUPRA CANALULUI DE COMUNICARE
22 Funcii Criptografice, Fundamente Matematice i Computaionale

A
ASDF
ASDF
ASDF
CANAL PUBLIC (NESIGUR)
CANAL PUBLIC (NESIGUR)
ASDF
ASDF
ASDF
QWER
QWER
QWER
ASDF
ASDF
ASDF
CANAL PUBLIC (NESIGUR)
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
MODIFICAREA
IMPOSTURA
CANAL PUBLIC (NESIGUR)
CANAL PUBLIC (NESIGUR)
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
RETRANSMISIA
CANAL PUBLIC (NESIGUR)
CANAL PUBLIC (NESIGUR)
ASDF
ASDF
ASDF
?
ASDF
ASDF
ASDF
BLOCAREA CANALULUI DE COMUNICARE
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
B
B
B
B
A
Adv
A
A
Adv
Adv
Adv

FIGURA 1.6. ATACURI ACTIVE ASUPRA CANALULUI DE COMUNICARE
1. Introducere 23

Trebuie ns menionat c i mpotriva acestor atacuri, aparent imune la
msuri criptografice, ncep s fie utilizate tehnici criptografice. Un bun exemplu
de soluie de ultim or n care funcii criptografice sunt utilizate mpotriva
viruilor este utilizarea funciilor criptografice hash pentru a construi o amprent
a sistemului de operare (sau individual pentru fiecare fiier) i verificare la
bootarea de pe un dispozitiv extern dac imaginea curent a sistemului coincide
cu imaginea stocat n scopul detectrii unor poteniale modificri fcute de
virui.
1. 8 CRIPTOGRAFIA I ROLUL EI
Concluzia imediat a paragrafului anterior este aceea c riscurile de
securitate exist ca i consecin a unor vulnerabiliti n sistem i a unor
poteniali adversari acesta fiind un aspect natural i inevitabil n practic.
Riscurile de securitate, ca orice alte riscuri de altfel, trebuie acoperite cu garanii
de securitate. Atunci cnd obiectul manipulat este informaia singura, criptografia
este una din puinele garanii demonstrabile. Deci rolul acesteia este de a oferi
garanii n faa riscurilor de securitate ale informaiei.
Criptografia este comun utilizat ntr-o gam larg de aplicaii din zona:
instituiilor medicale, publice, private, bancare i chiar n cele mai comune
aplicaii pe care le folosim zi de zi: telefonie mobil, servicii de e-mail, editoare de
documente, etc.
Conform lucrrii de referin n domeniu [62] criptografia este definit ca
fiind studiul tehnicilor matematice referitoare la aspecte de securitatea informaiei
precum confidenialitate, integritate, autentificarea entitilor, autentificarea
provenienei datelor.
Totui o astfel de definiie nu este complet. Pe de o parte deoarece
criptografia nu este n totalitate matematic (chiar dac marea ei parte este), de
exemplu criptarea cuantic face mai mult apel la cunotine de fizic dect de
matematic sau implementarea criptografiei ine mai mult de tiina
calculatoarelor dect de matematic. Pe de alt parte pentru c nu ine cont de
fondul problemei. Ron Rivest a fcut o remarc pe ct de simpl pe att de
profund n ceea ce privete criptografia i aceast remarc poate fi considerat o
excelent definiie a criptografiei: criptografia nseamn comunicare n prezena
adversarilor. Orice comentariu la adresa remarcii lui Rivest este superfluu.
Din pcate definiia din dicionarul explicativ al limbii romne, DEX ediia
a II-a 1998, nu poate fi utilizat pentru clarificare deoarece este complet depit,
24 Funcii Criptografice, Fundamente Matematice i Computaionale
criptografia fiind definit ca: scriere secret cu ajutorul unui cod de semne
convenionale. Aceast descriere corespunznd stadiului domeniului de acum
cteva secole.
Domeniul criptografiei se ocup de construcia funciilor criptografice.
Diverse funcii criptografice vor fi descrise n capitolele urmtoare, iar pe moment
putem s ne formm o imagine intuitiv asupra unei funcii criptografice ca fiind o
funcie care depinde de un parametru numit cheie i se aplic unui mesaj
(plaintext) pentru a obine un mesaj criptat numit criptotext (ciphertext)
aceasta este ceea ce n principiu numim funcie de criptare. Totodat obiectivul
criptografiei este i cel de a construi inversa acestei funcii cu ajutorul creia din
criptotext alturi de cheie se poate recupera mesajul original aceasta fiind ceea
ce numim funcie de decriptare. Toate acestea sunt sugerate n Figura 1.7.
Subliniem c aceast imagine este doar intuitiv deoarece nu toate funciile
criptografice au cheie, i mai mult, nu toate funciile criptografice admit o invers.
Domeniul care are ca obiectiv recuperarea din criptotext a mesajului i a
cheii se numete criptanaliz i este ceea ce n limbaj comun numim spargerea
funciilor criptografice care din punct de vedere intuitiv poate fi vzut ca
inversarea acestora. Subliniem ns c n general a sparge o funcie criptografic
presupune aciuni mult mai simple dect inversarea ei, imaginea creat avnd din
nou doar valoare intuitiv. Criptografia i criptanaliza sunt cele dou ramuri ale
domeniului numit criptologie.

Evoluia criptografiei, i mai mult sau mai puin a oricrui alt domeniu,
poate fi vzut ca urmnd urmtorul drum: Teorie, Practic, Standarde. Fr a
asdf
asdf
asdf
asdf
...
*/A,
@4h
0gQ1
i7R1
... m=
c =
k =
h@6k
...
k =
h@6k
...
ALGORITM DE CRIPTARE
ALGORITM DE DECRIPTARE
asdf
asdf
asdf
asdf
...
m=

FIGURA 1.7. IMAGINE INTUITIV CU PRIVIRE LA CE NSEAMN CRIPTAREA I
DECRIPTAREA OBIECTIVE CONSTRUCTIVE ALE CRIPTOGRAFIEI.
1. Introducere 25
reduce rolul aplicaiilor practice i a standardelor care ne fac viaa mai uoar
este de remarcat c standardele acoper doar probleme care sunt implementate
practic, implementrile practice urmeaz doar probleme fundamentate teoretic n
prealabil iar teoria reprezint baza cea mai solid i consistent a domeniului. Mai
mult, soluiile de vrf ale domeniului se gsesc n teorie i doar rar n
implementrile practice, care trateaz n general aspecte demult cunoscute (de
exemplu curbele eliptice sunt utilizate n practic doar n ultimii ani, n ciuda
faptului c au fost propuse de Miller i Kobliz nc din 1985).

1. 9 GARANIA OFERIT DE CRIPTOGRAFIE: NIVELUL DE
SECURITATE
ntre ntrebrile din primul subcapitol enunam i o ntrebare cu privire la
nivelul de securitate (uneori numit nivel de ncredere). Nivelul de securitate
cuantific efortul computaional necesar spargerii unei funcii criptografice. Aa
cum remarc i autorii din [31] nivelul de securitate al unei primitive
criptografice este o funcie care scade odat cu timpul, aceasta datorndu-se att
creterii nivelului tehnologic ct i descoperiri unor noi atacuri asupra funciei. De
exemplu dac o informaie criptat folosind algoritmul DES (standard n criptarea
simetric ncepnd din 1976) putea oferi un nivel ridicat de ncredere n urm cu
30 de ani, astzi o astfel de informaie poate fi uor recuperat prin spargerea
codului n doar cteva zile pe o main de calcul actual.
Cerinele curente sunt n general definite prin intermediul standardelor.
n particular, pentru cazul tehnicilor criptografice, care sunt frecvent folosite
pentru asigurarea obiectivelor de securitate anterior amintite, exist standarde
pentru marea parte a funciilor criptografice i a dimensiunii cheilor pentru
acestea. De exemplu Guvernul USA prin documentaiile Federal Information
Processing Standards (FIPS) impune standarde pentru funcii hash, criptare
simetric, semntur digital; totui aceste standarde nu acoper nici pe departe
toate mecanismele. n Tabelul 1.1 sunt prezentate dimensiunile de chei
recomandate pentru civa algoritmi frecvent utilizai n practic. n Tabelul 1.2
sunt prezentate recompensele oferite de RSA-Security pentru spargerea unor chei
de RSA. Prin comparaie ntre cele dou tabele se poate observa c o cheie de RSA
de 1024 bii este recomandat de primul tabel pentru folosire pn n 2010, n
timp ce RSA-Security ofer o recompens de 100.000 dolari pentru spargerea
unei astfel de chei (n realitate costurile de spargere ale unei astfel de chei fiind de
sute sau mii de ori mai mari). Pentru a forma o imagine mai clar asupra
dimensiunii acestor numere, iat valoarea numrului RSA-640:
26 Funcii Criptografice, Fundamente Matematice i Computaionale
n=3107418240490043721350750035888567930037346022842727545
720161948823206440518081504556346829671723286782437916272838033
415471073108501919548529007337724822783525742386454014691736602
477652346609.
Cei doi factori primi ai si sunt:
p=1634733645809253848443133883865090859841783670033092312
181110852389333100104508151212118167511579,
q=1900871281664822113126851573935413975471896789968515493
666638539088027103802104498957191261465571.
Nivelul de securitate al funciilor criptografice este frecvent clasificat dup
urmtoarele categorii: securitate necondiionat, securitate bazat pe
complexitate, securitate demonstrat. Aceast clasificare nu se refer la o
cuantificare numeric a nivelului de securitate ci la garania pe care acesta se
bazeaz. ncercm s explicm aceste trei noiuni. Securitate necondiionat au
acele criptosisteme care nu pot fi sparte, indiferent de puterea de calcul de care
dispune adversarul (one-time pad este un astfel de sistem). Discutm de
securitate bazat pe complexitate atunci cnd nivelul de securitate este dat de
complexitatea (timpul de calcul ilustrat n numr de pai) al unui algoritm care
poate rezolva problema i acest algoritm este cea mai bun cale de a rezolva
problema. Noiunea de securitate demonstrabil (provable security) se folosete
cu privire la acele criptosisteme despre care se poate demonstra c spargerea lor
conduce la rezolvarea altei probleme care se tie c este greu de rezolvat.



Securitate
la nivel de
bii
AES
(dimensiunea
cheii)
RSA
(dimensiunea
modulului)
Curbe
eliptice
(valoarea
ordinului
bazei)
Durata de
utilizare
recomandat
80 x 1024 160-223 Pn n 2010
112 x 2048 224-255 Pn n 2030
128 128 3072 256-383 Dup 2030
192 192 7680 384-511 x
256 256 15360 512+ x
TABELUL 1.1. NIVELE COMPARATIVE DE SECURITATE (CONFORM CU [64]).
1. Introducere 27
De asemenea, n ceea ce privete nivelul de securitate se face uneori o
difereniere ntre dou nivele de securitate distincte numite: securitate slab
este securitatea care rspunde unor garanii n faa vulnerabilitilor ce pot fi
exploatate de adversari neinteligeni (cum ar fi erori introduse de mediu care pot
fi corectate prin mecanisme redundante precum codurile de corecie a erorilor
CRC) i securitate puternic care rspunde unor garanii n faa unor
vulnerabiliti ce pot fi exploatate de adversari inteligeni (precum omul, sau
agenii software inteligeni). Securitatea puternic este n mare msur asigurat
de tehnicile criptografice, dar nu exclusiv, de exemplu viruii informatici pot fi
considerai ageni inteligeni care exploateaz sisteme dar criptologia nu ofer
nc soluii prea bune n acest sens.



1. 10 SCURT ISTORIC AL CRIPTOGRAFIEI

n opinia autorului (dei poate nu numai deoarece opinii apropiate
transpar i din alte lucrri), n context istoric evoluia criptografiei poate fi
sistematizat n cadrul a patru etape: i) perioada antichitii, ii) perioada
medieval, iii) perioada premergtoare primului rzboi mondial pn dup cel de-
al doilea rzboi mondial i iv) perioada criptografiei moderne cu ncepere dup
cel de-al doilea rzboi mondial (poate mai exact n jurul anilor 70). Exist o
separare clar de mentalitate ntre cele 4 perioade aa cum vom ncerca pe scurt
s creionm n cele ce urmeaz.
Prima dintre ele, antichitatea, este caracterizat de sisteme criptografice
lipsite de fundamente matematice dar i de dorina vreunui automatism (adic o
procedur de a crea un model automat, de exemplu mecanic al criptrii). Din
RSA-576 RSA-640 RSA-704 RSA-768
10.000$
(factorizat n
decembrie 2003)
20.000$
(factorizat n
noiembrie 2005)
30.000$ 50.000$
RSA-896 RSA-1024 RSA-1536 RSA-2048
75.000$ 100.000$ 150.000$ 200.000$
TABELUL 1.2. RECOMPENSE (EXPIRATE) PENTRU SPARGEREA UNOR CHEI RSA [71].
28 Funcii Criptografice, Fundamente Matematice i Computaionale
aceast perioad dateaz codul Cezar (o simpl permutare a literelor) i cilindrul
grecesc skytale pe care era nfurat o band de hrtie pe care se scria textul
(decriptarea necesita desigur nfurare pe un cilindru similar ca diametru). ntr-
adevr aceste tehnici sunt n mic msura legate de criptografia modern.
Cea de a doua perioad, cea medieval, este distinct prin utilizarea
tehnicilor de substituie polialfabetic. n acestea o liter este substituit cu orice
alt liter fr repetiie evident, nu doar de una ca n cazul substituilor simple,
de exemplu permutarea din cadrul codului Cezar. Primul criptosistem
polialfabetic a fost descoperit de Leon Battista Alberti (14041472) i se numete
codul lui Alberti, aceasta este considerat prima mare descoperire n criptografie
de dup vremea lui Cezar. Cel mai elocvent exemplu este sistemul Vigenre dup
numele lui Blaise de Vigenre (15231596) dei el a fost descris prima dat de
criptograful italian Giovan Battista Bellaso (1505-?) n 1553 n timp ce Vigenre l
publica n 1586. Tot Bellaso este autorul tabelei de criptare cunoscut sub numele
de tabela Porta publicat de Giambattista della Porta (1535? 1615) n 1563 fr
a da credit lui Bellaso. n aceeai perioad desfoar activiti n criptografie i
Gerolamo (Geronimo) Cardano (15011576) al crui nume este cunoscut n
matematic pentru formulele de rezolvare a ecuaiilor ptratice, cubice i
cuartice; acesta introduce un sistem de criptare numit grila lui Cardano n 1550.
Mai multe detalii despre istoria criptografiei pot fi gsite n cartea lui Kahn [53].
Cea de a treia perioad, cea a rzboaielor mondiale i perioada
premergtoare, este remarcabil prin apariia unor principii, precum legile lui
Auguste Kerckhoffs (1835 1903) care sunt actuale chiar i azi i mai mult de att
a unor criptosisteme precum codul lui Gilbert Sandford Vernam (1890 1960)
care pn n ziua de azi rmne singurul cod cu securitate necondiionat
(cunoscut sub numele de codul Vernam, i n varianta uor modificat ca one-
time-pad).
Primele deziderate n construcia unui algoritm criptografic au fost
enunate de ctre Kerckhoffs n secolul XIX. Pe lng importana istoric, acestea
au relevan chiar i n zilele de astzi, iar n acest context considerm util
amintirea lor:
i) Sistemul trebuie s fie, dac nu teoretic imposibil de spart, atunci
imposibil de spart n practic.
ii) Compromiterea detaliilor cu privire la sistemul criptografic nu
trebuie s creeze probleme corespondenilor.
iii) Cheia trebuie s fie uor de memorat fr a fi notat i s fie uor de
schimbat.
1. Introducere 29
iv) Cifrul (mesajul criptat) trebuie s fie uor de transmis prin telegraf.
v) Aparatul de criptare trebuie s fie uor de purtat i operabil de ctre o
singur persoan.
vi) Sistemul trebuie s fie simplu, fr s necesite cunoaterea unei liste
lungi de reguli sau stres intelectual.



n perioada premergtoare celui de-al doilea rzboi mondial apare i
maina Enigma, un criptosistem despre care se poate spune c a jucat un rol
decisiv n unul din cele mai importante evenimente din istoria omenirii: cel de-al
doilea rzboi mondial. Aceast perioad include contribuiile fundamentale ale lui
Alan Mathison Turing (1912 1954) constructor al mainii care a spart Enigma (a


(i)







(ii)

FIGURA 1.8. COMUNICAII WIRELESS (I) IERI (N TIMPUL CELUI DE AL DOILEA
RZBOI MONDIAL) I AZI (II) (COPYRIGHT: POZELE DE LA I) AU FOST ALESE DIN
DOMENIUL PUBLIC)
30 Funcii Criptografice, Fundamente Matematice i Computaionale
nu se confunda cu maina Turing, o descoperire fundamental a acestuia care
reprezint poate prima abstractizare a unei maini de calcul moderne). Alan
Turing rmne recunoscut ca printe al tiinei calculatoarelor i inteligenei
artificiale.


n unele prezentri istorice se face o separare ntre perioada
premergtoare rzboiului (perioada lui Kerckhoffs i Vernam) i perioada celui
de-al doilea rzboi mondial. Aici am decis s le grupm deoarece descoperirile din
ambele par s joace la unison n dezvoltarea criptografiei moderne. ntr-adevr
ns exist i raiuni pentru a le separa, deoarece n mod cert descoperirile din
perioada celui de-al doilea rzboi mondial au avut un impact semnificativ asupra
evoluiei omenirii i nu doar a criptografiei. Nu este de mirare c cel de-al doilea


(i)


(ii)
FIGURA 1.9. MAINI CRIPTOGRAFICE: (I) IERI (MAINA ENIGMA) I (II) AZI (SMART-
CARD)
1. Introducere 31
rzboi mondial a dus la dezvoltarea criptografiei, deoarece rolul de baz n soarta
rzboiului a fost jucat de submarine i avioane, dou arme care depind de
comunicare wireless, comunicare uor de fcut (fr s necesite o infrastructur
pentru mediul de transmisie, nu exist cablu, ci doar aer) dar care este expus
adversarilor (oricine aude ce se vorbete). n Figura 1.8 sugerm evoluia
comunicailor wireless din mediul militar ctre cel al societii de consum. Mediul
wireless este unul dintre principalele motoare de dezvoltare a securitii, evident
datorit fragilitii mediului n faa adversarilor.
Criptografia modern ncepe n opinia multora cu Claude Elwood Shannon
(1916 2001) printe al domeniului teoriei informaiei i care marcheaz intrarea
criptografiei n era criptografiei matematice. Poate un alt nceput al criptografiei
moderne ar putea fi vzut n codul lui Horst Feistel i naterea criptografiei cu
cheie public datorat lui Diffie-Hellman-Merkle. Desigur ns vorbim de un
continuum, aa c nu este uor a trage o linie exact acolo unde ncepe
criptografia modern i poate nici nu este aa de relevant. Relevant este c odat
cu descoperirea criptografiei cu cheie public, criptografia trece dintr-un domeniu
preponderent militar, ntr-un domeniu academic, al universitilor i grupurilor
de cercetare.

1. 11 ISTORIA CRIPTOGRAFIEI CU CHEIE PUBLIC N PARTICULAR
Cu certitudine istoria criptografiei cu cheie public i merit propriul ei
capitol. Aceasta deoarece, am spus i subliniem, nceputul ei marcheaz trecerea
criptografiei din domeniul preponderent militar din care fcea parte anterior n
domeniul public, academic.
Criptografia cu cheie public s-a nscut ca domeniu din necesitatea de a
rezolva dou probleme fundamentale n securitate: i) transmisia de informaie
pe un canal nesigur ntre doi participani care nu au un secret partajat prealabil
i ii) semnarea digital a informaiei n scopul asigurrii non-repudierii
acesteia.
Este foarte simplu de neles de ce criptarea cu cheie secret, numit i
criptare simetric, nu poate fi folosit pentru atingerea acestor deziderate. Aa
cum a fost sugerat n Figura 1.7 cu privire la criptarea cu cheie secret se poate
observa c aceeai cheie, numit cheie secret, este folosit pentru criptare i
decriptare. Astfel pentru ca doi participani s poat comunica n condiii de
securitate este strict necesar ca ei s fii schimbat n prealabil o cheie lucru care
impune existena anterioar a unui canal sigur de comunicare. Dar n practic de
cele mai multe ori interaciunile sunt spontane i avem de a face cu participani
32 Funcii Criptografice, Fundamente Matematice i Computaionale
care nu au beneficiat n prealabil de un canal sigur de comunicare fiind astfel
imposibil existena unui secret partajat prealabil. Criptarea cu cheie public,
sau criptarea asimetric, poate rezolva acest neajuns. Aceasta deoarece ntr-un
sistem de criptare cu cheie public criptarea i decriptarea se fac cu chei distincte,
i astfel cheia de criptare, numit i cheie public, poate fi trimis pe un canal
nesigur deoarece intercepia ei nu poate duce la decriptarea unui mesaj criptat cu
aceasta. n acelai timp doar posesorul legitim al cheii de decriptare, numit i
cheie privat, este cel care poate recupera din criptotext mesajul original. n
Figura 1.10 este sugerat mecanismul de criptare i decriptare cu cheie asimetric.



Conceptul de criptosistem cu cheie public i utilitatea lui n atingerea
acestor obiective a fost publicat de Diffie i Hellman n 1976. n fapt ns
descoperirea conceptului de criptare cu cheie public este descoperit de Ralph
Merkle puin nainte, dar aa cum spune Hellman: Diffie, Rivest, Shamir, Adleman
i eu am avut norocul de a primi rapid recenzii ale lucrrilor noastre, i astfel au
aprut naintea contribuiilor fundamentale ale lui Merkle (n prefaa de la cartea
lui Yan [87]). Diffie i Hellman ns eueaz n a propune o soluie pentru
semntura digital i singura lor propunere este schimbul de cheie Diffie-Hellman
care poate fi utilizat n scopul criptrii asimetrice pentru rezolvarea criptrii cu
cheie public. Doi ani mai trziu, n 1978, Rivest, Shamir i Adleman descoper
criptosistemul denumit RSA, dup numele autorilor, care poate fi utilizat pentru
rezolvarea ambelor probleme: criptare asimetric i semntur digital. n 1979
Rabin public un criptosistem similar cu RSA care difer doar la valoarea
asdf
asdf
asdf
asdf
...
*/A,
@4h
0gQ1
i7R1
... m=
c =
pk = pub!1c
...
sk = pr1v@t3
...
ALGORITM DE CRIPTARE
ALGORITM DE DECRIPTARE
asdf
asdf
asdf
asdf
...
m=


FIGURA 1.10.CRIPTAREA CU CHEIE PUBLIC (CRIPTAREA ASIMETRIC).
1. Introducere 33
exponentului utilizat i care are securitatea echivalent problemei factorizrii
ntregilor (pn n prezent o astfel de echivalen nu se poate demonstra n ceea
ce privete RSA-ul). Doar n 1983 ElGamal descoper c inclusiv logaritmii
discrei pe a cror dificultate se baza securitatea schimbului de cheie propus de
Diffie i Hellman pot fi utilizai pentru construcia unei scheme de semnturi
digitale. n 1985 Miller i Koblitz propun utilizarea curbelor eliptice n
criptosistemele lui Diffie-Hellman i ElGamal, practic problema logaritmului
discret peste grupuri de ntregi este transpus n problema logaritmului discret
peste curbe eliptice principiul criptosistemelor rmnnd ns acelai. n 2002,
Hellman a propus ca schimbul de cheie descoperit n 1976 s fie numit Diffie-
Hellman-Merkle (poate c inventatorul criptografiei cu cheie public este totui
Ralph Merkle). Acestea ar fi cele mai semnificative momente din istoria veche a
criptografiei cu cheie public.
Relativ recent, n 1997, a fost fcut public informaia c serviciile
secrete britanice erau n posesia sistemului RSA cu 5 ani nainte ca el s fie
descoperit i publicat de Rivest et al., n 1973, autorul fiind Clifford Cocks angajat
al UK Intelligence Agency. Acelai lucru este valabil i cu privire la schimbul de
cheie Diffie-Hellman, descoperit n 1974 de serviciile secrete britanice i anume
de ctre Malcolm J. Williamson. Acestea sunt ns doar episoade din istoria
ascuns a criptografiei, istorie care este lipsit de o inut tiinific i care nu
poate fi dect condamnat avnd n vedere faptul c n esen s-a opus unui
progres natural.
n prezent exist o palet larg de funcii de criptare cu cheie public,
numit i criptare asimetric. Acestea pot fi mprite n dou mari categorii dup
cele dou mari probleme pe care se bazeaz (aceast clasificare nu este
exhaustiv deoarece exist i alte probleme pe care se pot construi criptosisteme
cu cheie public, doar c acestea nu prezint eficiena necesar n practic): i)
criptosisteme cu cheie public bazate pe dificultatea factorizrii ntregilor (au
ca punct de plecare algoritmul RSA [67]) i ii) criptosisteme cu cheie public
bazate pe dificultatea logaritmului discret (au ca punct de plecare schimbul de
cheie Diffie-Hellman [29] i semntura digital ElGamal [33] precum i extensiile
acestora peste grupurile formate de curbe eliptice propuse de Koblitz i Miller
[63]).
Mai exist desigur i alte momente marcante n evoluia criptografiei cu
cheie public care trebuie amintite deoarece vom discuta construcii legate de
acestea n capitole urmtoare. Goldwasser i Micali descriu ideea de securitate
semantic n 1982, Dolev, Dwork i Naor descriu conceptul de non-maleabilitate
n 1991, Bellare i Rogaway introduc modelul oracolelor aleatoare 1995, i
tehnica de padding OAEP pentru a produce criptosisteme rezistente n faa unor
34 Funcii Criptografice, Fundamente Matematice i Computaionale
adversari activi. n 1998 Bellare, Desai, Pointcheval i Rogaway traseaz i
demonstreaz primele relaii ntre noiunile de securitate pentru criptosisteme cu
cheie public, Shoup demonstreaz n 2001 c OAEP nu are securitatea susinut
de Bellare i Rogaway, Fujisaki, Okamoto, Pointcheval i Stern arat c RSA-OAEP
este sigur, Canneti, Goldreich i Halevi arat c modelul ROM este nesigur n 1996
(n 2002 apare versiunea de jurnal a tezei) rmnnd deschis problema gsirii
unui model mai bun. Lista numelor relevante n criptografia cu cheie public nu
este nici pe departe complet i rmne desigur deschis. n seciunile urmtoare
urmeaz ca aceste realizri s fie explicate, aici a fost un bun prilej de a le pune
succint ntr-un cadru istoric.
1. 12 O PRIVIRE DE ANSAMBLU ASUPRA FUNCIILOR
CRIPTOGRAFICE
Nu este deloc simplu a fixa o terminologie n acest domeniu strin
oarecum de limba romn. Vorbim de funcii criptografice, de exemplu funcii de
criptare, funcii de semnare digital, sau alternativ n loc de funcie folosim
termenul de algoritm, deci algoritm criptografic, algoritm de criptare, etc. n
general ns pentru a asigura operaiile necesare avem nevoie de perechi de
funcii (algoritmi), de exemplu avem nevoie de o funcie de criptare dar i de una
de decriptare, mai mult chiar i de o funcie de generare a cheii. Din acest motiv
vorbim de sisteme criptografice, prin acestea desemnnd o colecie de una sau
mai multe funcii. De exemplu un sistem criptografic cu cheie secret este colecie
de trei funcii: o funcie de generare a cheii, o funcie de criptare i o funcie de
decriptare. n englez ns, mai frecvent dect termenul de sistem se folosete
termenul scheme, de exemplu vorbim de symmetric encryption scheme desemnnd
colecia de trei algoritmi anterior menionai. La fel exist asymmetric encryption
scheme i digital signature scheme. Pentru uniformitate cu terminologia n englez,
vom folosi termenul de schem criptografic i n particular schem de
criptare simetric, schem de criptare asimetric i schem de semntur
digital pentru a desemna un sistem format din unul sau mai muli algoritmi care
asigur funcionalitile necesare (criptare, decriptare, semnare, etc.). Se folosete
de asemenea frecvent n criptografie noiunea de funcie one-way pentru a
desemna o funcie care este greu (imposibil n limite rezonabile de timp) de
inversat din punct de vedere computaional. Un caz particular l joac funciile
one-way cu trap, adic acele funcii care devin eficient de inversat dac se
cunoate o informaie suplimentar numit trap. n esen toate schemele
criptografice se bazeaz pe funcii one-way, lucru uor de dedus de altfel (de
exemplu funciile one-way cu trap stau la baza oricrei scheme de criptare).
1. Introducere 35
Definiii mai riguroase pentru funciile one-way cu sau fr trap se gsesc n
anexa acestui volum.
n general, o schem criptografic i echivalent un sistem criptografic, sau
simplu criptosistem, este un ansamblu format din trei algoritmi: un algoritm de
generare a cheilor (cheie de criptare i cheie de decriptare), un algoritm de
criptare i un algoritm de decriptare alturi de mulimile din care provin intrrile
lor acest lucru este sugerat n Figura 1.11. Noiunea de criptosistem aa cum a
fost anterior definit nu este deloc rigid ea putnd de fapt s surprind toate
primitivele criptografice ce vor fi descrise n continuare, fiind un simplu exerciiu
de imaginaie a gndi scenariile pentru care algoritmul de generare a cheii poate
s lipseasc sau algoritmii de criptare sau decriptare ndeplinesc alte roluri dect
criptarea sau decriptarea efectiv a informaiei, etc.
Aa cum am spus, se folosete frecvent, fr a pierde din semnificaii,
termenul de funcie n locul celui de algoritm, de exemplu spunem funcie de
criptare sau funcie de decriptare cu referire la algoritmii de criptare i
decriptare. Totodat este folosit i noiunea de primitiv criptografic, aceasta
avnd un sens larg, desemnnd orice bloc constructiv.



Exist o palet larg de funcii i sisteme criptografice n literatura de specialitate,
acestea pot fi clasificate ca aparinnd la trei mari categorii: criptosisteme cu
Algoritm de criptare
Algoritm de generare a cheilor
Algoritm de decriptare
Cheie de criptare Cheie de decriptare
Mesaj Criptotext
101
010
101
110
100
111
Parametru (nivel) de securitate Valoare aleatoare


FIGURA 1.11. SISTEM CRIPTOGRAFIC.
36 Funcii Criptografice, Fundamente Matematice i Computaionale
cheie secret (sau cheie simetric), criptosisteme cu cheie public (sau cheie
asimetric) i criptosisteme fr cheie. Criptosistemele cu cheie simetric
utilizeaz aceeai cheie pentru criptare i decriptare; avantajul lor este c necesit
resurse de calcul reduse n timp ce dezavantajul este necesitatea unei chei secrete
cunoscute de participanii la comunicare (deci un secret partajat). Criptosistemele
cu cheie asimetric presupun utilizarea de chei diferite pentru
criptare/decriptare; avantajul este posibilitatea de a efectua transmisii pe canale
nesigure n absena unor secrete partajate iar dezavantajul este puterea de calcul
relativ ridicat de care este nevoie. n principiu securitatea nu se poate construi
dect n prezena funciilor din ambele categorii. Pe lng criptosistemele cu cheie
simetric i asimetric mai exist i criptosistemele fr cheie. O taxonomie a
criptosistemelor este sugerat n Figura 1.12.



1. 13 DEZIDERATE N SISTEMELE CRIPTOGRAFICE
CONTEMPORANE
Este necesar introducerea unei astfel de seciuni, pe ct de scurt pe att
de util. n cei mai bine de 8 ani de cnd desfor activiti n acest domeniu n
cadrul Universitii Politehnica din Timioara, am remarcat o clar dezorientare a
Functii si sisteme (scheme)
criptografice

Scheme de criptare
cu cheie simetrica
(Criptarea cu cheie
secreta)

Scheme de
criptare cu cheie
asimetrica
(Criptarea cu cheie
publica)

Functii (algoritmi)
fara cheie

Sisteme (scheme) cu
cheie simetrica

Sisteme (scheme) cu
cheie asimetrica

Coduri de
autentificare a
mesajelor (MAC)

Generatoare de
numere aleatoare

Functii hash
criptografice

Scheme de
semnare digitala



FIGURA 1.12. PRIVIRE DE ANSAMBLU ASUPRA SISTEMELOR CRIPTOGRAFICE.
1. Introducere 37
studenilor (chiar masteranzi sau doctoranzi) n ceea ce privete dezideratele
constructive ale sistemelor criptografice. Pe scurt spus, lumea crede c obiectivul
este construcia unor sisteme imposibil de spart i att. n realitate ns scopul
este construcia unor sisteme imposibil de spart, dar totodat i eficiente
computaional. Mai mult, eficiena computaional este un factor decisiv n
alegerea unui sistem criptografic n practic.
Fr o nelegere adecvat a domeniului, muli entuziati nu sunt
contieni c oricnd am putea construi un sistem mai greu de spart (de exemplu
criptarea multipl) dar acesta nu ar ajuta cu nimic dac nu ar fi i eficient. Codul
Vernam, sau one-time-pad, este n continuare cel mai sigur criptosistem dar el nu
este folosit pentru ca este ineficient (necesit chei de lungime egal cu mesajul).
Deci pe scurt, n ceea ce privete funciile de criptare scopul ar fi construcia unor
funcii ct mai rapide i cu chei ct mai mici.
n prezent, n criptografie interesul este n a gsi sisteme noi, eficiente i
proprieti noi de securitate precum i demonstraii matematice c aceste
proprieti sunt atinse.
1. 14 LITERATUR RELEVANT N DOMENIU
ncerc s fac o trecere n revist a literaturii care poate fi de interes pentru
cititorul neiniiat n acest domeniu.
Cri clasice despre criptografie. Exist trei cri de baz n criptografia
clasic: Menezes et al. [62], Stinson [81] i Schneier [73]. Denumim aceste cri
clasice deoarece, cu toate c ele sunt actuale, nu ofer informaii cu privire la
tehnici moderne fr de care domeniul nu mai poate fi conceput n zilele noastre
(de exemplu reducia de securitate sau curbe eliptice). Cartea lui Menezes et al.
[62] este extrem de sintetic i consistent din punct de vedere al matematicii, iar
cartea lui Stinson [81] este de asemenea coerent din punct de vedere matematic
i conine formalisme destul de bune cu privire la criptosisteme. Cartea lui
Schneier [73] este din punct de vedere al matematicii ceva mai slab, expunerile
fiind mai literare, o recomand n special celor care sunt interesai de securitate n
general i nu neaprat de criptografie. Atenie, toate aceste trei cri prezint
soluii nvechite, de exemplu nu sunt abordate noiunile de IND-CCA2 i NM-CCA2
vitale pentru criptosistemele cu cheie public contemporane (vezi capitolul 6 al
prezentei lucrri). Pentru cititorul care nu are mult timp de pierdut i care trebuie
s i formeze rapid o imagine despre criptografie recomand cartea recent a lui
Fergusson i Scheneier [35] care are expuneri simple i de ansamblu asupra
domeniului.
38 Funcii Criptografice, Fundamente Matematice i Computaionale
Cri moderne despre criptografie. Crile lui Mao [60] i Katz i Lindell
[54] sunt cri moderne care conin noiuni de securitate moderne i demonstraii
(reducii) de securitate actuale. Prima prezint o abordarea bazat pe soluiile
existente n lumea real i este cartea pe care o recomand n primul rnd. Este
excelent ca lucrare de ansamblu, suficient de scurt i totui enciclopedic i
modern, cursul inut la MIT de Bellare i Goldwasser [4]. Acesta poate fi ns
greu de neles pentru cititorul lipsit de o baz oarecare n domeniu i este un
material extrem de dens. Cri solide pentru fundamente ale criptografiei sunt
cele dou volume publicate de Goldreich [42], [43].
Cri despre securitatea informaiei. Pentru o vedere general asupra
aplicaiilor de securitate i parial a criptografiei este util cartea lui Anderson [1]
dei nu are prea mult de a face cu ingineria aa cum titlul sugereaz. Tot orientat
spre practic este i cartea lui Stallings [80].
Cri despre Teoria Numerelor. Din punct de vedere al criptografiei cu
cheie public sunt foarte relevante aspectele de teoria numerelor, pentru acestea
au devenit referin n domeniu crile lui Apostol [2] i a lui Hardy i Wright [49].
Pentru teoria probabilitilor trebuie consultat [34]. Abordri ale criptografiei
prin prisma matematicii (n special algebr i teoria numerelor) pot fi gsite n
cartea lui Koblitz [56] i cea a lui Cohen [23]. Este de asemenea o mare realizare
n domeniu materialul oferit de Shoup [77] care se focalizeaz asupra elementelor
de calcul necesare (pe Internet este disponibil i o bibliotec de funcii
implementate n C). Tot ca abordare din perspectiva teoriei numerelor recomand
i cartea lui Wagstaff [83]. Pentru cei interesai de criptografia pe curbe eliptice
(extensie a criptosistemelor lui Diffie-Hellman i ElGamal), care poate fi vzut n
sine ca un domeniu, recomand n primul rnd lucrarea lui Cohen et al. [24] apoi
lista continu cu lucrarea lui Washington [84] i lucrarea lui Hankerson et al. [48]
care o recomand n special pentru cei care vor s implementeze, primele dou
cri le recomand celor interesai de aspectele de matematic. Cele dou cri
publicate la Cambridge despre curbe eliptice avnd coautor pe Gadiel Seroussi
sunt clduros recomandate [10], [11], personal nu le-am consultat dar am asistat
la cursurile lui Serrousi pe aceast tema de la Bonn, Germania, n septembrie
2007.
Articole de specialitate. n ceea ce privete articolele de specialitate din
conferine i jurnale aici lista recomandrilor ar fi enorm. Am inclus la
bibliografie doar cteva articole de referin. n general sunt recomandate
lucrrile publicate n conferinele centrale ale criptografiei, organizate de
International Association for Cryptologic Research (IACR) [52]: Crypto, Eurocrypt,
Asiacrypt, International Workshop on Practice and Theory in Public Key
Cryptography (PKC), Fast Software Encryption (FSE) i mai recent Theory of
1. Introducere 39
Cryptography Conference (TCC). Jurnalul central n domeniu care este Journal of
Cryptology publicat tot de IACR (detalii cu privire la toate acestea se gsesc pe
pagina IACR www.iacr.org). Este de menionat i jurnalul Design Codes and
Cryptography, jurnal cu tradiie n acest domeniu.
Desigur, mai exist i alte publicaii bune dect cele enumerate aici, lista
nu este exhaustiv.
1. 15 S NU SUPRAEVALUM CRIPTOGRAFIA: SECURITATEA ESTE
UN PROCES, NU UN PRODUS
Este bine s ncheiem capitolul cu modestie. Bruce Schneier n prefaa la
lucrarea Secrets and Lies i recunoate greeala din Apllied Cryptography de a
supraevalua rolul criptografiei. Trebuie neles c criptografia este o pies
esenial n securitate, n opinia autorului cea mai important, dar nu e singura.
"Security is a process, not a product" este o afirmaie comun n securitatea
informaiei. Trebuie neles c securitatea n sine nu este un simplu produs pe
care l cumprm i apoi totul decurge de la sine. Considerm cazul simplu al unui
antivirus, l cumprm i instalm. Va funciona? Pentru aceasta este necesar i ca
el s poat face update, i ca echipa care l produce s lucreze la aceste update-uri,
etc. Nu este vorba deci de o simpl cumprare. Altfel, putem instala securitate de
cel mai nalt nivel la un serviciu on-line, putem constrnge utilizatorii s
foloseasc parole de 14 caractere corect alese. Dar dac utilizatorii i spun parola
mai departe, este sistemul sigur? Astfel securitatea trebuie vzut ca un proces, ca
un sistem n ansamblu, n care fiecare component joac un rol. Nu putem avea
securitatea personal prin simpla cumprare a unui produs, este necesar i
implicarea personal care presupune n primul rnd educarea utilizatorului. Din
aceste motive securitatea nu este simplu de asigurat n cadrul unui sistem.


2 SCHEME DE CRIPTARE CU CHEIE SIMETRIC
(CRIPTAREA CU CHEIE SECRET)
Istoria criptografiei ncepe cu construcia funciilor de criptare cu cheie
secret. ncepem cu expunerea unor procedee constructive de baz i continum
cu detalii despre criptosisteme contemporane precum DES i AES. Nu n ultimul
rnd discuia se axeaz i asupra modurilor de operare a acestor criptosisteme,
moduri eseniale pentru securitate n practic.
2. 1 DEFINIIE I PROPRIETI

Criptarea simetric a mesajului m cu cheia secret K o vom nota cu
( )
K
E m , unde E reprezint algoritmul (funcia) de criptare i este ntotdeauna
cunoscut public. Securitatea criptosistemului (schemei de criptare simetric)
depinde doar de pstrarea secret a cheii K (n nici un caz de vreun detaliu al
algoritmului care este public). A cripta nseamn a aplica algoritmul
K
E asupra
mesajului m pentru a obine criptotextul ( )
K
c E m = iar a decripta nseamn a
aplica algoritmul
1
K
E

(adeseori notat i
K
D de la decriptare sau
1
K
E


simboliznd inversa funciei de criptare) asupra criptotextului c pentru a obine
mesajul m . Un sistem criptografic simetric l definim dup cum urmeaz.
Definiia 2.1. (schem de criptare cu cheie simetric) O schem (sistem)
de criptare cu cheie simetric (secret) const n trei algoritmi: algoritmul de
generare a cheii
( )
. 1
k
K SymGen care primete ca intrare nivelul de securitate k
i returneaz cheia K, algoritmul de criptare ( ) ( ) . ,
K
E m SymEnc m K care
primete ca intrare mesajul m i cheia k returnnd mesajul criptat ( )
K
c E m = i
algoritmul de decriptare ( ) . , m SymDec c K care primete ca intrare un
criptotext ( )
K
c E m = i cheia K i returneaz mesajul aferent m . Toate acestea
alturi de spaiile datelor de intrare asociate acestora care fr a pierde din
generalitate le considerm spaii ale stringurilor binare.
Prin 1
k
notm prin convenie stringuri binare de k , bii iar acest
parametru al algoritmului de generare are rolul de a fixa dimensiunea cheii.
2. Scheme de criptare cu cheie simetric 41
Pentru algoritmii simetrici, prin convenie, presupunem
1
K K

= prin aceasta
nelegnd c putem calcula uor cheia de decriptare din cea de criptare.
Subliniem faptul c aceasta nu nseamn c aceste chei sunt identice (i nici nu
sunt n cele mai multe cazuri practice) ci doar c una este uor de dedus din
cealalt. Prin antitez, pentru algoritmii asimetrici ce vor fi introdui ntr-un
capitol urmtor avem
1
K K

= , ceea ce nseamn c nu este fezabil a calcula cheia


de decriptare din cea de criptare.
Figurile 2.1 i 2.2 sunt ilustrative pentru algoritmii de criptare i
decriptare iar n Figura 2.3 sunt utilizai algoritmii din figurile 2.1 i 2.2 pentru a
construi schema de ansamblu a unui sistem de criptare cu cheie simetric.





Algoritm (functie) de criptare
cu cheie secreta
Sym.Enc(m,K)
m
( )
K
c E m =
| | *
| | . , . ., 128
| ( ) | | |
K
m
K ct e g
E m m
=
=
~
K


FIGURA 2.1. SCHEMA BLOC A UNEI FUNCII DE CRIPTARE CU CHEIE SECRET
Algoritm (functie) de
decriptare cu cheie secreta
Sym.Dec(c,K)
c
( )
1
K
m E c

=
K


FIGURA 2.2. SCHEMA BLOC A UNEI FUNCII DE DECRIPTARE CU CHEIE SECRET
42 Funcii Criptografice, Fundamente Matematice i Computaionale

.

Dou proprieti sunt esenial de subliniat n cazul schemelor simetrice:
i) Fr cheia K din criptotextul ( )
K
c E m = nu se poate afla
nimic despre mesajul m .
ii) Criptotextul ( )
K
c E m = alturi de orice informaie cu privire
la mesajul m nu aduce nici o informaie cu privire la K.
Nu sunt ns nicidecum singurele proprieti ale unei scheme de criptare
simetric. Acestora li se pot asocia i proprieti avansate, precum imposibilitatea
adversarului de a modifica mesajul din interiorul unui criptotext, adic fr
cunoaterea cheii K, chiar dac m este cunoscut, un adversar nu poate altera
( )
K
c E m = fr ca receptorul mesajului s poat detecta acest lucru la momentul
decriptrii. Aceast proprietate poart numele de non-maleabilitate (non-
maleability). O alt proprietate este imposibilitatea adversarului de a distinge
dac este criptat un bit de valoare 0 sau un bit de valoare 1. Adic, avnd
( ) 0
K
c E = i ( ) 1
K
c E = , fr cunoaterea cheii K un adversar nu poate spune
Algoritm (functie) de criptare
cu cheie simetrica (secreta)
Algoritm de generare a cheilor
Algoritm (functie) de decriptare
cu cheie simetrica (secreta)
k
m
( )
k
c E m =
1
k
valoare aleatoare
(pseudo-aleatoare)


FIGURA 2.3. SCHEMA DE CRIPTARE CU CHEIE SIMETRIC
2. Scheme de criptare cu cheie simetric 43
care este criptarea lui 1 i care a lui 0. Aceast proprietate se numete
imperceptibilitatea sau nedistingerea criptotextelor (indisinguishability of
encryptions).
Avantajul algoritmilor simetrici const n viteza ridicat de criptare i
decriptare. n comparaie cu cei asimetrici acetia sunt mai rapizi cu cteva ordine
de magnitudine, de 10, 100 sau chiar 1000 de ori. n ceea ce privete deficienele,
prima deficien a algoritmilor simetrici este aceea c nu permit efectuarea unei
comunicri pe un canal nesecurizat n prealabil (necesit partajarea prealabil a
unui secret). n acelai context, al cheilor partajate, deficiena algoritmilor
simetrici const n faptul c odat cu creterea numrului de participani la
comunicare crete i numrul de chei secrete care trebuie cunoscute; de exemplu
pentru comunicarea ntre n entiti avem nevoie de ( ) 1 / 2 n n chei secrete. O
alternativ ar fi utilizarea unui server de autentificare (parte de ncredere) care
stocheaz chei criptografice partajate cu fiecare entitate (aceste chei fiind valabile
pe termen lung de unde i denumirea de long-term key) i le folosete pentru a
transmite chei valabile pe termen scurt pentru comunicarea ntre entiti care nu
au avut un contact prealabil. ntr-un astfel de scenariu numrul de chei este egal
cu cel de participani.

2. 2 CLASIFICARE: CODURI BLOC I CODURI STREAM
Codurile de criptare cu cheie simetric pot fi mprite n dou mari
categorii dup modul n care prelucreaz mesajul ce urmeaz a fi criptat:
i) Coduri bloc: sunt algoritmi de criptare care opereaz asupra
mesajului ce trebuie criptat bloc cu bloc, fiecare bloc avnd
dimensiune fix (deci cripteaz un bloc la un moment dat).
ii) Coduri stream: sunt algoritmi de criptare care cripteaz bit cu bit
(practic lungimea blocului este 1) i transformarea de criptare se
poate modifica pentru fiecare caracter n parte.
Codurile stream sunt n special utile cnd exist erori de transmisie
(deoarece nu au erori de propagare) i atunci cnd datele trebuie procesate pe
msur ce ajung la destinaie (nu exist spaiu de stocare). Modurile de
funcionare ce urmeaz a fi discutate n acest capitol permit transformarea unui
cod bloc n cod stream. n practic se folosesc cu precdere coduri bloc, dar nu
sunt de neglijat nici cele stream, de exemplu n transmisii wireless. n general la
codurile stream operaia de criptare const ntr-o operaie simpl (de exemplu un
44 Funcii Criptografice, Fundamente Matematice i Computaionale
simplu XOR cu cheia curent) iar generarea cheii curente este mai intens
computaional.
2. 3 PRINCIPII CONSTRUCTIVE: SUBTITUIA I TRANSPOZIIA,
CIFRU PRODUS
n construcia funciilor criptografice simetrice exist dou operaii
universal utilizate:
i) Substituia nseamn nlocuirea unor simboluri sau grupuri de
simboluri prin alte simboluri sau grupuri de simboluri i creeaz
confuzie.
ii) Transpoziia (sau permutarea) nseamn permutarea
(amestecarea) simbolurilor din cadrul unui bloc i creeaz difuzie
(numit uneori i difuziune).
Aceste dou noiuni au fost introduse pentru prima dat de Claude
Shannon n 1949 i reprezint concepte fundamentale n construcia schemelor
moderne de criptare simetric. Toate schemele moderne conin casete de
substituie S-Box i permutare P-box pentru a crea confuzie i difuzie.
Se folosete termenul de cifru produs (product cipher) pentru a desemna
un cifru obinut din combinarea a dou sau mai multe proceduri care conduc la un
criptosistem mai sigur dect utilizarea individual a acestora. Astfel, o reea de
substituii (S) i permutri (P), denumit n general reea-SP (SP-network), este
unul dintre cele mai simple cazuri de cifruri produs.
2. 4 MAINA ENIGMA

Maina Enigma i componentele sale sunt ilustrate n Figura 2.4. Textul ce urma
a fi criptat era introdus de la tastatur i la fiecare tast apsat se aprindea becul
aferent criptotextului n tabela de becuri (rezultatul fiind notat pe hrtie de un
operator). Au existat i variante la care rezultatul era tiprit pe hrtie dar acestea
au fost mai puin frecvente (costuri suplimentare i greutate). Varianta standard
avea 3 rotoare alese dintru set de 5 i o tabel de techere unde maxim 13
techere se puteau folosi pentru a lega cte 2 litere. Variante mai evoluate au avut
i 4 rotoare sau mai mult. Pe scurt principiul de funcionare era urmtorul: la
apsarea unei taste se nchidea un circuit ce permitea curentului electric s treac
prin tabela de techere (unde o liter putea fi sau nu legat de alt liter) apoi
2. Scheme de criptare cu cheie simetric 45
prin cele 3 rotoare
care aveau i ele
cablaje diferite iar din
cel de-al patrulea
rotor (numit
reflector) curentul se
ntorcea prin cele 3
rotoare, revenea n
tabela de techere i
aprindea unul din
becurile din panou
(care era rezultatul
literei criptate).
Pe scurt, cheia
mainii Enigma avea
la baz urmtoarele
setri: ordinea
rotoarelor (alese ca 3
rotoare din 5 variante
i puse n orice
ordine), poziia
iniial a rotoarelor
(fiecare are 26 de
poziii), setarea
inelului (pe fiecare
rotor era un inel care
indica unde se
acioneaz micarea urmtorului rotor) i setarea tabelului de techere (unde
maxim 13 techere se puteau folosi pentru a conecta cele 26 de intrri). Dac
considerm doar cele 13 techere care leag 26 de poziii i faptul c avem 3
rotoare din care fiecare poate fi pus n 26 de poziii deja depim spaiul de chei al
DES-ului (aproape de 2 ori!) deoarece avem:
3
13
26!
26 138953282533065000
13! 2
=

variante de cheie. Aceasta nu ine cont de


setarea inelului pe fiecare rotor i de ordinea rotoarelor i tot este mai mult dect
cei 56 de bii de cheie ai DES, criptosistem care a fost sigur pn la nivelul anilor
90.
Astfel, spaiul din care provine cheia este impresionant, mult mai mare
dect al DES-ului i chiar mai mare dect n cazul AES dac Enigma este folosit la


FIGURA 2.4. COMPONENTELE MAINII ENIGMA: A) CELE 3
ROTOARE, B) TABELA CU BECURI, C) TASTATURA, D)
TABELA DE TECHERE

46 Funcii Criptografice, Fundamente Matematice i Computaionale
puterea ei maxim. Dar nici aceast dimensiune a spaiului din care provine cheia
nu este suficient pentru securitate, maina Enigma realizeaz doar o simpl
substituie polialfabetic. Se poate observa o deficien constructiv chiar i dup
aceast descriere sumar: prin apsarea unei litere circuitul electric nu se putea
nchide sub acea liter i deci o liter nu se putea cripta n ea nsi. Acest lucru
este o deficien major deoarece o bun parte din mesajele surs pot fi eliminate
din start (n special n rzboi, variantele de mesaj surs sunt puine deoarece n
general reprezentau ordine militare scurte, etc.).

2. 5 REEAUA FEISTEL
Maina Enigma este nc un sistem fr prea multe legturi cu sistemele
contemporane. Reeaua Feistel, sau codul Feistel, este primul criptosistem
simetric modern. Aceasta a fost construit n anii 70 de ctre Horst Feistel i a
aprut n primul criptosistem comercial numit Lucipher construit de Horst Feistel
i Don Coppersmith la IBM n 1973.
Marea parte a criptosistemelor simetrice contemporane urmeaz
principiile codului Feistel. Schema de principiu a reelei Feistel se gsete n
Figura 2.5. n reelele Feistel se aplic urmtoarele transformri asupra mesajului:
permutri (P-boxes) pentru a crea difuzie, substituii, pentru a crea confuzie (S-
boxes) i operaii pe bii (XOR). n general este necesar un minim de 16 runde
pentru securitate adecvat.
Principii constructive generale n reeaua Feistel sunt: cu ct dimensiunea
blocului, a cheii i numrul de runde crete, crete i securitatea respectiv scade
viteza de criptare/decriptare, iar dac scad, scade i securitatea respectiv crete
viteza de criptare/decriptare.
Marele avantaj este c criptarea i decriptarea se fac parcurgnd aceeai
reea n sens invers, deci este foarte eficient ca i cost de implementare (n
special hardware). n Figura 2.5 de asemenea se pot distinge cheile
0 1 1
, ,...,
l
K K K


ale celor l runde de criptare i funcia F care este funcia rundei de criptare. n
principiu aceast funcie poate fi orict de complex i nu trebuie s fie o funcie
reversibil. Un bun exemplu pentru utilizarea reelei Feistel este criptosistemul
DES ce l discutm n continuare.

2. Scheme de criptare cu cheie simetric 47


2. 6 CRIPTOSISTEMUL DES
Standardul n criptarea simetric, valabil pn n 2001, a fost DES (Data
Encryption Standard) [36]. DES este un cod construit pe o reea Feistel cu 16
runde care transform mesaje de 64 de bii n criptotext de 64 de bii.
F
F
F
etc.
mesaj criptotext
criptotext
K
0
K
1
K
l-1
F
F
F
etc.
K
l-1
K
l-2
K
0
mesaj

FIGURA 2.5. REEA FEISTEL
48 Funcii Criptografice, Fundamente Matematice i Computaionale
Cheia DES are ns doar 56 de bii i nu 64 (confuzie comun datorat
poate faptului c la fiecare 7 bii de cheie exist 1 bit de paritate ceea ce duce la o
dimensiune total de 64 de bii). nainte de intrarea n reeaua Feistel i dup
ieirea din aceasta, blocul de 64 de bii este trecut printr-o permutare respectiv
prin inversa acesteia. Acest lucru este sugerat n Figura 2.6 (i). Rolul permutrii
este desigur de a crea difuzie. Permutarea, denumit IP (Initial Permutation), i
inversa acesteia sunt ilustrate n Tabelul 2.1. Se observ (ca exemplu de
permutare) pe poziia 1 apare valoarea 58, adic bitul de pe poziia 58 vine pe
poziia 1, iar n permutarea invers, pe poziia 58 apare valoarea 1, adic bitul de
pe poziia 58 vine pe poziia 1, etc.
Funcia de rund, aa cum este descris n cadrul reelei Feistel, are ca
parametru de intrare blocul drept i cheia de rund. Dat fiind c blocul de intrare
este de 64 de bii, blocul drept (la fel ca i cel stng) are 32 de bii. Acesta este ns
trecut printr-o funcie de expansiune E care l aduce la 48 de bii pentru a face
XOR cu cheia de rund tot de 48 de bii. Rezultatul este folosit ca intrare pentru 8
casete de substituie S-box. Fiecare caset are la ieire 4 bii de unde rezult un
total de 32 de bii care sunt din nou trecui printr-o permutare P. Funcia de
expansiune E i permutarea P sunt prezentate n Tabelul 2.1.
Casetele de substituie S-box lucreaz n felul urmtor: sunt 8 casete la
intrarea fiecreia venind ct 6 bii din blocul de la intrare (6x8=48). Din cei 6 bii
4 au rolul de a selecta coloana i 2 de a selecta linia din S-box iar la ieire ofer
valoarea de pe poziia respectiv. Deoarece la intrarea unui S-box sunt 48 de bii
iar la ieire 32, S-box este de fapt o compresie (ne-bijectiv). Aceasta nu
influeneaz corectitudinea decriptrii. n Tabelul 2.1 sunt ilustrate casetele S1 i
S2, mai exist 6 casete, care nu le prezentm deoarece nu ofer informaii foarte
relevante (standardul poate fi consultat pentru valorile acestora).
Rmne de detaliat cum se calculeaz cheia de rund. Aa cum se observ n
Figura 2.6 (iii) aceasta trece printr-o permutare numit PC1 apoi la rndul ei este
spart n dou blocuri care pentru fiecare rund sunt shiftate la stnga.
Permutarea PC1 este mprit n dou componente, prim i secund, fiecare
corespunznd la cte 28 de bii de cheie (cheia ne amintim are 56 de bii).
Numrul de shiftri este 1 pentru rundele 1, 2, 9 i 16, respective 2 pentru
celelalte runde. La final cheia de rund trece printr-o nou permutare numit PC2.
Acest calcul din care provine cheia se mai numete i program de cheie (key
schedule).

2. Scheme de criptare cu cheie simetric 49

58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17
IP =
9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
| |
|
|
|
|
|
|
|
|
|
|
|
\ .

1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20
IP

=
60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
| |
|
|
|
|
|
|
|
|
|
|
|
\ .

32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27
E =
28 29
28 29 30 31 32 1
| |
|
|
|
|
|
|
|
|
|
|
|
\ .

1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11
S =
3 14 10 0 6 13
| |
|
|
|
|
\ .

16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
P
| |
|
|
|
|
|
=
|
|
|
|
|
|
\ .

2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6
S =
7 12 0 5 14 9
| |
|
|
|
|
\ .

57 49 41 33 25 17 9
1 58 50 42 34 26 18
1'
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7
1''
PC
PC
| |
|
|
=
|
|
\ .
=
62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
| |
|
|
|
|
\ .

14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 5
PC =
6 34 53
46 42 50 36 29 32
| |
|
|
|
|
|
|
|
|
|
|
|
\ .


TABELUL 2.1. ELEMENTE CONSTRUCTIVE DES CONFORM FIPS46-2: PERMUTAREA IP
(INITIAL PERMUTATION) I INVERSA EI, FUNCIA DE EXPANSIUNE E I
PERMUTAREA P, CASETELE DE SUBSTITUIE S1 I S2 (MAI SUNT NC 6 CASETE),
PERMUTRILE PENTRU PROGRAMUL DE CHEIE PC1 SI PC2
50 Funcii Criptografice, Fundamente Matematice i Computaionale



PERMUTARE INITIALA
F
F
F
etc.
mesaj
criptotext
K1
K2
K16
L0 R0
R16 L16
PERMUTARE INITIALA INVERSA
L1 R1
L2 R2
RX (32 BITI)
E
48 BITI KX (48 BITI)
S1 S2 S3 S4 S5 S6 S7 S8
32 BITI
P
PERMUTARE 1
mesaj
C0 D0
LEFT SHIFT LEFT SHIFT
C1 D1
LEFT SHIFT LEFT SHIFT
C16 D16
etc.
PERMUTARE 2
PERMUTARE 2
K1
K16
i)
ii)
iii)

FIGURA 2.6. DETALII CU PRIVIRE LA DES: (I) CELE 16 RUNDE ALE DES, (II) FUNCIA
DE RUND DES I (III) GENERAREA CHEII DE RUND
2. Scheme de criptare cu cheie simetric 51
2. 7 3DES
De muli ani DES nu mai ofer securitate corespunztoare, putnd fi spart
n cteva zile pe o main de calcul dedicat (de exemplu COPACOBANA sparge
DES n medie de 3.5 zile). DES supravieuiete ns sub forma 3DES (recomandat
nc din 1999) oferind un nivel de securitate suficient de bun n zilele de azi.
Acesta const n aplicarea transformrii DES de 3 ori dup cum urmeaz:
( ) ( ) ( )
( ) ( ) ( )
3 2 1 1 2 3
,
K K K K K K
c E D E m m D E D c = =
Conform standardului, exist urmtoarele variante de utilizare a cheilor:
opiunea 1 cu 3 chei independente, opiunea 2 cu
1
K i
2
K independene iar
1 3
K K = i opiunea 3 cu o singur cheie independent
1 2 3
K K K = = . Astfel cheia
de la 3DES poate fi pe 56, 112 i 168 de bii.
Dat fiind c 3DES este mai lent dect AES i nu ofer securitate mai bun,
nu exist motive serioase pentru a fi folosit n practic astzi. Poate un motiv ar fi
faptul c exist implementri hardware ce pot fi refolosite i n acest fel se mai
reduc din costuri, dar nu exist raiuni de securitate.

2. 8 CRIPTOSISTEMUL AES
La nivelul anilor 2001 DES nu mai ofer securitatea necesar (de fapt nc
din anii 90 sunt consemnate atacuri de succes asupra DES), pentru care, pe baz
de concurs se alege un nou standard AES (Advanced Encryption Standard).
Standardul curent este candidatul la AES numit Rijndael [38] ales din cei
5 finaliti: Rijndael, Serpent, Twofish, RC6 i MARS. AES este un cod bloc
disponibil n trei variante de dimensiuni pentru cheie 128, 192, 256. Chiar i cheia
de 128 de bii este considerat destul de sigur pentru cerinele din ziua de azi.
Necesit doar 10-14 runde n funcie de dimensiunea cheii, este sigur i este cel
mai rapid dintre candidai. Deoarece AES este mai rapid dect alte coduri
simetrice, chiar i dect 3DES, i ofer cel puin acelai nivel de securitate nu
exist nici un motiv de a utiliza altceva dect AES n arhitecturi de securitate
contemporane.
AES nu folosete structura Feistel, are meritul de a fi un criptosistem
inovator. El proceseaz matrici de 4x4 bytes prin intermediul a 4 transformri:
- AddRoundKey se adun cheia de rund printr-un simplu XOR,
52 Funcii Criptografice, Fundamente Matematice i Computaionale
- SubBytes se substituie fiecare byte prin intermediul unei tabele de
look-up (substituie neliniar),
- ShiftRows se shifteaz circular (rotire) fiecare linie astfel: prima
linie e neatins, a 2-a linie 1 la stnga, a 3-a cu 2 la stnga i a 4 cu 3 la
stnga,
- MixColumns se amestec coloanele prin aplicarea unei transformri
de aceast dat liniar i reversibil (de fapt este vorba de
multiplicare matricial).
Macrostructura rundei AES este sugerat n Figura 2.7. Fiecare rund
const n aplicarea tuturor celor 4 transformri i exist 10 runde la chei 128 de
bii, 12 la 192 i 14 la 256. Runda iniial const doar n adugarea cheii de rund
iar cea final nu are transformarea MixColumns. Pentru detalii poate fi consultat
FIPS-197.



Totui trebuie s precizm c singura suspiciune cu privire la securitatea
AES-ului este faptul c folosete un design destul de non-conformist, spre
deosebire de schemele simetrice clasice, care se construiesc pe reea Feistel. Acest
design nu a fost sub atenia comunitii criptologilor dect n ultimii ani, de la
propunerea AES-ului. n mod spectaculos, transformarea AES (Rijndael) este
echivalent cu o ecuaie algebric destul de simpl (comparativ cu alte coduri)
fa de care exist suspiciunea c ar putea duce n viitor la o serie de atacuri. Pn
n prezent nu a aprut ns nici un atac spectaculos asupra acestui procedeu

AES_Encrypt_Round(State, Key)
{
SubBytes(State) ;
ShiftRows(State);
MixColumns(State);
AddRoundKey(State, Key);
}

AES_Decrypt_Round(State, Key)
{
AddRoundKey
-1
(State, Key);
MixColumns
-1
(State);
ShiftRows
-1
(State);
SubBytes
-1
(State) ;
}
FIGURA 2.7. STRUCTURAINTUITIV A UNEI RUNDE DE CRIPTARE I DECRIPTARE
AES
2. Scheme de criptare cu cheie simetric 53
constructiv! Deci orice suspiciune nu are un fundament tiinific momentan. Pe de
alt parte o reea Feistel este o reea bine studiat i un cod construit pe reea
Feistel este puin probabil s aduc surprize n ceea ce privete securitatea. Ca
alternativ la Rijndael, poate fi utilizat oricare alt candidat la AES, dar sunt
necesare motive serioase pentru a utiliza altceva n practic. Un bun
contracandidat este codul Serpent, care nu este acoperit de nici un patent i poate
fi utilizat gratuit n soluii contemporane de securitate (desigur acesta este mai
lent dect AES) i este construit pe structur Feistel.

2. 9 MODURI DE OPERARE A CRIPTRILOR SIMETRICE: ECB,
CBC CM I ALTELE
Simpla existen a unui cod bloc, orict de sigur, nu este o garanie
suficient pentru securitatea unui criptotext. Aici intr n discuie modurile de
funcionare, adic cum se aplic transformarea (codul bloc) asupra blocurilor de
mesaj.
Cel mai simplu mod de aplicare al criptrii simetrice, numit electronic
codebook (ECB), este nesigur. Acesta const aa cum sugereaz i Figura 2.8 i
Figura 2.9 n extinderea mesajului prin padding la un numr de bii multiplu de
dimensiunea blocului de criptare i prin aplicarea transformrii bloc cu bloc (cele
trei careuri colorate ale ultimului bloc de mesaj sugereaz paddingul). Chiar dac
funcia de criptare a blocului este sigur, rezultatul poate fi n anumite cazuri o
criptare nesigur. Aceasta deoarece acelai bloc de text se va cripta ntotdeauna n
acelai bloc de criptotext, rezultatul fiind aadar predictibil.
Pentru a evita aceast problem de securitate, modul de funcionare
cipher block chaining (CBC) folosete ieirea blocului anterior la intrarea
blocului ce urmeaz a fi criptat fcnd un XOR cu acesta. Astfel, rezultatul fiecrui
bloc se propag i influeneaz pn la ultimul bloc rezultatul criptrii. Avantajul
este c criptotextul va arta perfect aleator, fr repetiii cauzate de repetarea
intrrii. Dezavantajul este c pierderea unui bloc duce la imposibilitatea de a
decripta blocurile urmtoare, chiar dac acestea sunt corect recepionate. Pentru
criptarea primului bloc se face XOR cu un vector de iniializare IV
(initialization vector) care este o valoare random dar nu secret ce joac rol de
bloc criptat anterior primului bloc. Criptarea i decriptarea CBC sunt sugerate n
Figurile 2.10 i 2.11.
54 Funcii Criptografice, Fundamente Matematice i Computaionale

Exist diverse variaiuni pentru nlnuirea blocurilor. Dintre acestea,
cipher feed-back (CFB) cripteaz IV-ul n loc de bloc de mesaj cu care se face
XOR i se propag rezultatul mai departe. n mod similar lucreaz output feed-
back (OFB) cu diferena c se propag mai departe doar rezultatul IV-ului criptat
nu rezultatul criptrii n sine. Modurile CFB i OFB au avantajul de a transforma
codul bloc ntr-un cod stream unde procesarea criptrii se face bit cu bit prin
operatorul XOR. Avantajul lui OFB fa de CFB este faptul c permite procesarea
stream-ului de cheie chiar dac mesajul nu este nc disponibil, deci permite

Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
0
m
1
m
1
m

0
c
1
c
1
c


FIGURA 2.8.CRIPTAREA N MODUL DE FUNCIONARE ELECTRONIC CODE BOOK (ECB)

Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
0
m
1
m
1
m

0
c
1
c
1
c


FIGURA 2.9. DECRIPTAREA N MODUL DE FUNCIONARE ELECTRONIC CODE BOOK
(ECB)
2. Scheme de criptare cu cheie simetric 55
procesarea n avans ceea ce ofer avantaje computaionale. OFB are i avantajul c
permite decriptarea chiar dac se pierd din blocurile criptate. O alt variant este
Propagating Cipher Block Chaining (PCBC) care propag mai departe att
textul de la intrare ct i criptotextul rezultat din fiecare bloc. Criptarea OFB i
CFB sunt sugerate n Figurile 2.12 i 2.13 iar criptarea i decriptarea PCBC n
Figurile 2.14 i 2.15.
Foarte ntlnit n practic i cu un nivel de securitate crescut (fiind
tolerant la pierderea blocurilor intermediare) este Counter Mode (CM) care
folosete un counter, de obicei concatenat cu o valoare aleatoare numit salt.
Counterul este criptat i apoi se face XOR cu textul ce se dorete criptat.
Dezavantajul este necesitatea de a pstra un counter sincron de partea celor care
efectueaz criptarea respectiv decriptarea. Criptarea n modul counter este
sugerat n Figura 2.16.
De amintit i varianta cipher-text stealing permite construirea unui
criptotext care are lungime egal cu mesajul criptat (cu condiia ca acesta s
necesite minim 2 blocuri). Aceast tehnic este util deoarece de cele mai multe
ori textul nu are lungime multiplu de dimensiunea blocului criptat i n unele
medii este necesar economisirea pe ct se poate a volumului de date transmis
(de exemplu n reele de senzori).



Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
IV
Functie Criptare
Bloc
k
0
m
1
m
1
m

0
c
1
c
1
c


FIGURA 2.10. CRIPTAREA N MODUL DE FUNCIONARE CIPHER BLOCK CHAINING
(CBC)
56 Funcii Criptografice, Fundamente Matematice i Computaionale






Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
Functie
Deriptare Bloc
k
IV
0
m
1
m
1
m

0
c
1
c
1
c


FIGURA 2.11. DECRIPTAREA N MODUL DE FUNCIONARE CIPHER BLOCK CHAINING
(CBC)
Functie Criptare
Bloc
k
Functie Criptare
Bloc k
IV
Functie Criptare
Bloc k
0
m
1
m
1
m

0
c 1
c
1
c


FIGURA 2.12. CRIPTAREA N MODUL DE OUTPUT FEEDBACK BLOCK CHAINING (OFB)
Functie Criptare
Bloc
k
Functie Criptare
Bloc k
IV
Functie Criptare
Bloc k
0
m
1
m
1
m

0
c 1
c
1
c


FIGURA 2.13. CRIPTAREA N MODUL DE FUNCIONARE CIPHER FEEDBACK (CFB)
2. Scheme de criptare cu cheie simetric 57





Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
IV
Functie Criptare
Bloc
k
0
m
1
m
1
m

0
c
1
c
1
c


FIGURA 2.14. CRIPTAREA N MODUL DE FUNCIONARE PROPAGATING CIPHER
BLOCK CHAINING (PCBC)
Functie Criptare
Bloc
k
Functie Criptare
Bloc k
Functie Criptare
Bloc k
0
m
1
m
1
m

0
c 1
c
1
c

salt counter salt 1 counter + salt counter +

FIGURA 2.16. CRIPTAREA N MODUL DE FUNCIONARE COUNTER MODE (CM)
IV
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
0
m
1
m
1
m

0
c
1
c
1
c


FIGURA 2.15. DECRIPTAREA N MODUL DE FUNCIONARE PROPAGATING CIPHER
BLOCK CHAINING (PCBC)
58 Funcii Criptografice, Fundamente Matematice i Computaionale

2. 10 TIPURI DE ATAC ASUPRA FUNCIILOR DE CRIPTARE
Am stabilit c criptanaliza este domeniul care se ocup de studiul
atacurilor asupra funciilor criptografice. n principiu atacul unei funcii
criptografice are la baz exploatarea unei vulnerabiliti ce se datoreaz n
general unei proprieti matematice a codului care nu a fost luat n calcul n
procesul de proiectare.
Este n general util remarca c printr-un atac criptanalitic se urmrete
fie recuperarea unui mesaj criptat fie a cheii utilizate (subliniem c algoritmul de
criptare este bine cunoscut de adversar, n prezent iese din discuie securitatea
obinut prin obscuritatea algoritmului). Aceast remarc ofer ns mai degrab
o perspectiv idealizat asupra unui atac criptanalitic. A recupera ntregul mesaj
criptat este o condiie mult prea restrictiv, n realitate criptosistemul poate fi
spart mult mai uor. Astfel, este unanim recunoscut c n cele mai multe cazuri
practice recuperarea unui singur bit din mesaj poate avea consecine dezastroase
asupra securitii. n acest context este necesar definirea unor obiective de
securitate i atacuri avansate, mult mai complexe dect recuperarea unei chei sau
a unui mesaj (acest lucru va fi fcut n relaie cu criptosistemele asimetrice ntr-un
capitol urmtor).
Totodat atacurile trebuie gndite ca fiind cauzate de adversari care au
acces la maina de criptare sau decriptare, deoarece n practic aceasta este
situaia general. De exemplu, n cazul criptosistemelor cu cheie public oricine
are acces la cheia de criptare (maina de criptare fiind disponibil n mod
nerestrictiv) iar semnarea digital se face pe baza cheii secrete (astfel maina de
decriptare este expus prin orice semntur efectuat). Lucrurile nu stau diferit
nici n cazul criptosistemelor simetrice, deoarece n cazul mainii Enigma rzboiul
a oferit prilejul de a captura maini de criptare sau decriptare, accesul fiind astfel
posibil.
Convenim astfel s clasificm atacurile dup cum urmeaz n funcie de
accesul la maina de criptare sau decriptare:
i) Mesaj ales (chosen-plaintext attack) adversarul are acces pe o
perioad fix de timp la maina de criptare care accept s cripteze
orice mesaj (pn la momentul la care primete un anume criptotext
pe care trebuie s l sparg).
ii) Mesaj ales adaptiv (adaptive chosen-plaintext) - adversarul are acces
nelimitat la maina de criptare care accept s cripteze orice mesaj.
2. Scheme de criptare cu cheie simetric 59
iii) Criptotext ales (chosen cipheretext) adversarul are acces pe o
perioad fix de timp la maina de decriptare care accept s de
cripteze orice mesaj (pn la momentul la care primete un anume
criptotext pe care trebuie s l sparg).
iv) Criptotext ales adaptiv (Adaptive chosen-chipertext) - adversarul are
acces nelimitat la maina de decriptare care accept s cripteze orice
mesaj.
n atacurile adaptive se presupune c adversarul are acces nelimitat la
maina criptografic cu o singur restricie: att adversarul ct i maina cunosc
un anume criptotext int, iar maina criptografic refuz s opereze asupra
acestuia, n schimb este dispus s lucreze pentru adversar asupra oricrui alt
criptotext.
Atacurile n care adversarul nu are acces la maina de criptare/decriptare,
sunt i ele de dou tipuri: doar criptotext cunoscut (ciphertext only), n care
adversarul are la dispoziie doar criptotextul, i mesaj cunoscut (known-
plaintext) n care adversarul cunoate i criptotextul i mesajul i dorete
recuperarea cheii. Acestea sunt considerate modele de atac nvechite deoarece n
practic un adversar se bucur de premize mai bune de att. Rezistena n faa
acestora este o cerin elementar.
Importana atacurilor cu acces la maina de decriptare va fi scoas n
lumin prin discuiile cu privire la adversari activi ai criptosistemelor asimetrice
ntr-un capitol urmtor.



3 FUNCII CRIPTOGRAFICE FR CHEIE: FUNCII
HASH
Discutm n acest capitol funciile hash, un obiect criptografic extrem de
simplu i totui greu de definit i construit. ntr-adevr nu demult acestea au fost
numite gaura neagr a criptografiei deoarece nu era foarte clar (i poate nici nu
este nc) ce proprieti trebuie s ndeplineasc i cum se construiesc corect.
Trebuie spus c o bun parte din ngrijorarea cauzat de funciile hash a venit
datorit atacurilor lui Wang asupra MD5 i SHA1 [85].

3. 1 DEFINIIE I PROPRIETI
O funcie hash este o funcie care primete ca intrare mesaje de
dimensiune variabil i returneaz un mesaj de lungime fix din care mesajul
iniial nu poate fi recuperat. Funciile hash nu folosesc nici un fel de cheie, i le
vom nota cu ( ) H m reprezentnd funcia hash aplicat mesajului m . Figura 3.1
prezint schema bloc a unei funcii hash. Ieirea unei funcii hash se mai numete
i etichet (tag).



Functie Hash m
( )
H m
| | *
| ( ) | . , . ., 128 256
m
H m ct e g
=
=


FIGURA 3.1SCHEMA BLOC A UNEI FUNCII HASH.
4. Funcii criptografice fr cheie 61
O funcie hash trebuie s rspund la urmtoarele proprieti de
securitate: i) rezistena imaginii (preimage resistance): avnd y o ieire a
funciei nu se poate gsi x astfel nct ( ) y H x = , ii) rezisten secundar a
imaginii (secondary preimage resistance) avnd ( ) , x H x nu se poate gsi ' x
astfel nct ( ) ( ) ' H x H x = i iii) rezisten la coliziune (collision resistance) nu
se poate gsi o pereche , ' x x astfel nct ( ) ( ) ' H x H x = .
Din punct de vedere computaional, proprietatea de baz a unei funcii
hash este eficiena. Scopul este de a construi funcii ct mai simplu de
implementat (cod compact) i ct mai rapide. n timp ce dimensiunea intrrii
poate fi orict, la ieire tagul are in general 128-256 bii, mai rar pn n 512 bii.
3. 2 FUNCII HASH FRECVENT UTILIZATE N PRACTIC: MD5 I
FAMILIA SHA
Standardul curent (nc) i probabil cea mai utilizat gam de funcii hash
este familia SHA2 (Secure Hash Algorithm) [37] pentru care dimensiunea ieirii
este 224, 256, 384, 512 bii indiferent de dimensiunea datelor de intrare. Varianta
mai veche de funcie din familia SHA, i nc folosit, este SHA-1. Trebuie spus c
n practic este nc foarte frecvent funcia MD5 (posibil chiar mai utilizat dect
SHA2).
Menionm ns faptul c funciile hash MD5 [68] i SHA-1 nu mai ofer
rezisten secundar a imaginii i sunt deci nesigure (n ciuda acestui fapt ele sunt
nc folosite n multe aplicaii datorit eficienei n special). O discuie relevant
cu privire la ce implicaii are pierderea rezistenei secundare a imaginii poate fi
gsit n [59]. De remarcat c nu orice categorie de aplicaii este pus n pericol de
aceasta i utilizarea lor este nc posibil dar trebuie fcut cu precauie. Atacuri
asupra SHA au fost anunate pentru prima oar n [85] dou articole non-tehnice
ale lui Schneier cu privire la atacurile asupra funciilor hash sunt n [74], [75].
Pentru implementri contemporane se recomand desigur folosirea SHA-256 i
nicidecum a MD5 sau SHA-1.

62 Funcii Criptografice, Fundamente Matematice i Computaionale


n practic, pentru construcia funciilor hash se folosete conceptul de
funcie hash iterat. Aceasta presupune spargerea intrrii n blocuri de
dimensiune fix care sunt trecute printr-o funcie de compresie n cadrul creia se
efectueaz operaii specifice. Una dintre metodele specifice de construcie este
construcia Merkle-Damgard (descris de Merkle n 1979) pe care o prezentm n
Figura 3.2.
MD5 a fost construit de Ron Rivest n 1991 i urmeaz construcia Merkle-
Damgard. MD5 opereaz cu blocuri de mesaj de cte 512 bii. Mesajul iniial se
concateneaz cu un bit de 1 i apoi cu numrul necesar de 0-uri. Ultimii 64 de bii
din mesajul preprocesat reprezint lungimea mesajului iniial.
Algoritmul MD5 const n 64 de iteraii, grupate n 4 runde de cte 16
iteraii, n fiecare rund folosindu-se una din 4 funcii neliniare de mai jos
(4x16=64). Figura 3.3 descrie aceast structur. Fiecare rund se efectueaz de 16
ori deoarece blocul procesat este de 512 bii, n timp ce funcia de rund
proceseaz 32 de bii la un moment dat (16x32=512). n figur se observ 4
blocuri de stare (A, B, C, D), acestea au cte 32 de bii. Cele 4 constante predefinite
de cte 32 de bii joac rol de vector de iniializare (IV) i sunt:


A= 0x67452301,
B= 0xefcdab89,
C= 0x98badcfe,
D= 0x10325476.


Funcia de rund are la baz una din cele 4 funcii definite dup cum
urmeaz:
Functie de
compresie
IV
Functie de
compresie
Functie de
compresie
Bloc mesaj 1 Bloc mesaj 2
Bloc mesaj n
H(m)


FIGURA 3.2. CONSTRUCTIA MERKLE-DAMGARD A UNEI FUNCTII HASH
4. Funcii criptografice fr cheie 63

( , , ) ( ) ( ),
( , , ) ( ) ( ),
( , , ) ,
( , , ) ( ).
F X Y Z X Y X Z
G X Y Z X Z Y Z
H X Y Z X Y Z
I X Y Z Y X Z
= . v .
= . v .
=
= v




Runda 1 (16 x)
A
Bloc mesaj (512 biti, procesat
pe cuvinte de 32 biti)
B C D
Runda 2 (16 x)
Runda 3 (16 x)
Runda 4 (16 x)
0 15 i s s
16 31 i s s
32 47 i s s
48 63 i s s
[ ], 0 63 b i i s s

FIGURA 3.3. STRUCTURA ITERAT A LUI MD5
64 Funcii Criptografice, Fundamente Matematice i Computaionale

Toate aceste funcii sunt neliniare i se bazeaz pe operaii simple la nivel
de bit. n cadrul fiecrei runde, folosind una din cele 4 funcii anterior definite se
efectueaz aceeai operaie de 16 ori, operaie ce const n:
(( ( , , ) ) ) B A FR B C D M K s + + + + <<< i rezultatul se depune n B. Valorile de
stare la sfritul fiecrei se interschimb dup cum urmeaz:

,
,
(( ( , , ) ) ),
.
D C
C B
B B A FR B C D M K S
A D

+ + + + <<<

.

Prin FR am desemnat funcia de rund (care este F n runda 1, G n runda
2, H n runda 3 i I n runda 4), M este un bloc de 32 de bii al mesajului (observm
c funcia de rund e pe 32 de bii) iar K i S sunt valori numerice predefinite (se
poate consulta RFC1321 pentru aceste valori, aici intereseaz doar la nivel
conceptual construcia lui MD5). n Figura 3.4 se prezint civa vectori de test
pentru MD5 conform cu RFC 1321 (se observ c rezultatul are ntotdeauna 128
de bii).
SHA2 este construit pe principii similare. n acest cazul exist tot 4 funcii
neliniare cu 3 intrri, dar de data aceasta sunt mai complexe i se folosesc 8
blocuri de stare (A, B, C, D, E, F, G, H) de cte 32 de bii. n mod concret, pentru
SHA-256 cele 4 funcii neliniare sunt:

0
1
( , , ) ( ) ( ),
( , , ) ( ) ( ) ( ),
( ) ( 2) ( 13) ( 22),
( ) ( 6) ( 11) ( 25).
Ch E F G E F E G
Ma A B C A B A C B C
A A A A
E E E E
= . .
= . . .
E = >>> >>> >>>
E = >>> >>> >>>


4. Funcii criptografice fr cheie 65


SHA2 folosete 64 de runde n cazul lui SHA-256 i SHA-224 i 80 de
runde n cazul lui SHA-384 i SHA-512 (din acest motiv se poate observa
experimental c SHA-384 i SHA-512 sunt la fel rapide). Detaliile se gsesc n
standardul FIPS 180-2.

3. 3 NOUA GENERAIE DE FUNCII HASH SHA3

n anul 2008 a fost deschis concursul pentru SHA3. n prezent exist 5
finaliti: BLAKE, Groestl, Skein, Keccak i JH. Este greu de prezis ctigtorul, dar
se pot face cteva remarci despre acestea. JH este deja subiect al unor atacuri i
deci nu va avea anse de ctig. BLAKE este se pare cea mai eficient
computaional i uor de implementat. Varianta cu output de 256 bii opereaz pe
32 de bii iar cea cu output de 512 bii pe 64. Permite ca output dimensiuni de
224, 256, 384 sau 512 bii la fel ca SHA2. Groestl folosete aceeai caset de
substituie (S-Box) ca i AES. Are un output de 256 sau 512 bii. Keccak pare s fie
n implementare hardware cel mai rapid dintre finaliti, ntre designeri este i
John Daemen (autor al AES). Aceleai dimensiuni de output ca n cazul SHA2 sunt
valabile. Skein se bazeaz pe codul bloc Threefish i permite dimensiune arbitrar
la ieire. ntre autorii lui Skein este i Bruce Schneier.


MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
= d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("12345678901234567890123456789012345678901234567890123456...234567890")
= 57edf4a22be3c955ac49da2e2107b67a

FIGURA 3.4. EXEMPLE DE VECTORI DE TEST PENTRU MD5 CONFORM RFC 1321


4 CODURI DE AUTENTIFICARE A MESAJELOR (HASH-
URI CU CHEIE)
O gam aparte de sisteme criptografice sunt codurile de autentificare a
mesajelor MAC. Partea interesant vis-a-vis de acestea este c ele pot fi construite
att folosind funcii hash, opiunea mai uzual, dar i folosind scheme de criptare
simetric.
4. 1 DEFINIIE I PROPRIETI
Codurile de autentificare a mesajelor MAC (Message Authentication
Codes), le notm cu ( )
K
MAC m ceea ce nseamn cod de autentificare a mesajului
m calculat cu cheia K. Indiferent de dimensiunea mesajului dimensiunea ieirii
funciei este constant (de obicei dimensiunea cheii este egal cu dimensiunea
ieirii funciei). Codurile MAC se construiesc pe baza unei funcii hash, n general
se folosete MD5 sau SHA1, cu toate c ambele au un nivel de securitate destul de
sczut.
Rolul codurilor MAC este de a testa autenticitatea unei informaii, deci
pentru a verifica sursa de provenien a informaiei, implicnd astfel i o garanie
asupra integritii. n practic se folosesc construciile, unanim recunoscute ca
eficien i securitate, HMAC i NMAC propuse de Mihir Bellare, Ran Canetti i
Hugo Krawczyk n lucrarea [8]. Un cod de autentificare al mesajelor (MAC) l
definim dup cum urmeaz:
Definiia 4.1. (Cod de autentificare a mesajelor MAC) Un cod de
autentificare a mesajelor MAC const n trei algoritmi: algoritmul de generare a
cheii
( )
. 1
k
K MACGen care primete ca intrare nivelul de securitate k i
returneaz cheia K, algoritmul de etichetare ( ) ( ) . ,
K
MAC m MACTag m K
care primete mesajul m i cheia K returnnd eticheta ( )
K
MAC m t = i
algoritmul de verificare ( ) . , , MACVer m K t care primete mesajul, cheia i eticheta
returnnd o valoare binar care este 1 dac i numai dac eticheta corespunde
perechii cheie-mesaj. Toate acestea alturi de spaiile din care provin datele de
intrare ale acestora (care fr a pierde generalitatea sunt spaii ale stringurilor
binare).
4. Coduri de Autentificare a Mesajelor 67
Figura 4.1 ilustreaz schema bloc a algoritmului de generare a cheii care
primete ca intrare parametrul de securitate 1
k
(care reprezint de fapt
dimensiunea cheii i deci nivelul de securitate) i o valoare aleatoare (sau pseudo-
aleatoare). Figura 4.2 ilustreaz algoritmul de calcul pentru valoarea codului MAC
(eticheta) aferent mesajului, valoare notat cu eticheta t , iar figura 4.3 ilustreaz
schema bloc a algoritmului de verificare a acestuia, verificarea fcndu-se prin
compararea etichetei t cu codul nou generat asupra mesajului ( )
K
MAC m . n
Figura 4.4 sunt utilizai algoritmii din figurile 4.1, 4.2 i 4.3 pentru a construi
schema unui sistem criptografic de autentificare a mesajelor.

.


Algoritm de generarea a
cheii MAC.Gen(1
k
)
1
k
K
valoare aleatoare
(pseudo-aleatoare)


FIGURA 4.1. SCHEMA BLOC A ALGORITMULUI DE GENERARE A CHEII PENTRU CODUL
MAC
Algoritm (functie) de calcul
MAC MAC.Tag(m,K)
m
( )
K
MAC m t =
| | *
| | ., . .,128
| ( ) | ., . .,128 256
K
m
K ct e g
MAC M ct e g
=
=
=
K


FIGURA 4.2. SCHEMA BLOC A UNUI ALGORITM DE CALCUL MAC.
68 Funcii Criptografice, Fundamente Matematice i Computaionale




Algoritm (functie) de calcul
MAC MAC.Tag(m,K)
m
( )
K
MAC m
K
t
= { } 0,1 be
Algoritm de verificare MAC MAC.Ver(m,K,?)


FIGURA 4.3. SCHEMA BLOC A UNUI ALGORITM DE VERIFICARE MAC.
Algoritm de calcul (functie)
MAC
Algoritm de generare a cheilor
Algoritm de verificare MAC
K
m
( )
K
MAC m t =
m
{ } 0,1 be
1
k
valoare aleatoare
(pseudo-aleatoare)


FIGURA 4.4. SCHEMA BLOC A UNUI SISTEM DE CRIPTOGRAFIC DE AUTENTIFICARE A
MESAJELOR.
4. Coduri de Autentificare a Mesajelor 69
4. 2 CODURI MAC N PRACTIC: CBC-MAC I H-MAC

Dou construcii de coduri MAC sunt de mare relevan practic. CBC-MAC
permite construirea unui MAC folosind un simplu cod bloc. H-MAC se bazeaz pe
o funcie hash i se remarc prin simplitate i eficien, lucru pentru care este cel
mai comun n practic.
CBC-MAC se construiete n manier similar cu criptarea n modul CBC
(Cipher Block Chaining) cu urmtoarele modificri: vectorul de iniializare IV este
setat pe 0 i singura ieire este blocul final al criptrii (nu exist ieire pentru
fiecare bloc de plain-text ca n cazul criptrii). Figura 4.5 ilustreaz aceast
construcie. De remarcat c aceasta construcie este sigur doar pentru mesaje de
dimensiune fix. Pentru a remedia acest lucru i a face schema sigur pentru
mesaje de orice dimensiune, o soluie este ca la nceputul mesajului s fie
concatenat dimensiunea sa, deci || m m m = .

H-MAC const n aplicarea de dou ori a unei funcii hash folosind de
fiecare dat alt padding. Primul padding se numete ipad (inner-padding) i cel
de-al doilea opad (outer-padding) i reprezint valori numerice predefinite de
dimensiunea blocului care l proceseaz. Mai exact ipad este repetarea lui 0x36 i
opad a lui 0x5C de B-ori, unde B este dimensiunea n bytes a blocului procesat (de
exemplu B=64 n cazul lui MD5 deoarece MD5 proceseaz blocuri de 512 bii aa
cum am discutat anterior) . Practic HMAC const n urmtoarea transformare:

( , ) (( opad) || (( ipad) || )) HMAC K m H K H K m = .
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
0 IV =
Functie Criptare
Bloc
k
( )
k
MAC m

FIGURA 4.5. STRUCTURA CBC MAC
70 Funcii Criptografice, Fundamente Matematice i Computaionale

O transformare simpl, frumoas i sigur. De remarcat faptul c intuiia
de a construi un cod MAC folosind un simplu hash cu cheie adic utilizarea
( || ) H K m conduce la o problem de securitate datorat modului de calculare a
hashului. Dac este un hash iterat, aa cum se ntmpl cu mai toate construciile
practice, se pot falsifica MAC-uri prin concatenarea la mesajul iniial de valori
arbitrare (acest atac din nou nu funcioneaz dac toate mesajele are avea aceeai
lungime).
Funcia hash din cadrul H-MAC poate fi orice funcie hash din practic. Din
acest motiv n mediul de programare .NET unde avem funciile de hash SHA-256,
SHA-384 i SHA-512, vom avea i funciile H-MAC aferente H-MAC-SHA-256, H-
MAC-SHA-384 i H-MAC-SHA-512, etc.
Desigur, mai exist i alte construcii. De exemplu N-MAC (Nested MAC)
care este la fel de eficient ca i HMAC dar necesit modificarea IV-ului pentru
funcia hash, lucru care, dei nu costisitor, l face totui mai complicat dect H-
MAC i deci mai puin frecvent n practic.

5 GENERATOARE DE NUMERE ALEATOARE I
PSEUDO-ALEATOARE

Generatoarele de numere aleatoare sunt un bloc constructiv
indispensabil pentru criptografie deoarece securitatea unui criptosistem depinde
n primul rnd de calitatea cheilor cu care se efectueaz criptarea (chei alese
ntotdeauna plecnd de la valori aleatoare). Un generator de numere aleatoare
este un dispozitiv hard sau soft care genereaz o secven de numere care nu
urmeaz nici un fel de model i deci nu pot fi prezise.
n aceast seciune nu dorim o prezentare de detaliu a unor astfel de
funcii, dar ncercm s prezentm cteva alternative constructive. Generatoare
de numere pseudo-aleatoare se gsesc implementate n orice mediu de
programare dar ele trebuie atent alese pentru a asigura un nivel de securitate real
pentru criptosistemele implementate. Dac generatorul de numere aleatoare este
slab, indiferent de rezistena teoretic a criptosistemului care utilizeaz cheile
acesta va putea fi cu uurin spart n practic (un caz tipic este generatorul
utilizat de Netscape n primele variante de SSL).
Dificultatea practic nu st neaprat n construcia unor astfel de
generatoare (se cunosc alternative eficiente i sigure) ci mai degrab n a defini ce
proprieti trebuie s ndeplineasc acestea. Mai exact, avnd un black-box care
genereaz numere, cum putem stabili dac acesta este sau nu un generator de
numere aleatoare. De exemplu, avnd secvenele 1, 7, 3 i 3, 3, 3 care din cele
dou secvene este mai aleatoare? Ei bine, dac n grab cineva ar putea zice c
prima este mai aleatoare ca a doua, de fapt, la ieirea unui generator de numere
aleatoare ambele pot fi obinute iar o catalogare dup doar 3 ieiri este lipsit de
fundament. Amintim n acest context i paradoxul numit eroarea juctorului
(gambler's fallacy). Acesta poate fi ilustrat prin urmtoarea ntrebare: dac un
juctor a dat cu zarul de 3 ori consecutiv 6, probabilitatea ca a 4-a oara s dea 6
este 1/6 sau mai mic? Rspunsul corect este 1/6 deoarece evenimentul celei de a
4-a aruncri cu zarul este independent de celelalte i deci are tot probabilitatea
1/6. Sunt muli ns cei care cred c probabilitatea este mai mic a patra oar.
Exist teste implementate pentru stabilirea calitii unui generator de
numere aleatoare. Cea mai cunoscut suit este DieHarder
(http://www.phy.duke.edu/~rgb/General/dieharder.php). Pentru a stabili
calitatea unui generator sunt necesare fiiere de zeci, sute de mega-bytes sau
chiar mai mult. Problema real este ns faptul c este posibil a construi un
72 Funcii Criptografice, Fundamente Matematice i Computaionale
generator de numere aleatoare care s treac orice test i totui s poat fi
predictibil!
Exist dou tipuri de generatoare: hard i soft. Generatoarele hard se
numesc n general generatoare de numere aleatoare iar cele soft se numesc
pseudo-aleatoare. Cele hardware se bazeaz pe dificultatea modelrii (sau
necunoaterea exact a modelului) procesului fizic din dispozitivul hard, ceea ce
face ca ieirea s nu poat fi prezis. Cele software, sunt programe care pe baza
unei valori de iniializare (numit seed) produc secvene de numere aparent
aleatoare. Pentru scopuri practice, un generator software poate fi la fel de bun ca
unul hardware! n general cele software sunt ieftine i rapide, iar cele hardware
mai lente dar mai sigure. Din punct de vedere algoritmic, dezideratul constructiv
este de a construi un generator de numere aleatoare astfel nct s nu existe nici
un algoritm n timp polinomial care avnd ieirile generatorului de numere
pseudo-aleatoare i un generator de numere aleatoare s poat decide care este
generatorul de numere pseudo-aleatoare cu probabilitate mai mare de (
proprietate care numete computational indistinguishability).
5. 1 GENERATORUL LINEAR CONGRUENIAL
Cel mai simplu i eficient generator de numere aleatoare este generatorul
linear congruenial (linear congruential generator). Acesta se bazeaz pe
generarea irului recurent:

1
mod
i i
X aX c n
+
= +

Unde , , a c n, sunt parametrii fixai i
0
X este valoarea de iniializare
(seed). Acest generator este simplu de implementat dar nu este sigur din punct de
vedere criptografic! Adic, prin calcule matematice pot fi aflai parametrii, avnd
la dispoziie suficiente valori de ieire. Este ns un generator suficient de bun
pentru scopuri non-criptografice. Perioada maxim a acestuia este n .
Un caz particular se obine prin setarea lui 0 c = ceea ce duce la
1
mod
i i
X aX n
+
= . Acest generator se numete generatorul Lehmer (uneori referit
i ca generatorul Park-Miller). Alegeri uzuale pentru n sunt numere prime de
forma 2 1
k
deoarece acestea conduc la o perioad maxim (desigur dac i
5. Generatorare de numere aleatoare i pseudoaleatoare 73
ceilali parametrii sunt bine alei). Knuth ofer o analiz detaliat a acestui
generator n [55].

5. 2 GENERATOARE LFSR (FIBONACCI I GALOIS)
Registrele de deplasare liniar LFSR (Linear Feedback Shift Register)
reprezint una dintre cele mai eficiente metode de generare a unor secvene
pseudo-aleatoare. Atenie, nici acestea nu sunt destul de sigure pentru scopuri
criptografice. Dar, sunt simplu de implementat i utile n diverse alte aplicaii.
Dou exemple sunt codurile CRC i, n criptografie, codurile de criptare stream.
Exist dou tipuri de registre: LFSR standard (numite i Fibonacci) unde
valorile din registre se nsumeaz modulo 2 (XOR) pentru a obine feed-backul i
LFSR Galois unde valorile se nsumeaz modulo 2 (XOR) succesiv pentru a obine
valoarea din fiecare registru n parte. Figura 5.1 ilustreaz cele dou tipuri de
registru. Cele dou construcii sunt echivalente, dar varianta Galois are avantajul
c poate fi paralelizat deoarece se execut XOR independent la fiecare registru n
timp ce n cellalt caz se execut XOR asupra tuturor valorilor.





FIGURA 5.1. IMPLEMENTARE LFSR FIBONACCI (SUS) I GALOIS (JOS) A
POLINOMULUI
6 5
1 X X + +
74 Funcii Criptografice, Fundamente Matematice i Computaionale
Aceste registre lucreaz de fapt n cmpul finit
2
n
F (cmp Galois, a se
vedea capitolul de fundamente matematice) iar operaiile efectuate pot fi
interpretate ca operaii binare asupra coeficienilor unui polinom. Coeficienii
polinomului sunt 1 acolo unde exist cablaj ctre XOR i 0 altfel, vezi de exemplu
Figura 5.1. pentru polinomul
6 5
1 x x + + . Uor de imaginat, dac mai exista un
termen n
3
x de exemplu mai aprea un XOR la dou blocuri dup cel aferent
termenului n
5
x .
n mod clar perioada maxim a unui astfel de generator este 2 1
n
i
aceast perioad este atins pentru anumite polinoame numite polinoame
primitive (polinoame ale cror rdcini sunt generatori ai cmpului) indiferent
de valoarea de iniializare cu condiia ca ea s fie nenul. De exemplu pentru
4 3
1 x x + + perioada este 15 iar pentru
9 5
1 x x + + perioada este 511, etc.

Aa cum am spus, LFSR reprezint o soluie nesigur din punct de vedere
criptografic. Aceasta deoarece sunt algoritmi care pot afla coeficienii polinomului
pe baza ieirii registrului i deci pot n acest fel sparge generatorul RNG. O
soluie eficient pentru aflarea coeficienilor este algoritmul Berlekamp-
Massey.
5. 3 GENERATORUL BLUM-BLUM-SHUB
Cum am spus, generatorul anterior nu este sigur din punct de vedere
criptografic. n mod clar utilizarea lui pentru chei criptografice conduce la sisteme
nesigure. Un deziderat constructiv este construirea unui generator cu privire la
care s se poat demonstra c prezicerea informaiei de la ieire este echivalent
cu rezolvarea unei probleme despre care se tie c este imposibil de rezolvat n
practic (adic care s dein securitate demonstrabil n sensul descris n
capitolul introductiv).
Un exemplu ilustrativ n acest sens, i totodat ilustrativ pentru utilizarea
funciilor criptografice n construcia de generatoare pseudo-aleatoare, este
generatorul Blum-Blum-Shub (BBS) [14], [15] a crui securitate este
echivalent cu dificultatea problemei factorizrii ntregilor, i care utilizeaz
funcia ridicare la ptrat utilizat n multe criptosisteme cu cheie public (de
exemplu Rabin, vezi i [46], [69] pentru aplicaii).
Generatorul BBS se bazeaz pe calcularea irului recurent:
5. Generatorare de numere aleatoare i pseudoaleatoare 75


2
1
mod
i i
X X n

= ,

Aici n p q = este un ntreg suficient de mare astfel nct factorizarea lui
s nu poate fi uor calculat i
0
X este o valoarea de iniializare aleas aleator. La
ieirea generatorului nu se returneaz valoarea
i
X ci bitul de paritate al acesteia.
Ca exemplu artificial, cu numere foarte mici, pentru 13 17 221 n = = ,
0
100 X = avem
1
55 X = ,
2
152 X = ,
3
120 X = , etc., ieirea generatorului BBS
este ( )
0
1 paritate X = , ( )
1
1 paritate X = , ( )
2
1 paritate X = , ( )
3
0 paritate X = ,
etc. Acest generator este lent dar este suficient de sigur pentru a fi utilizabil n
scopuri criptografice.

5. 4 GENERATOARE HARDWARE

Exist suficient de multe surse hardware din care se pot extrage secvene
aleatoare. Exemple relevante constituie: zgomotul unei diode, drift-ul
oscilatoarelor, zgomotul termic, zgomotul atmosferic, etc. Uor de implementat
sunt primele dou alternative, cea bazat pe zgomotul unui diode i cea bazat pe
drift-ul a dou oscilatoare. Alternativa preferat de practic este zgomotul diodei
deoarece conduce la performane mai bune. n prezenta carte suntem interesai
de probleme fundamentale i deci detaliile constructive ale unor astfel de
generatoare nu prezint interes, le-am amintit doar pentru a aduce o imagine
complet n faa cititorului.

6 SCHEME DE CRIPTARE CU CHEIE ASIMETRIC
(CRIPTAREA CU CHEIE PUBLIC)


A private conversation can therefore be
held between any two individuals regardless of whether
they have ever communicated before. Each one sends
messages to the other enciphered in the receiver public
enciphering key and deciphers the messages he receives
using his own secret deciphering key. We propose some
techniques for developing public key cryptosystems, but the
problem is still largely open () We note that neither public
cryptosystems nor one-way authentication systems can
unconditionally secure because the public information
always determines the secret information uniquely among
members of a finite set. With unlimited computation,
problem could therefore be solved by a straightforward
touch. W. Diffie & M. Hellman
2
.

Discutm acum schemele de criptare cu cheie public. Aceste construcii
au jucat rolul fundamental n apariia criptografiei moderne, bazat pe o
comunitate academic activ i standarde deschise publicului larg. n continuare
vom discuta cele mai relevante criptosisteme de la schimbul de cheie Diffie-
Hellman i RSA pn la criptarea folosind curbe eliptice. Nu n ultimul rnd
discutm i atacuri ale adversarilor activi precum i tehnici moderne de padding
ce pot fi folosite pentru a spori securitatea acestor criptosisteme.
6. 1 DEFINIIE I PROPRIETI

n introducere a fost prezentat un scurt istoric al criptosistemelor cu cheie
public. Dorim acum s introducem formalismul necesar descrierii unui astfel de
criptosistem. Criptarea asimetric, o notm similar cu cea simetric, pentru

2
Din lucrarea care lanseaz criptografia cu cheie public New directions in
cryptography.
6. Scheme de criptare cu cheie asimetric 77
claritate ns schimbm cheia k cu PK (Public Key), astfel avem
( )
PK
c E m =
(aceasta semnificnd criptarea cu cheia PK a mesajului. Decriptarea se face
folosind cheia privat ca
( )
SK
m D c = (n general se folosete noiunea de cheie
privat i nu secret dar pentru a evita redundana notaiei vom scrie SK care
trimite ctre Secret Key).
Criptarea cu cheie public comparativ cu cea cu cheie secret are ca
dezavantaj viteza i prezint dou avantaje majore: i) nu necesit schimbul
prealabil de chei secrete, deci comunicaia poate fi efectuat i pe un canal nesigur
fr s existe secrete partajate i ii) numrul de chei partajate la comunicarea
ntre n entiti este minim (o cheie public i o cheie privat pentru fiecare
entitate). Un criptosistem cu cheie public l definim dup cum urmeaz:
Definiia 6.1. (Schem de criptare cu cheie public). O schem de
criptare cu cheie public (criptosistem cu cheie public) const n trei algoritmi:
algoritmul de generare a cheilor ( ) ( )
, . 1
k
PK SK PKEGen care primete ca
parametru nivelul de securitate k i returneaz perechea cheie public-privat
( ) , PK SK , algoritmul de criptare ( ) . , PKE Enc m PK care primete mesajul m i
cheia public PK i returneaz criptotextul
( )
PK
c E m = i algoritmul de
decriptare ( ) . , PKE Dec c SK care primete criptotextul c i cheia privat SK i
returneaz mesajul m . Toate acestea alturi de spaiile din care provin datele de
intrare ale acestora (care fr a pierde generalitatea sunt spaii ale stringurilor
binare).
Pentru corectitudinea criptosistemului, se impune ca pentru fiecare
pereche cheie public-privat ( ) ( )
, . 1
k
PK SK PKEGen i pentru orice mesaj
m , decriptarea aplicat criptrii conduce tot timpul la mesajul original, adic
( ) ( )
. . , , m PKE Dec PKE Enc m PK SK . Aceasta ne asigur c criptosistemul
furnizeaz rezultate corecte i ntotdeauna decriptarea criptrii unui mesaj
returneaz acelai mesaj.
Algoritmul de generare a cheii difer de cel de la primitivele cu cheie
simetric prin faptul c returneaz dou chei distincte, acest lucru este sugerat n
Figura 6.1. Figura 6.2 i Figura 6.3 sunt ilustrative pentru algoritmii de criptare i
decriptare iar n Figura 6.4 sunt utilizai algoritmii din Figura 6.1, Figura 6.2 i
Figura 6.3 pentru a construi schema unui sistem de criptare cu cheie asimetric.

78 Funcii Criptografice, Fundamente Matematice i Computaionale





Algoritm de generarea a
cheii PKE.Gen(1
k
)
1
k
PK
valoare aleatoare
(pseudo-aleatoare)
SK

FIGURA 6.1. SCHEMA BLOC A ALGORITMULUI DE GENERARE A CHEII PENTRU
CRIPTAREA ASIMETRIC.
Algoritm (functie) de
decriptare cu cheie
asimetrica PKE.Dec(c,SK)
( )
SK
m D c = c
SK


FIGURA 6.3. SCHEMA BLOC A UNEI FUNCII DE DECRIPTARE CU CHEIE ASIMETRIC.
Uzual:
( )
| | | |
. , . ., 1024 4096 (ECC de la 160)
| |
PK
m PK
PK ct e g
E m PK
<
=
=
Algoritm (functie) de criptare
cu cheie publica
PKE.Enc(m,PK)
m
( )
PK
c E m =
PK


FIGURA 6.2. SCHEMA BLOC A UNEI FUNCII DE CRIPTARE CU CHEIE ASIMETRIC.
6. Scheme de criptare cu cheie asimetric 79



6. 2 TAXONOMIE A CRIPTOSISTEMELOR CU CHEIE PUBLIC

nainte de a trece la descrierea celor mai eseniale criptosisteme cu cheie
public, n scopul crerii unei imagini de ansamblu, considerm util prezentarea
unei taxonomii simplificate a acestora n Figura 6.5. Sistemele au fost clasificate n
funcie de problema de teoria numerelor pe baza creia au fost dezvoltate.
Subliniem c dei criptografia cu cheie public are mai bine de 30 de ani de
existen, toate criptosistemele cu cheie public relevante n practic se bazeaz
fie pe problema factorizrii ntregilor fie pe problema logaritmului discret.
Singura noutate este c aceasta din urm a nceput s fie mai frecvent utilizat n
ultimul deceniu pe grupurile curbelor eliptice. n taxonomia din Figura 6.5 linia
continu semnific echivalena problemei cu problema de baz (factorizare sau
logaritm discret) iar linia punctat semnific faptul c o astfel de echivalen nu
exist sau nu a fost nc demonstrat.
Algoritm (functie) de criptare
cu cheie asimetrica (foloseste
cheia publica)
Algoritm de generare a cheilor
Algoritm (functie) de decriptare
cu cheie asimetrica (foloseste
cheia privata)
PK
m
( )
PK
c E m =
SK
1
k
valoare aleatoare
(pseudo-aleatoare)


FIGURA 6.4. SCHEMA DE PRINCIPIU A UNUI SISTEM DE CRIPTARE CU CHEIE
ASIMETRIC.
80 Funcii Criptografice, Fundamente Matematice i Computaionale
ntr-adevr, exist i alte probleme pe care se pot construi criptosisteme
cu cheie public. Una dintre acestea, relevant din punct de vedere istoric, este
problema de optimizare combinatoric cunoscut sub numele de suma unei
submulimi (knapsack problem) sau problema rucsacului. Un criptosistem
construit din aceasta a existat nc din 1978 fiind propus de Merkle i Hellman,
dar criptosistemul a fost prea ineficient pentru a avea interes practic. n ultimul
deceniu, par a fi promitoare criptosistemele bazate pe latici. Sunt probleme pe
care laticile le pot rezolva mai eficient dect alte construcii, precum criptarea
complet homomorfic (fully homomorphic encryption). Este posibil ca laticile s
ofere criptosistemele viitorului. Momentan ns peisajul este dominat de
criptosistemele bazate pe factorizare i logaritmi discrei.



Problema Factorizarii ntregilor

Rabin, 1979

Rivest-Shamir-Adleman,
1978

Diffie-Hellman, 1976

ElGamal, 1983

Problema Logaritmului Discret

Miller-Koblitz, 1985
(Diffie-Hellman si ElGamal pe
curbe eliptice)
Williams, 1980

Goldwasser-Micali
(algoritmi asimetrici
non-deterministi, 1984)
Calculul radacinilor
patrate in Zn

Calculul radacinii de ordin e
n Zn (cu exponent relativ
prim la ordinul lui Zn)
Ipoteza reziduurilor
cvadratice n Zn


FIGURA 6.5. O TAXONOMIE A ALGORITMILOR DE CRIPTARE CU CHEIE PUBLIC.
6. Scheme de criptare cu cheie asimetric 81
6. 3 SCHIMBUL DE CHEIE DIFFIE-HELLMAN-MERKLE

Schimbul de cheie Diffie-Hellman marcheaz nceputul criptografiei cu
cheie public. Prin schimbarea bazat pe informaii asimetrice a unei chei secrete
care poate fi apoi utilizat pentru criptarea unei informaii, se realizeaz n esen
funcionalitatea unui criptosistem cu cheie public. De fapt criptosistemul
ElGamal folosete exact paii acestui schimb, aceeai idee urmnd s apar sub
form de criptosistem n schema ElGamal discutat ntr-o seciune urmtoare. De
asemenea am adugat numele lui Merkle n titlu, conform recomandrii lui
Hellman, bazat pe faptul c ideile lui Merkle ca pionier al criptografiei cu cheie
public au dus la construcia acestui protocol.
Ideea pe care se bazeaz este faptul c operaia de ridicare la putere n
p
Z
este comutativ, i.e.
( ) ( )
mod
z y
y z
x x p , n timp ce extragerea logaritmului
discret (care presupune gsirea lui y astfel nct mod
y
x a p ) nu este
rezolvabil eficient pentru elemente ale grupului de ordin foarte mare. Ce
nseamn ordinului unui element vom discuta detaliat n capitolul de fundamente
matematice. Pentru moment, trebuie s tim doar c ordinul unui element x
este cel mai mic numr t pentru care mod 1
t
x p = . n plus, spunem c x este
generator al lui
p
Z dac ordinul su este 1 p .
Considerm pentru scenariul nostru doi participani A i B care aleg un
numr prim p i un generator g al grupului
*
p
Z , ambele informaii fiind publice.
Totodat A alege un umr aleator a pe care l pstreaz ca informaie privat
(fr s l anune pe B) respectiv B face acelai lucru alegnd un numr aleator
b . Schimbul de cheie const n paii ilustrai n Protocolul 6-1.
La sfritul celor dou sesiuni ambii participani pot calcula valoarea lui
mod
ab
g p. n mod evident A folosete valoarea lui mod
b
g p primit de la B i
valoarea lui a pe care o cunoate deoarece el a ales-o i calculeaz
( )
mod mod
a
b
g p p . Similar, B folosete mod
a
g p, b i calculeaz
( )
mod mod
b
a
g p p . Din moment ce logaritmul discret nu poate fi extras, un
potenial adversar nu poate calcula nici pe a i nici pe b fiind n imposibilitatea
de a extrage cheia comun mod
ab
g p. Subliniem c aceast cheie este aadar
secret i a fost obinut doar pe baza unui schimb de informaie public. Ulterior
82 Funcii Criptografice, Fundamente Matematice i Computaionale
cheia secret poate fi utilizat pentru orice alt operaie criptografic, de exemplu
pentru criptarea simetric.




6. 4 SECURITATEA SCHIMBULUI DE CHEIE DIFFIE-HELLMAN-
MERKLE
Pe lng problema logaritmului discret amintit anterior mai exist
dou probleme relevante n strns legtur cu aceasta i cu securitatea
schimbului de cheie Diffie-Hellman. Le amintim n cele ce urmeaz.
Definiia 6.2. (DDH - Decisional Diffie-Hellman). Problema decizional
Diffie-Hellman ntreab urmtoarele: avnd un numr prim p , un generator g al

( )
. 1
k
DH Setup : Fixeaz un numr prim p de k bii i un
generator g al grupului
*
p
Z ca parametri publici
ai protocolului.
. DH Exchange : A: alege un numr aleator a i trimite
1. A B : mod
a
g p
B: alege un numr aleator b i trimite
2. B A : mod
b
g p
Ai B: calculeaz cheia comun ca mod
ab
g p

PROTOCOLUL 6-1. SCHIMBUL DE CHEIE DIFFIE-HELLMAN

6. Scheme de criptare cu cheie asimetric 83
grupului
*
p
Z i valorile mod
a
g p, mod
b
g p respectiv un numr r s se decid
dac r este sau nu chiar mod
ab
g p.
Definiia 6.3. (CDH Computational Diffie-Hellman). Problema
computaional Diffie-Hellman ntreab urmtoarele: avnd un numr prim p un
generator g al grupului
*
p
Z i valorile mod
a
g p respectiv mod
b
g p s se
calculeze mod
ab
g p.
i problema decizional (DDH) i cea computaional Diffie-Hellman
(CDH) pot fi generalizate la fel ca problema logaritmului discret (DLP) introdus
pe diverse grupuri. Relaia ntre cele trei probleme este urmtoarea:

P P
DDH CDH DLP < <
Prin
P
P Q < notm faptul c problema P se reduce la Q n timp
polinomial, adic, dac avem un algoritm care rezolv P putem rezolva i Q. Aa
cum se observ, problemele nu sunt echivalente. Problema echivalenei ntre cele
trei probleme rmne n continuare deschis (pe unele grupuri este
demonstrat). n ceea ce privete securitatea schimbului de cheie Diffie-Hellman
aceasta este echivalent cu problema computaional CDH i nu cu cea a
logaritmului discret.
Subliniem faptul c acest schimb de cheie este neautentificat i un
adversar poate interveni n schimb introducnd alte valori. Aadar, acest schimb
nu este rezistent n faa unui atac de tip man-in-the-middle (n care un adversar
se interpune ntre cei doi participani) aa cum se poate uor observa n
protocolul urmtor:

1. A: mod
a
g p
1. Adversarul intercepteaz i trimite lui B mod
adv
g p
2. B : mod
b
g p
2. Adversarul intercepteaz i trimite lui A mod
adv
g p

84 Funcii Criptografice, Fundamente Matematice i Computaionale
La finalul protocolului A a schimbat cu adversarul cheia mod
adv a
g p

iar B
a schimbat cu adversarul cheia mod
adv b
g p

. n realitate deci, ntre A i B nu este


partajat nici un fel de cheie secret. Astfel, utilizarea direct a acestui schimb de
cheie nu ofer un canal sigur n practic.

6. 5 CRIPTAREA ASIMETRIC RSA
RSA este prima realizare concret de algoritm de criptare asimetric i
semntura digital. Acest algoritm se bazeaz pe utilizarea pentru criptare a
funciei ( ) n x x f mod
c
= unde n este un ntreg compozit produs a dou numere
prime iar c este un exponent ntreg care respect ( ) ( )
. . . . . , 1 c mmd c n c | = .
Aceast funcie este o bijecie i admite ca invers funcia ( ) n x x f mod
1 o
=

care
va fi utilizat la decriptare, o este un ntreg care satisface relaia
( ) n | co mod 1 . Desigur c inversarea acestei funcii este posibil dac se
cunoate factorizarea lui n . Schema de principiu este ilustrat n Figura 6.6. iar
Sistemul 6-1 este descrierea acestui criptosistem.Corectitudinea algoritmului
poate fi uor demonstrat observnd c ( ) n | co mod 1 implic
( )
n m m c
n k
mod
1

+ | o
, deoarece
( ) ( )
( )
1mod
k
k n n
m m n
| |
.

( ) mod
RSA
f x x n
c
=
( ) , PK n c =
m
mod c m n
c
=
( )
1
mod
RSA
f x x n
o
=
( ) , SK n o =
c
mod m c n
o
=


FIGURA 6.6. CRIPTAREA I DECRIPTAREA RSA.
6. Scheme de criptare cu cheie asimetric 85





6. 6 SECURITATEA CRIPTOSISTEMULUI RSA
Singura cale cunoscut de a sparge complet sistemul RSA este factorizarea
modulului, reamintim ns c nu exist nici o demonstraie c aceasta este singura
metod de a sparge complet RSA-ul. Adic, nu exist nici o demonstraie cu privire
la echivalena dintre RSA i problema factorizrii ntregilor IFP. Mai mult, recent
s-a instalat mult scepticism cu privire la echivalena ntre securitatea RSA i
problema factorizrii ntregilor odat cu apariia articolului lui Boneh i
Venkatesan [16].
( )
. 1
k
RSAGen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = respectiv ( ) ( )( ) 1 1 = q p n |
(presupunem c numerele p i q au fost generate
n aa fel nct n are k bii). Genereaz un ntreg c
astfel nct ( ) ( )
. . . . . , 1 c mmd c n c | = , calculeaz o
astfel nct ) ( mod 1 n | co . Cheia public este
( ) , PK n c iar cea privat este ( ) , SK n o .
( ) . , RSAEnc m PK : Se obine cheia public a entitii aferente
( ) , PK n c i se reprezint mesajul ca ntreg n
intervalul ( ) n , 1 . Se calculeaz criptotextul ca
mod c m n
c
.
( ) . , RSADec c SK : Decripteaz mesajul ca mod m c n
o
.

SISTEMUL 6-1. SCHEMA DE CRIPTARE CU CHEIE PUBLIC RSA
86 Funcii Criptografice, Fundamente Matematice i Computaionale
Este ns demonstrat c a calcula o pereche de chei RSA (cheie public i
cheie privat) este echivalent cu problema factorizrii ntregilor. n acest sens
urmtoarele dou relaii sunt relevante cu privire la securitatea RSA-ului:

.
P
RSADec IFP <
. RSAGen PFI

Prima relaie ilustreaz faptul c decriptarea RSA se reduce polinomial la
factorizare (desemnat ca PFI de la Problema Factorizrii ntregi) i este
evident, calculul cheii de decriptare RSA fcndu-se pe baza factorilor modulului.
Cea de-a doua relaie ilustreaz faptul c a calcula o pereche de chei RSA
este o problem echivalent factorizrii i poate fi demonstrat dup cum
urmeaz. n mod evident dac cunoatem factorizarea modulului putem calcula
perechea de chei, rmne deci de artat doar c o pereche de chei poate fi utilizat
pentru a factoriza modulul. Presupunem c se cunosc c i o astfel nct
1mod ( ), n n pq co | = i dorim aflarea lui p i q . Enumerm dou metode
care pot fi folosite n acest scop:
i)
3
Se observ c 1mod ( ) n co | ( )( ) 1 1 1 k p q co = +
( ) 1 1 k n p q co = + deoarece discutm n contextul criptografiei cu cheie
public i numrul n are o magnitudine foarte mare raportat la ceilali membrii ai
ecuaiei n mod cert vom avea
1
k
n
co (
=
(

. Folosind aceast valoare pentru k
avem ( )
1 1
1 1 p q n
n n
co co
co
| | ( (
+ = + +
|
( (

\ .
. Din moment ce cunoatem
att suma factorilor ct i produsul, care este chiar valoarea lui n , putem extrage
cele dou numere ca rdcini ale unei ecuaii de gradul 2. Calculul este banal n
continuare i nu are sens s fie detaliat.

3
Metoda este preluat de la cursul de Security reductions for asymmetric systems
susinut de Pascal Paillier la Bonn, Germania n septembrie 2007 http://www.b-it-
center.de/Wob/en/view/class211_id867.html.
6. Scheme de criptare cu cheie asimetric 87
ii)
4
Se observ de asemenea c pentru x avem
mod x x n
co

1
1mod x n
co
i prin mprire succesiv a exponentului la 2
vom ajunge la un moment dat la
( ) 1 2
1mod
i
x n
co
= n timp ce
( )
1
1 2
1mod
i
x n
co

care implic
( )
( )
( )
( )
1 2 1 2
1 1 0mod
i i
x x n
co co
+ ceea ce
nseamn c membrii produsului din partea stng a ecuaiei ascund factori
distinci ai lui n i acetia pot fi extrai uor cu de calcul al celui mai mare divizor
comun (vezi seciunile de fundamente matematice i computaionale).
Alegerea corect a parametrilor din stadiul de iniializare a cheii este
extrem de important. Pentru a evita atacuri prin factorizarea modului n se
recomand utilizarea unui modul de 1024-4096 bii pentru o securitate pe termen
lung (vezi tabelul din seciunea introductiv). Alegerea celor dou numere prime
p i q este critic pentru securitate. Este recomandabil ca numerele s fie alese
astfel nct s aib acelai numr de bii iar p q s fie suficient de mare pentru a
preveni un atac exhaustiv prin cutarea unui factor mai mic dect n . Pentru
respectarea primei condiii numerele sunt alese aleator ca avnd fiecare
2
1
log
2
n
bii iar o alegere aleatoare garanteaz i respectarea celei de-a doua condiii cu o
probabilitate suficient de mare.
Pentru a spori rezistena n faa atacurilor prin factorizare a fost propus
i varianta RSA nebalansat n care factorii nu au numr egal de bii. Aceasta este
mult mai rezistent la factorizare dar are o vulnerabilitate fatal n faa unui atac
de tip criptotext ales care v-a fi discutat mai jos.
De asemenea exponentul public poate fi ales ca avnd forme speciale
pentru a face criptarea mai eficient. Sunt preferai exponenii care au ct mai
puini bii de 1, aceasta datorit algoritmului de exponeniere care consum mai
mult timp cnd bitul exponentului este 1. Din acest motiv ntre exponenii
preferai pentru criptarea RSA sunt numerele 3, 17 i 65537.
n mod cert RSA este criptosistemul cu cheie public cel mai intens studiat
(nu n ultimul rnd acest lucru se datoreaz simplitii sale). Astfel, de-a lungul
timpului o gam relativ larg de atacuri i vulnerabiliti ale RSA au fost publicate.
n primul rnd sunt relevante atacurile pasive, care au ca surs un adversar care
ncearc off-line s sparg criptosistemul, dintre acestea amintim:

4
Metoda este preluat din cartea lui Menezes et al. [62].
88 Funcii Criptografice, Fundamente Matematice i Computaionale
- Atacul prin factorizare presupune factorizarea ntregului n - cu ajutorul
algoritmilor cunoscui. n prezent acest lucru nu este posibil pentru valori
suficient de mari ale lui n .
- Atacul prin cutarea direct a mesajului (forward-search) este un
atac general, fezabil asupra oricrui criptosistem cu cheie public.
Deoarece cheia public este prin definiie public un adversar, avnd un
criptotext capturat, poate face o cutare exhaustiv n cazul n care spaiul
mesajului este redus. Pentru a evita acest lucru se folosesc tehnici de
padding precum OAEP sau PKCS prezentate la sfritul acestui capitol
(acestea fac atacul imposibil n sens practic).
n al doilea rnd i mult mai periculoase sunt atacurile active pentru cazul
n care un adversar are acces la maina de decriptare (fiind criptare cu cheie
public accesul la maina de criptare este evident). Dintre acestea amintim:
- Atacul prin temporizare. n mod cert cantitatea de timp necesar
decriptrii poate conduce la informaii suplimentare despre exponentul
utilizat. Paul Kocher este cel care a adus n discuie acest tip de atac. O
abordare temeinic asupra unui astfel de atac mpotriva OpenSSL este n
lucrarea [18] concluzia lucrrii este c astfel de atacuri sunt posibile i
deci trebuie contracarate. Soluia mpotriva acestor atacuri este fie de a
fixa un timp fix de calcul indiferent de dimensiunea exponentului, fie de a
efectua operaii suplimentare n mod aleator pentru a deruta adversarul,
detalii se gsesc n lucrarea [18].
- Adaptive chosen chipertext-attack se discut n contextul adversarilor
activi la sfritul acestui capitol.
Exist cteva vulnerabiliti ale RSA-ului comun cunoscute i care sunt
necesare de amintit, n practic astfel de scenarii trebuind evitate cu orice pre:
- Exponenii de criptare sau decriptare relativ mici. Atacurile asupra
exponenilor mici de criptare au fost introduse de [50] iar cele asupra
exponenilor mici de decriptare de Wiener. Atacul asupra unui exponent
mic de criptare presupune existena unei relaii ntre mesajele criptate i
se contracareaz prin extinderea mesajului cu bii aleatori. Exponenii
mici de decriptare trebuie evitai n practic (evitarea decurge n mod
natural deoarece n practic se utilizeaz exponeni de criptare mici sau cu
forme speciale i acetia fac ca exponenii de decriptare s fie mari). Tot n
categoria exponenilor de criptare mici intr i atacul bazat pe teorema
chinez a resturilor (vezi seciunea de fundamente matematice)
deoarece n cazul criptrii cu exponent mic a aceluiai mesaj folosind mai
multe module diferite, mesajul ar putea fi extras ca rdcin real a
6. Scheme de criptare cu cheie asimetric 89
criptotextului (calculul rdcinii reale este fezabil n timp polinomial, a se
vedea capitolul de fundamente matematice pentru teorema chinez a
resturilor).
- Problema modulului comun. Utilizarea aceluiai modul de ctre mai
muli participani nu este posibil deoarece cunoaterea unei perechi de
chei public-privat duce iminent la factorizarea modulului i pierderea
securitii ntre participani. Alte scheme asimetrice precum ElGamal
permit utilizarea unui modul comun fr a avea aceast deficien.
- RSA balansat i RSA nebalansat. Varianta de RSA n care cele dou
numere prime sunt alese ca avnd aproximativ aceeai dimensiune poart
numele de RSA balansat i este varianta recomandat i utilizat n
practic. Shamir a propus i utilizarea unei variante de RSA numite RSA
nebalansat care are rezisten mult mai mare dect RSA balansat
mpotriva factorizrii i are aceeai vitez de criptare/decriptare [4, p.
276]. Aceasta presupune utilizarea unui numr prim p relativ mic (cteva
sute de bii) i a unui numr prim q relativ mare (cteva mii de bii) iar
apoi decriptarea se va face modulo p pentru a ctiga timp (evident
pentru mesaje mai mici dect p ). Aceast schem are ns un dezavantaj
major nu rezist n faa unui atac de tip criptotext ales. Explicaia este
urmtoarea: presupunem c un adversar cripteaz un mesaj ' m p > iar
valoarea criptat este ' ' mod c m n
c
= dac maina de decriptare ofer ca
rspuns '' ' mod m c p
o
= n mod evident '' ' m m = i totodat
'' ' mod m m p deci ( ) . . . . . '' ', c mmd c m m n p = .
i nu n ultimul rnd cteva proprieti ale criptrii RSA sunt bine de
menionat cu specificaia c aceste proprieti s-au dovedit de-a lungul timpului a
fi pe de o parte avantajoase pentru c au permis dezvoltarea unor soluii de
securitate exotice (precum semntura blind introdus de Chaum ce va fi discutat
n capitolul urmtor) i pe de alt parte dezavantajoase deoarece au fost sursa
unor noi atacuri asupra RSA:
- Ciclicitatea criptrii. Funciile definite pe mulimi finite conduc la cicluri
prin compoziia lor succesiv. Astfel dac avem un mesaj criptat
n m c
e
mod = i continum s l criptm de un numr finit de ori se va
ajunge ca dup k runde sa obinem n c c
k
e
mod . n cele din urm acest
atac devine chiar o metod de factorizare (vezi metodele bazate pe
coliziuni din capitolul de fundamente matematice). Cum factorizarea nu
este fezabil, ciclicitatea criptrii nu reprezint un dezavantaj n practic.
90 Funcii Criptografice, Fundamente Matematice i Computaionale
- Criptarea identic se poate remarca c exist i mesaje care n urma
criptrii rmn neschimbate. Aceste mesaje sunt acele numere care
satisfac ecuaia n m m mod
c
n m mod 1
1

c
. Ne propunem s
determinm numrul de mesaje care satisfac aceast condiie. Datorit
izomorfismului descris de teorema chinez a resturilor este suficient s
lucrm modulo p i modulo q . Astfel n
p
Z ecuaia p m mod 1
1

c
are
exact ( ) . . . . . 1, 1 c mmd c p c = rdcini. Analog exist
( ) . . . . . 1, 1 c mmd c q c soluii ale ecuaiei n
q
Z iar din teorema chinez a
resturilor rezult c n
*
n
Z exist
( ) ( ) . . . . . 1, 1 . . . . . 1, 1 c mmd c p c mmd c q c c soluii. Numrul de mesaje
care verific aceast ecuaie este deci redus i nu poate afecta securitatea
schemei de criptare RSA.
- Proprietatea multiplicativ const n faptul c pentru dou mesaje
criptate
1 1
mod c m n
c
= i
2 2
mod c m n
c
= avem ( )
1 2 1 2
mod c c mm n
c
= .
Aceast proprietate a dus la multe construcii interesante bazate pe RSA
dar din nefericire i la atacul de tip criptotext ales adaptiv care va fi
prezentat la sfritul capitolului.
6. 7 CRIPTAREA ASIMETRIC RABIN
Se bazeaz pe utilizarea funciei ( ) n x x f mod
2
= unde pq n = este un
ntreg compozit produs a dou numere prime exact ca la RSA. Evident schema
Rabin nu este un caz particular al RSA deoarece RSA pretinde ca
( ) ( )
. . . . . , 1 c mmd c n c | = n timp ce ( ) ( )
. . . . . 2, 2 c mmd c n | = . Mai mult, funcia
( ) n x x f mod
2
= nu este o permutare a elementelor din
n
Z ca n cazul RSA fiind
clar c aceasta transform
*
n
Z n
n
Q i
( )( )
4
1 1
=
q p
Q
n
(se va consulta
capitolul de fundamente matematice pentru a lmuri de ce este aa). Pentru cazul
n care n este ntreg Blum (adic 4 mod 3 q p ) i domeniul de definiie se
schimb n
n n
Q Q f : , funcia Rabin devine o permutare, deoarece fiecare
reziduu cvadratic are exact patru rdcini din care exact una este reziduu
cvadratic. Criptosistemul este ilustrat n Figura 6.7 iar descrierea sa formal este
n Sistemul 6-2.
6. Scheme de criptare cu cheie asimetric 91




Se observ c este necesar prezena unui element de redundan pentru
a putea distinge ntre mesajul original i celelalte trei rdcini (reamintim c
fiecare reziduu cvadratic are exact 4 rdcini dac pq n = ). n practic,
introducerea unui astfel de element de redundan nu este o problem - fiind
suficient setarea ntr-o form prestabilit a ctorva bii sau transmisia pe lng
mesajul criptat a ctorva bii redundani. Din nou, tehnicile de padding ce vor fi
discutate la finalul acestui capitol rezolv i aceast problem, pe lng atacurile
active la care rspund.

( )
. 1
k
RabinGen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = (presupunem c numerele p i
q au fost generate n aa fel nct n are k bii).
Cheia public este ( ) PK n iar cea privat este
( ) , SK p q .
( ) . , Rabin Enc m PK : Se obine cheia public a entitii aferente
( ) PK n i se reprezint mesajul ca ntreg n
intervalul ( ) n , 1 . Se calculeaz criptotextul ca
2
mod c m n .
( ) . , Rabin Dec c SK : Decripteaz mesajul ca mod m c n
(calculul rdcinii ptrate este descris n capitolul
de fundamente matematice).

SISTEMUL 6-2. SCHEMA DE CRIPTARE CU CHEIE PUBLIC RABIN
92 Funcii Criptografice, Fundamente Matematice i Computaionale


6. 8 SECURITATEA CRIPTOSISTEMULUI RABIN
Ne propunem s enumerm cteva atacuri clasice asupra algoritmului
Rabin. Atacul de tip criptotext ales este probabil cauza care a dus la
marginalizarea acestui algoritm de criptare. Posibilitatea de a gsi toate rdcinile
ecuaiei n a x mod
2
duce uor la factorizarea ntregului n . n acest context dac
un adversar are acces la maina de decriptare i poate obine decriptarea unui
mesaj ales arbitrar cu o probabilitate de 50% acesta va reui s factorizeze
ntregul n . Folosirea riguroas a redundanei poate duce la evitarea acestui tip de
atac. Atacul prin cutarea direct a mesajului este valid n acelai context ca la
RSA pentru orice criptosistem cu cheie public determinist. Atacul bazat pe
teorema chinez a este posibil i aici de aceast dat exponentul de criptare fiind
2.
Spre deosebire de RSA, n cazul cruia nu exist nici o demonstraie c
securitatea sa este echivalent cu factorizarea, pentru algoritmul Rabin o astfel de
( )
2
mod
Rabin
f x x n =
( )
PK n =
m
2
mod c m n =
Calculul radacinii patrate (vezi
sectiunea 4.4.) si alegerea
mesajului in baza unui
mecanism de redundanta
( )
SK Factorizare n =
c
2
mod m c n =

FIGURA 6.7. CRIPTAREA I DECRIPTAREA RABIN.
6. Scheme de criptare cu cheie asimetric 93
demonstraie este uor de fcut. De fapt demonstraia este direct deoarece
posibilitatea de a calcula reziduuri cvadratice conduce la factorizare aa cum
poate fi uor desprins din seciunea de fundamente matematice. Urmtoarea
echivalen este adevrat cu privire la schema Rabin:

. Rabin Dec PFI

6. 9 CRIPTAREA ASIMETRIC EL-GAMAL
Lucrarea lui Diffie i Hellman [29] propunea ideea de criptare asimetric
i un protocol de schimb de cheie asimetric. apte ani mai trziu, El-Gamal
utilizeaz ideile propuse de Diffie-Hellman pentru a construi un algoritm de
criptare asimetric i o semntur digital [33].


Principiul de funcionare al criptrii asimetrice este identic cu cel al
protocolului de schimb de cheie Diffie-Hellman cu meniunea c cheia simetric
este apoi utilizat pentru criptarea unui mesaj prin efectuarea unei multiplicri
modulare ntre aceasta i mesajul propriu-zis. Sistemul 6-3 ofer descrierea
schemei ElGamal, la fel i Figura 6.8.
( )
, mod ,
a
PK p p o o =
m
( )
1 2
, c c c =
( ) SK a =
m c
2 1
mod
a
m c c p

=
( )
1
2
mod
mod
k
a
k
c m p
c p
o
o
=
=

FIGURA 6.8. CRIPTAREA I DECRIPTAREA ELGAMAL.
94 Funcii Criptografice, Fundamente Matematice i Computaionale



Se observ c dimensiunea mesajului transmis este dubl n cazul criptrii
ElGamal deoarece trebuie transmis perechea o , .
6. 10 SECURITATEA CRIPTOSISTEMULUI ELGAMAL
Algoritmul El-Gamal este un algoritm de criptare non-determinist datorit
alegerii parametrului aleator k . Adic, un mesaj va rezulta n criptri diferite la
fiecare rulare a schemei. Se observ c utilizarea aceluiai exponent k nu este
posibil, deoarece dac acelai k este utilizat pentru a cripta mesaje diferite
atunci este valabil egalitatea
2
1
2
1
m
m
=

ce duce la posibilitatea de a calcula


1
m ca
funcie de
2
m i reciproc (deci algoritmul nu rezist n faa unui atac de tip
criptotext ales).
( )
. 1
k
ElGamal Gen : Genereaz un numr prim p de k bii i alege
un generator g al grupului
p
Z . Genereaz un ntreg
aleator ( ) 1, 2 a p e i calculeaz mod
a
g p. Cheia
public este
( )
, mod ,
a
PK p p o o iar cea privat
este ( ) SK a .
( ) . , ElGamal Enc m PK : Se obine cheia public a entitii
( )
, mod ,
a
PK p p o o i se reprezint mesajul ca
ntreg n intervalul ( ) 1, p . Se genereaz un ntreg
aleator 2 1 < < p k , se calculeaz criptotextul ca
( )
mod , ( ) mod
k a k
c p m p o o o = = .
( ) . , ElGamal Dec c SK : Decripteaz mesajul ca mod
a
m p o

= .

SISTEMUL 6-3. SCHEMA DE CRIPTARE CU CHEIE PUBLIC ELGAMAL
6. Scheme de criptare cu cheie asimetric 95
Primul studiu serios asupra securitii criptosistemului ElGamal se
gsete n [82]. Securitatea criptosistemului ElGamal este echivalent cu
problema computaional Diffie-Hellman (CDH) i deci impune ca i problema
logaritmului discret (DLP) s nu poat fi eficient rezolvat pentru a fi sigur.
Urmtoarea relaie este adevrat:

. ElGamal Dec CDH

6. 11 CRIPTOSISTEMUL GOLDWASSER-MICALI
Criptosistemele RSA i Rabin aa cum au fost anterior prezentate sunt
criptosisteme deterministe. Marele dezavantaj al criptrii deterministe este c un
anume mesaj corespunde aceleiai valori de criptotext ntotdeauna, lucru care
face dificil transmiterea aceluiai mesaj ctre o anume entitate, deoarece un
adversar poate observa cel puin repetiia aceleiai informaii i deci obine o
informaie parial cu privire la mesajele vehiculate. Un alt dezavantaj este i
acela c unele mecanisme de criptare deterministe permit recuperarea unor bii
individuali de informaie din criptotext (ntr-un exemplu din seciunea de
fundamentare teoretic artm c simbolul Jacobi al mesajului poate fi recuperat
din criptotextul RSA). Tehnicile de padding discutate la finalul capitolului rezolv
acest neajuns, dar ele au venit la mai bine de un deceniu dup schemele iniiale.
Criptosistemul Goldwasser-Micali a aprut mult mai devreme fiind revoluionar
pentru vremea la care a aprut i rezolvnd aceast problem. Acesta este
avangardist ca procedeu constructiv i principii introduse n securitate, dar nu ca
i eficien (el este ineficient din punct de vedere computaional i absent n
practic). Sistemul este un sistem criptografic non-determinist, ceea ce nseamn
c rezultatul are o valoare randomizat (acelai mesaj criptat de mai multe ori va
rezulta n criptotexte diferite).
Principiul pe care se bazeaz criptosistemul este imposibilitatea de a
distinge reziduurile cvadratice de pseudo-reziduurile cvadratice din
*
n
Z fr
a cunoate factorizarea lui n - acest lucru mai se numete i problema
reziduurilor cvadratice (QRP Quadratic Residuosity Problem). Ce trebuie s
tim despre aceasta nainte de a citi capitolul de fundamente matematice, este c
reziduurile cvadratice sunt numerele ptrate perfecte din
*
n
Z iar pseudo-
reziduurile sunt numere care nu sunt ptrate perfecte dar nu se cunosc algoritmi
care pot face diferena dintre acestea i ptratele perfecte (dect dac se cunoate
96 Funcii Criptografice, Fundamente Matematice i Computaionale
factorizarea lui n ). Sistemul 6-4 este descrierea schemei de criptare asimetric
Goldwasser-Micali.



Aa cum se observ, entitatea care genereaz cheia cunoate i
factorizarea lui n i astfel poate face diferena ntre reziduuri i pseudo-reziduuri.
Pentru criptare, fiecare bit este criptat ntr-un reziduu sau pseudo-reziduu dup
cum este 1 sau 0 folosind un pseudo-reziduu publicat de cel care a generat cheia.
Evident prin nmulirea a unui reziduu cu un pseudo-reziduu se obine tot un
pseudo-reziduu, astfel n yx c
i
mod
2
= este un pseudo-reziduu pentru c y este
pseudo-reziduu n timp ce n x c
i
mod
2
= este un reziduu.
( )
. 1
k
GM Gen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = . Alege
*
n
Z y e astfel nct y este
un pseudo-reziduu cvadratic, i.e.
n
y Q e (vezi
Definiia 9.44). Cheia public este ( ) , PK n y iar
cea privat este ( ) , SK p q .
( ) . , GM Enc m PK : Se obine cheia public a entitii aferente
( ) , PK n y i se reprezint mesajul m n binar ca
t
m m m m m ...
2 1 0
= . Pentru t i , 1 = alege un ntreg
aleator
*
n
Z xe dac 1 =
i
m atunci n yx c
i
mod
2
=
altfel n x c
i
mod
2
= . Mesajul criptat este ( )
t
c c c c ...
2 1 0
.
( ) . , GM Dec c SK : Pentru t i , 1 = calculeaz simbolul Legendre
|
|
.
|

\
|
p
c
i

i dac 1 =
|
|
.
|

\
|
p
c
i
atunci 0 =
i
m altfel 1 =
i
m .
Decripteaz mesajul ca mod m c n
o
.

SISTEMUL 6-4. SCHEMA DE CRIPTARE CU CHEIE PUBLIC GOLDWASSER-MICALI
6. Scheme de criptare cu cheie asimetric 97
Securitatea schemei este echivalent cu problema calculului apartenenei
la mulimea reziduurilor cvadratice, deci:

. GM Dec QRP

Nu securitatea sau eficiena acestei scheme este partea care o face
relevant, ci faptul c aceast schem atinge un obiectiv important de securitate
(imperceptibilitatea criptotextelor) care va fi discutat ntr-un capitol urmtor.

6. 12 SCHIMBUL DE CHEIE DIFFIE-HELLMAN FOLOSIND CURBE
ELIPTICE (ECDH)

Curbele eliptice erau cunoscute de criptografi nc din anii 80. Cu toate
acestea, ele au aprut n practic doar dup anii 2000. Dintre motivele ntrzierii,
cel puin dou par clare: faptul c sunt mai dificil de implementat i faptul c
matematica pe care se bazeaz este mai complex (nu toate proprietile curbelor
sunt perfect nelese).
Deloc surprinztor, schimbul de cheie Diffie-Hellman poate fi implementat
i folosind curbe eliptice. ntr-o seciune urmtoare discutm ce sunt acestea,
pentru moment ele pot fi interpretate ca un simplu obiect matematic. Aceast
implementare este comun referit n practic ca ECDH adic Elliptical-Curve
Diffie-Hellman. Poate ar fi corect, la fel cum protocolul Diffie-Hellman a fost
propus s se numeasc Diffie-Hellman-Merkle, ca acest protocol s se numeasc
Koblitz-Miller-Diffie-Hellman-Merkle (KMDHM) deoarece Koblitz i Miller au fost
pionierii curbelor eliptice n criptografie.
Spre deosebire de criptosisteme precum RSA, unde parametrii erau
generai aleator i pstrai secret, aici parametrii curbei sunt publici i pot fi
(re)folosii de oricte ori. Mai mult NIST recomand anumite curbe n FIPS 186-3
care sunt larg folosite de toate implementrile practice. Curbele recomandate de
NIST folosesc unul din cele 5 cmpuri prime generate de numere prime p de 192,
224, 256, 384 i 512 bii sau unul din cele 5 cmpuri binare de 163, 233, 283, 409
sau 571 bii. Pentru acestea din urm sunt recomandate att o curb simpl ct i
o curb Koblitz (care permite cu uurin calcularea numrului de puncte), deci n
98 Funcii Criptografice, Fundamente Matematice i Computaionale
total sunt 5 curbe n cmpuri prime i 10 curbe n cmpuri binare recomandate de
NIST. Protocolul 6-2 descrie schimbul de cheie ECDH.













( )
. 1
k
ECDH Gen : Alege un numr prim p de k bii, coeficienii a i
b ai unei curbe eliptice
2 3
: mod E y x ax b p = + + i
un generator P. Toi aceti parametrii sunt publici.
. ECDH Exchange : A: alege un numr aleator a i trimite
1. A B : aP
B: alege un numr aleator b i trimite
2. B A : bP
Ai B: calculeaz cheia comun ca abP

PROTOCOLUL 6-2. SCHIMBUL DE CHEIE DIFFIE-HELLMAN FOLOSIND CURBE ELIPTICE

6. Scheme de criptare cu cheie asimetric 99

6. 13 LIPSA SECURITII N VARIANTELE TEXT-BOOK
ALE ALGORITMILOR DE CRIPTARE

"Of concern with both of these
schemes is that there is no compelling reason
to believe that x is as hard to compute from
f(rx) as rx is hard to compute from f(rx) let
alone that all interesting properties of x are
well-hidden by f(rx). Indeed whether or not
[22, 15] "work" depends on aspects of f
beyond its being one-way, insofar as it is easy
to show that if there exists a trapdoor
permutation then there exists one for which
encryption as above is completely insecure."
M. Bellare & P. Rogaway
5
.

n trecut criptosistemele cu cheie public erau construite pentru a atinge
obiective de securitate rudimentare sau chiar vag definite, de exemplu un
adversar s nu poat afla mesajul criptat ceea ce era uzual asimilat cu inversarea
total a funciei one-way pe care se baza criptosistemul. Un astfel de deziderat de
securitate este ns ineficient n practic i este evident c folosirea schemelor
criptografice n variant text-book face posibil aflarea unor informaii pariale
despre textul criptat. De exemplu criptarea RSA nu modific simbolul Jacobi al
mesajului criptat, astfel, un adversar poate oricnd face distincie ntre criptrile a
dou mesaje cu simboluri Jacobi diferite.
Totodat, n trecut securitatea era gndit n faa unor adversari pasivi
care n principiu analizau criptotextul n vederea gsirii mesajului sau a cheii. n
lumea real adversarii nu sunt pasivi ci activi, avnd acces la mainile de criptare
i decriptare. n faa atacurilor active sistemele n variant text-book anterior
prezentate sunt nesigure.
Pentru claritatea expunerii vom considera un simplu atac de tip criptotext
ales adaptiv asupra schemei RSA. Un atac de tip criptotext ales adaptiv (CCA2)

5
Din lucrarea Optimal asymmetric encryption - How to encrypt with RSA.
100 Funcii Criptografice, Fundamente Matematice i Computaionale
presupune un adversar care nu cunoate cheia privat dar are acces la maina
de decriptare, la fel ca cel sugerat n Figura 6.9, iar faptul c criptotextul este ales
adaptiv nseamn c alegerea criptotextelor de ctre adversar se face pe baza unui
criptotext int care adversarul vrea s l decripteze, maina de decriptare fiind
dispus s decripteze orice criptotext mai puin criptotextul int. Adversarul cu
acces adaptiv este sugerat n Figura 6.10.





Adversar
Masina de decriptare
c=m
e
modn
m=c
d
modn

FIGURA 6.9. ADVERSAR CU ACCES LA MAINA DE DECRIPTARE.
Adversar
Masina de decriptare
c
2
=m
2
e
modn
m
2
=c
2
d
modn
Criptotext tinta c
1
Restrictie c
1
!=c
2

FIGURA 6.10. ADVERSAR CU ACCES ADAPTIV LA MAINA DE DECRIPTARE.
6. Scheme de criptare cu cheie asimetric 101
n acest scenariu este simplu de observat c adversarul poate ascunde
intenia de a decripta un mesaj
1 1
mod c m n
c
= calculnd
2 1 2
mod c c m n
c

pentru o valoare oarecare
2
m , iar apoi obine de la maina de decriptare
'
2 2
mod m c n
o
de unde poate calcula
1 '
1 2 2
mod m m m n

= . Atacul, sugerat i n
Figura 6.12, este pe ct de simplu pe att de fatal (criptotextul fiind spart).
Subliniem c toate criptosistemele anterior introduse sunt vulnerabile n faa unui
astfel de atac. Pentru a nltura aceast limitare vom introduce n paragraful
urmtor cteva obiective moderne de securitate i cteva conversii pentru a
construi criptosisteme rezistente n faa unor astfel de adversari.



Nici criptosistemul ElGamal nu este rezistent n faa unui atac CCA2. Din
nou, un adversar, avnd un criptotext int
( )
1 1
1 1 1 1
mod , ( ) mod
k k a
c p m p o o o = = = poate altera a doua valoare din
criptotext prin nmulirea ei cu o valoare arbitrar i obine
2 2 1
mod m p o o = .
Acum criptotextul nou creat ( )
2 1 2
, c o = este oferit mainii de decriptare i
Adversar
Masina de decriptare
c
2
=c
1
m
2
e
modn
m
2
=c
2
d
=m
1
m
2
modn
Adversarul vrea sa sparga criptotextul c
1
Restrictie c
1
!=c
2
Criptotextul este spart deoarece m
1
=m
2
m
2
-1
modn

FIGURA 6.11. ATAC ADAPTIV ASUPRA MAINII DE DECRIPTARE RSA FINALIZAT CU
SUCCES.
102 Funcii Criptografice, Fundamente Matematice i Computaionale
rspunsul acesteia
2 2 1
" mod
a
m p o

= poate fi folosit pentru a sparge
criptotextul iniial pentru c ntr-adevr
1
1 2 2
" mod m m m p

= . Atacul este sugerat


i n Figura 6.12.



6. 14 VARIANTE CONTEMPORANE ALE CRIPTOSISTEMOR
CLASICE DE CRIPTARE CU CHEIE PUBLIC (REZISTENA
IND/NM-CCA2)

Datorit nivelului slab de securitate oferit de noiunea de securitate de
tip totul sau nimic, criptosistemele cu cheie public contemporane trebuie s
ating obiective de securitate avansate precum ne-distingerea sau
imperceptibilitatea criptotextelor IND (indistinguishability of encryptions)
i non-maleabilitatea criptotextelor NM (non-malleability). Prin IND, noiune
Adversar
Masina de decriptare
Adversarul vrea sa sparga criptotextul
Restrictie c
1
!=c
2
Criptotextul este spart deoarece m
1
=m
2
m
2
-1
modn
( )
1 1
1 1 1 1
mod , ( ) mod
k k a
c p m p o o o = = =
1
1
2
2 2 1
mod ,
mod
k
p
c
m p
o
o o
| | =

|
=
\ .
2 2 1
" mod
a
m p o



FIGURA 6.12. ATAC ADAPTIV ASUPRA MAINII DE DECRIPTARE ELGAMAL FINALIZAT
CU SUCCES.
6. Scheme de criptare cu cheie asimetric 103
introdus de Goldwasser i Micali [44], se nelege faptul c un adversar nu poate
afla nici un fel de informaie cu privire la un mesaj avnd doar valoarea
criptotextului aferent n mod ideal aceasta nseamn c ceea ce un adversar tie
avnd criptotextul, tie i fr criptotext. Prin NM, noiune introdus n [30], se
nelege faptul c un adversar nu poate construi un criptotext avnd un criptotext
dat la care nu cunoate mesajul aferent astfel nct ntre mesajele aferente s
existe o legtura cunoscut de ctre adversar. Noiunea de IND a aprut sub
diverse forme n literatura de specialitate, dintre acestea amintim: securitate
semantic i securitate polinomial (toate noiunile au aceeai semnificaie n
securitate).
Mai mult, toate aceste obiective trebuie s fie atinse n prezena unor
adversari activi care pot fi mprii n trei categorii:

i) CPA (chosen plaintext attack) desemneaz adversari care au
acces la maina de criptare. Este evident c orice criptosistem cu
cheie public trebuie s fie rezistent CPA deoarece orice
adversar are acces la maina de criptare cheia de criptare fiind
n mod evident public. n acest sens nu se discut niciodat de
rezistena CPA a unui criptosistem cu cheie public, aceasta fiind
o cerin mai mult dect evident.
ii) CCA1 (non-adaptive chosen ciphertext attack) desemneaz
adversari care au acces neadaptiv la maina de decriptare. Mai
exact adversarul are acces la maina de decriptare pn la
momentul la care primete valoarea criptotextului care trebuie
atacat, moment la care pierde accesul la maina de decriptare.
iii) CCA2 (adaptive chosen ciphertext attack) desemneaz
adversarii care au acces adaptiv la maina de decriptare, adic
accesul la main rmne valabil chiar i dup primirea valorii
criptotextului care trebuie atacat. Deoarece atacul CCA1 este
considerat oarecum perimat, adeseori n literatura de
specialitate se vorbete doar de atac CCA prin acesta
nelegndu-se de fapt atacul de tip CCA2.

Grupnd cele 3 obiective de securitate {IND, NM} cu cele 3 tipuri de
adversari {CPA, CCA1, CCA2} obinem 6 noiuni de securitate n cazul
criptosistemelor cu cheie public, acestea sunt:
104 Funcii Criptografice, Fundamente Matematice i Computaionale

IND-CPA, IND-CCA1, IND-CCA2, NM-CPA, NM-CCA1, NM-CCA2

Lucrarea [9] este cea care a oferit prima abordare unitar a acestor
noiuni de securitate definind legturile ntre ele. n Figura 6.13 sunt sintetizate
aceste legturi, figura este unanim acceptat n domeniu.



Cel mai esenial aspect n aceste relaii este echivalena
2 2 IND CCA NM CCA care nseamn c un criptosistem pentru care un
adversar cu acces adaptiv la maina de criptare nu poate asocia un criptotext unui
mesaj, chiar dac i se ofer mesajul original i un alt mesaj, cu o probabilitate mai
mare de atunci acest criptosistem este i non-maleabil, adic un adversar avnd
un criptotext nu poate construi un alt criptotext astfel nct mesajele aferente s
aib vreo legtur cunoscut de adversar.
Din punct de vedere formal rezistena IND-CCA2 poate fi definit dup
cum urmeaz (prelum definiia original din lucrarea n care au fost demonstrate
aceste noiuni [9]):
NM-CPA NM-CCA1 NM-CCA2
IND-CPA IND-CCA1 IND-CCA2


FIGURA 6.13. RELAII NTRE NOIUNI DE SECURITATE PENTRU CRIPTOSISTEME
CU CHEIE PUBLIC (DEMONSTRATE N [9]).
6. Scheme de criptare cu cheie asimetric 105
Definiia 6.1. (Rezistena IND-CPA, IND-CCA1, IND-CCA2) Fie
criptosistemul { } , , K E D = , { }
1 2
, A= A A un adversar al criptosistemului
{ } , 1, 2 at cpa cca cca e i k un parametru de securitate. Definim avantajul IND al
adversarului mpotriva criptosistemului ca fiind:

( )
,
ind atl
Adv k

A
=
( ) ( ) ( ) ( )
( ) ( ) ( )
1
2
0 1 1
2 0 1
, 1 , , , ,
2 Pr 1
0,1 , : , , ,
O k
O
pk b
pk sk K x x s pk
b y E x x x s y b
(
A
( =
(
A =



Avnd urmtoarele instane pentru at ,
1
O i
2
O :

- Dac at cpa = atunci ( )
1
O = i ( )
2
O =
- Dac 1 at cca = atunci ( ) ( )
1 sk
O D = i ( )
2
O =
- Dac 2 at cca = atunci ( ) ( )
1 sk
O D = i ( ) ( )
2 sk
O D =

n paragraful urmtor, dedicat criptosistemelor cu cheie public rezistente
CCA2 vom lucra cu cazul 2 at cca = . Lucrarea de fa nedorindu-se a fi exhaustiv,
nu introducem definiia pentru proprietatea NM datorit echivalenei
2 2 IND CCA NM CCA (practic pentru criptosistemele urmtoare odat
demonstrat rezistena IND-CCA2 aceasta implic i rezisten NM-CCA2).
6. 15 FUNCIA DE PADDING OAEP
Propunerile generice ale lui Bellare si Rogaway sunt primele propuneri cu
securitate demonstrat. Aceste propuneri, pe lng importana istoric, fiind
primele propuneri cu securitate demonstrat, sunt eseniale deoarece i
propuneri ulterioare (de exemplu RSA-KEM din [79]) chiar dac mult mai
elaborate i aparent mai complicate sunt extrem de apropiate ca tehnic
constructiv de mecanismele iniiale propuse de Bellare i Rogaway.
106 Funcii Criptografice, Fundamente Matematice i Computaionale
n [5] a fost introdus prima euristic n baza creia se poate demonstra
securitatea n faa adversarilor activi. Metoda are la baz utilizarea unui model
numit modelul oracolului aleatoare ROM (Random Oracle Model) i are ca baz
simularea comportamentului funciilor hash ca funcii perfect aleatoare (altfel
spus modelul presupune c un potenial adversar nu poate face diferena ntre
ieirea unei funcii aleatoare i ieirea unei funcii hash). Modelul ROM a adus i
criticism din partea unor nume puternice n domeniu [20] dar n cele din urm
este singura metod la momentul actual de a demonstra securitatea unui
criptosistem. Criticismul are la baz faptul c desigur, n cele din urm, o funcie
hash nu este o funcie aleatoare, deci Oracole Aleatoare nu exist n lumea real,
dar n cele din urm modelul este acceptat ca fiind cel puin un compromis i
reprezint cel puin un test necesar pentru criptosisteme. Un criptosistem care nu
este sigur n ROM nu trebuie pus sub nici o form n practic n timp ce un
criptosistem care rezist n ROM are anse bune ca i n practic s nu poat fi
eficient atacat. Totui trebuie menionat c exist criptosisteme care pot fi
demonstrate ca fiind sigure n ROM i totui pot fi sparte deci problema de baz
a modelului ROM este incompletitudinea. Dou tehnici de criptare sunt introduse
n [6]:

- Criptarea ( ) ( ) ( ) || E x f r G r x = are securitate IND n faa adversarilor
CCA1.
- Criptarea ( ) ( ) ( ) ( ) || || E x f r G r x H rx = are securitate IND i NM n faa
adversarilor CCA2 (la data publicrii lucrrii echivalena
2 2 IND CCA NM CCA nu era nc demonstrat aa c n [6] se gsesc
demonstraii separate pentru cele dou proprieti de securitate).

n criptosistemele de mai sus G este un generator de numere aleatoare,
H este o funcie hash, iar f este o funcie de criptare oarecare (n practic G i
H pot fi instaniate cu o funcie hash datorit comportamentului funciilor hash
similar cu funciile aleatoare).
Nu este de mirare, c tot Bellare i Rogaway introduc prima tehnic de
criptare pe baz de RSA care este rezistent CCA2. Aceasta este binecunoscuta
tehnic de formatare (padding) a mesajului OAEP (Optimal Asymmetric
Encryption Padding) folosit sub funcia RSA, ansamblu cunoscut sub numele de
RSA-OAEP [6]. n primul rnd sunt importante cteva meniuni istorice cu privire
la OAEP. Bellare i Rogaway au introdus OAEP n [6] susinnd c OAEP este o
6. Scheme de criptare cu cheie asimetric 107
tehnic de padding care funcioneaz pentru orice funcie one-way trapdoor
fcnd-o rezistent n faa atacurilor CCA2. Ulterior Shoup [78] demonstreaz c
OAEP nu poate s garanteze acest lucru pentru orice funcie, aducnd un contra-
exemplu cu o funcie XOR-maleabil. Deficiena descoperit de Shoup ridic mari
semne de ntrebare cu privire la RSA-OAEP i sunt Fujisaki, Okamoto, Pointcheval
i Stern [40] cei care reuesc s demonstreze c RSA-OAEP este rezistent CCA2.
n concluzie RSA-OAEP este un mecanism eficient i sigur de criptare folosind
RSA. Continum cu descrierea acestui criptosistem. Funcia de criptare f-OAEP
definete criptarea ca: ( ) ( ) ( ) ( ) ( )
|| E x f x G r r H x G r = . Se poate uor
observa c este vorba de includerea unei reele Feistel sub o funcie one-way cu
trap i acest lucru se observ uor n desenul din Figura 6.14.
OAEP este deci o tehnic de padding a crei securitate este demonstrat la
nivelul utilizrii funciei cu trap RSA. Desigur exist ns i alte funcii cu trap
dect RSA-ul. n acest context dezvoltarea unor metode ct mai variate de padding
a devenit necesar. Probabil cea mai bun propunere este cea a lui Fujisaki si
Okamoto. Pe scurt propunerea acestora este urmtoarea: criptarea
( ) ( ) ( ) ( )
|| || ,
pk
E x E x r H x r = , unde r este o valoare aleatoare, H este o funcie
hash. n modelul ROM Fujisaki i Okamoto au demonstrat c o astfel de criptare
este rezistent IND-CCA2 cu condiia ca funcia de criptare s fie sigur IND-CPA.
ntre exemplele oferite de autori se afl aplicarea unui astfel de padding asupra
schemelor Blum-Goldwasser, El-Gamal i Okamoto-Uchiyama [39]. Aceast
schem de padding mai este cunoscut i sub numele de Enhanced Probabilistic
Encryption.
nainte de a ncheia trebuie amintite i criptosistemele de criptare hibrid
rezistente IND/NM-CCA2 introduse de Shoup i Cramer n [27]. O soluie analoag
pentru construcia de criptosisteme hibride rezistente CCA2 este n [57] (ulterior,
[51] arat c o component a criptosistemului din [54] nu este rezistent CCA2) .
Este simplu de verificat i rmne ca exerciiu pentru cititor c folosind
aceste tehnici de padding atacurile anterior artate nu mai funcioneaz. Desigur
prezentarea din acest capitol nu este complet din dou motive: primul este c nu
a fost prezentat nici o demonstraie formal cu privire la rezistena acestor
criptosisteme i al doilea este c nu au fost oferite detalii complete cu privire la
parametrii de securitate care trebui utilizai n practic (dimensiunile cheilor, ale
valorilor aleatoare etc.). Tot ce am dorit n acest capitol a fost s trasm ideea de
rezisten IND/NM-CCA2 i s schim cteva soluii pentru aceasta, studiul n
continuare rmnnd deschis pentru cititor. n mediile de programare moderne,
108 Funcii Criptografice, Fundamente Matematice i Computaionale
de exemplu .NET, schema de criptare RSA este disponibil alturi de paddingul
OAEP (de altfel n .NET nici nu este posibil folosirea ei fr padding).


6. 16 FUNCIA DE PADDING PKCS
Dei nu ofer un nivel de securitate la fel de bun ca OAEP, standardele
oferite de RSA Laboratories prescriu o schem de padding cunoscut i sub
numele de PKCS padding. Aceasta apare n diverse implementri practice, de
exemplu n .NET.
Conform PKCS#1 (Public-Key Cryptography Standards) [70] acest
padding const n concatenarea unui octet cu valoarea 0, urmat de un octet cu
valoarea 2, urmat de un numr aleator de 3 k d bytes (unde d este
dimensiunea mesajului) urmat de un octet cu valoarea 0. Astfel criptarea se
efectueaz ca: ( ) 00...00|| 00...10|| || 00...00|| mod
e
random m n.
Utilizarea acestui padding este sigur n faa atacurilor asupra variantei
text-book indicate anterior i permite recuperarea ne-ambigu a mesajului criptat
(totui, acest padding nu are o demonstraie de securitate n faa unui adversar
activ CCA2 aa cum are OAEP deci trebuie considerat mai slab ca securitate).
G
H
1
0
k
m
r
( )
1
0
k
m G r ( ) ( )
1
0
k
r H m G r
f

FIGURA 6.14. SCHEMA BLOC A FUNCIEI F-OAEP


7 SCHEME DE SEMNARE DIGITAL
Semnturile digitale reprezint echivalentul electronic al semnturilor de
mn, acest concept fiind introdus ca funcionalitate adiional a criptosistemelor
cu cheie public de ctre Diffie i Hellman n 1976 dar n absena unei scheme
criptografice pentru acest scop. Obiectivul principal de securitate pe care l
asigur semnturile digitale l reprezint non-repudierea, i anume faptul c o
entitate odat ce a semnat o informaie nu poate nega c a emis acea informaie i
orice alt entitate neutr poate verifica acest lucru.

7. 1 PROPRIETI I CLASIFICARE: SEMNTURI CU APENDICE
I CU RECUPERAREA MESAJULUI
Semnturile digitale reprezint deci o valoare numeric care leag
coninutul unui mesaj de identitatea unei entiti (mai exact de o cheie privat cu
care s-a efectuat semntura). n cele mai multe cazuri, orice algoritm asimetric
poate fi utilizat pentru crearea unei semnturi digitale prin inversarea rolului
cheii publice cu cea privat, iar primele propuneri de semnturi digitale se gsesc
n lucrrile lui Rivest, Rabin i ElGamal [67], [65], [33]. Subliniem c i folosind
algoritmi simetrici se pot crea semnturi digitale (numite semnturi one-time
[12], [13], [32], [61]) dar acestea sunt rar utilizate n practic i nu sunt relevante
n contextul prezentei lucrri. Definiia unei scheme de semntur digital este
urmtoarea:
Definiia 7.1 (Schem de semntur digital). O schem de semntur
digital const ntr-un triplet de algoritmi: algoritmul generare a cheii
( ) ( )
, . 1
k
PK SK Sig Gen care primete ca parametru nivelul de securitate k i
returneaz perechea cheie public-privat ( ) , PK SK , algoritmul de semnare
( ) ( ) . ,
SK
Sig m Sig Sign m SK care primete mesajul m i cheia privat SK i
returneaz semntura
( )
SK
sig Sig m = i algoritmul de verificare
( ) . , , SigVer sig m PK care primete semntura sig , cheia privat SK i mesajul
m i returneaz 1 doar dac semntura este valid. Toate acestea alturi de
spaiile din care provin datele de intrare ale acestora (care fr a pierde
generalitatea sunt spaii ale stringurilor binare).
110 Funcii Criptografice, Fundamente Matematice i Computaionale
Pentru o semntur digital folosim n general notaia ( )
A
Sig m prin
aceasta nelegnd semntura entitii A asupra mesajului m . Semntur se
efectueaz ntotdeauna folosind cheia privat, din acest motiv putem folosi
notaia ( )
A
SK
Sig m cu sau fr nominalizare entitii dac nu este necesar
(uneori se folosete chiar i notaia ( )
A
SK
E m , adic criptare cu cheia secret). n
Figura 7.1 se prezint schema bloc a unei funcii de semntur digital.
Cteva proprieti computaionale ale semnturilor digitale trebuie
amintite: i) trebuie s fie uor de produs doar de ctre cel care semneaz mesajul
(funcia de semnare trebuie s fie uor de calculat), ii) trebuie s fie uor de
verificat de ctre oricine (funcia de verificare trebuie s fie uor de calculat), iii)
trebuie s dein o durat de via corespunztoare (adic semntura s nu
poat fi falsificat pn cnd nu mai este necesar scopului n care a fost creat).
Exist dou mari categorii distincte de semnturi digitale:
i) Semnturi digitale cu recuperarea mesajului mesajul
poate fi recuperat direct din semntura digital. Cel mai
simplu exemplu de construcie este prin inversarea rolului
cheii publice i private n cazul schemei RSA [67]. Pentru a
evita fraudarea lor este obligatorie folosirea unei funcii de
redundan asupra mesajului dup care semntura propriu-
zis se aplic asupra mesajului redundant. Acest lucru este
sugerat n Figura 7.2.
ii) Semnturi digitale cu apendice (sau cu anex) semnturi
digitale din care mesajul nu poate fi recuperat, drept care este
trimis adiional ca anex la semntura digital. Se pot construi
uor prin aplicarea unei funcii hash asupra mesajului i
semnarea hash-ului obinut, vezi Figura 7.3. Datorit eficienei
computaionale n semnarea mesajelor de dimensiuni mari
(deoarece se semneaz efectiv doar hash-ul mesajului care are
n jur de o sut, dou sute de bii indiferent de lungimea
mesajului), aceste semnturi sunt cele mai utilizate n practic.
Totodat orice schem de semntur digital cu recuperarea
mesajului poate fi uor convertit n semntur cu apendice.

8. Scheme de Semnare Digital 111


De asemenea semnturile digitale pot fi clasificate n semnturi
deterministe respectiv semnturi randomizate (non-deterministe) dup cum
algoritmul de semnare folosete valori aleatoare i returneaz sau nu aceeai
semntur pentru acelai mesaj de fiecare dat.

m R(m) Sig(R(m))
( ) R x ( ) Sig x
m R(m) Sig(R(m))
( )
1
R x

( )
1
Sig x

A) Mecanismul de semnare cu recuperarea mesajului


B) Mecanismul de verificare a unei semnaturi cu recuperarea mesajului
(mesajul este recuperat din semnatura si pentru validitatea semnaturii
se verifica daca mesajul contine bitii corespunzatori functiei de redundanta)
( ) ( ) ( )
| | | | | | m R m Sig R m < s

FIGURA 7.2. SCHEMA DE PRINCIPIU A UNEI SEMNTURI CU RECUPERAREA
MESAJULUI.
Functie de semnatura
digitala
( )
enitate
Sig m
| | *
| | . , . ., 1024 4096 (ECC de la 160)
| ( ) | | | ., . .,1024 4096
A
m
SK ct e g
Sig m SK e g
=
=
~
SK
m

FIGURA 7.1. SCHEMA BLOC A UNEI FUNCII DE SEMNTUR DIGITAL CU ANEX.
112 Funcii Criptografice, Fundamente Matematice i Computaionale

O alt clasificare a algoritmilor de semntur mai poate fi n scheme de
semntur de unic folosin (one-time) sau pentru folosire multipl
(multiple-time). Menionm c toi algoritmii prezentai n acest capitol sunt
algoritmi cu folosire multipl, cei pentru semnturi de unic folosin nefiind
prezentai n cadrul acestei lucrri n special datorit absenei lor n practic.




7. 2 SEMNTURA DIGITAL RSA (VARIANTA TEXT-BOOK)
Principiul constructiv care st la baza semnturii digitale RSA este
inversarea rolului cheii publice i private pentru a transforma algoritmul de
criptare n algoritm de semntur digital.

FIGURA 7.3. SCHEMA DE PRINCIPIU A UNEI SEMNTURI CU ANEX (APENDICE).
8. Scheme de Semnare Digital 113
Este mai util n scop didactic prezentarea semnturii RSA cu recuperarea
mesajului. Subliniem c generarea cheii se face identic ca n cazul criptrii
asimetrice urmnd ca diferenele s apar la semnare unde se utilizeaz funcia
( )
1
mod f x x n
o
= precum i funcia de redundan i prin analogie la verificare
se utilizeaz ( ) mod f x x n
c
= apoi din nou funcia de redundan. Rolul principal
al funciei de redundan este de a preveni atacuri, precum ar fi cele de tip fals
existenial.



Subliniem c n practic nu se utilizeaz semntura digital RSA cu
recuperarea mesajului ci cea cu anex care se construiete peste o funcie hash. n
general se prefer semnturile cu anex n practic deoarece sunt mult mai
eficiente din punct de vedere al timpului de calcul (evident n special atunci cnd
mesajul semnat are dimensiuni mai mari dect modulul aa cum este n general
cazul).
( )
. 1
k
RSAGen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = respectiv ( ) ( )( ) 1 1 = q p n |
(presupunem c numerele p i q au fost generate
n aa fel nct n are k bii). Genereaz un ntreg c
astfel nct ( ) ( )
. . . . . , 1 c mmd c n c | = , calculeaz o
astfel nct ) ( mod 1 n | co . Cheia public este
( ) , PK n c iar cea privat este ( ) , SK n o .
( ) . , RSASign m SK : Calculeaz ( ) m R m= i n m s mod
o
= .
Returneaz mod s m n
o
.
( ) . , RSAVer s PK : Se obine cheia public c , n a entitii n cauz i
se calculeaz n s m mod
c
= i verific dac mesajul
aparine spaiului de redundan, returneaz 0 n
caz contrar altfel returneaz 1 i recupereaz
mesajul ca ( ) m R m
1
= .
SISTEMUL 7-1. SCHEMA DE SEMNARE DIGITAL RSA CU RECUPERAREA MESAJULUI.
114 Funcii Criptografice, Fundamente Matematice i Computaionale



Functie hash
( ) h m
Functia RSA
( ) mod
d
h m n
2
| ( ) mod | log ,
e.g.,| ( ) mod | 4096
d
d
h m n n
h m n
~
=
e.g.,| ( ) | 128 h m =
m
| | m = -

FIGURA 7.4. PARADIGMA HASH-THEN-SIGN
( )
. 1
k
RSAGen : Identic cu cazul semnturii cu recuperarea mesajului.
( ) . , RSASign m SK : Calculeaz ( ) m H m = i n m s mod
o
= .
Returneaz mod s m n
o
.
( ) . , , RSAVer s m PK : Se obine cheia public c , n a entitii n cauz,
se calculeaz n s m mod
c
= i se verific dac
( ) m H m = . n caz afirmativ returneaz 0 iar n caz
contrar returneaz 1.

SISTEMUL 7-2. SCHEMA DE SEMNARE DIGITAL RSA CU APENDICE
8. Scheme de Semnare Digital 115
Aceast paradigm, care presupune calcularea hashului i semnarea
acestuia, se numete paradigma hash-then-sign. Pentru RSA schema este
ilustrat n Figura 7.4. Sistemul 7.1 descrie schema de semnare RSA cu
recuperarea mesajului iar Sistemul 7.2 schema de semnare RSA cu apendice.

7. 3 VARIANTE SIGURE N PRACTIC PENTRU SEMNTUR RSA:
FDH, PSS, PKCS V. 1. 5
Aa cum n cazul criptrii RSA era doar padding-ul OAEP cel care fcea
criptarea s fie sigur, este i cazul semnturii RSA care devine sigur doar n
momentul n care este corect folosit. Exist diverse metode prelucrare a
mesajului naintea aplicrii exponenierii folosind exponentul privat RSA, trei
dintre aceste variante sunt de mare relevan practic i totodat sigure: Full
Domain Hash (FDH), Probabilistic Standard Signature (PSS) i PKCS v.1.5.


Functie hash
m
( ) h m
| | m = -
Functia RSA
( ) mod
d
h m n
2
| ( ) mod | log ,
e.g.,| ( ) mod | 4096
d
d
h m n n
h m n
~
=
2
| ( ) | log ,
e.g.,| ( ) | 4096
h m n
h m
=
=

FIGURA 7.5. RSA-FDH (FULL DOMAIN HASH)
116 Funcii Criptografice, Fundamente Matematice i Computaionale
Cea mai sigur dintre acestea este PSS, varianta din PKCS1 discutat n
continuare este o adaptare a variantei iniiale propuse de Bellare i Rogaway, iar
cele mai simple FDH i PKCS v.1.5 dar mai puin sigure.
Varianta FDH se bazeaz pe utilizarea unei funcii hash care creeaz un
hash al mesajului de dimensiune egal cu modulul, apoi se continu cu semnarea
standard dup cum sugereaz Figura 7.5.

Varianta PKCS v.1.5 folosete un hash standard i adaug mesajului un
simplu padding, dup cum sugereaz Figura 7.6. Conform standardului PKCS1,
PSS i PKCS v.1.5 aplic transformarea RSA (decriptare) asupra mesajului codat
(Encoded Message) notat cu EM. Sunt relevant de remarcat diferenele dar i
Functie hash
m
( ) h m
| | m = -
Functia RSA
mod
d
EM n
2
| mod | log ,
e.g.,| mod | 4096
d
d
EM n n
EM n
~
=
e.g.,| ( ) | 128 h m =
0 00|| 0 01|| 0 ff...0 ff || 0 00|| ASN.1
PS T
EM =
2
| | log ,
e.g.,| mod | 4096
d
EM n
EM n
=
=

FIGURA 7.6. RSA-PKCS V.1.5
8. Scheme de Semnare Digital 117
similitudinile cu paddingul PKCS ilustrat n seciunea anterioar. Astfel la criptare
valoarea lui PS este random n timp ce la semnare are o valoare fix (bii de 1),
mai difer i cea de a doua constant a paddingului (0x02 la criptare vs. 0x01 la
semnare). Structura celor dou paddinguri (pentru criptare i semnare) este ns
identic. Valoarea hashului de mesaj este transformat ntr-o valoare ASN.1
(Abstract Syntax Notation), aceasta este doar o simpl codificare standard care
pe lng valoarea hashului include si denumirea algoritmului cu care s-a fcut
semnarea (MD2, MD5, SHA-1, etc.); deci poate fi interpretat ca fiind concatenarea
hashului cu numele algoritmului de hashing (pentru detalii poate fi consultat
standardul PKCS aferent).


PSS aplic de dou ori o funcie hash, de dou ori padding i mai folosete
i o funcie de generare masc (MGF Mask Generation Function) aa cum este
sugerat n Figura 7.6. Funcia MGF este implementat tot pe o funcie hash.
Valoarea de salt este aleas random ceea ce face semntura s fie non-
Functie hash
m
| | m = -
Functie Hash
MGF
mHash salt 1
padding
2
padding
salt
maskedDB 0xbc
H

FIGURA 7.7. RSA-PSS (PROBABILISTIC STANDARD SIGNATURE)
118 Funcii Criptografice, Fundamente Matematice i Computaionale
determinist, n timp ce valorile de padding sunt fixe. Varianta de PSS conform
standardului PKCS pe care am prezentat-o este o modificare minor a originalului
PSS propus de Bellare i Rogaway [7].
Toate aceste variante de padding se pot aplica i n cazul semnturii Rabin
sau variantei Rabin-Williams ce este discutat n continuare.

7. 4 SEMNTURA DIGITAL RABIN
Posibilitatea de a calcula rdcini ptrate n
n
Z poate fi utilizat pentru
construcia unui algoritm de semntur digital. Descrierea schemei de semntur
digital Rabin este n Sistemul 7.3.



Semntura digital Rabin are o mare problem la pasul de semnare i
anume aceea c mesajul pe care se aplic semntura trebuie s fie un reziduu
( )
. 1
k
RabinGen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = . Cheia public este ( ) PK n iar
cea privat este ( ) , SK p q .
( ) . , Rabin Sign m SK : Calculeaz ( ) m R m= i o rdcin ptrat a
sa s , i.e.
2
mod m s n . Returneaz s .
( ) . , RabinVer s PK : Se obine cheia public a entitii n cauz i se
calculeaz n s m mod
2
= i verific dac mesajul
aparine spaiului de redundan, i.e.
R
M me ,
returneaz 0 n caz contrar altfel returneaz 1 i
recupereaz mesajul ca ( ) m R m
1
= .

SISTEMUL 7-3. SCHEMA DE SEMNARE DIGITAL RABIN
8. Scheme de Semnare Digital 119
cvadratic (ptrat perfect). Rezolvarea acestei probleme nu este foarte elegant
singura soluie fiind modificarea aleatoare a unor bii pn cnd mesajul devine
reziduu cvadratic (astfel, pentru funcionare corect, funcia de redundan
trebuie s aib caracter aleator iar n schem s se permit generarea mesajului
redundant pn cnd acesta este ptrat perfect). Pentru a nltura aceast
deficien Williams a introdus o schem similar uor modificat care
funcioneaz n mod determinist. Sistemul 7.4 descrie aceast schem.


( )
. 1
k
RabinWilliams Gen : Genereaz dou numere prime aleatoare
7 mod 3 p , 8 mod 3 q i calculeaz pq n = ,
8
5 +
=
q p n
d . Cheia public este ( ) PK n iar cea
privat este ( ) , SK n d .
( ) . , RabinWilliams Sign m SK : Calculeaz 16 6 m m = + , se observ c s-
a ales ( ) 16 6 R m m = + , i
|
|
.
|

\
|
=
n
m
J . Dac 1 = J atunci
calculeaz n m s
d
mod = altfel calculeaz
n
m
s
d
mod
2
|
|
.
|

\
|
= . Returneaz s .
( ) . , RabinWilliamsVer s PK : Se obine cheia public a entitii n cauz
i se calculeaz n s m mod
2 '
= . n funcie de congruena
modulo 8 a acestei valori se calculeaz: 1. 8 mod 6
'
m
atunci
'
m m= 2. 8 mod 3
'
m atunci
'
2m m= 3.
8 mod 7
'
m atunci
'
m n m = 4. 8 mod 2
'
m atunci
( )
'
2 m n m = i verific dac mesajul aparine spaiului
de redundan, i.e.
R
M me . Recupereaz mesajul m ca
( )
16
6
1

= =

m
m R m .
SISTEMUL 7-4. SCHEMA DE SEMNARE DIGITAL RABIN-WILLIAMS
120 Funcii Criptografice, Fundamente Matematice i Computaionale

7. 5 SEMNTURA BLIND BAZAT PE RSA
Conceptul de blind-signature (preferm utilizarea termenului n limba
englez n locul traducerii de semntur oarb) a fost introdus de Chaum n
lucrarea [21] i de asemenea utilizat mai trziu n [22]. Ideea care st n spatele
acestui concept este foarte simpl i util. Scenariul urmrit este urmtorul: o
entitate dorete s obin semntura altei entiti, desigur cu consimmntul
acesteia, asupra unui mesaj fr ca s fac cunoscut mesajul sau semntura ctre
entitatea n cauz (posesoare a cheii private).
Realizarea unui astfel de mecanism este posibil dac pot fi gsite dou
funcii i astfel nct avnd algoritmul de semntur, pe care aici preferm
s l vedem ca pe o funcie aplicat unui mesaj ( ) S m s satisfac urmtoarea
relaie ( ) ( ) ( )
( ) S m S m = . Funcia poart denumirea de blinding-function
iar funcia de unblinding-function, denumirile indicnd foarte clar rolul
acestora. Pentru cazul n care se utilizeaz semntura digital RSA putem alege
( )
c
k m m = i ( )
1
= k m m iar funcia de semnare RSA fiind ( ) S m m
o
= este
evident c ( ) ( ) ( )
( ) S m S m = va fi satisfcut. Protocolul de blind-signature
care rezult n acest fel ntre dou entiti A i B este urmtorul (preferm
descrierea sub form de protocol i nu de semntur digital conform
formalismului anterior introdus deoarece este mai simplu de urmrit):

1. A: Alege o valoare aleatoare k i calculeaz n k m m mod
* c
=
2. A B :
*
m
3. B A : ( ) n m s mod
* *
o
= (practic B semneaz
*
m folosind RSA)
4. A: Calculeaz n k s s mod
1 *
= care este de fapt semntura
original s asupra lui m .

Cititorul poate uor imagina scenarii practice n care o astfel de schem de
semntur digital poate fi util iar funcionarea mecanismului prezentat este
evident i nu necesit explicaii suplimentare.
8. Scheme de Semnare Digital 121
7. 6 SEMNTURA DIGITAL ELGAMAL
Tot dificultatea de a calcula logaritmi discrei conduce la posibilitatea
construciei unui algoritm de semntur digital aa cum a observat ElGamal. Este
interesant ns c au trecut civa ani de la publicarea schimbului de cheie Diffie-
Hellman pn cnd aceast semntur bazat tot pe logaritmi discrei s fie
descoperit. Explicaia este faptul c schema de semnare nu este foarte intuitiv aa
cum se poate observa chiar din descrierea ei. Sistemul 7.5 descrie schema de semnare
digital ElGamal.



( )
. 1
k
ElGamal Gen : Genereaz un numr prim p , un generator g al
grupului
p
Z , un ntreg aleator 2 1 < < p a i
calculeaz mod
a
g p . Cheia public este
( )
, mod ,
a
PK g y g p p = iar cea privat este
( ) SK a .
( ) . , ElGamal Sign m SK : Genereaz un ntreg aleator 2 1 < < p k cu
( ) . . . . . , 1 1 c mmd c k p = , calculeaz mod
k
r g p = ,
( ) 1 mod
1

p k i ( ) { } ( )
1
mod 1 s k h m ar p

= .
Semntura digital a mesajului este perechea ( ) , r s .
Returneaz ( ) , sig r s .
( ) . , , ElGamal Ver s m PK : Se obine cheia public a entitii
( )
, mod ,
a
PK g g p p . Verific dac 1 1 < < p r i
n caz contrar respinge semntura. Calculeaz
1
mod
r s
v y r p = ,
( )
2
mod
h m
v g p = i accept
semntura dac i numai dac
2 1
v v = .

SISTEMUL 7-5. SCHEMA DE SEMNARE DIGITAL ELGAMAL
122 Funcii Criptografice, Fundamente Matematice i Computaionale
7. 7 SEMNTURA DIGITAL DSA
Digital Signature Algorithm (DSA) este standardul de semntur digital
propus de NIST n 1991 prin FIPS 186 Digital Signature Standard (DSS). n fapt
DSA este o variant a semnturii ElGamal. Se difereniaz ns prin cteva
restricii care conduc cel puin la dimensiune mai redus a semnturii. Iniial
modulul p , numr prim, era restricionat ca valoare ntre 512 i 1024 de bii (n
NET de exemplu, din acest motiv n timp ce cu RSA se pot face semnturi i la
4096 de bii, DSA nu permite dect pn n 1024).

Modulul p este ales astfel nct 1 p are un divizor prim q care conform
variantei FIPS 186-3 are 160 de bii dac modulul este de 1024 bii, respectiv 224
pentru module de 2048 de bii i 256 pentru module de 2048 sau 3072 de bii.
Mai departe, nu se folosete un generator al lui
p
Z ci un numr care are ordinul
( )
. 1
k
DSAGen : Genereaz un numr prim p n intervalul
( )
1023 1024
2 , 2
astfel nct 1 p s fie divizibil cu un numr prim q n
intervalul
( )
159 160
2 , 2 . Alege un numr aleator g al crui
ordin n
p
Z este q , un numr aleator a n intervalul
( ) 0, q i calculeaz mod
a
g p. Cheia public este
( )
, , ,
a
PK p q g g iar cea privat este ( ) SK a .
( ) . , DSASign m SK : Genereaz un ntreg aleator 1 k q < < , calculeaz
mod mod
k
r g p q = i ( ) { }
1
mod s k h m ar q

= .
Semntura digital a mesajului este perechea ( ) , r s .
Returneaz ( ) , sig r s .
( ) . , , DSAVer sig m PK : Se obine cheia public a entitii
( )
, , ,
a
PK p q g g . Verific dac 1 r q < < i 1 s q < < iar
n caz contrar respinge semntura. Calculeaz
1
mod w s q

= , ( )
1
mod u H m w q = ,
2
mod u r w q = ,
( ) ( )
1 2
mod mod
u u
v g y p q = i accept semntura dac i
numai dac v r = .
SISTEMUL 7-6. SCHEMA DE SEMNARE DIGITAL DSA
8. Scheme de Semnare Digital 123
q acest lucru conducnd la o semntur mai compact (din moment ce
generatorul are ordinul de 160-256 de bii, componentele semnturii vor avea tot
atia bii i nu numrul de bii ai lui p ca n cazul semnturii ElGamal).
Descrierea schemei DSA, care este similar cu algoritmul ElGamal pentru cazul
unui modul de 1024 de bii, este n Sistemul 7.6.
Conform standardului funcia h trebuie s fie o funcie hash aprobat
pentru semnturi digitale, de exemplu SHA-1 care este una dintre cele mai
comune alegeri. Parametrii pot fi partajai ntre mai multe entiti n sensul c
tripletul ( ) , , p q g poate fi folosit de mai muli participani n timp ce doar x este
secret. Se observ c spre deosebire de semntura ElGamal, valorile sunt reduse
modulo q , n rest schema este similar.


( )
. 1
k
ECDSAGen : Alege un numr prim p , coeficienii a i b ai unei curbe
eliptice
2 3
: mod E y x ax b p = + + . Alege un punct P al crui ordin
este q , un numr aleator d n intervalul ( ) 0, q i calculeaz dP.
Cheia public este ( ) , , , PK p a b xP iar cea privat este
( ) SK d .
( ) . , ECDSASign m SK : Genereaz un ntreg aleator 1 k q < < ,
calculeaz r kP = i ( ) { }
1
mod s k h m dr q

= . Semntura
digital a mesajului este perechea ( ) , r s . Returneaz
( ) , sig r s .
( ) . , , ECDSAVer sig m PK : Se obine cheia public a entitii
( ) , , , PK p a b dP . Verific dac 1 r q < < i 1 s q < < iar n caz
contrar respinge semntura. Calculeaz
1
mod w s q

= ,
( )
1
mod u H m w q = ,
2
mod u r w q = ,
1 2
v u P u dP = + i accept
semntura dac i numai dac coordonata x a lui r este egal
cu coordonata x a lui v .
SISTEMUL 7-7. SCHEMA DE SEMNARE DIGITAL DSA PE CURBE ELIPTICE (ECDSA)
124 Funcii Criptografice, Fundamente Matematice i Computaionale
7. 8 SEMNTURA DIGITAL FOLOSIND CURBE ELIPTICE
(ECDSA)

Eliptic Curve Digital Signature Algorithm (ECDSA), Sistemul 7.7, este
varianta lui DSA care folosete curbe eliptice. Avantajul este c ofer dimensiuni
ale cheii publice mult mai mici. De exemplu dac la DSA cheia public era de 1024
de bii, folosind ECDSA cheia scade pn la 160 de bii fr s schimbe nivelul de
securitate. Descrierea algoritmului este identic cu DSA cu excepia c acum se
genereaz parametrii curbei, la fel cum am artat n cadrul schimbului de cheie
Diffie-Hellman pe curbe eliptice (ECDH), iar semnarea se face prin operaii
asupra punctelor curbei.


7. 9 TIPURI DE ATAC ASUPRA SEMNTURILOR DIGITALE
Discuia devine i mai interesant n momentul n care discutm
despre atacuri asupra semnturilor digitale. n primul rnd raportat la
acestea este important s distingem ntre modurile n care semnturile pot
fi fraudate. Nivelele de fraudare sunt urmtoarele iar gravitatea lor crete
de la i la iv:
i) Fals existenial un adversar poate falsifica cel puin o semntur dar nu
are control total (sau parial) asupra mesajului semnat.
ii) Fals selectiv un adversar poate falsifica semntura asupra unui anumit
tip de mesaje.
iii) Fals universal adversarul poate calcula semnturi digitale asupra
oricrui mesaj (totui nu cunoate cheia cu care mesajele sunt semnate).
iv) Spargere total - adversarul este n posesia cheii private i poate falsifica
orice semntur.
n ceea ce privete atacul efectiv asupra sistemului de semnare digital,
distingem urmtoarele cazuri n funcie de posibilitile de acces ale adversarului
la maina de semnare digital:
8. Scheme de Semnare Digital 125
i) Atacuri bazate doar pe cheie este atacul n care adversarul are acces
doar la cheia public, de verificare, a semnturii digitale i nu are acces la
maina de semnare.
ii) Mesaj cunoscut adversarul are acces la mesaje semnate de posesorul
cheii private, dar aceste mesaje nu sunt la alegerea lui.
iii) Mesaj ales adversarul poate obine semntura pentru un anumit numr
de mesaje la alegerea sa.
iv) Mesaj ales adaptiv adversarul obine semnturi digitale la alegerea sa
pentru un anume set de mesaje, iar acest lucru se desfoar interactiv.
i n cazul atacului iv), la fel ca n cazul atacurilor de tip criptotext ales
adaptiv, posesorul cheii private nu vrea s semneze un anume mesaj int
cunoscut att de el ct i de adversar, dar este dispus s semneze alte mesaje pe
baza crora adversarul trebuie s construiasc semntura asupra mesajului int.
Atacurile ii), iii) i iv) sunt atacuri n care adversarul are acces la maina de
semnare digital. Prima metod de semnare digital rezistent n faa unor atacuri
active a fost introdus n [45].


8 FUNDAMENTE MATEMATICE


Nowadays, when a Number Theorist
applies for a grant, he says that Number Theory
is used in cryptography, and so doing Number
Theory is good for National Security. Back then,
since it was before the discovery of America,
they said Number Theory is used in music. But I
won't comment on the progress of civilization
since then. H.W. Lenstra
6
.

8. 1 ELEMENTE DE TEORIA PROBABILITILOR
Unul dintre domeniile la care se face frecvent apel n descrierea
criptosistemelor este teoria probabilitilor, cartea de referin n domeniu este
cea a lui Feller [34]. Aa cum s-a observat anterior, pn i definiia unei funcii
one-way, care este o noiune de baz a criptografiei, utiliza noiunea de
probabilitate. n practic nu avem de a face cu criptosisteme care nu pot fi sparte,
ci cu criptosisteme despre care se poate spune pe drept cuvnt c probabilitatea
de a fi sparte este neglijabil.
Definim un eveniment E ca fiind rezultatul unui experiment S i notm
probabilitatea ca evenimentul E s aib loc cu ( ) Pr E . Putem clasifica dou
evenimente
1
E i
2
E n:
i) Independente dac evenimentele nu sunt legate unul de altul, deci
apariia unuia nu influeneaz apariia celuilalt, i.e.
( ) ( ) ( )
1 2 1 2
Pr Pr Pr E E E E = (se mai numete i regula produs pentru
evenimente simultane).

6
Preluat de la http://www.matem.unam.mx/~magidin/lenstra.html.
8. Fundamente matematice 127
ii) Mutual exclusive dac evenimentele nu pot avea loc simultan, adic
apariia unuia face imposibil apariia celuilalt, i.e. ( )
1 2
Pr 0 E E = .
iii) Complementare dac unul nu apare implic apariia celuilalt i
invers, i.e. ( ) ( )
1 2
Pr Pr 1 E E + = .
Se poate uor observa c pentru dou evenimente
1
E i
2
E probabilitatea
ca oricare sau amndou s apar este egal cu
( ) ( ) ( ) ( ) ( ) ( )
1 2 1 2 1 2 1 2
Pr Pr Pr Pr Pr E E E E E E E E = + . Pentru cazul n
care valoarea lui ( ) ( )
1 2
Pr Pr E E este neglijabil (sau nul n cazul evenimentelor
mutual exclusive) se poate aproxima ( ) ( ) ( )
1 2 1 2
Pr Pr Pr E E E E = + .
Relevant este i definirea probabilitii condiionale ntre evenimente.
Definiia 8.1. (Probabilitate condiional) Pentru dou evenimente
1
E i
2
E definim probabilitatea condiional, adic probabilitatea ca
1
E s fie produs de
2
E ca fiind
( )
( )
( )
1 2
1 2
2
Pr
Pr
Pr
E E
E E
E

= .
Un rezultat imediat i foarte relevant legat de probabilitatea condiional
a dou evenimente este Teorema lui Bayes.
Teorema 8.1. (Teorema lui Bayes) Pentru dou evenimente
1
E i
2
E avem
( )
( ) ( )
( )
1 2 1
1 2
2
Pr Pr
Pr
Pr
E E E
E E
E
= .
Aplicarea teoremei lui Bayes este imediat n probleme care ntreab care
este probabilitatea unui eveniment dat fiind c s-a ntmplat un anume
eveniment. Una dintre aplicaiile frecvente n practic sunt filtrele anti-spam.
Trebuie avut atenie sporit deoarece de multe ori rezultatul este contra-
intuitiv. Un bun exemplu este paradoxul cutiilor a lui Bertrand. Avnd trei cutii
fiecare coninnd 2 monede dup cum urmeaz: prima dou de argint, a doua
dou de aur i a treia una de aur i una de argint, dac am ales o cutie i n ea este
o moned de aur, care este probabilitatea ca i cealalt s fie tot de aur? Un
rspuns pripit este plecnd de la faptul c dac am o moned de aur atunci: fie
este cutia aur-argint fie aur-aur i deci sunt n una din cele 2 situaii ce conduce la
probabilitate . Rspunsul este ns greit, deoarece probabilitatea este 2/3 dat
fiind c n momentul n care am ales aur m aflu n una din cele 3 variante: prima
128 Funcii Criptografice, Fundamente Matematice i Computaionale
moned din cutia aur-aur, a doua moned din cutia aur-aur, moneda aur din cutia
aur-argint. Dou din cele trei variante anterioare sunt ctigtoare i deci 2/3
este rspunsul corect. Acest rezultat poate fi explicat i prin prisma teoremei lui
Bayes. Avem de calculat:
( )
( ) ( )
( )
Pr 2 Pr 1 2
Pr 2 1
Pr 1
Aur Aur Aur
Aur Aur
Aur

=

.
Desigur ( ) Pr 2 1/ 3 Aur = ,
( )
Pr 1 2 1 Aur Aur = n timp ce ( ) Pr 1 1/ 2 Aur =
deoarece sunt 6 variante de moned (2 monede x 3 cutii) din care 3 sunt de aur
(deci 3/6). nlocuind n relaie conduce la 2/3 aa cum am artat i anterior.
Rezultatul se poate explica identic i folosind definiia probabilitii condiionale.
Cele mai frecvente experimente sunt cele care au ca rezultat doar dou
evenimente complementare. S presupunem c avem un generator de numere
aleatoare la ieirea cruia putem avea fie 0 fie 1, evident e vorba de dou
evenimente complementare. Pentru cazul n care generatorul este perfect
echilibrat probabilitatea de a da 0 sau 1 este egal cu . Dac presupunem c
generm o secven de 12 bii care este probabilitatea ca exact 7 bii s fie 1 i
exact 5 s fie 0 indiferent de ordinea n care apar? Rspunsul la aceast ntrebare
poate fi uor dat pe baza distribuiei binomiale.
Teorema 8.2. (Distribuia binomial) Dac un experiment se soldeaz cu
dou evenimente complementare
1
E i
2
E prin repetarea experimentului de n ori
probabilitatea ca evenimentul
1
E s fi rezultat de k ori (bineneles c
2
E va
rezulta de n k fiind complementar) este ( ) ( )
1 2
Pr Pr
k n k
k
n
C E E

.
Rmne ca exerciiu pentru cititor s rspund la ntrebarea anterioar, i
s imagineze diverse scenarii pentru cazul n care generatorul nu este perfect
echilibrat i probabilitatea ca ieirea s fie 0 nu este egal cu cea ca ieirea s fie 1.
O alt aplicaie imediat a probabilitilor n programare este construcia
tabelelor de hashuri (hashtable) n care mai multe valori sunt reinute indexat
dup chei de k bii. Fiecare cheie este generat aleator (sau are la baza un hash al
valorii pe care o indexeaz). ntrebarea este dup cte valori introduse n tabel
ne putem atepta la o coliziune cu probabilitate mai mare de ? ntrebarea este
relevant deoarece de exemplu 20 k = conduce la peste 1.000.000 de chei
posibile i aparent probabilitatea de coliziune este mic. Totui teoria ne arat c
nu este aa, probabilitatea de coliziune fiind n mare odat ce s-au atins
aproximativ 2
k
elemente. Deci 1000 de elemente sunt suficiente pentru o
coliziune cu probabilitate destul de mare. Acest fapt este cunoscut sub numele de
paradoxul zilelor de natere deoarece, n mod oarecum surprinztor,
8. Fundamente matematice 129
probabilitatea ca ntr-o camera cu 23 de persoane s existe cel puin 2 persoane
nscute n aceeai zi este aprox. iar intr-o camera cu 100 de persoane
0.999999.
Problema poate fi abstractizat considernd o urn cu m bile, i
ntrebnd care este probabilitatea ca dup n extrageri (cu reintroducere) s
exista cel puin 1 coliziune. Evident, exist
( )
!
( 1)( 2)...( 1)
!
n
m
m m m m m n
n
= = +
variante de a extrage n bile fr coliziune dintr-un total de
n
m variante de
extragere. Deci, probabilitatea s nu existe nici o coliziune este
( )
1
n
n
m
m
. Se poate
demonstra c dac m atunci numrul de extrageri pn la o coliziune este n
medie de
2
m t
.

8. 2 ELEMENTE DE ALGEBR: GRUPURI, INELE I CMPURI
Pentru a elimina confuzii de limbaj, re-amintim definiiile ctorva obiecte
matematice comun folosite n criptografie: grupuri, cmpuri i spaii vectoriale.
Definiia 8.2. (Grup i grup abelian) Un grup este format de o mulime G
alturi de o operaie binar notat - cu proprietile: - este asociativ adic
, , , ( ) ( ) a b c G a b c a b c e - - = - - , exist un element identitate notat cu 1 astfel
nct , 1 a G a a e - = i fiecare element din G are un invers, i.e.,
1
, a G a

e -
astfel nct
1
1 a a

- = . Dac este comutativ, grupul se numete grup abelian, n


acest caz , , a b G a b b a e - = - .
Definiia 8.3. (Inel) Un inel este format de o mulime I i dou operaii
binare + i cu proprietile: ( , ) I + formeaz un grup abelian cu elementul
identitate notat cu 0, iar este asociativ, admite element identitate i este
distributiv fa de + adic , , , ( ) a b c I a b c a b a c e + = + .
Definiia 8.4. (Cmp) Un cmp este un inel comutativ, adic
, , a b I a b b a e = , n care fiecare element cu excepia elementului 0 accept
invers fa de .
130 Funcii Criptografice, Fundamente Matematice i Computaionale
Definiia 8.5. (Cmp finit i ordinul i caracteristica unui cmp) Un cmp
finit este un cmp cu numr finit de elemente iar numrul de elemente se numete
ordinul cmpului. Caracteristica unui cmp este cel mai mic ntreg m pentru care
1 1 1 ... 1 0
m
+ + + + = iar dac un astfel de ntreg nu exist atunci caracteristica sa
este 0.

8. 3 ELEMENTE DE TEORIA NUMERELOR
Domeniul care furnizeaz cele mai multe elemente necesare pentru
construcia algoritmilor criptografici asimetrici este Teoria Numerelor, de altfel
putem spune c criptografia asimetric este n fond teoria numerelor aplicat.
Toi algoritmii de criptare cu cheie public utilizai n practic au securitatea
bazat pe probleme de Teoria Numerelor cu privire la care nu se cunoate o
rezolvare eficient (prin rezolvare eficient nelegem un algoritm n timp
polinomial). Elementele de Teoria Numerelor se folosesc n general n reducii de
securitate pentru a atinge nivelul de securitate demonstrabil (provable
security) ceea ce presupune, aa cum s-a spus, a demonstra c pentru a sparge un
criptosistem este necesar rezolvarea unei probleme de teoria numerelor despre
care se tie c nu poate fi rezolvat eficient. Este oarecum contradictorie noiunea
de securitate demonstrabil n acest context deoarece de cele mai multe ori cu
privire la problema de teoria numerelor nu exist n cele din urm nici o
demonstraie c nu ar putea fi rezolvat n timp polinomial, ci pur i simplu la
nivelul de cunotine actual nu se cunoate o astfel de rezolvare. ncercm n cele
ce urmeaz s sintetizm cele mai relevante noiuni din teoria numerelor cu
aplicabilitate n criptologie, vor fi prezente demonstraii pentru teoremele cele
mai relevante, iar acolo unde aceste demonstraii lipsesc, recomandm cititorului
interesat s consulte orice carte de referin [2], [49] sau curs n teoria numerelor
[86].

8.3.1 MULIMEA DE RESTURI ZN
Reamintim, dei probabil nu este necesar, c un numr prim este un
numr care este divizibil doar cu 1 i cu sine, iar un numr ne-prim l vom numi
compozit, precum i faptul c exist o infinitate de numere prime respectiv de
numere compozite. Prin factorizarea unui numr nelegem descompunerea
acestuia n factori primi, factorizarea unui ntreg fiind unic pn la rearanjarea
8. Fundamente matematice 131
termenilor. Vom nota cu mod a b n i vom citi a este congruent cu b modulo n
dac resturile obinute prin mprirea la n a ntregilor a i b sunt egale.
Definiia 8.6. Definim { } { } n x N x n Z
n
< s e = = 0 | 1 ,..., 3 , 2 , 1 , 0 ca fiind
mulimea resturilor modulo n .
Definiia 8.7. Definim ( ) { }
*
| . . . . . , 1
n n
Z x Z c mmd c x n = e = ca fiind
mulimea ntregilor din
n
Z relativ primi la n .
Se observ c n particular pentru un numr prim p avem
{ } 1 ..., 3 , 2 , 1
*
= p Z
p
deci toate elementele din
p
Z mai puin elementul neutru la
adunare.
Remarca 8.1. ( ) ,
*
n
Z formeaz un grup abelian (simbolul denot
nmulire) deoarece urmtoarele proprieti sunt satisfcute:
i) Legea este asociativ pentru c ( ) ( ) n c b a c b a mod .
ii) Legea este comutativ pentru c n a b b a mod .
iii) Exist element neutru deoarece n a a a mod 1 1 .
iv) Fiecare element are un invers multiplicativ
1

- a a astfel nct
n a a mod 1
1


.
Inversul multiplicativ poate fi eficient calculat cu ajutorul Algoritmului
Euclidian Extins care va fi discutat n capitolul 4.

8.3.2 TEOREMA CHINEZ A RESTURILOR
Pentru doi ntregi oarecare a i b sunt bine cunoscute noiunile de cel
mai mare divizor comun, ca fiind cel mai mare ntreg care divide att pe a ct i
pe b , respectiv cea de cel mai mic multiplu comun, ca fiind cel mai mic ntreg
divizibil att cu a ct i cu b . Este util s introducem ns i relaiile matematice
care definesc aceste numere:
Definiia 8.8. (c.m.m.d.c. i c.m.m.m.c). Pentru doi ntregi b a, a cror
factorizare este
k
e
k
e e
p p p a ...
2 1
2 1
= respectiv
1 2
1 2
...
k
f f f
k
b p p p = cu 0 >
i
e , 0 >
i
f
(subliniem c am introdus n mod forat n factorizarea celor doi ntregi aceleai
numere prime, permind ca exponentul s fie 0) sunt adevrate egalitile:
132 Funcii Criptografice, Fundamente Matematice i Computaionale
( )
( ) ( ) ( )
1 1 2 2
min , min , min ,
1 2
. . . . . , ...
k k
e f e f e f
k
c mmd c a b p p p = ,
( )
( ) ( ) ( )
1 1 2 2
max , max , max ,
1 2
. . . . . , ...
k k
e f e f e f
k
c mmmc a b p p p = .
Teorema chinez a resturilor este un rezultat frecvent utilizat n
criptografie i criptanaliz.
Teorema 8.3. (Teorema Chinez a Resturilor): Fie ntregii
k
n n n ,..., ,
2 1

astfel nct
( )
. . . . . , 1, , 0 , 0
i j
c mmd c n n i j i k j k = = < s < s . Atunci urmtorul
sistem de congruene are o soluie unic x n
n
Z unde
k
n n n n ...
2 1
= :

k k
n a x
n a x
n a x
mod
......
mod
mod
2 2
1 1

Mai mult, soluia acestui sistem poate fi calculat, folosind algoritmul lui
Gauss, ca fiind

=
=
k
i
i i i
n M N a x
1
mod unde
i
i
n
n
N = iar
1
mod
i i i
M N n

= .
Posibilitatea de a calcula inverse multiplicative folosind Algoritmul
Euclidian Extins (vezi capitolul 4) duce la posibilitatea rezolvrii n timp
polinomial a sistemului de congruene din aceast teorem, deoarece aa cum se
poate observa soluia necesit calcularea de inverse multiplicative n , 1,
i
n
Z i k = .
Pentru a sublinia importana acestui rezultat s considerm c o entitate A
dorete s trimit un mesaj criptat ctre trei entiti care utilizeaz pentru
criptare trei module diferite
3 2 1
, , n n n i acelai exponent de criptare 3 c =
folosind funcia RSA (chiar dac criptosistemul nu a fost nc introdus funcia de
criptare RSA a fost prezentat n 2.2). Mesajele criptate transmise sunt
urmtoarele
1
3
1
modn m c = ,
2
3
2
modn m c = ,
3
3
3
modn m c = . Potenialul
adversar cunoate cheile publice, deci
3 2 1
, , n n n , 3 = e , iar dup interceptarea
mesajelor criptate are posibilitatea de a construi sistemul:

3 3
2 2
1 1
mod
mod
mod
n c x
n c x
n c x

8. Fundamente matematice 133
Conform Teoremei Chineze a Resturilor acesta are o soluie unic n
n
Z cu
3 2 1
n n n n = i din moment ce
1 2 3
, , m n m n m n < < < nseamn c
3
3 2 1
n n n m< i
deci
3
1 2 3
m n n n < . Deci evident soluia sistemului este chiar
3
m x = de unde
mesajul original m poate fi extras ca rdcin cubic a lui x n mulimea
numerelor reale. Deci securitatea transmisiei este compromis.

8.3.3 TEOREMELE LUI FERMAT I EULER
Mica teorem a lui Fermat i dezvoltarea acesteia n teorema lui Euler cu
privire la funcia Euler | reprezint un rezultat matematic pe baza cruia a fost
construit criptosistemul RSA precum i alte criptosisteme a cror securitate este
bazat pe problema factorizrii ntregilor.
Definiia 8.9. Pentru un ntreg n definim funcia Euler Fi ( ) n | ca fiind
numrul de ntregi pozitivi mai mici dect n i relativ primi la acesta.
Din definiie rezult c ( )
*
n
Z n = | (deci ( ) n | este chiar ordinul grupului
*
n
Z ). Se poate uor observa c pentru un numr prim p avem ( ) 1 = p p | . De
asemenea pentru un exponent ntreg pozitiv e avem ( )
|
|
.
|

\
|
=
p
p p
e e
1
1 | , aceast
relaie fiind uor de dedus deoarece din cei
e
p ntregi mai mici dect
e
p este
evident c avem exact
1 e
p ntregi care nu sunt relativ primi la p deci
( )
|
|
.
|

\
|
= =

p
p p p p
e e e e
1
1
1
| .
Teorema 8.4. Pentru orice pereche de ntregi pozitivi m n, dac
( ) . . . . . , 1 c mmd c n m = atunci ( ) ( ) ( ) m n nm | | | = .
Teorema poate fi uor demonstrat plecnd de la Teorema Chinez a
Resturilor. Prin definiie exist ( ) m | ntregi x astfel nct m x < s 0 cu
( ) . . . . . , 1 c mmd c x m = i ( ) n | ntregi y astfel nct n y < s 0 cu
( ) . . . . . , 1 c mmd c y n = . Atunci conform Teoremei Chineze a resturilor exist exact un
ntreg mn z < s 0 astfel nct m x z mod i n y z mod ; de asemenea z va fi i
el prim relativ la m i n . Urmeaz imediat c numrul de ntregi z relativ primi
134 Funcii Criptografice, Fundamente Matematice i Computaionale
la m respectiv n care pot fi dedui n acest fel prin Teorema Chinez a Resturilor
este chiar ( ) ( ) n m| | .
Urmtoarea teorem stabilete relaia dup care ( ) n | poate fi calculat i
pentru ntregi compozii.
Teorema 8.5. Pentru un ntreg compozit avnd factorizarea
[
=
=
r
i
e
i
i
p n
1

funcia lui Euler ( ) n | poate fi calculat dup relaia:
( )
|
|
.
|

\
|

|
|
.
|

\
|

|
|
.
|

\
|
=
r
p p p
n n
1
1 ...
1
1
1
1
2 1
| .
Demonstraia acestei teoreme este direct deoarece bazndu-ne pe faptul
c ( ) ( ) ( ) m n nm | | | = dac ( ) . . . . . , 1 c mmd c n m = precum i pe faptul c
( )
|
|
.
|

\
|
=
p
p p
e e
1
1 | din moment ce
[
=
=
r
i
e
i
i
p n
1
rezult imediat c
( ) ( )
[ [ [ [
= = = =
|
|
.
|

\
|
=
|
|
.
|

\
|
= =
|
|
.
|

\
|
=
r
i i
r
i i
e
i
r
i
e
i
r
i
e
i
p
n
p
p p p n
i i i
1 1 1 1
1
1
1
1 | | | .
Teorema 8.6. (Mica Teorem a lui Fermat). Fie p un numr prim i a un
ntreg astfel nct ( ) . . . . . , 1 c mmd c a p = atunci p a
p
mod 1
1

.
Demonstraie: Poate cea mai simpl demonstraie poate fi fcut plecnd
de la observaia c ( ) ( ) 1 1 1 1mod
p p
p
x x x p + + aceasta deoarece toi
coeficienii binomiali sunt divizibili cu p , fiind de forma
k
p
C , mai puin
coeficienii termenilor de rang p . Dar ( ) 1
p
x poate fi scris din nou ca
( ) ( ) 2 1 2 1mod
p p
x x p + + deci ( ) 2 1 1mod
p
p
x x p + + . Acelai lucru
putem s l facem i cu ( ) 2
p
x i procedeul se poate repeta pn ajungem la 1
p
.
Se poate uor observa c vom ajunge la 1 ... 1 1mod
p p
x ori
x p

+ + + - ceea ce trebuia
demonstrat.
O consecin imediat a teoremei 8.6 este faptul c dac ( ) 1 mod p s r
atunci p a a
s r
mod , deci cnd se lucreaz modulo p exponenii pot fi redui
modulo 1 p acest fapt fiind de mare importan n criptografie.
8. Fundamente matematice 135
Teorema este un caz particular al urmtoarei teoreme introduse de Euler
(n acest sens putnd fi utilizat i demonstraia teoremei 8.7 pentru a demonstra
Teorema 8.6).
Teorema 8.7. (Teorema lui Euler). Fie un ntreg oarecare 2 > n i
*
n
Z ae
atunci
( )
n a
n
mod 1
|
. Remarca referitoare la reducerea exponenilor poate fi
extins i pentru acest caz acum exponenii putnd fi redui modulo ( ) n | .
O demonstraie elegant a acestei teoreme se poate face dup cum
urmeaz: definim funcia ( ) x x f Z Z f
n n
= , :
* *
i funcia ( ) x x g Z Z g
n n
o = , :
* *

pentru orice parametru
*
n
Z e o . Este evident c ( ) ( ) n x g x f
n n
Z x Z x
mod
* *
[ [
e e

deoarece imaginile ambelor funcii conin toate elementele din
*
n
Z dar
( )
[ [
e e
=
* *
n n
Z x Z x
x x f iar ( )
( )
[ [ [
e e e
= =
* * *
n n n
Z x
n
Z x Z x
x x x g
|
o o deci
( )
[ [
e e
=
* *
mod mod
n n
Z x
n
Z x
n x n x
|
o de unde rezult
( )
n
n
mod 1
|
o .
Aceast teorem la rndul ei poate fi vzut ca fiind un caz particular al
unei teoreme a lui Lagrange care spune c ordinul oricrui element dintr-un grup
finit (vezi Definiia 8.10 pentru ordinul unui element din
*
n
Z ) divide ordinul
grupului.

8.3.4 ORDINUL UNUI ELEMENT I GENERATORI N ZN
Definiia 8.10. Pentru un ntreg
*
n
Z ae definim ordinul elementului a ca
fiind cel mai mic ntreg t astfel nct n a
t
mod 1 .
Teorema 8.8. Fie t ordinul lui
*
n
Z ae atunci n a a
h k
mod dac i numai
dac t h k mod .
Demonstraie: presupunem c t r h k mod , cu t r < , atunci
n a a a
r it h k
mod

n a a
r h k
mod

dar n a a
h k
mod deci n a
h k
mod 1


i deci n a
r
mod 1 0 r = 0mod k h t . : avem t h k mod deci
n a
h k
mod 1

n a a
h k
mod .
136 Funcii Criptografice, Fundamente Matematice i Computaionale
Lema 8.1. Fie t ordinul lui
*
n
Z ae atunci ( ) n t | | - adic ordinul fiecrui
element divide ordinul grupului.
Demonstraie: demonstraia decurge direct din proprietatea anterioar
pentru c din moment ce
( )
n a a
n t
mod
|
( ) ( ) t n t n t mod 0 mod | |
deci ( ) n t | | .
Definiia 8.11. Fie
*
n
Z e o dac ordinul lui o este ( ) n | atunci o se
numete generator al lui
*
n
Z .
Definiia 8.12. Dac grupul
*
n
Z are generatori atunci
*
n
Z se numete grup
ciclic.
Teorema 8.9.
*
n
Z are generatori, deci este ciclic, dac i numai dac
k k
p p n 2 , , 4 , 2 = unde p este prim iar k un ntreg pozitiv.
O demonstraie pentru Teorema 8.9 poate fi gsit n capitolul 10 din [2].

8.3.5 CONGRUENE POLINOMIALE N ZN
Teorema 8.10. Fie p un numr prim i numerele c b a , , ntregi relativ
primi la p . Ecuaia de gradul II p c bx ax mod 0
2
+ + este compatibil (are
soluie) dac i numai dac numrul ac b 4
2
= A este reziduu cvadratic modulo
p sau 0 = A .
Lsm demonstraia teoremei 8.10 ca exerciiu pentru cititor n special
datorit similitudinii cu calculul rdcinii unei ecuaii de ordinul doi n mulimea
numerelor reale cu care cititorul este familiarizat deja.
Teorema 8.11. Fie p un numr prim i f un polinom cu coeficieni ntregi
care nu sunt divizibili cu p . Atunci numrul de soluii ale congruentei
( ) p x f mod 0 este cel mult gradul polinomului f .
Nu insistm pe o demonstraie riguroas ci ne oprim asupra unei simple
schie. n primul rnd observm c un polinom de gradul nti are o singur
rdcin modulo p , este evident c ecuaia 0mod x a p + are o singur soluie.
Se poate apoi observa foarte simplu din Teorema mpririi cu Rest c orice
polinom de grad k poate fi scris ca ( ) ( ) ( ) f x x a g x c = + + prin mprire cu rest
8. Fundamente matematice 137
la un polinom oarecare x a + iar dac a este rdcin a lui f atunci 0 c = i deci
( ) ( ) ( ) f x x a g x = + iar numrul de rdcini ale lui f trebuie s fie 1 plus
numrul de rdcini ale lui g care acum are gradul 1 k . n mod evident
procedura se mai poate repeta i pentru g i aa mai departe pn ajungem la un
polinom de gradul 1 care va avea o singur rdcin, de unde rezult imediat c
f are cel mult k soluii.

8.3.6 REZIDUURI CVADRATICE N ZN
Acest paragraf trateaz problema reziduurilor cvadratice n
*
n
Z problem
care prezint un interes major deoarece i gsete aplicaii att n numeroase
construcii criptografice, de exemplu algoritmul Rabin [65] de criptare asimetric
i semntur digital, precum i n tehnicile de analiz criptografic, de exemplu
n factorizarea ntregilor (fiind demonstrat c posibilitatea de a calcula rdcini
ptrate n
*
n
Z duce la factorizarea lui n ). De asemenea exist i probleme rmase
nerezolvate legate de reziduurile cvadratice n
*
n
Z , dintre acestea enunm
urmtoarele probleme de importanta major n criptografie:
i) Nu se cunoate nici un algoritm PTP pentru a distinge
reziduurile de pseudo-reziduurile cvadratice n
*
n
Z fr a se
cunoate factorizarea lui n .
ii) Nu se cunoate nici un algoritm determinist n timp polinomial
n p pentru calcularea reziduurilor cvadratice n
*
p
Z , unde p
este un numr prim.
Definiia 8.13. Fie
*
n
Z xe , x se numete reziduu cvadratic modulo n , sau
ptrat perfect modulo n , dac exist
*
n
Z ye astfel nct n y x mod
2
. Dac nu
exist
*
n
Z ye astfel nct condiia anterioar s fie satisfcuta atunci x se va numi
non-reziduu cvadratic modulo n .
Convenim s notm mulimea reziduurilor cvadratice modulo n cu
n
Q iar
cea a non-reziduurilor cvadratice modulo n cu
n
Q , evident C =
n n
Q Q i
*
n n n
Z Q Q = .
138 Funcii Criptografice, Fundamente Matematice i Computaionale
Remarca 8.2. Prin definiie
*
0
n
Z e i deci
n
Q e 0 ,
n
Q e 0 (precizm c
exist i lucrri care consider c 0
n
Q e ).
Teorema 8.12. Dac p este un numr prim i p y x mod
2 2
atunci fie
p y x mod fie p y x mod .
Demonstraie:
p y x p y x mod 0 mod
2 2 2 2
( )( ) p y x y x mod 0 + deci fie
( ) | p x y fie ( ) | p x y + .
Teorema 8.13. Fie p un numr prim, urmtoarele relaii sunt adevrate:
i)
p
Q xe ,
p
Q ye
p
Q xy e , ii)
p
Q xe ,
p
Q y e
p
Q xye , iii)
p
Q xe ,
p
Q y e
p
Q xy e .
Demonstraie: i) Este evident c dac
p
Q xe ,
p
Q ye atunci , a b - astfel nct
p a x mod
2
i p b y mod
2
( ) p ab xy mod
2
deci
p
xy Q e . ii) Presupunem
c
p
xy Q e atunci avem
2
mod xy a p pentru un numr oarecare
p
a Z
-
e . Dar
cum
p
Q xe nseamn c b - astfel nct
2
mod x b p i atunci
2 2 2
mod mod xy a p b y a p de unde avem
( )
1
2 2
mod y a b p


( )
2
1
mod y ab p

i deci
p
Q ye ceea ce este o contradicie cu ipoteza, deci nu
rmne dect c presupunerea este greit i deci
p
xy Q e . iii) Presupunem c
produsul a dou non-reziduuri este tot un non-reziduu. Notm mod xy z p i
presupunem deci c
p
z Q e , n mod evident orice non-reziduu cvadratic poate
fi scris ca fiind produsul dintre un reziduu i un non-reziduu cvadratic, convenim
astfel pentru un numr oarecare
p
a Z
-
e s scriem
2
' mod x x a p ,
2
' mod y y a p ,
2
' mod z z a p i urmeaz c
4 2
' ' ' mod x y a z a p
( )
2
1 1
' ' ' mod x y z a p

. Este uor de observat c dac
'
p
z Q e atunci i
1
p
z Q

e pentru c
1 2
mod
p
z z p

iar ridicarea la puterea
2 p care este un numr impar nu poate schimba apartenena la reziduuri sau
non-reziduuri cvadratice. Dar noi am presupus c produsul a dou non-reziduuri
este tot un non-reziduu deci ' ' x y este non-reziduu i nmulit cu
1
z

care este tot


8. Fundamente matematice 139
non-reziduu trebuie s dea tot un non-reziduu, dar
( )
2
1
a

este reziduu cvadratic


deci presupunerea fcut este fals.
Toate aceste demonstraii pot fi fcute direct cu ajutorul simbolului
Legendre introdus n paragraful urmtor, lsm aceasta ca exerciiu cititorului.
Considerm de asemenea relevante i interesante demonstraiile din [86, p. 18].

8.3.7 NUMRUL DE REZIDUURI CVADRATICE N ZN
Lema 8.2. (pentru
*
p
Z ): dac p este un numr prim atunci exact jumtate
din elementele din
-
p
Z sunt reziduuri cvadratice i jumtate nu sunt reziduuri
cvadratice
2
1
= =
p
Q Q
p p
. Mai mult fiecare reziduu cvadratic din
-
p
Z are exact
dou rdcini ptrate.
Demonstraia acestei leme se poate face dup cum urmeaz: din moment
ce p este un numr prim nseamn c
-
p
Z are generatori. Fie
*
p
Z e o un
generator din
-
p
Z , atunci toate elementele din
-
p
Z pot fi scrise sub forma
1 1 , mod s s = p x p a
x
o iar n cazul n care x este par (n exact jumtate din
cazuri) numerele sunt reziduuri cvadratice. De asemenea numerele p a
x
mod o =
pentru x impar nu pot fi reziduuri cvadratice i rezultatul este uor de
demonstrat pentru c dac presupunem c a este reziduu cvadratic i
mod
x
a p o = pentru un x impar, deci b - astfel nct p b a mod
2
urmeaz c
y - astfel nct p b
y
mod o p b a
y
mod
2 2
o deci a este o putere par a
generatorului ceea ce este o contradicie cu ipoteza. Demonstraia faptului c
fiecare reziduu cvadratic are exact dou rdcini este o consecin imediat a
teoremei 8.12 i rmne ca exerciiu cititorului.
Lema 8.3. (pentru
*
e
p
Z ): Fie un numr prim p i un ntreg 1 e > atunci
numrul de reziduuri cvadratice din
*
e
p
Z este
( )
2
1
1

p p
e
. Mai mult dac x este
rdcina ptratic a lui a modulo
e
p la fel este i x i orice alt rdcin y a lui
140 Funcii Criptografice, Fundamente Matematice i Computaionale
a satisface p x y mod . Mai mult p a mod 0 = avem
( )
1
1
2
1mod
e
p p
a p


= i
p
a Q e
( )
1
1
2
1mod
e
p p
e
a p


= .
Demonstraie: Demonstraia se poate face n manier similar cu cea
anterioar deoarece i
*
e
p
Z are generatori de ordin ( )
1
=
e e e
p p p | i rezultatul
teoremei decurge imediat. Din nou, demonstrarea teoremei rmne ca potenial
exerciiu pentru cititor.
Lema 8.4. (pentru pq n Z
n
= ,
*
): Fie ntregul compozit pq n = unde p i
q sunt numere prime (acest caz este important pentru criptografia cu cheie public
fiind utilizat n cteva criptosisteme) atunci:
( )( )
4
1 1
= =
q p
Q Q Q
q p n
i
( )( )
4
1 1 3
=
q p
Q
n
.
Demonstraia acestei leme poate fi dedus din urmtoarea teorem al
crei caz particular este:
Teorema 8.14. (pentru
*
n
Z ): Fie un ntreg compozit impar n a crui
factorizare este
[
=
=
r
i
e
i
i
p n
1
. Atunci numrul de reziduuri cvadratice modulo n este
( )
r
n
n
Q
2
|
= . Mai mult dac
n
Q ae atunci a are exact
r
2 rdcini distincte.
Demonstraie: am stabilit prin Lema 8.3 numrul de reziduuri cvadratice
din
*
e
p
Z . Din moment ce factorizarea lui n este
[
=
=
r
i
e
i
i
p n
1
i
n p Q a Q a
i p n
i
| e e cum teorema chinez a resturilor permite calcularea n
mod unic a unui reziduu cvadratic modulo n avnd congruenele modulo
n p p
i i
| , rezult evident c pentru
n
Q ae avem exact
r
2 rdcini distincte.
Din aceleai considerente se poate deduce uor i c numrul de reziduuri
cvadratice este
( )
r
n
2
|
.

8. Fundamente matematice 141
8.3.8 SIMBOLURILE LEGENDRE I JACOBI
Simbolurile Legendre i Jacobi sunt de asemenea frecvent utilizate n
construciile criptografice precum i n analiza criptografic, aplicaiile lor vor fi
ntlnite n seciunile urmtoare, pentru moment introducem cteva aspecte
teoretice legate de acestea.
Definiia 8.14. Definim simbolul Legendre
|
|
.
|

\
|
p
x
pentru un ntreg x i un
numr prim p dup cum urmeaz:

e
e
=
|
|
.
|

\
|
x p
Q x
Q x
p
x
p
p
| 0
1
1
.
Remarca 8.3. Urmtoarele proprieti pot fi deduse direct din definiie
(nu se insist asupra demonstraiei):
i)
|
|
.
|

\
|
|
|
.
|

\
|
=
|
|
.
|

\
|
p
y
p
x
p
xy
p y x , , i p prim
ii) 1
2
=
|
|
.
|

\
|
p
x
p x, i p prim
iii) p y x mod
|
|
.
|

\
|
=
|
|
.
|

\
|

p
y
p
x
p y x , , i p prim
Lema 8.5. (Euler): Fie p un numr prim i
*
p
Z xe atunci
p
Q xe dac i
numai dac p x
p
mod 1
2
1

respectiv
p
Q xe dac i numai dac
p x
p
mod 1
2
1

.
Demonstraie: Conform teoremei introduse n capitolul referitor la
congruene polinomiale ecuaia p x
p
mod 1
2
1

are cel mult


2
1 p
soluii, pe de alt
parte toate reziduurile cvadratice verific aceast proprietate deoarece dac
y Q x
n
- e atunci ( ) n y x n y x
p
p
mod 1 mod
2
1
2
2
1
2

conform teoremei
lui Fermat. Din moment ce numrul de reziduuri cvadratice
2
1
=
p
Q
n
urmeaz
142 Funcii Criptografice, Fundamente Matematice i Computaionale
evident c aceasta relaie este satisfcut numai de ctre reziduuri cvadratice. n
cazul n care
p
Q xe cum p x
p
mod 1
1

, conform Fermat, reiese ca unic


alternativ de rdcin ptrat a lui 1 ca p x
p
mod 1
2
1

i partea a doua a
lemei este rezolvat.
Corolarul 8.1.
|
|
.
|

\
|
=

p
x
p x
p
mod
2
1
.
Demonstraie: relaia este direct din Lema precedent, se observ n plus
c dac 0 mod |
2
1


p x x p
p
.
Corolarul 8.2. ( ) 2
1
1
1

=
|
|
.
|

\
|
p
p
p
Q e 1 dac 4 mod 1 p respectiv
p
Q e 1 dac 4 mod 3 p .
Demonstraie: Aceast relaie este din nou direct: se observ c semnul
lui ( ) 2
1
1

p
depinde de paritatea lui
2
1 p
iar aceasta este adevrat n cazul
4 mod 1 p respectiv fals n cazul 4 mod 3 p .
Corolarul 8.3. ( ) p
p
p
mo d 1
2
8
1
2

=
|
|
.
|

\
|
p
Q e 2 dac 8 mod 1 p sau
8 mod 7 p respectiv
p
Q e 2 dac 8 mod 3 p sau 8 mod 5 p .
Nu insistm pe o demonstraie dar pentru cititorii interesai trimitem
ctre [2, p. 181] sau [86, p. 20].
Teorema 8.15. (a reciprocitii cvadratice, faciliteaz calculul simbolului
Legendre): Pentru oricare dou numere prime p i q avem:
( )
( )( )
|
|
.
|

\
|
=
|
|
.
|

\
|

p
q
q
p
q p
4
1 1
1 . Sau echivalent ( )
( )( )
4
1 1
1

=
|
|
.
|

\
|
|
|
.
|

\
|
q p
p
q
q
p
. (Nu vom insista
pe demonstraia acestei teoreme, diverse demonstraii pot fi gsite n [86, p. 21], [2,
p. 185], [49, p. 76]).
Exemplu de utilizare: pentru clarificarea aplicabilitii acestui rezultat
recurgem la urmtorul exemplu. Dorim s calculm
|
|
.
|

\
|
q
p
pentru 11 = p i
8. Fundamente matematice 143
239 = q , conform legii reciprocitii cvadratice avem ( )
( )( )
|
|
.
|

\
|
=
|
|
.
|

\
|

p
q
q
p
q p
4
1 1
1
( )
( )( ) 11 1 239 1
4
11 239mod11
1
239 11

| | | |
= =
| |
\ . \ .

2
8 2 2 2
11 11 11 11
| |
| | | | | |
= = =
| | | |
\ . \ . \ .
\ .
i
cum ( ) 1 1
11
2
8
1 11
2
= =
|
.
|

\
|

1
239
11
=
|
.
|

\
|
.
Simbolurile Jacobi sunt o generalizare a simbolurilor Legendre pentru
cazul ntregilor compozii.
Definiia 8.15. (Simbolul Jacobi): Pentru un ntreg impar 3 > n a crui
factorizare este
[
=
=
r
i
e
i
i
p n
1
i un numr a definim simbolul Jacobi
r
e
r
e e
p
a
p
a
p
a
n
a
|
|
.
|

\
|
|
|
.
|

\
|
|
|
.
|

\
|
=
|
.
|

\
|
...
2 1
2 1
(se remarc faptul c simbolul Jacobi este identic cu
Simbolul Legendre pentru numere prime).
Remarca 8.4. Urmtoarele proprieti reies direct din definiie (nu se
insist asupra demonstraiei):
i) ( ) . . . . . , 1 0
x
c mmd c x n
n
| |
= =
|
\ .

ii) ( ) 0 . . . . . , 1
x
c mmd c x n
n
| |
= =
|
\ .

iii) Dac
|
.
|

\
|
=
|
.
|

\
|

n
y
n
x
n y x mod
iv)
|
.
|

\
|
|
.
|

\
|
=
|
.
|

\
|
n
y
n
x
n
xy
i
|
.
|

\
|
|
.
|

\
|
=
|
.
|

\
|
t
x
s
x
st
x

v) 1
2
=
|
|
.
|

\
|
n
x
i 1
2
=
|
.
|

\
|
n
x

Urmtoarele dou leme stabilesc valoarea simbolului Jacobi pentru
numerele -1 i 2, aceste valori fiind extrem de utile n calcule. Nu prezentm o
demonstraie pentru acestea pentru aceasta putnd fi consultat oricare din
lucrrile [2], [49], [86]:
144 Funcii Criptografice, Fundamente Matematice i Computaionale
Lema 8.6. ( ) 2
1
1
1

=
|
.
|

\
|
s
s
pentru orice s impar.
Lema 8.7. ( ) 8
1
2
1
2

=
|
.
|

\
|
s
s
pentru orice s impar.
Teorema 8.16. (Reciprocitatea cvadratic pentru simboluri Jacobi)
( )
( )( )
4
1 1
1

=
|
.
|

\
|
|
.
|

\
|
t s
s
t
t
s
i n consecin
|
.
|

\
|
=
|
.
|

\
|
s
t
t
s
dac 4 mod 1 s i 4 mod 1 t
respectiv
|
.
|

\
|
=
|
.
|

\
|
s
t
t
s
dac 4 mod 3 s i 4 mod 3 t .
Pentru demonstraia acestei teoreme trimitem ctre [86, p. 24], [2, p.
189].
Definiia 8.16. Pentru orice ntreg 3 > n definim
)
`

=
|
.
|

\
|
e = 1 |
*
n
a
Z a J
n n
.
Mulimea pseudo-reziduurilor cvadratice
*
n
Z o vom nota cu
n
Q i este
n n n
Q J Q = .

8.3.9 UTILIZAREA REZIDUURILOR CVADRATICE N CRIPTANALIZ
Dorim s prezentm i un exemplu n care proprietile reziduurilor
cvadratice sunt utilizate n criptanaliz. Considerm n acest sens protocolul
prezentat n [73, p. 90]
7
, menionm c sunt multe alte exemple mai relevante
dect acesta dar care sunt ceva mai greu de neles, exemplul prezent fiind
ilustrativ pentru faptul c un bit de informaie poate fi recuperat dintr-un
criptotext RSA (pentru claritate, acest paragraf poate fi citit i dup citirea
capitolului 5.2. cu privire la RSA). Alice i Bob doresc s dea cu banul pentru a
decide care dintre ei are ctig asupra unei cauze, acetia nu dispun ns de o

7
Protocolul este prezentat n [73, p. 90] ca fiind funcional n cazul general al unei
algoritm de criptare comutativ, i.e. pentru care este satisfcut relaia
( ) ( ) ( )
( )
1 2 1 2
K K K K
D E E m E m = , aici artm c pentru cazul n care funcia de criptare
este RSA (funcie care respect aceast condiie) protocolul poate fi spart.
8. Fundamente matematice 145
moned fizic deoarece comunicarea se face prin telefon (sau orice alt linie de
comunicare) i doresc s realizeze acest lucru prin mijloace criptografice.
Urmtorul protocol, care poate fi fraudat, este propus, se presupune c cei doi
utilizeaz aceeai funcie RSA fr a-i divulga cheile public/privat:
i. Alice i Bob genereaz cte o pereche de chei public/privat de
RSA cu acelai modul, comun cunoscut, dar nu fac cunoscui
exponenii public-privat.
ii. Alice genereaz dou mesaje: unul indicnd cap i altul stem.
Aceste mesaje sunt concatenate cu o secven aleatoare i sunt
criptate cu cheia public a lui Alice iar apoi trimise ctre Bob ntr-o
ordine aleatoare (pentru ca Bob s nu poat distinge ntre ele)
( ) ( )
2 1
, m E m E
A A

iii. Bob alege un mesaj la ntmplare i l cripteaz cu cheia sa public
apoi l trimite lui Alice ( ) ( )
x A B
m E E .
iv. Alice, care nu poate citi acest mesaj, l decripteaz cu cheia sa
public i l trimite ctre Bob ( )
x B
m E .
v. Bob decripteaz mesajul cu cheia s-a privat i i trimite rezultatul
lui Alice
x
m .
vi. Alice citete rezultatul i verific corectitudinea mesajului
(comparnd cu mesajul criptat la pasul ii).
vii. Ambii utilizatori i dezvluie cheile public/privat i verific
dac mesajele transmise de cealalt parte au fost corecte.
Atacul asupra protocolului este simplu. Moneda are dou fee, deci gradul
de incertitudine al mesajului, i.e. entropia, este 1 indiferent de valoarea sa. Alice
poate fura protocolul n pasul patru prin aflarea caracterului cvadratic al celor
dou mesaje, dac mesajele au fost intenionat alese cu caractere cvadratice
diferite atunci Alice poate afla nc din pasul 4 care este rezultatul (deci prezumia
c Alice nu poate citi acest mesaj la pasul 4 este fals). n cazul n care Alice nu
este mulumit de rezultat ea poate refuza s continue protocolul, i s solicite
repornirea lui pn cnd va avea n pasul 4 valorile dorite.



146 Funcii Criptografice, Fundamente Matematice i Computaionale
8.3.10 CURBE ELIPTICE
Definiia 8.17. (Curb eliptic) O curb eliptic peste un cmp K de
caracteristic diferit de 2 sau 3 este mulimea puncte care rspund ecuaiei
2 3
y ax bx c = + + alturi de punctul infinit notat cu O.

Cmpul K poate fi construit peste orice mulime, de exemplu mulimea
numerelor reale sau complexe, dar pentru scopuri criptografice se folosesc
cmpuri finite (numite i cmpuri Galois dup numele matematicianului care le-a
descoperit Evariste de Galois). Exemplu de astfel de cmpuri finite sunt
p
F i
n
p
F
unde p este un numr prim. Figura 8.1 prezint grafic dou curbe n mulimea
numerelor reale.
Deasemenea se impune condiia
3 2
4 27 0 a b + = pentru a evita auto-
intersecii ale curbei (aceast valoare provine din calculul discriminantului unei
ecuaii cubice).

i)

ii)

FIGURA 8.1. GRAFICUL A DOU CURBE ELIPTICE: I)
2 3
1 y x x = + I II)
2 3
y x x =
8. Fundamente matematice 147
Rmne de definit adunarea a dou puncte de pe curb ca o operaie a
grupului descris de curba eliptic.
Definim n primul rnd inversul unui punct P ca fiind P adic punctul
care are aceeai coordonat x dar coordonat opus pe y . Adic dac P are
coordonatele ( ) ,
P P
x y atunci P va avea coordonatele ( ) ,
P P
x y (adic inversul
punctului este imaginea sa n oglind fa de axa Ox). Observm c acest lucru este
ntotdeauna posibil datorit termenului n
2
y din ecuaia curbei. Pentru cazul
special cnd P este punctul la infinit O spunem c P este tot O.


Definim adunarea a dou puncte P i Q de pe curb dup cum
urmeaz: fie R punctul n care dreapta ce trece prin P i Q (tangent la curb n
cazul P Q = ) intersecteaz curba. Suma P Q + este R . Figura 8.2 prezint
grafic aceast operaie. Se poate observa uor c dac P Q = atunci prin
adunare P Q + se obine punctul la infinit O. La fel, P O P + = deci O este
elementul neutru la adunare.



FIGURA 8.2. ADUNAREA A DOU PUNCTE P I Q DE PE CURBA ELIPTIC

9 FUNDAMENTE COMPUTAIONALE
modern cryptography is based on a
gap between efficient algorithms provided for
legitimate users and the computational
infeasibility of abusing or breaking these
algorithms (via illegitimate adversarial
actions). O. Goldreich
8
.

Una dintre cele mai importante probleme nainte de a construi
criptosisteme este a lmuri ce se poate calcula eficient i ce nu se poate calcula
eficient n grupuri de ntregi. Aa cum sugereaz i fragmentul de mai sus
posibilitatea de a construi criptosisteme se bazeaz pe existena unei instane a
unui probleme care poate fi eficient rezolvat de ctre o anume entitate
(posesorul legitim al cheii de criptare/decriptare) i care nu poate fi eficient
rezolvat de ctre alt entitate (adversarul). n figurile 10.1 i 10.2 este sugerat
aceast discrepan pentru criptosistemul Rabin. Se observ c funcia de criptare
presupune efectuarea unei singure multiplicri ( ) 1 O , iar decriptarea pentru
utilizatorul legitim care cunoate factorizarea modului presupune
( )
2
3
log
2
O n |
| |
|
\ .
multiplicri (am considerat cazul pentru module Blum, vezi 4.4
i 4.5). n acelai timp pentru un adversar criptarea este fezabil dar decriptarea
presupune gsirea factorizrii modulului, operaie care necesit
( ) ( ) ( )
2
3 3
1 ln lnln
, 2
c o n n
O e c
+ | |
~
|
\ .
operaii folosind algoritmul General Number Field
Sieve care este unul dintre cei mai buni algoritmi cunoscui n prezent.
n acest capitol dorim doar crearea unei imagini de suprafa asupra
acestei probleme, astfel pentru algoritmi eficieni de calcul trimitem cititorul n
special ctre cartea lui Shoup [77] dar i ctre capitolul 14 din [62]. Pentru a crea
o imagine de ansamblu Tabelul 9.1 sintetizeaz operaiile care pot fi eficient
efectuate i Tabelul 9.2 pe cele care nu pot fi eficient efectuate, urmnd ca
procedurile s fie discutate n seciunile urmtoare.


8
Din volumul I al crii de referin Foundations of Cryptography.
10. Fundamente computaionale 149





Co
mp
any
Na
me
11/12/2007
x
Co
mp
any
Na
me
11/12/2007
f(x)
( )
2
mod
Rabin
f x x n =
( )
1 2
mod
Rabin
f x x n

=
Utilizator legitim (cunoaste factorizarea lui n)
( ) 1 O
( )
2
3
log
2
O n |
| |
|
\ .

FIGURA 9.1. CALCULUL DIN CRIPTOSISTEMUL RABIN PENTRU UN UTILIZATOR
LEGITIM.
Adversar (nu cunoaste factorizarea lui n)
( ) ( ) ( )
2
3 3
1 ln lnln c o n n
O e
+ | |
|
\ .
Co
mp
any
Na
me
11/12/2007
x
Co
mp
any
Na
me
11/12/2007
f(x)
( )
2
mod
Rabin
f x x n =
( )
1 2
mod
Rabin
f x x n

=
( ) 1 O

FIGURA 9.2. CALCULUL DIN CRIPTOSISTEMUL RABIN PENTRU UN UTILIZATOR
NELEGITIM (ADVERSAR).
150 Funcii Criptografice, Fundamente Matematice i Computaionale
Se pot calcula eficient Condiie
Operaii elementare: <, >, -, +, *, /,
x
a -
c.m.m.d.c., invers multiplicativ n
n
Z ,
1
x

,
c.m.m.m.c.
-
Simbolurile Legendre i Jacobi -
Testarea dac un numr este prim sau
compozit
-
Rdcina ptrat n
n
Z , i.e.
2
mod x n
Dac i numai dac se cunoate
factorizarea lui n
Rdcina de ordin c n
n
Z cnd
( ) ( )
. . . . . , 1 c mmd c n c | = , i.e. mod x n
c

Dac se cunoate factorizarea lui n
Apartenena la
n
Q Dac se cunoate factorizarea lui n
TABELUL 9.1. OPERAII CARE POT FI EFICIENT REZOLVATE.
Nu se pot calcula eficient Condiie
Logaritmul discret
Pentru orice element (de preferin
generator al grupului) care are un
ordin suficient de mare, sute, mii de
bii etc.
Factorizarea unui ntreg
ntregi mari de sute, mii de bii etc.,
excepie cazurile banale (de exemplu
putere a unui numr prim) i
numerele avnd factori care pot fi
eficient gsii datorit unor
proprieti algebrice ale acestora
Rdcina ptrat n
n
Z , i.e.
2
mod x n Dac nu se cunoate factorizarea lui n
Rdcina de ordin c n
n
Z cnd
( ) ( )
. . . . . , 1 c mmd c n c | = , i.e. mod x n
c

Dac nu se cunoate factorizarea lui n
Apartenena la
n
Q Dac nu se cunoate factorizarea lui n
TABELUL 9.2. OPERAII CARE NU POT FI EFECTUATE EFICIENT.
10. Fundamente computaionale 151
9. 1 ELEMENTE DE TEORIA COMPLEXITII
O problem este o mulime nevid de ntrebri ntre care exist o relaie,
pot fi una sau mai multe ntrebri i este obligatoriu ca ele s aib o dimensiune
finit. De exemplu factorizarea unui ntreg este o problem cu urmtorul enun:
avnd un ntreg n s se gseasc numerele prime al cror produs este. Un
algoritm este un set bine definit de pai pentru rezolvarea unei probleme. Altfel
spus, un algoritm este ansamblul de pai prin care un set de date de intrare este
transformat ntr-un set de date de ieire n scopul rezolvrii unei probleme. De
exemplu pentru rezolvarea problemei factorizrii ntregului de mai sus se poate
folosi urmtorul algoritm: pentru toi ntregii i de la 2 la radical din n verific dac
n este divizibil cu i.
Este evident c eficiena unui algoritm este o funcie care depinde de
dimensiunea datelor de intrare i totodat eficiena unui algoritm trebuie s fie o
caracteristic intrinsec a algoritmului care s nu depind de un anume model al
mainii de calcul. n acest context este impropriu s numim un algoritm ca fiind
eficient n baza faptului c pe un anumit procesor a avut un timp de rulare
oarecare, i mai mult, faptul c pe un procesor a avut un anume timp de rulare nu
va spune nimic cu privire la timpul de rulare n momentul n care dimensiunea
datelor de intrare se dubleaz. S presupunem ca exemplu naiv doi algoritmi care
caut un element ntr-un ir ordonat cresctor, algoritmul A1 implementeaz o
cutare naiv n care irul este parcurs de la un capt la altul element cu element
n scopul identificrii elementului cutat iar A2 implementeaz o cutare binar,
prin njumtirea succesiv a irului n care se face cutarea. S presupunem c
timpul de calcul pentru un tablou cu 1.000.000 de elemente este pentru primul
algoritm 5 milisecunde i pentru al doilea 5 microsecunde. La dublarea
dimensiunii datelor de intrare timpul de calcul pentru primul algoritm se va dubla
n timp ce pentru al doilea va crete nesemnificativ. Aceasta deoarece, pentru
gsirea unui element ntr-un ir de n elemente, primul algoritm efectueaz cel
mult n pai iar cel de-al doilea cel mult log2n pai. n consecin performana unui
algoritm nu trebuie descris n funcie de timpul de rulare al acestuia ci ca funcie
de numrul de pai pe care algoritmul i necesit. Aici intr n joc teoria
complexitii care este domeniul care ne ofer un rspuns cu privire la numrul
de pai necesari ca un algoritm s ofere un rezultat. n cazul nostru, al criptologiei,
ne putem referi la numrul de pai pentru a cripta, decripta informaie sau chiar
pentru a sparge un cod. Informal, din punct de vedere al criptanalizei teoria
complexitii ne spune ct timp i ct spaiu este necesar pentru a sparge un
criptosistem.
n general cu privire la un algoritm, sub raportul complexitii, ne
intereseaz att timpul (despre care s-a spus c se msoar n numr de pai) ct
152 Funcii Criptografice, Fundamente Matematice i Computaionale
i spaiul (care nseamn cantitate de memorie necesar) de aici i noiunile de
complexitate de timp i complexitate de spaiu. Pentru msurarea complexitii
folosim urmtorii indicatori de performan:
i) limita asimptotic superioar:
( ) ( ) ( ) ( )
0
0 . . , ) ( n n n g c n f i a n c n g O n f
o
> s s - =
ii) limita asimptotic inferioar:
( ) ( ) ( ) ( )
0
, 0 . . , ) ( n n n f n g c i a n c n g n f
o
> s s - O =
iii) limita asimptotic restrns:
( ) ( ) ( ) ( ) ( )
0 2 1 2 1
. . , , ) ( n n n g c n f n g c i a n c c n g n f
o
> s s - O =
iv) limitele asimptotice relaxate:
( ) ( ) ( ) ( )
0
0 . . ) ( n n n g c n f c i a n n g o n f
o
> < s - =
( ) ( ) ( ) ( )
0
0 . . ) ( n n n f n g c c i a n n g n f
o
> < s - =e
Este important de spus c ( ) ( )
f F g n = , unde F este oricare din
indicatorii , , , , nu se citete: f egal F de g(n), ci corect este f este de
ordinul F al lui g(n) sau mai simplu f este F(g(n)). Intuitiv semnul = nu are
semnificaia semnului egal, n acest caz este echivalent cu e.
Astfel n funcie de timpul de calcul algoritmii se mpart n clase dup cum
urmeaz: constant ( ) 1 O , logaritmic ( ) ( ) n O lg (se observ c
0 ), (lg log > O = c n n
c
), poli-logaritmic ( ) ( )
lg
c
O n , fracionar
( )
, 0 1
c
O n c < < ,
liniar ( ) n O , liniar logaritmic ( )
2
log O n n , ptratic (sau cvadratic) ( )
2
n O , cubic
( )
3
n O , polinomial ( )
m
n O (cu observaia c: liniar, ptratic, cubic sunt timpi
polinomiali), super-polinomial
( )
( )
n f
c O (unde c este o constant iar ( ) n f nu
este constant dar este mai mic dect ( ) n O ), exponenial
( )
( )
n f
c O (unde c este o
constant iar ( ) n f este un polinom de gradul 1), factorial (sau combinatorial)
( ) ! O n , dublu exponenial
( )
2
n
c
O .
Urmtoarele proprieti intuitive decurg direct din definiia acestor
indicatori:
i) ( ) ( ) ( ) ( ) ( ) ( ) n f n g n g O n f O = =
10. Fundamente computaionale 153
ii) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) n g n f n g O n f n g n f O = . = O =
iii) ( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) n h O n g f n h O n g n h O n f = + = . =
iv) ( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) n i n h O n g f n i O n g n h O n f = = . =
v) ( ) ( ) ( ) ate reflexivit n f O n f =
vi) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) tate tranzitivi n h O n f n h O n g n g O n f = = . =
Reinem de asemenea urmtoarele aproximri utile:
i) ( ) ( ) ( )
k k
k
k
k
n n f a n a n a n a n f O = + + + + =

0 1
1
1
...
ii) ( ) ( )
n n
n n o n 2 ! ! O = . =
iii)
(ln )(lnln ) ln
1 lnln ln
n
n n c n n n c
n n e n n n c n c
c
< < < < < < < < <
Pentru a ilustra importana cunoaterii complexitii prezentm
urmtorul tabel al unor magnitudini uzuale i de asemenea vom considera 4
algoritmi
1
A ,
2
A ,
3
A ,
4
A avnd complexitile ( ) n O , ( )
2
n O , ( )
3
n O , ( )
n
O 2
precum i un sistem capabil s execute
10
10 operaii/secund, n scopul unei
comparaii vom evalua timpul necesar rezolvrii algoritmilor pentru
6
10 = n .
Tabelul 9.1 sintetizeaz aceste rezultate.
Este necesar de asemenea s introducem noiunea de reducie n timp
polinomial. Se observ c dac avem doi algoritmi
1
A i
2
A care au complexitate
polinomial, chiar dac
2
A devine subrutin a lui
1
A algoritmul rezultat va
funciona tot n timp polinomial. Urmtoarea definiie introduce noiunea de
reducie n timp polinomial (polynomial reduction):
Definiia 9.1. (Reducie n timp polinomial) Spunem c problema
1
H se
reduce n timp polinomial la
2
H i notm
1 2 P
H < H dac exist un algoritm
1
A
care rezolv
1
H i primete ca subrutin un algoritm
2
A care rezolv
2
H iar
complexitatea lui
1
A este polinomial dac complexitatea lui
2
A este i ea
polinomial.
Cri de referin n domeniul algoritmilor i a complexitii sunt cartea
lui Knuth [55] i a lui Cormen et al. [25]. De asemenea este util glosarul de termeni
din [28] iar n ceea ce privete teoria cu privire la NP-completness, care aici nu a
fost prezentat dar are implicaii majore n criptografie deoarece faimoasa
154 Funcii Criptografice, Fundamente Matematice i Computaionale
problem P NP = condiioneaz existena funciilor criptografice one-way, este
de referin lucrarea lui Garey i Johnson [41].



9. 2 ELEMENTE DE TEORIA INFORMAIEI
n limbaj informal, din punct de vedere criptanalitic, Teoria Informaiei ne
spune de ct informaie criptat avem nevoie pentru a sparge un mecanism de
criptare, sau din considerente criptografice care este dimensiunea unei chei
pentru ca criptosistemul s nu poat fi spart. n ceea ce privete ultimul aspect,
este demonstrat c pentru a construi un algoritm de criptare care s nu poat fi
spart este necesar o cheie aleatoare de dimensiune egal cu a mesajului criptat,
bineneles cheia nu poate fi refolosit. Astfel teoria informaiei poate fi utilizat
pentru a construi criptosisteme care au securitate necondiionat (numit i
confidenialitate perfect (perfect secrecy)) care nu pot fi sparte chiar dac
puterea de calcul este infinit.
ntr-adevr exist i criptosisteme care sunt imposibil de spart. Sigur la o
prim vedere existena unor astfel de criptosisteme ar face s par c problemele
Secunde ntr-un an
7
10 3
Vrsta sistemului solar n secunde
17
10 2
Electroni n univers
77
10 37 . 8
Chei pe 256 bii
77
10 2 . 1
Chei pe 1024 bii
308
10 8 . 1
Timpul pentru a rezolva
1
A
3
10 1


Timpul pentru a rezolva
2
A
2
10 1
Timpul pentru a rezolva
3
A
8
10 1
Timpul pentru a rezolva
4
A
303020
10 1

TABELUL 9.3. CTEVA MAGNITUDINI UZUALE.
10. Fundamente computaionale 155
criptografiei sunt n totalitate rezolvate. Nu este nici pe departe aa, problema de
baz a criptografiei fiind dimensiunea cheii de criptare, despre care s-a afirmat
anterior c pentru ca criptosistemul s nu poat fi spart trebuie s fie egal cu
dimensiunea mesajului, ori n general n practic dorim cu ajutorul unei chei ct
mai mici s criptm cantiti ct mai mari de informaie, fiind ne-fezabil s avem
chei de dimensiunea unui mesaj.
Un exemplu de sistem care nu poate fi spart este binecunoscutul one-time
pad. Acesta este derivat din codul Vernam care este un cod stream ce presupune
utilizarea unei chei aleatoare k de aceeai dimensiune cu a mesajului m i
criptotextul c se calculeaz ca
i i i
c m k = (se face XOR bit cu bit ntre mesaj i
cheie) cheia nu poate fi reutilizat pentru transmiterea altui mesaj. Se cunoate c
sistemul a fost utilizat n practic pentru a cripta o linie de comunicaie ntre
Washington i Moscova, dar mai relevant dect att este faptul c sistemul mai
apare ca bloc constructiv i n protocoale de securitate contemporane.
Noiunea de baz cu care lucreaz teoria informaiei este entropia
informaiei. Entropia msoar gradul de incertitudine al informaiei. Ea este
utilizat, i poate fi mai uor vzut dintr-o perspectiv inginereasc n acest fel,
pentru a calcula numrul de bii necesari pentru a codifica o anume informaie.
Spre exemplu dac considerm un zar cu n fee, i considerm c zarul este
perfect echilibrat (probabilitatea ca fiecare fa s cad fiind egal) avem nevoie
de exact
2
log n bii pentru a codifica fiecare eveniment de aruncare a zarului
(eveniment finalizat prin marcarea numrului indicat de zar). Pentru cazul
general definim entropia ca fiind:
Definiia 9.2. (Entropia) Pentru o variabil X ce poate lua aleator valorile
1 2
, ,...,
n
x x x cu probabilitile
1 2
, ,...,
n
p p p , i.e. ( ) Pr
i i
X x p = = , definim entropia
lui X ca fiind ( )
2
1
log
n
i i
i
H X p p
=
=

(se consider
2
log 0
i i
p p = dac 0
i
p = ).
Definiia poate prea greoaie, dar putem s o clarificm uor printr-un
exemplu. Fie X o variabil aleatoare de k bii, conform definiiei entropia
trebuie s fie k . Avem ( ) ( )
2 2
2
1 1
1 1
log 2
2 2
k k
k
k k
i i
H X k k

= =
= = =

i astfel
valoarea este verificat. Pe baza definiiei putem nelege i de ce o parol de k
bii, n cazul n care anumite caractere sunt mai probabile dect altele, nu are de
fapt k bii de entropie ci mai puin.

156 Funcii Criptografice, Fundamente Matematice i Computaionale
9. 3 CALCULUL OPERAIILOR ELEMENTARE
n continuare convenim s notm cu ( )
1 1
...
k k
b
x x x

reprezentarea
ntregului x n baza b . Se poate demonstra uor, fiind o consecin imediat a
teoremei mpririi cu rest, c fiecare ntreg are o reprezentare unic n orice baz
2 b > . Reprezentarea ntr-o baza b se face prin mprire succesiv a ctului i
pstrarea restului, lucru care trebuie s fie deja cunoscut de cititor i care nu l
vom mai detalia.
Prin operaii elementare desemnm operaiile pe care le efectum n mod
uzual cu orice ntreg, aceste operaii sunt: adunare, scdere, multiplicare,
mprire i ridicare la putere. Subliniem c toate aceste operaii pot fi efectuate n
timp polinomial asupra ntregilor de orice dimensiune. Enumerm n continuare
schema de principiu i complexitatea acestor operaii:
i) Compararea a doi ntregi de k digii (dac au numr
diferit de digii este mai mare ntregul cu mai muli digii)
se face prin parcurgerea de la stnga la dreapta a digiilor
i compararea la nivel de digit presupune ( ) O k
comparaii la nivel de digit.



ii) Adunarea a doi ntregi de k digii n baza b presupune
( ) O k adunri la nivel de digit n baza b .
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x

= , ( )
1 1
...
k k
b
y y y y

= .
1. Seteaz i k = .
2. Atta timp ct
i i
x y = i 1 i > calculeaz 1 i i = .
3. Dac
i i
x y > returneaz 1 altfel returneaz 0.
IEIRE: 1 dac x y > i 0 n caz contrar.

ALGORITMUL 9-1. COMPARAREA A DOI NTREGI
10. Fundamente computaionale 157


iii) Scderea a doi ntregi de k digii n baza b presupune
( ) O k scderi la nivel de digit n baza b .


INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x

= , ( )
1 1
...
k k
b
y y y y

= .
1. Seteaz 0 c = .
2. Pentru 1, i k = :
( ) mod
i i i
z x y c b = + + ,
( )div
i i
c x y c b = + + ,
3.
1 k
z c
+
= .
4. Returneaz ( )
1 1
...
k k
b
z z z z
+
= .
IEIRE: z x y = + .

ALGORITMUL 9-2. ADUNARA A DOI NTREGI
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x

= , ( )
1 1
...
k k
b
y y y y

= cu x y > .
1. Seteaz 0 c = .
2. Pentru 1, i k = :
( )mod
i i i
z x y c b = + ,
Dac 0
i i
x y c + < atunci 1 c = altfel 0 c =
3. Returneaz ( )
1 1
...
k k
b
z z z z

=
IEIRE: z x y = + .
ALGORITMUL 9-3. SCDEREA A DOI NTREGI
158 Funcii Criptografice, Fundamente Matematice i Computaionale

iv) Multiplicarea a doi ntregi de k digii n baza b
presupune
( )
2
O k multiplicri i
( )
2
O k adunri la nivel
de digit n baza b . Operaia de nmulire avnd pondere
mai mare fa de adunare convenim s evalum
complexitatea ca fiind
( )
2
O k multiplicri la nivel de digit
n baza b . Ridicarea la ptrat a unui ntreg este un caz
particular de multiplicare, fiind vorba de multiplicarea
unui ntreg cu el nsui, i exist algoritmi optimizai
pentru acest caz, fiind n principiu de 2 ori mai simpl
dect multiplicarea a doi ntregi diferii. Dac ntregii au
numr diferii de digii, s spunem k respectiv l , atunci
complexitatea este ( ) O kl , urmtorul algoritm poate fi
utilizat:


INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x

= , ( )
1 1
...
l l
b
y y y y

= .
1. Seteaz 0 c = .
2. Seteaz ( )
1 1
... 0
k l k l
b
z z z z
+ +
= = .
3. Pentru 1, i k = :
Pentru 1, j l = :

( )
mod
i j i j i j
z z x y c b
+ +
= + + ,

( )
div
i j i j
c z x y c b
+
= + + ,

( )
div
i l i j i j
z z x y c b
+ +
= + + ,
4. Returneaz z .
IEIRE: z xy = .
ALGORITMUL 9-4. NMULIREA A DOI NTREGI
10. Fundamente computaionale 159

v) mprirea (ne referim la mprire cu rest ) este cea mai
costisitoare operaie, are complexitate tot ( ) O kl operaii
la nivel de digit dar indicatorul asimptotic pierde din
acuratee i n practic mprirea este mult mai
costisitoare dect multiplicarea. Algoritmul nu este att de
direct, pentru care evitm prezentarea detaliat a lui
(trimitem cititorul ctre algoritmul din [58] care este
simplu de implementat) i ne rezumm doar la
prezentarea unei strategii fr detalii (paii 2.1. i 2.2.
nefiind detaliai)



vi) Ridicarea la putere presupune
2
3
log
2
O e
| |
|
\ .
multiplicri
(acest timp a fost calculat avnd n vedere c multiplicarea
unui numr cu el nsui, i.e. ridicare la ptrat, cost
aproximativ jumtate dintr-o multiplicare). Algoritmul
poart numele de repeated square and multiply i
presupune c exponentul este codificat n binar. Atenie,
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x

= , ( )
1 1
...
l l
b
y y y y

= .
1. Seteaz r x = .
2. Pentru 1 i k l = + pn la 0 :

i
i
q r b y ( =

,

i
i
r r b q y .
3. Returneaz , q r
IEIRE: , q r astfel nct x yq r = + .

ALGORITMUL 9-5. MPRIREA A DOI NTREGI
160 Funcii Criptografice, Fundamente Matematice i Computaionale
chiar dac aceast metod este suficient de rapid pentru a
face practic exponenierea, n implementri se folosete
n general un mecanism ceva mai avansat numit sliding-
window exponentiation.



n criptografie, toate aceste operaii le efectum n grupul de ntregi
n
Z . n
acest caz avem nevoie de efectuarea operaiilor modulo n dar tehnica rmne n
mare parte aceeai ca la cazul general cu urmtoarele observaii:
i) Comparaia este identic cu cazul general.
ii) La adunare modulo n dac rezultatul este mai mare dect n
(poate fi cel mult ( ) 2 1 n ) atunci scdem n din rezultat.
iii) Scderea modulo n este identic dac desczutul este mai mare
dect scztorul. Dac nu, atunci se face adunare cu opusul, deci
scderea din modul a scztorului i adunarea la desczut, i.e.
( ) mod mod x y n x n y n = + .
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x

= , ( )
1 1
2
...
l l
e e e e

= .
4. Seteaz aux x = , 1 y =
5. Pentru 1, i l = :
Dac 1
i
e = atunci y y aux = ,

2
aux aux = ,
6. Returneaz y
IEIRE:
e
y x = .

ALGORITMUL 9-6. RIDICAREA LA PUTERE MODULO N FOLOSIND REPEATED SQUARE
AND MULTIPLY (RSM)
10. Fundamente computaionale 161
iv) Multiplicarea modulo n se face identic iar la final se recurge la
mprire cu rest la n .
v) mprirea modulo n este nmulire cu inversul multiplicativ
ceea ce nseamn c mai nti se calculeaz un invers
multiplicativ (vezi seciunea 4.2) i apoi se trece la multiplicare
modulo n ca la iii), i.e.
1
mod mod x y n xy n

= .
vi) Ridicarea la putere modulo n se face cu specificaia c fiecare
multiplicare (din paii 5.1. i 5.2.) se face modulo n .
Operaiile de multiplicare i ridicare la putere modulo n sunt operaiile
cele mai comun utilizate n criptografia cu cheie public i pentru acestea n
practic se impune utilizarea unor tehnici optimizate. Algoritmii prezentai aici au
doar scop didactic i chiar dac nu difer mult la nivel de complexitate n aplicaii
unde timpul de calcul conteaz nu se recomand folosirea lor. Pentru detalii
asupra unor tehnici optimizate poate fi consultat orice carte general de
criptografie [62], [73], subiectul este prea amplu pentru a fi discutat n aceast
lucrare. De asemenea este recomandat binecunoscuta carte a lui Knuth [55].
9. 4 CALCULUL C. M. M. D. C. I INVERSELOR MULTIPLICATIVE
Calculul celui mare divizor comun pe baza factorizrii ntregilor utiliznd
relaia din Definiia 8.8. nu este un procedeu convenabil din punct de vedere
computaional deoarece evident nu poate fi aplicat atunci cnd nu este cunoscut
factorizarea ntregilor (situaia cea mai uzual n practic) iar a factoriza un ntreg
nu este fezabil din punct de vedere computaional. Astfel, pentru cazul cnd
factorii celor dou numere sunt necunoscui poate fi utilizat algoritmul Euclidian.
Acesta se bazeaz pe faptul c dac avem doi ntregi b a > atunci
( ) ( ) . . . . . , . . . . . , mod c mmd c a b c mmd c b a b = i aceast relaie duce la posibilitatea
calculului c.m.m.d.c. n timp logaritmic (relaia nu o demonstrm deoarece este o
noiune bine-cunoscut de teoria numerelor) . Relaia poate fi aplicat recursiv
pentru a obine cel mai mare divizor al celor doi ntregi b a, i urmtorul algoritm
sintetizeaz acest rezultat:

162 Funcii Criptografice, Fundamente Matematice i Computaionale


Se poate demonstra c pentru oricare doi ntregi b a, dac
( ) . . . . . , d c mmd c a b = putem gsi o pereche de ntregi y x, astfel nct d by ax = + .
Acest calcul poate fi uor efectuat folosind Algoritmul Euclidian Extins (AEE)
pentru care trimitem ctre [62, p. 67]. Acum dorim s facem o expunere foarte
simpl asupra principiului pe care funcioneaz. Presupunem c 97, 17 a b = = i
dorim s calculm ( ) . . . . . 97,17 d c mmd c = conform algoritmului anterior, prin
mpririle succesive din pasul 2 obinem urmtoarele rezultate intermediare:

1. 97 5 17 12 = +
2. 17 1 12 5 = +
3. 12 2 5 2 = +
4. 5 2 2 1 = +

Dac acum introducem n relaia de la pasul 4 pe cea de la pasul 3 obinem
( ) 5 2 2 1 5 2 12 2 5 1 = = i continund tot aa pn la relaia de la pasul
1 cu schimbarea restului cu o combinaie liniar de termeni obinem succesiv
relaiile:


INTRARE: doi ntregi b a, cu b a >
1. Atta timp cat 0 = b execut:
2. r b b a b a r = = = , , mod
3. Returneaz a
IEIRE: ( ) . . . . . , c mmd c a b

ALGORITMUL 9-7. CEL MAI MARE DIVIZOR COMUN
10. Fundamente computaionale 163
( ) ( ) 5 2 2 1 5 2 12 2 5 1 5 5 2 12 1 5 17 1 12 2 12 1 = = = =
( ) 5 17 7 12 1 5 17 7 97 5 17 1 40 17 7 97 1 = = =

ntr-adevr la final am ajuns s scriem cel mai mare divizor a dou
numere ca i combinaie liniar ntre acestea. Este evident c pentru oricare doi
ntregi acest raionament poate fi aplicat i astfel prin parcurgerea n ordine
invers a rezultatelor intermediare ale Algoritmului Euclidian putem calcula
inverse multiplicative pentru c este evident c dac ( ) . . . . . , 1 c mmd c a b = avem
1
mod a x b

respectiv
1
mod b y a

. Cel mai comun exemplu de utilizare n


criptografie este la calcularea unei perechi de chei public-privat pentru RSA
deoarece exponenii din aceste chei sunt inverse multiplicative.
9. 5 CALCULUL RDCINII DE ORDIN E CU RELATIV PRIM LA
ORDINUL GRUPULUI
Am dedicat o seciune separat acestei probleme doar datorit
importanei ei n criptografia cu cheie public, fiind problema pe care se
construiete criptosistemul RSA. Calculul este ns direct, dac se cunoate
ordinul grupului
n
Z i exponentul este relativ prim la acesta se poate calcula
inversul multiplicativ al exponentului modulo ordinul grupului, i.e.
( )
1
mod n o c |

, i rdcina se extrage direct ca mod y x n


o
, este evident c
acum vom avea mod y x n
c

9
. Urmtorul algoritm prezint acest rezultat:


9
Ceea ce nseamn de fapt mod x y n
o
i mod y x n
c
.
164 Funcii Criptografice, Fundamente Matematice i Computaionale


9. 6 CALCULUL RDCINII PTRATE
Pentru calculul rdcinilor ptrate vom distinge trei cazuri dup cum
calculul se desfoar n
p
Z ,
l
p
Z sau
n
Z unde p este un numr prim iar n un
compozit.
Pentru cazul
p
Z distingem primul caz ca fiind 4 mod 3 p , caz n care se
observ c dac
p
Q xe i p y x mod
2
atunci p x y
p
mod
4
1 +
= . Deci urmtorul
algoritm poate fi utilizat dac 4 mod 3 p :

INTRARE: ntregul x , exponentul c cu ( ) ( )
. . . . . , 1 c mmd c n c | = i
modulul n a crui factorizare este cunoscut.
1. Pe baza factorizrii lui n calculeaz ( ) n | dup relaia din
Teorema 8.13.
2. Calculeaz ( )
1
mod n o c |

folosind algoritmul Euclidian Extins


din 4.2.
3. Calculeaz mod y x n
o
.
4. Returneaz y .
IEIRE: y care este rdcina de ordin c a lui x .

ALGORITMUL 9-8. RDCINA DE ORDIN E MODULO N
10. Fundamente computaionale 165


Pe de alt parte, cel de-al doilea caz este cnd 4 mod 1 p i algoritmul
anterior nu mai poate fi aplicat (intuitiv se poate observa c
( )
4
1 2 2
4
1 4 1
4
1 +
=
+ +
=
+ k k p
nu este un numr ntreg). Pentru acest caz nu se
cunosc algoritmi determiniti pentru calculul rdcinilor
10
i problema gsirii
unui algoritm determinist a crui complexitate depinde doar de n rmne o
problem deschis n criptografie. Exist algoritmi non-determiniti eficieni i
simplu de neles care folosesc ca intrare adiional un non-reziduu cvadratic din
*
p
Z pentru acest caz, i.e. 4 mod 1 p , recomandm pentru expunerea concis [4,
p. 32] i evitm a prezenta un algoritm n ideea c n criptografie n general se
folosesc preponderent ntregi de tipul 4 mod 3 p pentru care exist relaia
direct de extragere a rdcinii ptrate.
Pentru cazul
e
p
Z se folosete procedeul numit Hensell Lifting, se poate
consulta pentru detalii [77, p. 288].
Pentru cazul
n
Z unde n este un ntreg compozit calculul reziduurilor
cvadratice este posibil doar dac se cunoate factorizarea ntregului n , altfel spus
este adevrat c problema factorizrii unui ntreg n se reduce n timp polinomial
la problema calculului rdcinilor ptrate n
n
Z i invers. Deci problemele sunt
echivalente din punct de vedere computaional. Dac factorizarea lui n este

10
n lucrarea [5, p. 32] se face referire ctre un algoritm determinist care are o
complexitate ce depinde de valoarea lui n i a lui a .
INTRARE: un numr prim 4 mod 3 p i un ntreg oarecare
p
Q ae .
1. Calculeaz p a r
p
mod
4
1 +
= .
2. Returneaz p r mod .
IEIRE: cele doua rdcini ptrate din
*
p
Z ale lui a

ALGORITMUL 9-9. RDCINA PTRAT MODULO P PENTRU NTRGI BLUM
166 Funcii Criptografice, Fundamente Matematice i Computaionale
cunoscut calculul rdcinilor ptrate n
n
Z se poate efectua relativ uor prin
calculul rdcinilor modulo factorii compozitului i rezolvarea n continuare cu
Teorema Chinez a Resturilor. Vom considera n continuare cazul pq n = cu q p,
numere prime, acest caz fiind important n criptografie iar restul cazurilor fiind
uor deductibile din acesta. Pentru acest caz prezentm urmtorul algoritm:



9. 7 CALCUL RDCINII PTRATE PENTRU MODULE BLUM
Am considerat util dedicarea unui paragraf separat pentru cazul
modulelor tip Blum, deoarece acestea sunt utilizate n multe criptosisteme cu
cheie public, cum ar fi de exemplu semntura digital din 5.3.2. Astfel, pentru
4 mod 3 p i 4 mod 3 q numrul n pq = se numete ntreg Blum.
Urmtoarele remarci sunt adevrate n cazul unui ntreg Blum:
i) Dac
n
Q xe atunci n x
q p n
mod
8
5 +
este rdcina ptrata a lui x .
INTRARE: un ntreg compozit pq n = cu q p, numere prime i un ntreg
oarecare
n
Q ae .
1. Calculeaz rdcinile ptrate ( ) r r , ale lui a n
p
Z .
2. Calculeaz rdcinile ptrate ( ) s s , ale lui a n
q
Z .
3. Folosete algoritmul Euclidian extins pentru a calcula dou numere c
i d astfel nct 1 = + dq cp .
4. Calculeaz ( ) n scp rdq x mod + = i ( ) n scp rdq y mod = .
5. Returneaz n xmod i n y mod .
IEIRE: Cele patru rdcini ptrate din
*
n
Z ale lui a .

ALGORITMUL 9-10. RDCINA PTRAT MODUL N
10. Fundamente computaionale 167
ii) Dac simbolul Jacobi 1 =
|
.
|

\
|
n
x
atunci

e
e
=
+
n
n
q p n
Q x x n
Q x x
n x
,
,
mod
4
5
.
Proprietile i) i ii) le demonstrm simultan dup cum urmeaz: dac
n x
q p n
mod
8
5 +
este rdcina ptrat a lui x atunci
n
Q xe i
n x x
q p n
mod
2
8
5

|
|
.
|

\
|
+
. Datorit izomorfismului descris de teorema chinez a
resturilor este suficient s artam c
8
5 + q p n
x este o rdcin ptrata a lui x n
p
Z respectiv
q
Z , mai mult este suficient s artam pentru
p
Z deoarece relaia
este simetric n p i q . Se observ uor c
( )( )
1
4
1 1
4
5
+

=
+ q p q p n
deci
( )( )
p x x x x
q p q p n q p n
mod
4
1 1
4
5
2
8
5

|
|
.
|

\
|
+ +
dar
( )( ) ( )
( )
p x x
p
q q p
mod
2
1
2
1
4
1 1


|
|
.
|

\
|
i
cum
( )
2
1 q
este o cantitate impar urmeaz c
( )( )
p x
q p
mod
4
1 1
este chiar simbolul
Legendre pentru x n
p
Z deci p x x
q p n
mod
2
8
5

|
|
.
|

\
|
+
dup cum x este sau nu
reziduu cvadratic ceea ce trebuia demonstrat.
De asemenea este relevant de remarcat c dac 8 mod q p = atunci
n
Q e 2 i deci nmulirea cu 2 schimb simbolul Jacobi din 1 n -1 i invers (acest
lucru se demonstreaz direct din definiia simbolului Jacobi).
Aceste observaii sunt utile n diverse calcule precum cele de la semntura
digital Rabin-Williams.
9. 8 VERIFICAREA APARTENENEI LA MULIMEA
REZIDUURILOR CVADRATICE
Pentru verificarea apartenenei unui numr la
n
Q sau
n
Q este mai nti
necesar s discutm despre calculul simbolurilor Legendre i Jacobi. Simbolul
168 Funcii Criptografice, Fundamente Matematice i Computaionale
Legendre poate fi calculat fie pe baza relaiei din Lema 8.5 a lui Euler fie cu acelai
algoritm pentru simbolul Jacobi deoarece cele dou sunt egale pentru numere
prime. Bazat pe proprietile anterior amintite cu privire la reziduuri cvadratice,
mai exact legea reciprocitii cvadratice 8.15 i caracterul cvadratic al lui 2 din
8.42, urmtorul algoritm faciliteaz calculul simbolului Jacobi:



Acum, dac pentru un numr a dorim s verificm c este reziduu
cvadratic modulo p , unde p este numr prim, atunci acest lucru este posibil prin
calcularea simbolului Legendre dup urmtoarea relaia p a
p
a
p
mod
2
1
=
|
|
.
|

\
|
sau
aa cum am mai spus chiar cu algoritmul anterior.
INTRARE: un ntreg impar 3 > n i un ntreg oarecare n a < s 0 .
1. Dac 0 = a returneaz 0 .
2. Dac 1 = a returneaz 1.
3. Scrie
1
2 a a
e
= unde
1
a este un numr impar.
4. Calculeaz
2
e
s
n
| |
=
|
\ .
(se poate utiliza relaia 9.30 dar deoarece
aceasta presupune o exponeniere se prefer urmtorul calcul care este
echivalent: dac e este par atunci 1 = s , dac 8 mod 1 n atunci 1 = s ,
dac e este impar i 8 mod 3 n atunci 1 = s .
5. Dac 4 mod 3 n i 4 mod 3
1
a atunci s s = (conform legii
reciprocitii cvadratice).
6. Calculeaz
1 1
moda n n .
7. Dac 1
1
= a returneaz s altfel returneaz ( )
1 1
, a n Jacobi s .
OUTPUT: simbolul Jacobi
|
.
|

\
|
n
a
.

ALGORITMUL 9-11. SIMBOLUL JACOBI
10. Fundamente computaionale 169
Pentru cazul n care pentru un numr a dorim s verificam c este
reziduu cvadratic modulo
l
p , unde p este numr prim, acest lucru se poate face
prin verificarea rezultatului modulo p deoarece este evident c orice reziduu
cvadratic modulo
l
p este i reziduu cvadratic modulo p .
Altfel dac pentru un numr a dorim s verificm c este reziduu
cvadratic modulo n , unde n este un ntreg compozit acest lucru nu mai este
posibil deoarece prin calcularea simbolului Jacobi nu se poate trage o concluzie
final n cazul n care numrul este un pseudo-reziduu modulo n , deci
n
a Q e .
Putem ns calcula simbolul Jacobi
|
.
|

\
|
n
a
i n cazul n care 1 =
|
.
|

\
|
n
a
putem spune
cu certitudine c a nu este reziduu cvadratic iar dac 1 =
|
.
|

\
|
n
a
nu se poate trage
nici o concluzie. Pe de alt parte dac factorizarea lui n este cunoscut se poate
verifica dac un numr este sau nu reziduu cvadratic, prin verificare modulo
fiecare factor al lui n - este evident c un numr a este reziduu cvadratic modulo
n dac i numai dac este reziduu cvadratic modulo oricare factor al lui n .
Pentru a verifica dac un ntreg este reziduu cvadratic modulo un numr prim se
poate aplica acelai algoritm pentru calculul simbolului Jacobi, sau criteriul lui
Euler din Lema 8.5, aceast abordare ducnd la un timp de calcul ceva mai sczut.
9. 9 PROBLEMA FACTORIZRII NTREGI (IFP)
Problema factorizrii ntregilor (IFP Integer Factorization Problem) este
o problem de importan major deoarece probabil n jur de 50% din
criptografia cu cheie public are securitatea bazat pe imposibilitatea de a
factoriza ntregi mari. Un exemplu concret pentru a ilustra importana acestei
probleme l reprezint concursul oferit de RSA Security, detalii se gsesc la [71] i
sumele oferite au fost date n Tabelul 1.2. Totodat, problema factorizrii
ntregilor ofer un excelent studiu de caz unde elemente de teoria numerelor se
mpletesc cu elemente de teoria complexitii. Acest paragraf urmrete s fac o
trecere n revist a ctorva algoritmi utilizai n factorizare. Pentru prezentri
generale n problematica factorizrii se consider utile lucrrile [66], [87] i
articolul [17].
n principiu pentru factorizarea unui ntreg este suficient gsirea unui
algoritm care s poat descompune ntregul n produs de doi ntregi
170 Funcii Criptografice, Fundamente Matematice i Computaionale
supraunitari
11
i intereseaz o astfel de descompunere doar pentru ntregi
impari
12
. Pentru factorizarea ntregilor mari, vorbim de sute i mii de cifre, nu se
cunosc soluii eficiente. Excepie fac urmtoarele cazuri:
i) p n = , ntregul n este numr prim, n acest caz se pot aplica teste de
primalitate care dovedesc c ntregul este prim, demonstrarea
primalitii fiind mult mai uoar dect factorizarea (vezi seciunea
4.9).
ii)
e
p n = , ntregul n este o putere a unui numr prim, n acest caz se
poate calcula succesiv radicalul de ordin i pentru

n i
2
log 2 s s i
se verific dac rdcina de ordin i este numr ntreg. Deoarece
ridicarea la putere i radicalul sunt funcii monoton cresctoare pe
mulimea numerelor reale o astfel de cutare poate fi efectuat n timp
logaritmic (cutare binar).
iii) ntregii de forme speciale, avnd factori ale cror proprieti permit
gsirea eficient a acestora.
n continuare problema factorizrii se va aborda pentru situaii diferite de
cele de la punctele i), ii), iii) i subliniem c pentru criptografie este de mare
importan cazul q p n = unde p i q sunt numere prime. Algoritmii pentru
factorizare se mpart n dou mari categorii:
i) Algoritmi dedicai (pentru forme speciale) astfel de algoritmi sunt
utilizai n general pentru a calcula factori mai mici dect o margine
superioar i realizeaz acest lucru relativ repede (n practic marginea
superioar este aleas n funcie de resursele de calcul).
ii) Algoritmi generali aceti algoritmi sunt utilizai pentru a factoriza
ntregi cu factori relativ mari deoarece consum aceleai cantiti de timp
indiferent dac factorii sunt mici sau mari.

11
Aceast problem este cunoscut sub numele de splitting, iar dac un algoritm pentru
aceast problem ar fi cunoscut atunci el s-ar putea aplica recursiv pn la aflarea
factorizrii complete a oricrui ntreg.
12
Este important de remarcat c n fapt intereseaz doar factorizarea numerelor impare
deoarece a factoriza un numr par conduce la mprire cu 2 pn cnd se ajunge tot la un
numr impar, deci problema factorizrii ntregilor poate fi numit problema factorizrii
ntregilor impari.
10. Fundamente computaionale 171
Astfel o strategie general de factorizare, din motive evidente, arat ca n
Figura 9.3. Metodele prezentate n acest capitol pot fi clasificate conform cu Figura
9.4. Aceast taxonomie este doar orientativ ntruct pe de o parte prezentarea va
sintetiza numai o parte din metodele de factorizare existente n literatur, iar pe
de alt parte problema factorizrii poate fi considerat n continuare o problem
deschis.





Algoritmi de Factorizare a ntregilor

Cautare exhaustiva,
Euclid, Fermat etc.

Random Square
Factoring Methods
(RSFM)

Algoritmi dedicati

Algoritmi generali

Pollard p-1, Pollar rho,
Curbe eliptice etc.

Quadratic Sieve
Factoring, Number
Field Sieve etc.

Algoritmi clasici Algoritmi moderni

FIGURA 9.3. O TAXONOMIE SIMPLIFICAT A ALGORITMILOR DE FACTORIZARE.
172 Funcii Criptografice, Fundamente Matematice i Computaionale


9.9.1 ALGORITMI DE FACTORIZARE CLASICI

Cel mai bine-cunoscut algoritm de factorizare, cu toate c este i cel mai
ineficient, este cutarea exhaustiv. Aceasta presupune ncercarea de a-l mpri
pe n la valori succesive n intervalul

] , 2 [ n n scopul gsirii unui factor (n
mod cert orice ntreg compozit are cel puin un factor n acest interval).
Complexitatea algoritmului este ( ) n O , aceast soluie nefiind practic pentru
ntregii mari, de sute sau mii de bii.
Se poate relativ uor observa c Algoritmul Euclidian poate fi utilizat n
scopul factorizrii. Factorizarea bazat pe algoritmul lui Euclid presupune
construcia de produsului
1
k
k i
i
P p
=
=
[
a primelor k numere prime (sau, mai util n
practic construcia, mai multor produse a numerelor prime din anumite
intervale) i apoi calcularea ( ) . . . . . ,
k
c mmd c n P unde n este ntregul care trebuie
factorizat. Evident soluia nu este mai eficient dect cutarea exhaustiv, mai
Test de Primalitate

Algoritm de factorizare dedicat

Test de putere ntreaga

Algoritm de factorizare general


FIGURA 9.4. SCHEMA GENERAL A UNEI STRATEGII DE FACTORIZARE.
10. Fundamente computaionale 173
mult ea necesit i spaii de memorie pentru stocarea produsului, spaii care
pentru ntregi mari nu sunt disponibile. Cu toate acestea soluia prezint un
avantaj pentru care uneori a fost utilizat n practic, acesta este faptul c se pot
calcula apriori, nainte de a cunoate ntregul n care trebuie factorizat, tabele cu
aceste produse pentru valori rezonabile i apoi pot fi utilizate pentru scoaterea
factorilor mici din orice ntreg care se dorete factorizat. Problema algoritmului
nu const doar n timpul de calcul deoarece calculul celui mai mare divizor comun
se rezolv n timp polinomial, ci n spaiul necesar deoarece calcularea produselor
va necesita un spaiu de stocare care crete exponenial deci dac aplicm
aceast metod vom rmne rapid fr spaiu de stocare.
Factorizarea Fermat nu este nici ea mai eficient dect o cutare
exhaustiv, ns are mare interes att din punct de vedere didactic ct i pentru
faptul c algoritmi avansai de factorizare se bazeaz pe idei nrudite cu aceasta.
Fermat a observat c orice ntreg impar poate fi scris ca diferen de exact dou
ptrate perfecte, iar scrierea unui numr ca diferen de ptrate conduce spre
factorizarea lui pentru c ( )( )
2 2
n a b n a b a b = = + i ( ) . . . . . , c mmd c a b n
sau ( ) . . . . . , c mmd c a b n + pot da cte un factor al lui n . n mod cert soluia banal a
problemei, care este ( )
2
2
1 n k k = + unde
1
2
n
k

= , nu conduce dect la factorii
banali ai lui n care sunt 1 i n - deci intereseaz gsirea unei soluii non-banale.
Pentru ntregii de forma n pq = comun utilizai n criptografie se observ c
2 2
2 2
p q p q
n
+ | | | |
=
| |
\ . \ .
de unde prin calcularea celui mai mare divizor comun,
aa cum s-a artat anterior, rezult imediat cei doi factori primi. n acest scop se
alege i n
(
=

i se calculeaz succesiv ( )
2
1 j i n = + verificndu-se dac j
este ptrat perfect. n esen aceasta nseamn o cutare exhaustiv plecnd de la
n
(

n sus. Verificarea faptului c un numr este ptrat perfect poate fi
optimizat deoarece ptratele perfecte se termin doar n 0, 4, 5, 6, 9, mai mult
modulo 16, extrem de util n inginerie deoarece pot fi extrai doar ultimii patru
bii, sunt congruente doar cu 0, 1, 4, 9 prin aceast metod putnd fi eliminate
rapid numere care sigur nu sunt ptrate perfecte. Complexitatea algoritmului este
ns tot ( ) n O iar n practic algoritmul este de multe ori mai slab dect cutarea
exhaustiv (de exemplu n cazul cnd numrul are un factor foarte mic i unul
foarte mare).
174 Funcii Criptografice, Fundamente Matematice i Computaionale
Pentru prezenta lucrare este suficient prezentarea acestor algoritmi
clasici de factorizare, principii utilizate de acetia fiind utilizate i n algoritmii
moderni din urmtoarele dou seciuni. Menionm c mai exist i alte metode
clasice de factorizare pentru care cititorul este ndrumat ctre [66], [87]. Datorit
faptului c aceti algoritmi clasici pot fi utilizai destul de eficient pentru gsirea
factorilor relativ mici ei intr n categoria algoritmilor de factorizare dedicai.

9.9.2 ALGORITMI DE FACTORIZARE DEDICAI
Tehnicile introduse de Pollard i utilizarea curbelor eliptice propuse de
Lenstra sunt cele mai relevante metode dedicate de factorizare.
Algoritmul Pollard p-1 se bazeaz tot pe construcia unui produs
asemenea celui din cazul metodei Euclid dar acest produs va fi utilizat n
conjuncie cu mica teorem a lui Fermat. Astfel pentru un ntreg compozit n
construim produsul

[
<
=
B q
n
i
i
q
q Q
log
unde numerele
i
q sunt toate numerele prime
mai mici dect B. Dac un numr p este un factor al lui n i toi divizori lui
1 p sunt mai mici dect B atunci
( )
. . . . . 1,
Q
c mmd c x n p = (aceast proprietate
se poate demonstra imediat din mica teorem a lui Fermat). Un numr care are
toi factorii mai mici dect un numr B se numete B-neted. Considerm util
urmtorul exemplu:

Exemplu:
( )
( )
( )
2
log
log 221
2
128
13 17
17 1 2
2 128
1, 17 17
q
n
q
n
este neted
Q q
cmmdc x n xrelativ primla
(
(

s
=

= = =
=
[

Ceva mai eficiente i inovatoare sunt metodele bazate pe gsirea unor
coliziuni de ptrate perfecte, apropiate ca idee de metoda de factorizarea a lui
Fermat. Algoritmul Pollard-rho se bazeaz pe posibilitatea gsirii unei coliziuni
de numere n
n
Z folosind o funcie ( )
n n
Z Z x f : i calculnd irul recurent
( )
1
=
i i
x f x . Deoarece funcia este definit pe o mulime finit elemente irului
10. Fundamente computaionale 175
recurent vor ncepe la un moment s descrie un ciclu iar dac se gsesc dou
elemente j i x x
j i
= = , , deci o coliziune, putem obine factorizarea lui n dac,
similar cu cazul metodei Fermat, putem scrie o relaie de forma
( )( )
2 2
mod a b n a b a b kn + = i deci aa cum s-a observat i anterior
( ) . . . . . , c mmd c a b n sau ( ) . . . . . , c mmd c a b n + pot da cte un factor al lui n .
Complexitatea de timp a acestui algoritm este ( ) n O iar cea de spaiu este ( ) n O
deoarece lungimea unor astfel de cicluri pentru funcii cu un comportament
stohastic este de aproximativ
8
n t
. n mod cert complexitatea de spaiu face
imposibil utilizarea unui astfel de algoritm n practic. Acest dezavantaj este ns
nlturat prin utilizarea funciei ( ) ( ) p x x f Z Z x f
n n
mod 1 , :
2
+ = unde n p | .
Bineneles c factorul p al lui n este necunoscut dar calculul poate fi efectuat i
modulo n deoarece dac ( ) n a x f mod = atunci ( ) p a x f mod . Astfel vom
considera irul recurent ( ) 2 ,
0 1
= =

x x f x
i i
i calculm succesiv perechi ( )
i i
x x
2
,
pn la gsirea unei coliziuni
i i
x x
2
= . Dac se gsete o astfel de coliziune n mod
evident ( )
2
. . . . . ,
i i
c mmd c x x n p = ceea ce conduce la factorizare (se pot utiliza i
alte valori pentru
0
x sau pentru funcia ( ) f x , de exemplu orice ( ) c x x f + =
2
).
Conform acelorai raionamente asupra ciclului descris de irul recurent
complexitatea de timp acestui algoritm devine ( ) ( )
4
2
n O p O ~ , spaiul de stocare
solicitat este nesemnificativ. Considerm util urmtorul exemplu:

Exemplu:

( ) ( )
( )
( )
( )
( ) 13 221 mod 145 1 1 104 221 mod 197 1 26
1 221 mod 104 1 1 197 221 mod 14 1 26
1 221 mod 197 1 1 26 221 mod 26 1 5
1 221 mod 26 1 1 2 221 mod 5 1 2
) 221 , ( 2 2
, 1 , 221 17 13
2
2
8
2
4
2
2
6
2
3
2
2
4
2
2
2
2
2
2
1
2 0 0
1
2
+ + = + =
+ + = + =
+ + = + =
+ + = + =
= =
= + = = =

x x
x x
x x
x x
x x cmmdc x x
x f x x x f n
i i
i i

176 Funcii Criptografice, Fundamente Matematice i Computaionale

9.9.3 ALGORITMI DE FACTORIZARE GENERALI

Dezvoltm n continuare ideea de a gsi doi ntregi y x, astfel nct
n y x mod
2 2
i n y x mod = ca apoi s extragem factorii prin calcularea celui
mai mare divizor comun. Strategia pe care se bazeaz familia de algoritmi
Random Square Factoring Methods (RSFM) este urmtoarea:
i) Se alege o mulime { }
t
p p p p S ,..., , ,
3 2 1
= numit baz de factorizare
format din t numere prime.
ii) Se aleg perechi de ntregi ( )
i i
b a , astfel nct:
- n a b
i i
mod
2

-
[
=
=
t
j
e
j i
ij
p b
1
- ceea ce nseamn conform definiiilor introduse anterior
c
i
b este neted raportat la baza de factorizare, acest lucru fiind uor de verificat
prin mpriri succesive la elementele bazei de factorizare.
iii) Se ncearc gsirea unei mulimi de T de elemente
i
b astfel nct n
produsul tuturor elementelor
i
b din mulimea T exponenii numerelor prime
i
p
sa fie numere pare. Pentru simplificarea problemei fiecrui element
i
b i se
asociaz un vector ( )
1 2 3
, , ,..., i
i i i it
e e e e e = care conine exponenii tuturor
numerelor prime din factorizarea sa:

( )
( )
( )
1 11 12
2 21 22
1 2
1 11 12 1 1 1 2
2 21 22 2 2 1 2
1 2 1 2
, ,..., ...
, ,..., ...
... ...
... , ,...,
t
t
t t tt
e e e
t t
e e e
t t
e e e
t t t t t tt
e e e e b p p p
e e e e b p p p
b p p p e e e e
= =

= =

= =
)


10. Fundamente computaionale 177
Fiecare vector este pus n coresponden cu un vector binar '
i
e care reine
doar paritatea elementelor din
i
e :

( )
( )
( )
( )
( )
( )
1 11 12 1 1 11 12 1
2 21 22 2 2 21 22 2
1 2 1 2
, ,..., ' mod2, mod2,..., mod2
, ,..., ' mod2, mod2,..., mod2
... ...
, ,..., ' mod2, mod2,..., mod2
t t
t t
t t t tt t t t tt
e e e e e e e e
e e e e e e e e
e e e e e e e e

= =

= =

= =
)


Ceea ce trebuie aflat pentru rezolvarea problemei este dac sistemul format
de vectori '
i
e este sau nu liniar dependent. Dac este liniar dependent nseamn
c exist o combinaie liniar de vectori a crei sum este vectorul nul. n acest
caz factorizarea este gsit deoarece n mod evident
[ [
= e
= =
t
i
i
T b
i
a x b
i
1
2 2
i astfel
s-a gsit o congruen de tipul n y x mod
2 2
.

Exemplu:
{ }
( )
( ) ( )
( ) ( ) 17 , 7 5 3 2 35 19 56 , 13 , 7 5 3 2 35 19 56
7 5 3 2 35 19 56 7 5 3 2 35 19 56
221 mod 7 5 3 2 35 19 56
2 mod 0
) 0 , 0 , 0 , 0 ( 3 2 36 221 mod 45
) 0 , 1 , 1 , 1 ( 5 3 2 120 221 mod 35
) 1 , 1 , 0 , 0 ( 7 5 2 140 221 mod 19
) 1 , 0 , 1 , 1 ( 7 3 2 42 221 mod 56
) 0 , 0 , 0 , 0 ( 7 49 221 mod 58
7 , 5 , 3 , 2
221 17 13
3 3
3 3
2 2 2 6 2
4 3 2
5
2 2 2
4
3 2
3
2 2
2
2
1
2 2
= + =
= +

+ +
= = =
= = =
= = =
= = =
= = =
=
= =
n cmmdc n cmmdc
n k
e e ae Seobservac
e
e
e
e
e
S
n


178 Funcii Criptografice, Fundamente Matematice i Computaionale
Cel mai puternic i promitor algoritm de factorizare general cunoscut
este Number Field Sieve care face parte tot din familia RSFM. Detaliile acestui
algoritm sunt destul de complexe, pentru o prezentare mai detaliat trimitem
ctre [66], [87], [58].

9. 10 PROBLEMA LOGARITMULUI DISCRET (DLP)
Definiia 5.3. Problema logaritmului discret (DLP Discrete
Logarithm Problem): Avnd un numr prim p un generator o al grupului
*
p
Z
i valoarea lui mod
x
p o gsete-l pe x .
Desigur problema poate fi generalizat pe orice alt grup dect
*
p
Z i mai
mult pentru elemente care nu sunt neaprat generatori ai grupului desigur
problema avnd relevan pentru criptografie atunci cnd elementul are ordin
suficient de mare. n cele ce urmeaz vom nota ordinul lui o cu k , evident dac
o este generator al lui
*
p
Z i p este prim atunci 1 k p = .
Soluia banal este cutarea exhaustiv dar aceast presupune ( ) O k
multiplicri pentru care nu poate fi utilizat n practic. O optimizare direct a
acestei cutri este algoritmul baby-step giant-step. Acesta se bazeaz pe
observaia simpl c putem scrie x i k j
(
= +

i se poate calcula off-line o
tabel cu puterile lui o pn la j , n mod evident ca i consecin a teoremei
mpririi cu rest avem j k
(
<

. Tabela se pstreaz sortat dup valorile lui
, 1,
j
j k o
(
=

pentru gsirea rapid a valorilor din aceasta (prin cutare binar
care are timp logaritmic). Odat realizat aceast tabel se poate calcula succesiv
pentru 1, i k
(
=

valoarea lui
( )
mod
i
k x
p o o

i se verific dac aceast


valoare se afl n tabel. n caz afirmativ valorile lui i i j au fost determinate i
deci x poate fi calculat. n mod evident algoritmul are nevoie de cel mult
( )
O k
pai, fiecare pas constnd ntr-o multiplicare i o cutare iar cutarea are timp
logaritmic deci poate fi neglijat. Problema este faptul c algoritmul utilizeaz
( )
O k memorie aceasta fiind limitarea major a sa. Pentru a elimina
necesitile de memorie se poate utiliza algoritmul Pollar-rho.
10. Fundamente computaionale 179
Cel mai performant algoritm pentru rezolvarea problemei logaritmului
discret este algoritmul de calcul indexat (index calculus) avantajul major al
acestuia fiind c poate fi presetat off-line pe un anume grup i utilizat apoi asupra
oricrui generator din grup. Pentru valori mari ale ordinului grupului nici acest
algoritm nu este suficient de eficient, problema logaritmului discret rmnnd ne-
rezolvabil n practic. Trebuie spus c algoritmul de calcul indexat nu
funcioneaz asupra problemei logaritmului discret pe curbe eliptice, iar acest
fapt a dus i la succesul criptografiei pe curbe eliptice n practic, pentru c
metodele de a sparge aceste criptosisteme sunt destul de slabe.
9. 11 GENERAREA NUMERELOR PRIME
Problema generrii numerelor prime reprezint pasul de plecare n
implementarea oricrui criptosistem n practic, aa cum se va vedea att
criptosistemele bazate pe factorizarea ntregilor, precum RSA, ct i cele bazate pe
logaritmi discrei, precum Diffie-Hellman-Merkle sau ElGamal, au nevoie de
numere prime la generarea cheii.
Numerele prime pe care le utilizm n criptografie sunt numere mari de
sute i mii de bii. Generarea acestora urmeaz ntotdeauna aceast paradigm: se
genereaz o secven aleatoare (de fapt adesea pseudo-aleatoare n practic)
avnd numrul de bii dorit i se supune unui test de primalitate. Probabilitatea
de a alege aleator un numr i aceasta s fie prim este destul de mare deoarece
numrul de numere prime pn la o valoare x este aproximativ ln x x .
Urmtorul algoritm sintetizeaz aceast procedur:



INTRARE: 1
k

1. Genereaz k bii aleatori
1 1
...
k k
b b b

.
2. Verific dac numrul ( )
1 1
2
...
k k
x x x x

= este prim i dac da


returneaz x dac nu ntoarce-te la pasul 1.
IEIRE: x prim.

ALGORITMUL 9-12. GENERARA UNUI NUMR PRIM
180 Funcii Criptografice, Fundamente Matematice i Computaionale
Dac aceast schem de principiu a fost lmurit tot ce trebuie s stabilim
este cum arat un test de primalitate. Exist dou tipuri de teste de primalitate:
teste probabilistice care valideaz numrul ca fiind prim cu o anumit
probabilitate (deci eroarea testului este ne-nul) i teste reale de primalitate care
demonstreaz c un numr este prim (deci eroarea testului este nul). n practic
este recomandat testul Miller-Rabin, care este un test probabilist suficient de
rapid i cu probabilitate foarte mic de eroare, pentru acesta pot fi consultate
lucrrile [35], [62] i orice alt carte de referin.
Continum cu prezentarea a dou teste probabilistice de primalitate. Unul
dintre testele cele mai simple de primalitate este testul Fermat care se bazeaz
pe mica teorem a lui Fermat 8.6. Folosind acest rezultat este foarte clar c
numrul p este prim doar dac p a
p
mod 1
1

. Algoritmul de principiu asociat


testului Fermat este urmtorul:



Dac algoritmul returneaz 0 este foarte clar c numrul nu este prim, dar
dac returneaz 1 atunci nu se poate tii sigur ci doar cu o probabilitate care
depinde de numrul t . Exist ns suficient de multe numere a pentru care
p a
p
mod 1
1

chiar dac p nu este prim aceste numere poart numele de


Fermat liar. Pentru a crete probabilitatea de succes a testului de primalitate
poate fi utilizat i criteriul lui Euler pentru calculul simbolului Legendre din Lema
INTRARE: un numr aleator p
1. Pentru 1, i t =
alege un numr aleator 1 a p < < ,
calculeaz
1
mod
p
x a p

= ,
dac 1 x = returneaz 0.
2. Returneaz 1.
IEIRE: dac x este prim 1 altfel 0.

ALGORITMUL 9-13. TESTUL FERMAT DE PRIMALITATE
10. Fundamente computaionale 181
8.5 folosind relaia
1
2
p
x
x
p

| |
=
|
\ .
. Testul construit pe acest principiu este cunoscut
sub numele de Soloway-Strassen i are urmtoarea descriere:



Probabilitatea ca un ntreg s fie declarat prim n mod fals de testul
Soloway-Strassen este
1
2
t
| |
|
\ .
iar testul Miller-Rabin, care nu l vom descrie, are o
probabilitate de eroare de
1
4
t
| |
|
\ .
. Numerele a care fraudeaz testul Solovay-
Strassen poart numele de Euler liar iar cele care fraudeaz testul Miller-Rabin
numele de strong liar. Se poate demonstra c sunt cel mult ( ) 2 n | astfel de
numere pentru orice compozit, de aici i valoarea probabilitii de a frauda acest
test.
INTRARE: un numr aleator p
3. Pentru 1, i t = :
Alege un numr aleator 1 a p < < .
Calculeaz
1
2
mod
p
x a p

= .
Dac 1 x = returneaz 0.
Calculeaz
x
y
p
| |
=
|
\ .
folosind algoritmul pentru
simboluri Jacobi din 10.6.
Dac x y = returneaz 0.
4. Returneaz 1.
IEIRE: dac x este prim 1 altfel 0.

ALGORITMUL 9-14. TESTUL SOLOWAY-STRASSEN DE PRIMALITATE
182 Funcii Criptografice, Fundamente Matematice i Computaionale

9. 12 MULTIPLICAREA UNUI PUNCT DE PE O CURB ELIPTIC

Dac exponenierea era operaia de baz n cadrul grupurilor construite
pe clase de resturi modulo n, operaia analoag n cazul grupurilor construite
peste puncte ale curbelor eliptice este adunarea punctelor de pe curb. Adic
operaia frecvent efectuat
k
g pentru un generator g i un numr aleator k
devine kP unde P este un punct de pe curb.
Multiplicarea unui punct cu o constant, care nseamn adunare succesiv,
se poate calcula eficient n manier similar cu exponenierea (care folosea
algoritmul Repeated-Square-and-Multiply) prin adunri succesive. De exemplu
pentru a calcula 99P nu este necesar s adunm punctul succesiv de 99 de ori cu
el nsui pentru c putem scrie simplu 99P=2(P+2* 2* 2* 2* 2(P+2* P)) +P
ceea ce conduce la 3 adunri i 7 multiplicri cu 2 (dublri) ale punctului.

INTRARE: punctul P i un ntreg ( )
1 1
...
l l
k k k k

= .
1. Seteaz aux P = , 1 y =
2. Pentru ,1 i l = :
aux aux aux = + ,
Dac 1
i
k = atunci aux aux P = + ,
3. Returneaz aux
IEIRE: kP .

ALGORITMUL 9-15. MULTIPLICAREA UNUI PUNCT DE PE O CURB ELIPTIC



10 BIBLIOGRAFIE

[1] R. J. Anderson, (2001), Security Engineering: A Guide to Building
Dependable Distributed Systems, Wiley, 640 pagini, ISBN 0471389226.
[2] T.M. Apostol, (1976), Introduction to Analytic Number Theory, Springer-
Verlag, 329 pagini, ISBN 0387901639.
[3] J. Bayne, (2002), An Overview of Threath and Risk Assesment, SANS
Institute.
[4] M. Bellare, S. Goldwasser, (2001), Lecture Notes on Cryptography, Curs:
MIT, disponibil la http://www.cs.ucsd.edu/users/mihir/papers/gb.html.
[5] M. Bellare, P. Rogaway, (1993), Random oracles are practical: A paradigm
for designing efficient protocols, ACM Conference on Computer and
Communications Security, pages 6273.
[6] M. Bellare, P. Rogaway, (1995), Optimal asymetric encryption How to
encrypt with RSA, Advances in Cryptology EuroCrypt 94, LNCS vol. 950,
Springer-Verlag.
[7] M. Bellare, P. Rogaway, (1996), The exact security of digital signatures-how
to sign with RSA and Rabin. In Proceedings of the 15th annual
international conference on Theory and application of cryptographic
techniques (EUROCRYPT'96), Ueli Maurer (Ed.). Springer-Verlag, Berlin,
Heidelberg, 399-416.
[8] M. Bellare, R. Canetti, H. Krawczyk, (1996), Keying Hash Functions for
Message Authentication, Advances in Cryptology CRYPTO 96, LNCS vol.
1109, Springer-Verlag.
[9] M. Bellare, A. Desai, D. Pointcheval, P. Rogaway, (1998), Relations among
notions of security for public-key encryption schemes, Advances in
Cryptology CRYPTO 98, LNCS, vol. 1462, pp.26 45, Springer-Verlag.
184 Funcii Criptografice, Fundamente Matematice i Computaionale
[10] I. Blake, G. Seroussi, N. Smart, (1999), Elliptic Curves in Cryptography,
Cambridge University Press, ISBN 0521653746.
[11] I. Blake, G. Seroussi, N. Smart, (2005), Advances in Elliptic Curve
Cryptography, Cambridge University Press, ISBN 052160415X.
[12] D. Bleichenbacher, U. Maurer, (1994), Directed Acyclic Graphs, One-way
Functions and Digital Signatures, Advances in Cryptology CRYPTO94, 75-
82, LNCS 839, Springer-Verlag.
[13] D. Bleichenbacher, U. Maurer, (1996), On the Efficiency of One-time Digital
Signatures, Advances in Cryptography ASIACRYPT 96, pp. 14558, LNCS
1163, Springer-Verlag.
[14] L. Blum, M. Blum, M. Shub, (1982), Comparison of Two Pseudo-Random
Number Generators, Advances in Cryptology CRYPTO 82, pp. 61-78,
Springer-Verlag.
[15] L. Blum, M. Blum, M. Shub, (1986), A Simple Unpredictable Pseudo-Random
Number Generator, SIAM Journal on Computing, Volume 15, Issue 2 , pp.
364 383.
[16] D. Boneh, R. Venkatesan, (1998), Breaking rsa may not be equivalent to
factoring, Proceedings of Eurocrypt 98, LectureNotes in Computer Science,
vol. 1233, pp. 5971, Springer-Verlag.
[17] R.P. Brent, (1990), Primality Testing and Integer Factorization, The
Australian National University TR-CS-90-03.
[18] D. Brumley, D. Boneh, (2003), Remote Timing Attacks are Practical,
Proceedings of the 12th Usenix Security Symposium.
[19] E. Byres, J. Lowe, (2004), The Myths and Facts behind Cyber Security Risks
for Industrial Control Systems. VDE Congress04.
[20] R. Canetti, O. Goldreich, S. Halevi, (2004), The random oracle methodology,
revisited, Journal of the ACM (JACM), Volume 51 , Issue 4, pp. 557 594.
[21] D. Chaum, (1982), Blind sigantures for Untraceable payments, Advances in
Cryptology CRYPTO 82, Springer-Verlag.
[22] D. Chaum, (1985), Security without identification Card Computers to
make Big Brother Obsolete, Communication of the ACM.
11. Bibliografie 185
[23] H. Cohen, (1993), A Course in Computational Algebraic Number Theory,
Springer, ISBN 0387942939, 534 pagini.
[24] H. Cohen, G. Frey et al., (2006), Handbook of Elliptic and Hyperelliptic Curve
Cryptography, Chapman & Hall/CRC, ISBN 1584885181, 848 pagini.
[25] T.H. Cormen, C.E. Leiserson, R.L. Rivest, (1990), Introduction to Algorithms,
MIT Press, Cambridge, Massachusets, 1048 pagini, ISBN 0262530910.
[26] CNSS, (2006), NATIONAL INFORMATION ASSURANCE (IA) GLOSSARY
http://www.cnss.gov/Assets/pdf/cnssi_4009.pdf.
[27] R. Cramer, V. Shoup, (2004), Design and analysis of practical public-key
encryption schemes secure against adaptive chosenciphertext attack, SIAM
Journal on Computing, vol. 33, Issue1, pp. 167 226.
[28] DADS, (2007), Dictionary of Algorithms and Data Structures, National
Institute of Standards and Technology, availlable at www.nist.gov/dads/.
[29] W. Diffie, M.E. Hellman, (1976), New directions in cryptography, IEEE
Transactions on Information Theory.
[30] D. Dolev, C.Dwork, M. Naor, (1991), Non-malleable cryptography.
Proceedings of the 23rd Symposium on Theory of Computing, ACM STOC,
pp. 542552.
[31] D. Dzung, M. Naedele, T.P. Hoff, M. Crevatin, (2005), Security for Industrial
Communication Systems, Proceedings of the IEEE, vol. 93, no. 6.
[32] S. Even, O. Goldreich, S. Micali, (1995), On-line/offline Digital Signatures,
Journal of Cryptology, pp. 35-67, Springer-Verlag.
[33] T. ElGamal, (1985), A public key cryptosystem and a signature scheme based
on discrete logarithms, IEEE Transactions on Information Theory.
[34] W. Feller, (1968), An Introduction to Probability Theory and Its
Applications, Volume 1, Wiley; 3 edition, 528 pagini, ISBN 0471257087.
[35] N. Ferguson, B. Schneier, (2003), Practical Cryptography, Wiley, 432
pagini, ISBN 0471223573.
[36] FIPS 46, (1976), re-nnoit n 1988, 1993, 1999 ca FIPS 46-1, 46-2, 46-3,
Data Encryption Standard (DES), National Institute of Standards and
Technology (NIST)., U.S. Department of Commerce.
186 Funcii Criptografice, Fundamente Matematice i Computaionale
[37] FIPS 180-1, (1995), 180-2, (2002), Announcing the Secure Hash Standard.,
National Institute of Standards and Technology (NIST)., U.S. Department
of Commerce.
[38] FIPS 197, (2001), Announcing the Advanced Encryption Standard.
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
[39] E. Fujisaki, T. Okamoto, (1999), How to enhance the security of public-key
encryption at minimum cost, Workshop on Practice and Theory in Public
Key Cryptography, PKC'99, LNCS, vol. 1560, pp. 5368, Springer-Verlag.
[40] E. Fujisaki, T.Okamoto, D. Pointcheval, J. Stern, (2001), RSA OAEP is secure
under the RSA assumption, Advances in Cryptology CRYPTO01, LNCS,
vol. 2139, Springer-Verlag.
[41] M.R. Garey, D.S. Johnson, (1979), Computers and Intractability A Guide to
the Theory of NP-Completness, Bell Telephone Laboratories.
[42] O. Goldreich, (2001), Foundations of Cryptography, Cambridge University
Press, 392 pagini, ISBN 0521791723.
[43] O. Goldreich, (2004), Foundations of Cryptography Volume II Basic
Applications, Cambridge University Press, 448 pagini, ISBN 0521830842.
[44] S. Goldwasser, S. Micali, (1984), Probabilistic encryption, Journal of
Computer and System Sciences, vol. 28, pp. 270-299.
[45] S. Goldwasser, S. Micali, R. Rivest, (1988), A digital signature scheme secure
against adaptive chosen-message attacks, SIAM Journal of computing,
17(2), pp. 281-308.
[46] B. Groza, (2007), Broadcast authentication protocol with time
synchronization and quadratic residues chains, Second International
Conference on Availability, Reliability and Security (ARES07),
International Symposium on Frontiers in Availability, Reliability and
Security (FARES'07), Vienna, Austria, pp. 550-557, IEEE Comp. Soc..
[47] B. Groza, (2007), An extension of the RSA trapdoor in a KEM/DEM
Framework, Symposium on Symbolic and Numeric Algorithms for
Scientific Computing, SYNASC'07, Main Track, pp. 168-173, IEEE Comp.
Soc..
[48] D. Hankerson, A. Menezes, S. Vanstone, (2003), Guide to Elliptic Curve
Cryptography, Springer-Verlag, 311 pagini, ISBN 038795273X.
11. Bibliografie 187
[49] G.H. Hardy, E.M. Wright, (1975), An Introduction to the Theory of Numbers,
Oxford University Press, 456 pagini, ISBN 0198531710.
[50] J. Hastad, (1988), Solving simultaneous modular equations of low degree,
SIAM Jorunal of Computing, vol. 17, pp. 336-341.
[51] J. Herranz, D. Hofheinz, E. Kiltz, (2006), The Kurosawa-Desmedt Key
Encapsulation is not Chosen-Ciphertext Secure,
http://eprint.iacr.org/2006/207.pdf .
[52] IACR, (2007), International Association for Cryptologic Research (IACR),
http://www.iacr.org.
[53] David Kahn, (1996), The Codebreakers: The Comprehensive History of
Secret Communication from Ancient Times to the Internet, Scribner, ISBN-
10: 0684831309, ISBN-13: 978-0684831305.
[54] Jonathan Katz, Yehuda Lindell, (2007), Introduction to Modern
Cryptography: Principles and Protocols, Chapman & Hall/CRC
Cryptography and Network Security Series, ISBN-10: 1584885513, ISBN-
13: 978-1584885511.
[55] D.E. Knuth, (1969), The Art of Computer Programming, vol. 2
Seminumerical Algorithms, Addison Wesley, 784 pagini, ISBN
0201896842.
[56] N. Koblitz, (1994), A Course in Number Theory and Cryptography,
(Graduate Texts in Mathematics), Springer, 235 pagini, ISBN 0387942939.
[57] K. Kurosawa, Y. Desmedt, (2004), A New Paradigm of Hybrid Encryption
Scheme, Advances in Cryptology - CRYPTO 2004, LNCS vol. 3152, pp. 426-
442, Springer-Verlag.
[58] E. Landquist, (2002), The Number Field Sieve Algorithm, MATH 420:
Computer Algebra Systems,
http://www.math.uiuc.edu/~landquis/nfsieve.pdf .
[59] A.K. Lenstra, (2005), Further progress in hashing cryptanalysis,
http://cm.bell-labs.com/who/akl/hash.pdf.
[60] W. Mao, (2003), Modern Cryptography: Theory and Practice, Prentice Hall
PTR, 740 pagini, ISBN 0130669431.
188 Funcii Criptografice, Fundamente Matematice i Computaionale
[61] R. C. Merkle, (1987), A digital signature based on a conventional encryption
function, Advances in Cryptology - CRYPTO 87, pp. 369-378, LNCS 293,
Springer-Verlag.
[62] A.J. Menezes, P.C. Oorschot, S.A. Vanstone, (1996), Handbook of Applied
Cryptography, CRC Press, 816 pagini, ISBN 0849385237.
[63] V. S. Miller, (1986), Use of elliptic curves in cryptography, Advances in
Cryptology - CRYPTO85, LNCS 218, Springer-Verlag.
[64] NIST, (2007), Recommendation for Key Management Part 1: general,
NIST Special Publication 800-57. March, 2007
http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57-Part1-
revised2_Mar08-2007.pdf.
[65] M. Rabin, (1979), Digitalized signatures and public key functions as
intractable as factorization, MIT/LCS/TR-212, MIT Laboratory for
Computer Science.
[66] H. Riesel, (1994), Prime Numbers and Computer Methods for Factorization,
Birkhuser Boston; 2nd ed. edition, 494 pagini, ISBN 0817637435.
[67] R. Rivest, A. Shamir, L. Adleman, (1978), A method for obtaining digital
signatures and public-key cryptosystems, Communications of the ACM.
[68] R. Rivest, (1992), The MD5 Message-Digest Algorithm, MIT Laboratory for
Computer Science and RSA Data Security, RFC 1321.
[69] R. Rivest, A. Shamir, D.A. Wagner, (1996), Time-lock puzzles and timed-
release Crypto, available at
http://theory.lcs.mit.edu/~rivest/publications.html.
[70] RSA Laboratories, (2003), Public-Key Cryptography Standards (PKCS) #1:
RSA Cryptography Specifications Version 2.1, RFC 3447,
http://tools.ietf.org/html/rfc3447.
[71] RSA Laboratories, (2005), RSA Factoring Challenge
http://www.rsasecurity.com/rsalabs/challenges/ factoring/numbers.
http://www.rsa.com/rsalabs/node.asp?id=2093.
[72] W. F. Rush, J. A. Kinast, (2003), Here's what you need to know to protect
SCADA systems from cyber-attack, Pipeline & Gas Journal.
11. Bibliografie 189
[73] B. Schneier, (1996), APPLIED CRYPTOGRAPHY, John Wiley & Sons, 784
pagini, ISBN 0471117099.
[74] B. Schneier, (2004), Cryptanalysis of MD5 and SHA: Time for a New
Standard, http://schneier.com/essay-074.html.
[75] B. Schneier, (2005), Cryptanalysis of SHA-1, http://www.schneier.com
/blog /archives/2005/02/cryptanalysis_o.html
[76] K. Schmidt-Samoa, (2006), A new rabin-type trapdoor permutation
equivalent to factoring, Electronic Notes in Theoretical Computer Science,
157(3).
[77] V. Shoup, (2004), Computational Introduction to Number Theory and
Algebra availlable at www.shoup.net/ntb - 2004
[78] V. Shoup, (2001), OAEP reconsidered, Lecture Notes in Computer Science,
2139, Springer-Verlag.
[79] V. Shoup, (2001), A proposal for an ISO standard for public key encryption,
Input for Committee.
[80] W. Stallings, (2005), Cryptography and Network Security (4th Edition),
Prentice Hall, 592 pagini, ISBN 0131873164.
[81] D. R. Stinson, (2005), Cryptography: Theory and Practice, Third Edition
Chapman & Hall/CRC, 616 pagini, ISBN 1584885084.
[82] Y. Tsiounis, M. Yung, (1998), On the Security of ElGamal based Encryption,
Workshop on Practice and Theory in Public Key Cryptography, PKC98,
LNCS, vol. 1431, Springer-Verlag.
[83] Samuel S. Wagstaff, (2002), Cryptanalysis of Number Theoretic Ciphers,
Chapman & Hall/CRC, 336 pagini, ISBN 1584881534.
[84] L. C. Washington, (2003), Elliptic Curves: Number Theory and
Cryptography, Chapman & Hall/CRC, 440 pagini, ISBN 1584883650.
[85] X. Wang, Y.L. Yin, H. Yu, (2005), Collision search on SHA1,
http://theory.csail.mit.edu/~yiqun/shanote.pdf.
[86] D.R. Wilkins, (2001), Topics in Number Theory, Course 311: Michaelmas
Term 2001,
http://www.maths.tcd.ie/~dwilkins/Courses/311/311NumTh.pdf .
190 Funcii Criptografice, Fundamente Matematice i Computaionale
[87] Song Y. Yan, (2003), Primality Testing and Integer Factorization in Public-
Key Cryptography, Springer, 256 pagini, ISBN 1402076495.
[88] U.S. Department of Energy, 21 Steps to Improve Cyber Security of SCADA
Networks, 2002.




11 ANEXE

A - NOTAII COMUN UTILIZATE



* - denot o valoare oarecare
. ct - constant
| | m - lungimea n bii a unui mesaj (sau a altui obiect dup caz)
( ) n | - Funcia Euler Phi, n este un ntreg oarecare.
( ) O - limita asimptotic superioar (complexitate).
n
Q
- mulimea reziduurilor cvadratice (ptratelor perfecte)
modulo n.
n
Q - mulimea non-reziduurilor cvadratice modulo n.
n
Q - mulimea pseudo-reziduurilor cvadratice modulo n.
n
Z - mulimea resturilor modulo n.
*
n
Z - mulimea resturilor modulo n relativ prime la n.
192 Funcii Criptografice, Fundamente Matematice i Computaionale
|
|
.
|

\
|
p
x

- simbolul Legendre, x este un ntreg oarecare i p este un
numr prim.
x
n
| |
|
\ .
- simbolul Jacobi, x i n sunt ntregi oarecare.
( ) v k
- funcie (cantitate) neglijabil.
( ) v k - funcie (cantitate) ne-neglijabil.
. . . . . c mmd c - cel mai mare divizor comun.
. . . . . c mmmc - cel mai mic multiplu comun.
P
A B <
- algoritmul A se reduce n timp polinomial la B.
A B -
P
A B < i
P
B A < , deci algoritmul A este echivalent cu B.
CPA - atac de tip mesaj ales.
CCA - atac de tip criptotext ales.
CCA2 - atac de tip criptotext ales adaptiv.
DLP - problema logaritmului discret.
PFI - problema factorizrii ntregi.
DDH - problema decizional Diffie-Hellman.
CDH - problema computaional Diffie-Hellman.
IND - imposibilitatea de a distinge (Indistinguishability).
NM - non-maleabilitate (Non-malleability).
PTP - Probabilist n Timp Polinomial, Algoritm.
QRP - Problema reziduurilor cvadratice.

11.Anexe 193

B CTEVA DEFINIII MAI RIGUROASE
"Theorists view a one-way function as a
basic object and build pseudo-random functions
from them. But in practice, as indicated by Luby
and Rackoff, the DES provides a pseudorandom
function of 64 bits to 64 bits. Ironically, if one
needs a practical protocol for a one-way
function, likely one would construct it from DES
thereby reducing the "simple" primitive to the
"complex" one (...) Let us look at a second
efficiently-computable primitive: the map
defined by the MD5 algorithm (...) What really is
this object? To date, there has been no
satisfactory answer. That is, there is no formal
definition which captures a large fraction of the
nice properties this function seems to possess
and it is not clear that one can be found.- M.
Bellare & P. Rogway
13
.


Relaia ntre teorie i practic nu este una uoar. Am evitat ncrcarea
capitolelor anterioare cu definiii riguroase ale funciilor criptografice deoarece
cred c acestea i-ar gsi mai bine locul n volumul 3. Totui cred c este util a
defini n aceast anex mod riguros, din punct de vedere matematic, cteva dintre
noiunile frecvent ntlnite n construcia criptosistemelor.
Definiiile cu privire la criptosisteme, i n particular cu privire la
securitatea acestora, fac adeseori apel la noiunea de cantitate neglijabil sau
funcie neglijabil. De exemplu, putem spune c o funcie criptografic hash este
rezistent la coliziune dac probabilitatea de a gsi o coliziune este neglijabil.

13
Din lucrarea Random oracles are practical: A paradigm to design efficient protocols.
194 Funcii Criptografice, Fundamente Matematice i Computaionale
Subliniem ns c n general se lucreaz cu noiunea de funcie neglijabil,
valoarea neglijabil depinznd astfel de un parametru. Iat definiia unei funcii
neglijabile:
Definiia A.1. (Funcie neglijabil) O funcie :
v v
v D C se numete
neglijabil dac pentru orice constant 0 c > exist un ntreg
c
k astfel nct
( ) ,
c
c
v k k k k

< > .
ntr-o manier similar definim noiunea de funcie ne-neglijabil:
Definiia A.2. (Funcie ne-neglijabil) O funcie :
v
v
v D C se numete
ne-neglijabil dac exist un polinom ( ) P k astfel nct pentru valori suficient de
mari ale lui k avem ( )
( )
1
v k
P k
> .
Toate funciile criptografice sunt funcii one-way, adic funcii greu de
inversat. O funcie greu de inversat nu trebuie confundat cu o funcie ireversibila.
Din punct de vedere matematic o funcie ireversibila este o funcie care nu este
bijectiv, n timp ce o funcie greu de inversat este o funcie a crei invers nu
poate fi calculat n mod eficient. Aceast noiune poate fi uor formalizat
folosind noiunea de funcie neglijabil, presupunnd c probabilitatea cu care un
algoritm ar putea inversa aceast funcie este neglijabil. n general se merge ns
mult mai departe de att i se impune imposibilitatea gsirii unei coliziuni n
imaginea acestei funcii, condiie care este chiar mai puternic dect aceea de a
inversa efectiv funcia. Acest aspect este sintetizat n urmtoarea definiie.
Definiia A.3. (Funcie one-way (puternic one-way)) O funcie
:
f f
f D C se numete one-way dac:
1) Exist un algoritm PTP (Probabilist n Timp Polinomial) care calculeaz
( ) y f x = pentru aproape
14
orice valoare
f
x D e .
2) Orice algoritm PTP care primete ca intrare pe ( ) y f x = returneaz
cu o probabilitate neglijabil o valoare z astfel nct ( ) f z y = , adic pentru o

14
Noiunea de aproape orice valoare este i ea lipsit de rigurozitate, acum ns pentru
rigurozitate cititorul poate uor s pun n coresponden acest termen cu noiunea de
funcie neglijabil.
11.Anexe 195
valoare k numit parametru de securitate avem
( ) ( ) ( ) ( ) Pr , , 1 , :
k
f
x D y f x z y f z y v k
O
A
(
A = s

(simbolul
O

denot c valoarea a fost aleas aleator).
Este natural s considerm valoarea lui k ca fiind
2
log
f
k D
(
=


deoarece n mod evident dimensiunea domeniului de definiie este cea care face
s scad probabilitatea ca algoritmul PTP s returneze o valoare corect.



Definiia A.3 se refer la ceea ce se numete de fapt funcie one-way
puternic. Existena funciilor one-way puternice este condiionat ns de
existena funciilor one-way slabe i invers. Pentru aceasta se impune s definim
i ce este o funcie one-way slab, definiia este n cele din urm evident.
Definiia A.4. (Funcie slab one-way) O funcie :
f f
f D C se numete
one-way slaba dac:
1) Exist un algoritm PTP care calculeaz ( ) y f x = pentru aproape orice
valoare
f
x D e .
2) Orice algoritm PTP care primete ca intrare pe ( ) y f x = returneaz cu
o probabilitate ne-neglijabila o valoare z astfel nct ( ) f z y = , adic pentru o
valoare k numit parametru de securitate avem
( ) ( ) ( ) ( ) Pr , , 1 , :
k
A
f
x D y f x z y f z y v k
O
(
A = >

.
Co
mp
any
Na
me
10/29/2007
x
Co
mp
any
Na
me
10/29/2007
f(x)
Usor de calculat
(complexitate polinomiala)
Greu de calculat
(complexitate exponentiala)

FIGURA 11.1. IMAGINE INTUITIV ASUPRA UNEI FUNCII ONE-WAY.
196 Funcii Criptografice, Fundamente Matematice i Computaionale
Se poate demonstra c existena funciilor one-way slabe i cea a funciilor
one-way puternice este echivalent, pentru demonstraii pot fi consultate
lucrrile [4, p. 20] i [42, p. 20]. Altfel se poate observa imediat c o funcie
puternic one-way poate fi oricnd transformat n funcie slab one-way (i se
observ de altfel c orice funcie care respect Definiia A.4 respect i Definiia
A.3). n ceea ce privete reciproca, faptul c o funcie slab one-way poate fi
transformat n funcie puternic one-way, acest lucru de asemenea poate fi
intuitiv neles deoarece dac considerm o funcie slab one-way f putem
construi uor funcia
( )
( ) ( ) ( )
0 1 1
' || || ... ||
d
f x f x f x f x

= , unde x denot un
vector de dimensiune d i || denot concatenare, care devine mai greu de
inversat dect f deoarece probabilitatea de a inversa ' f devine produsul
probabilitilor de a inversa f n toate punctele , 0, 1
i
x i d = (evident
probabilitatea fiind o valoare subunitar, produsul probabilitilor tinde
exponenial la 0 odat cu creterea lui d ).
Blocul principal de construcie al sistemelor criptografice l reprezint
funciile one-way cu trap. Informal o funcie one-way cu trap este o funcie one-
way care poate fi inversat dac se folosete o informaie suplimentar numit
trap. Astfel definim o funcie one-way cu trap dup cum urmeaz:
Definiia A.5. (Funcie trapdoor one-way) O funcie one-way cu trap este
o funcie one-way pentru care exist o informaie numit trap t i un algoritm PTP
pe care l notm cu Inv astfel nct ( ) ( )
, z Inv t y f x = i ( ) ( ) f z f x = pentru
aproape orice valoare din domeniul de definiie al funciei.
n criptografie ns nu lucrm cu o anume funcie one-way, ci cu familii
(colecii) de funcii one-way. Acestea se definesc dup cum urmeaz, att n cazul
funciilor simple one-way ct i al celor cu trap:
Definiia A.6. (Colecii de funcii one-way) Fie
{ }
:
i i
i i f f
F f f D C =
unde i I e iar I este o mulime de indici. Spunem despre F c este o colecie de
funcii cu trap one-way dac:
1) Exist un algoritm PTP care primind ca intrare 1
k
(unde k este
parametru de securitate) returneaz { } 0,1
k
i I e .
2) Exist un algoritm PTP care la intrarea i I e returneaz o valoare
aleatoare
i
f
x D e aleas uniform din
i
f
D (prin aleas uniform nelegem faptul c
toate valorile din
i
f
D au anse egale de a fi selectate de algoritm).
11.Anexe 197
3) i I e ,
i
f
x D e exist un algoritm PTP care calculeaz ( )
i
f x .
4) Pentru orice algoritm PTP probabilitatea de a gsi o valoare pentru care
imaginea funciei este egal cu o valoare dat a imaginii este neglijabil:
( ) ( ) ( ) ( ) Pr , , , 1 , :
i
k
f i i
i I x D y f x z y f z y v k
O O
A
(
A = s

.
La 1) am folosit notaia 1
k
, aceast notaie se utilizeaz frecvent n
criptografie i nsemn prin convenie reprezentarea numrului k n baza 1, care
reprezint k valori succesive de 1.
Definiia A.7. (Colecii de funcii one-way cu trap) Fie
{ }
:
i i
i i f f
F f f D C = unde i I e iar I este o mulime de indici. Spunem despre
F c este o colecie de funcii one-way cu trap dac:
1) Exist un algoritm PTP care primind ca intrare 1
k
(unde k este
parametru de securitate) returneaz ( ) { } ( )
2
, , 0,1 ,
k
i i
i t i I t p k e < (ultima
condiie semnific faptul c dimensiunea trapei are complexitate polinomial) unde
i
t este trapa funciei
i
f .
2) Exist un algoritm PTP care la intrarea i I e returneaz o valoare
aleatoare
i
f
x D e aleas uniform din
i
f
D .
3) i I e ,
i
f
x D e exist un algoritm PTP care calculeaz ( )
i
f x .
4) i I e ,
i
f
x D e exist un algoritm PTP, care l notm cu Inv , i care
avnd
i
t i ( )
i
y f x = calculeaz ( ) ,
i
z Inv t y i avem ( ) f z y = (condiie
necesar pentru corectitudinea inversrii) i suplimentar n cazul n care funcia cu
trap este o permutare avem z x = .
5) Pentru orice algoritm PTP, care nu primete trapa ca intrare,
probabilitatea de a gsi o valoare pentru care imaginea funciei este egal cu o
imagine dat este neglijabil:
( ) ( ) ( ) ( ) Pr , , , 1 , :
i
k
f i i
i I x D y f x z y f z y v k
O O
A
(
A = s

.
Considerm util, pe de o parte pentru clarificarea definiiilor introduse
anterior, dar i pentru simplificarea expunerii ce va urma prezentarea unor funcii
cu trap one-way definite peste grupuri de ntregi. Importana acestor funcii
const n faptul c toate aceste funcii constituie baza unor criptosisteme cu cheie
198 Funcii Criptografice, Fundamente Matematice i Computaionale
public. n cele ce urmeaz vom nota cu
*
n
Z mulimea numerelor din
n
Z care sunt
prime raportate la n adic ( ) { }
*
| , 1
n n
Z x Z cmmdc x n = e = .
Funcia RSA st la baza criptosistemului propus de Rivest, Shamir i
Adlemann, care este poate cel mai rspndit criptosistem cu cheie public este i
totodat ofer prima soluie complet pentru criptare asimetric i semntur
digital [67]. Funcia RSA este definit ca:

* *
:
RSA n n
f Z Z , ( ) mod
RSA
f x x n
c
=

Aici, n pq = este un ntreg produs a exact dou numere prime, c
reprezint un ntreg oarecare pentru care este adevrat c
( ) ( )
. . . . . , 1 c mmd c n c | = , unde ( ) ( )( ) 1 1 n p q | = . Inversa acestei funcii este:

1 * *
:
RSA n n
f Z Z

, ( ) ( )
1 1
mod , mod
RSA
f x x n n
o
o c |

=

De subliniat c funcia RSA este o permutare one-way cu trap, deci o
funcie bijectiv. Funcia RSA se poate inversa dac se cunoate factorizarea lui n .
Nu se cunoate ns dac inversarea acestei funcii este echivalent cu
factorizarea lui n , deci dac securitatea RSA este echivalent cu problema
factorizrii ntregilor. n principiu RSA Security promoveaz aceast idee prin
concursurile de factorizare iniiate, dar recent exist lucrri care aduc destul de
mult scepticism n aceast direcie. Un lucru este ns foarte clar, n cei aproape
30 de ani de la introducerea acestei funcii n criptografie nu s-a fcut nici un fel
de progres n a demonstra echivalena securitii RSA-ului cu problema
factorizrii dar n acelai timp singura cale de a sparge RSA-ul (exceptnd cazuri
particulare cu exponeni de criptare, decriptare prost alei, utilizare
necorespunztoare etc.) este factorizarea ntregului folosit ca modul. O
generalizare a funciei RSA pentru construcia criptosistemelor poate fi gsit n
[47].
11.Anexe 199
Funcia Rabin este din punct de vedere cronologic al doilea candidat de
funcie one-way cu trap folosit n criptosisteme asimetrice [65]. Funcia este
definit ca:

*
:
Rabin n n
f Z Q , ( )
2
mod
Rabin
f x x n =

Din nou n pq = este un ntreg produs a exact dou numere prime. Prin
n
Q se noteaz mulimea ptratelor perfecte din
*
n
Z , i.e.
{ }
* * 2
, mod
n n n
Q x Z y Z x y n = e - e . De subliniat faptul c funcia Rabin nu este
un caz particular al funciei RSA deoarece funcia RSA impune ca
( ) ( )
. . . . . , 1 c mmd c n c | = n timp ce n cazul funciei Rabin exponentul 2 nu poate
ndeplini aceasta condiie, funcia lui Euler, i.e. ( ) n | , fiind ntotdeauna par.
Inversa funciei Rabin nu poate fi sintetizat ntr-o formul, dar exist algoritmi
pentru calculul acestei inverse dac i numai dac factorizarea lui n este
cunoscut (n capitolul 4 se prezint cteva metode pentru aceasta). Se subliniaz
de asemenea faptul c funcia Rabin nu este bijectiv i descrie n
*
n
Z o
transformare de tip 4 la 1. Funcia Rabin poate fi inversat dac i numai dac se
cunoate factorizarea lui n - deci are securitatea echivalent cu problema
factorizrii ntregilor.
Impunnd o restricie asupra modului compozit n , funcia Rabin poate fi
transformat ntr-o permutare cunoscut sub numele de funcia Rabin-
Williams.. Astfel n cazul n care n este un ntreg Blum, adic produsul a dou
numere prime , p q cu 3mod4, 3mod4 p q funcia Rabin definit pe
n
Q
devine o permutare one-way cu trap.

:
Rabin Williams n n
f Q Q

, ( )
2
mod
Rabin Williams
f x x n

=

n acest caz funcia are i o inversa care poate fi definit dup cum
urmeaz:

200 Funcii Criptografice, Fundamente Matematice i Computaionale
1
:
Rabin Williams n n
f Q Q

, ( )
5
1
8
mod
n p q
Rabin Williams
f x x n
+

=

Funcia Rabin-Williams are securitatea echivalent cu dificultatea
problemei factorizrii ntregilor.
Funcia Schmidt-Samoa este una dintre cele mai recente propuneri de
funcie one-way trapdoor a crei securitate este echivalent cu problema
factorizrii [76]. Funcia lucreaz cu un modul compozit de forma
2
n p q = i este
definit dup cum urmeaz:

( )
*
:
Samoa pq
f Z N R n , ( )
{ }
* *
, mod
n
n n
N R n x Z y Z x y n = e - e =
( ) mod
n
Samoa
f x x n =

Funcia are ca invers:

( )
1
mod
d
Samoa
f x x pq

= , ( )
1
mod d n pq |

=

Funcia este bijectiv, adic este o permutare one-way cu trap. Alte
detalii pot fi gsite n lucrarea [76].