Sunteți pe pagina 1din 32

7

Criptarea datelor

7.1. Introducere n criptografie


Criptografia descrie cmpul larg al comunicaiilor secrete, fiind definit prin
totalitatea mijloacelor i metodelor utilizate pentru protecia interceptrii pasive
(nregistrarea mesajului transmis) sau/i active (modificarea informaiei sau
introducerea de mesaje false pe canalul transmisiei, ntre emitorul i receptorul
legali).
Criptografia are o lung i fascinant istorie. A fost folosit pentru prima dat de
ctre egipteni acum patru mii de ani, iar n secolul XX a jucat un rol hotrtor n
cele dou rzboaie mondiale. Cei care practicau aceast adevrat art aveau
strnse legturi cu domeniile militar, diplomatic i de guvernmnt. Criptografia
a fost folosit iniial pentru a transmite i proteja strategiile i secretele naionale.
nceputul utilizrii pe scar tot mai larg, n deceniul 7 al secolului trecut, a
calculatoarelor i a sistemelor de comunicaii a adus cu sine cererea de mijloace
de protejare a informaiilor n format digital i oferirea de servicii de securitate.
n sens clasic, operaia de criptare const n aplicarea unei transformri Ek
asupra mesajului (text clar) M care aparine mulimii (spaiului) mesajelor
notat cu {M}. Se urmrete, astfel, obinerea criptogramei (text criptat) C care
aparine mulimii (spaiului) criptogramelor notat cu {C}, atunci cnd se
utilizeaz cheia secret k, aparinnd mulimii (spaiului) cheilor {K}. Cheia
criptografic k este o secven secret, relativ scurt, de caractere, care identific
transformarea Ek utilizat. Aceast cheie este selectat din spaiul cheilor {K},
dintr-un numr mare de chei posibile, i este cunoscut numai de ctre
corespondenii legitimi. Formalizarea matematic este cea prezentat n relaia
Ek(M)=C

(7.1)

Determinarea mesajului M presupune aplicarea la recepie a unei transformri


Dk, corespunztoare cheii k, printr-un proces denumit decriptare, conform
relaiei
Dk(C)=M

(7.2)

Un sistem de criptare i de decriptare se numete criptosistem i este proiectat de


ctre un criptograf. Acesta i propune s gseasc metode pentru a asigura
secretul i/sau autentificarea mesajelor.
Criptanaliza se refer la tehnicile folosite pentru a intra n posesia informiei
originale prin alte mijloace dect cele disponibile receptorului legal (fr
cunoaterea cheii k). n acest context, criptanalistul este un receptor ilegal care
folosete metode de lucru specifice criptanalizei.
Sistemele criptografice ofer patru tipuri de servicii principale:
Secretizare, prin intermediul cruia persoanelor neautorizate nu li se
permite accesul la informaia corespunztoare textului clar;
Autentificare, prin care, de regul, este validat sursa mesajului iniial.
Autentificarea se adreseaz att entitilor ct i informaiei. Dou pri
care comunic ar trebui s se identifice una pe cealalt. O informaie
transmis pe un canal trebuie s-i autentifice originea, datele despre
origine, coninutul datelor, timpul transmisiunii. Din aceste motive acest
aspect a criptografiei se mparte n dou clase majore: autentificarea
entitilor i autentificarea originii datelor. Autentificarea originii datelor
ofer implicit i integritatea datelor, deoarece dac mesajul a fost modificat
i sursa a fost schimbat.
Integritate, care permite luarea n considerare numai a anumitor mesaje
transmise ctre persoana identificat i stabilete c aceste mesaje nu fac
parte din categoria celor transmise anterior. Serviciul de integritate asigur
faptul c mesajul nu a fost transmis accidental, n timpul operaiilor de
transmitere, inserie sau tergere;
Nerepudierea originii, care ofer protecie mpotriva unui transmitor de
mesaje care neag, ulterior, transmiterea acestora. Acest serviciu previne
neacceptarea unei identiti de a ndeplini angajamente sau aciuni
asumate anterior.
Protocolul criptografic const dintr-un algoritm care urmrete realizarea n
secret a comunicaiilor ntre diferii parteneri. Acesta poate fi reprezentat printrun numr relativ mare de proceduri matematice, numite transformri, care
definesc modul n care o secven de date inteligibile, care reprezint mesajul M,
este schimbat ntr-o secven aparent aleatoare, care constituie criptograma C.

Dezvoltarea metodelor de criptare pentru sistemele de transmisii de date se


bucur n prezent de un mare interes. Exist dou direcii de lucru, care de cele
mai multe ori se ntreptrund, i anume:
Elaborarea de algoritmi de criptare ct mai puternici, cu implementare
hardware i/sau software;
Elaborarea i proiectarea de reguli i protocoale specifice pentru utilizarea
unui anumit algoritm.
n funcie de existena sau nonexistena unor proceduri de criptare i
autentificare, canalul de comunicaie al unei reele de transmisii de date poate fi:
Public, atunci cnd nu exist proceduri de criptare i autentificare;
Privat, definit de existena exclusiv a procedurilor de criptare;
Cu semntur, caracterizat in exclusivitate de proceduri de autentificare;
Sigur, atunci cnd exist att proceduri de criptare, ct i de autentificare.
O prim clasificare a sistemelor criptografice, realizat n funcie de maniera n
care este prelucrat mesajul, este urmtoarea:
Sisteme criptografice cu criptare secvenial, caz n care mesajul este
tratat pe poriuni mici (bii sau caractere), generndu-se o seccesiune
pseudoaleatoare de simboluri;
Sisteme criptografice cu criptare bloc, situaie n care sistemul devine pur
combinaional, la nivel de blocuri mari din mesaj. La aceste sisteme, o
modificare aprut n blocul de intrare determin o modificare major n
blocul de ieire, printr-un proces numit de propagare a erorii.
n funcie de relaia dintre cheile de la emisie i de la recepie, notate cu k i k,
sistemele criptografice pot fi:
Sisteme criptografice cu chei secrete, cunoscute i sub numele de sisteme
criptografice simetrice, pentru care cheile k i k sau cu uurin deduse
prin calcul una din cealalt. Aceste sisteme necesit dezvoltarea unor
servicii suplimentare de management al cheilor secrete;
Sisteme criptografice cu chei publice, cunoscute i sub numele de sisteme
criptografice asimetrice, pentru care cheile k i k sunt diferite, imposibil
de dedus una din cealalt n anumite condiii. n plus, este posibil ca aceste
sisteme s fie:
- bidirecional asimetrice, atunci cnd cele dou chei k i k nu pot fi
deduse una din cealalt;
- nainte asimetrice, atunci cnd cheia k nu poate fi dedus din k;
- napoi asimetrice, atunci cnd cheia k nu poate fi dedus din k.

Plecnd de la probabilitatea cunoaterii de ctre criptanalist a criptosistemului


folosit, exist cteva posibiliti prin care acesta poate intra n posesia mesajului
(a textului clar), i anume:
Atacul cu text criptat cunoscut, atunci cnd criptanalistul are la dispoziie
eantioane de criptotext, suficient de lungi, astfel nct el se poate servi de
cunoaterea caracteristicilor specifice ale limbajului utilizat;
Atacul cu text clar cunoscut, situaie n care criptanalistul cunoate perechi
text clar-text criptat corespunztor, de tipul (M, Ek(M)) ;
Atacul cu text clar ales, cnd pentru anumite mesaje M, alese de ctre
criptanalist, sunt cunoscute criptogramele Ek(M). Criptanalistul poate
emite ipoteze asupra cheii k sau poate pretinde c este un utilizator
autorizat al sistemului n discuie;
Atacul cu metoda de criptare Ek cunoscut, caz n care criptanalistul are la
dispoziie un timp suficient de lung pentru a putea determina metoda de
decriptare Dk, nainte chiar de a primi la recepie un eantion de criptotext.
Un sistem criptografic este considerat sigur dac criptanaliza nu i atinge
obiectivul de determinare a mesajului.
Un sistem secret care rezist la orice atac criptanalitic, indiferent de volumul
calculelor care se cer, se numete sigur necondiionat.
Sistemul secret este sigur computaional atunci cnd se recunoate posibilitatea
criptanalistului de a intra n posesia mesajului dup o cantitate finit de calcule
care ocup un volum de calcul foarte mare, nejustificat din punct de vedere
economic.
n acest context, n literatura de specialitate sunt citate frecvent dezideratele lui
Kerckhoff, care sunt urmtoarele :
1. sistemul trebuie s fie, dac nu teoretic, cel puin practic, de neptruns;
2. compromiterea amnuntelor despre sistem nu ar trebui s produc
inconveniente corespondenilor;
3. cheia trebuie s poat fi memorat fr a necesita transcrierea ei i s
poat fi schimbat uor;
4. criptograma trebuie s poat fi transmis prin telegraf;
5. aparatul de criptare trebuie s fie portabil i s poat fi operat de o
singur persoan;
6. sistemul trebuie s fie uor de neles i s nu necesite nici cunoaterea
unor liste lungi de reguli, nici o capacitate intelectual dezvoltat.

Aceste enunuri au fost elaborate n 1883 i majoritatea lor rmn folositoare i


astzi. Punctul al doilea permite clasei funciilor de criptare folosit s fie
cunoscut public i securitatea sistemului s fie bazat doar pe cheia aleas [26].
n orice criptosistem sunt implicate dou alegeri statistice: alegerea mesajului i
alegerea cheii. Pentru evaluarea cantitii de informaie, atunci cnd se alege un
mesaj M, se utilizeaz noiunea de entropie a spaiului mesajelor
n

H ( M ) p( M i ) log p( M i )

(7.3)

i 1

cu notaia p(Mi) probabilitatea de a fi emis mesajul Mi .


Gradul de nesiguran asociat alegerii cheii k este dat de
m

H (k ) p(k j ) log p(k j )


j 1

(7.4)

Cantitatea maxim de informaie se obine atunci cnd mesajele sunt


echiprobabile, fiind egal cu log(n). Informaia este complet ascuns atunci cnd
nedeterminarea cheii este maxim i este verificat condiia

H (k ) log( n)

(7.5)

Aceast valoare reprezint i cantitatea de nedeterminare maxim care poate fi


introdus ntrun sistem secret. Se poate deduce de aici un principiu general, i
anume acela c incertitudinea care poate fi introdus ntrun criptosistem nu
poate fi mai mare dect incertitudinea cheii. Teoretic, dac numrul de mesaje
este infinit, ncio cheie finit nu asigur secretul perfect. Rezult aadar, c din
punct de vedere al criptanalistului, un sistem secret este identic cu un sistem de
comunicaii influenat de perturbaii, cu urmtoarele diferene:
Transformarea prin criptare este mai complex dect perturbaiile din
canalul de comunicaie;
Cheia unui sistem secret este aleas dintro mulimefinit, n timp ce
zgomotul din canal este continuu i face parte dintro mulime infinit.
Considernd n criptograme, q chei i l mesaje, reprezentnd toate criptogramele,
cheile, respectiv mesajele de o anumit lungime N, ca indici ai secretului teoretic
se folosesc dou tipuri de echivoc, i anume:
Echivocul asociat cheii, notat H(k/C);
Echivocul asociat mesajului, notat H(M/C), de forma:
q

H (k / C ) p(ki C j ) log p(ki C j )


i 1 j 1

(7.6)

H ( M / C ) p( M i C j ) log p( M i C j )

(7.7)

i 1 j 1

O clasificare riguroas a metodelor criptografice este destul de dificil de realizat,


datorit numrului mare de criterii posibile i a numrului foarte mare de
metode aflate n uz. O clasificare foarte general, care ia n consideraie evoluia
acestor metode, este urmtoarea:
metode criptografice clasice
prin substituie (monoalfabetic, poligrafic, polialfabetic);
prin transpoziie
metode criptografice computaionale
simetrice;
cu chei publice
metode criptografice cu coduri redundante.

7.2. Criptosisteme clasice


7.2.1. Cifrul lui Caesar
Cifrul lui Caesar este un cifru cu substituie n care fiecare liter din grup este
nlocuit pentru deghizare cu o alt liter. Acest algoritm este unul dintre cele
mai vechi cifruri cunoscute i este atribuit lui Julius Caesar. n aceast metod, A
devine D, B devine E, C devine F, , X devine A, Y devine B, Z devine C, conform
reprezentrii din tabelul 7.1.
Tabelul 7.1.

Alfabet
A B C D E F G H I J K L MN O P Q R S T U VWX Y Z
mesaj
Alfabet
D E F G H I J K L MN O P Q R S T U VWX Y Z A B C
criptogram

De exemplu, mesajul
ACESTA ESTE UN TEXT CODIFICAT
devine
DFHVWD HVWH XQ WHAW FRGLILFDW.
O mic generalizare a cifrului lui Caesar permite alfabetului textului cifrat s fie
deplasat cu k litere, n loc de a fi deplasat ntotdeauna cu trei litere. n acest caz,
k devine o cheie pentru metoda general a alfabetelor deplasate circular.

Matematic, cifrul lui Caesar generalizat se exprim conform relaiei (7.1), iar
printr-o transformare liniar a funciei, se obine

Ci (mi k ) mod p

(7.8)

unde i 1, n , n este lungimea mesajului, p este lungimea alfabetului i k este


cheia, k [1, p-1].
Pentru o cheie k=3, se obine cifrul lui Caesar.
Pentru o cheie k=9, alfabetul de 26 de litere (p=26) i criptograma
corespunztoare lui sunt cele prezentate n tabelul 7.2.
Tabelul 7.2.

Alfabet
A B C D E F G H I J K L MN O P Q R S T U VWX Y Z
mesaj
Alfabet
J K LMN O P Q R S T U VWX Y Z A B C D E F GH I
criptogram

Dac mesajului
ACESTA ESTE UN TEXT CODIFICAT
i se aplic corespondena din tabelul 7.2, rezult urmtorul mesaj criptat
JLNBCJ NBCN DW CNGC LXMRORLJC

7.2.2.Criptarea prin substituie monoalfabetic


Principala mbuntire a acestui tip de criptare o reprezint stabilirea pentru
fiecare simbol din textul clar (pentru simplitate cele 26 de litere de mai sus), o
coresponden cu o alt liter.
Matematic, dac exist o singur lege de coresponden notat cu f (ntre
elementele alfabetului mesajului i elementele alfabetului criptogramei),
substituia este monoalfabetic. Astfel, pentru mesajul M=m1, m2,,mn, se
obine criptograma C=c1, c2,...,cn
C=Ek(M)=f(m1), f(m2),..., f(mn)

(7.9)

printr-o transformare liniar de forma


Ci=(a mi+b) mod p

(7.10)

unde, suplimentar fa de notaiile din relaia (7.8), a i b sunt dou numere de


tip ntreg, iar cheia k este dat de ansamblul (a,b).
Criptarea care folosete substituia monoalfabetic este slab la atacuri
criptanalitice (n principal cu text criptat), dat fiind faptul c identificarea cheii
conduce la obinerea ntregului mesaj.
Ca un caz particular, este prezentat cifrul aleator de substituie. Cheia este
constituit din 26 de perechi de numere echivalente de forma (a,b), cu (a,b)
(1,2,3,...,26) . ntr-un mod pseudoaleator, fiecrei litere a alfabetului primar i
corespunde o liter a alfabetului secundar. Literele alfabetului de substituire sunt
static independente, dar exist dezavantaje legate de generarea, transmiterea i
pstrarea cheii. Un exemplu este cel prezentat n tabelul 7.3.
Tabelul 7.3.
Alfabet
A B C D E F G H I J K L MN O P Q R S T U V W X Y Z
mesaj
Alfabet
Q WE R T Y U I O P A S D F G H J K L Z X C V B N M
criptogram

Cheia acestui tip de codificare o reprezint irul de 26 de litere corespunznd


ntregului alfabet. n aceste condiii, mesajul
ACESTA ESTE UN TEXT CODIFICAT
devine
QETLZQ TLZT XF ZTBZ EGROYOEQZ.
7.2.3. Criptarea prin transpoziie pe coloane
Spre deosebire de cifrurile cu substituie, cifrurile cu transpoziie reordoneaz
caracterele, dar nu le deghizeaz.
n exemplul urmtor este prezentat maniera de realizare a criptogramelor
folosind un cifru cu transpoziie pe coloane (tabelul 7.4). Cifrul are drept cheie
un cuvnt sau o expresie care nu trebuie s conin caractere repetate (cheia este
cuvntul universal). Textul clar (necodificat) este scris orizontal, pe rnduri.
Scopul cheii este s stabileasc numrul de coloane i s ordoneze caracterele,
coloana 1 fiind sub litera din cheie cea mai apropiat de nceputul alfabetului.

Text clar: ACEST ALGORITM DE CODIFICARE ESTE FOARTE BUN.


u
8
A
O
C
E
A

n
5
C
R
O
R

i
3
E
I
D
E
T

v
9
S
T
I
S
E

e
2
T
M
F
T

r
6
I
E
B

s
7
A
D
C
U

Tabelul 7.4.

a
1
L
E
A
F
N

l
4
G

R
O
.

Text criptat : LEAFNTMFT EIDETG RO.CRO R IEBADC UAOCEASTISE


7.2.4. Metoda cheilor acoperitoare
Construirea unui cifru imposibil de spart este actualmente destul de simpl.
Tehnica este cunoscut de decenii, avnd urmtoarele etape:
se alege un ir aleatoriu de bii pe post de cheie;
se convertete textul clar ntr-un ir de bii;
pentru a obine codificarea textului clar, se calculeaz xor ntre cheie i
textul clar, bit cu bit;
pentru a realiza decodificarea se calculeaz tot xor ntre aceeai cheie i
textul codificat, tot bit cu bit.
Aceast metod, cunoscut sub numele de metoda cheilor acoperitoare (onetime pad), are urmtoarele avantaje:
textul codificat nu ofer criptanalistului nici o informaie;
se poate codifica orice tip fiier (text, imagine, sunet, video, baz de date,
executabil) ;
chiar i atunci cnd afl metoda de codificare utilizat, criptanalistul nu are
anse s deduc cheia, deoarece irul de bii al cheii poate avea orice
lungime n raport cu irul de bii corespunztor textului clar.
Cu toat sigurana pe care o ofer aceast metod, ea prezint i dezavantaje
practice importante:
cheia nu poate fi memorat, necesitnd un suport, de preferin electronic,
o copie a ei putnd ajunge oricnd n posesia unei persoane neautorizate;
indiferent c este consultat parial sau n ntregime, informaia codificat
trebuie decodificat n ntregime.
Acesta este un foarte mare dezavantaj n cazul bazelor de date, utilizatorul
fiind obligat s decodifice i s codifice respectiva baz de
date n ntregime,
indiferent de numrul de nregistrri pe care le consult/modific;

cu ct fiierul codificat este mai mare, cu att manipularea lui


(consultare/modificare) este mai greoaie, ncetinind operarea cu produse
software n care este implementat acest metod de codificare.
Un exemplu de criptare prin metoda cheilor acoperitoare este cel prezentat n
continuare.
Mesaj: 00101010 10101000 10101010 01111100 01011101 11101111
Cheie: 10010111 00111011 00001111
Criptogram: 10111101 10010011 10100101 11101011 01100110 11100000

7.3. Criptosisteme computaionale


7.3.1. Noiuni generale
Dac la algoritmii clasici de criptare secretul este asigurat, n principal, de
folosirea unor chei de lungimi mari, la cele computaionale accentul este pus pe
complexitatea algoritmilor de criptare, respectiv de decriptare. Criptarea
utiliznd tehnica de calcul genereaz cifruri greu de spart chiar i de ctre un
criptanalist care dispune de cantiti mari de text cifrat.
Primul sistem de criptare bloc, criptosistemul Lucifer, a fost creat de IBM n
1970 pentru a mri sigurana transferurilor bancare. n variantele acestui
criptosistem apar pentru prima dat elementele unei reele de substituiepermutare. Sunt criptate i decriptate mesaje de orice lungime, n grupuri de 128
bii, sub controlul unei chei de 128 bii alei aleator. Cheia se putea obine dintr-o
cartel magnetic sau o memorie de tip ROM [ ]. Acest tip de criptare prezint
urmtoarele avantaje:
pentru aceeai secven de mesaj, sunt generate criptograme diferite, la
momente de timp diferite;
sistemul sesizeaz situaiile n care exist o eroare de transmisie sau cnd
este utilizat o cheie inadecvat.
Cu toate aceste avantaje certe, niciuna dintre variantele acestui criptosistem nu sa bucurat de prea mult ncredere din partea utilizatorilor, fiind considerate
nesigure.
Schema general a criptrii folosind tehnica cheilor publice este prezentat n
figura 7.1.

Adversar pasiv
Cheia surs

e
Canal nesecurizat

Criptare

Decriptare

Canal securizat
m

Text necriptat
surs

Destinaie

A
Fig. 7.1. Criptare folosind tehnica cheilor publice

Se consider o comunicare ntre dou entiti, A i B. B selecteaz perechea de


chei (e,d) i trimite cheia de criptare e, numit cheie public, lui A, prin oricare
dintre cele dou canale, dar pstreaz cheia secret de decriptare d, numit cheie
privat. A i poate astfel trimite un mesaj lui B aplicnd funcia de criptare
determinat de cheia public a lui B pentru a obine criptograma c, c=Ee(m). B
decripteaz textul cifrat c, aplicnd inversa transformrii, Dd, determinat n mod
unic de ctre d. Deoarece nu este necesar ca cheia de criptare e s fie inut
secret, ea poate fi fcut public, astfel nct orice entitate care dorete s i
transmit un mesaj criptat lui B s poat face acest lucru, iar B s poat realiza
decriptarea. Figura 7.2. ilustreaz aceast posibilitate, unde A 1, A2, A3 sunt
entiti distincte. Este de subliniat faptul c, dac A1 distruge mesajul m1 dup ce

l cripteaz n c1, atunci nici mcar A1

nu mai poate recupera m1 din c1.

c1

A1

Ee(m1)=c1
e
c2

A2

Ee(m2)=c2

Dd(c2)=m2
e
c3

A3

Dd(c1)=m1

Dd(c3)=m3

Ee(m3)=c3
e
Fig. 7.2. Criptarea cu chei publice cu trei entiti distincte

Criptarea cu chei publice ar putea fi considerat, n sensul celor prezentate pn


n acest punct, un sistem ideal, care nu are neaprat nevoie de un canal securizat
pentru transmiterea cheii de criptare. Acest lucru ar implica faptul c dou
entiti ar putea comunica peun canal nesecurizat, fr a se fi ntlnit vreodat
pentru a face schimb de chei. n realitate, ns, un adversar poate sparge
sistemul, decriptnd mesajele celei de a doua entiti, aa cum este prezentat n
figura 7.3.
n acest scenariu, al atacului asupra unei comunicri n doi cu asumarea unei
identiti false, adversarul i asum identitatea entitii B, trimindu-i entitii
A o cheie public e pe care A o consider, n mod incorect, ca fiind cheia public
a lui B.
Adversarul intercepteaz mesajele criptate ale lui A ctre B, le decripteaz
folosind propria cheie privat d, recripteaz mesajul cu cheia public e a lui B i l
trimite lui B. Acest fapt evideniaz necesitatea autentificrii cheilor publice
pentru a obine autentificarea originii datelor i a cheilor publice ( A trebuie s fie
sigur c B este deintorul legitim al cheii publice sub care a efectuat criptarea).

Adversar
Cheia surs

Criptare
Ee(m)=c
c

Decriptare
Dd(c)=m

e
m

Cheia surs

Criptare
Ee(m)=c
Decriptare
Dd(c)=m
Text necriptat
surs
Destinatar

Fig. 7.3. Atacul asupra unei comunicri n doi cu asumarea unei identiti false

7.3.2. Algoritmul R.S.A


Deoarece toi criptologii au considerat ntotdeauna ca de la sine neles faptul c
att pentru criptare ct i pentru decriptare se folosete aceeai cheie i c aceasta
trebuie distribuit tuturor utilizatorilor sistemului, prea a exista ntotdeauna
aceeai problem inerent: cheile trebuiau protejate mpotriva furtului dar, n
acelai timp, ele trebuiau s fie distribuite, astfel nct nu puteau fi sechestrate
ntr-un seif de banc.
n 1976, doi cercettori, Diffie i Hellman, au propus un tip radical nou de
criptosistem n care cheile de criptare i decriptare sunt diferite, iar cheia de
decriptare nu poate fi dedus din cheia de criptare. n propunerea lor, algoritmul
(cheia) de criptare E i algoritmul (cheia) de decriptare D, trebuiau s satisfac
trei cerine. Aceste trei cerine pot fi exprimate simplificat dup cum urmeaz:
D(E(M))=M;
Este foarte dificil s se deduc D din E;
E nu poate fi spart printr-un atac cu text clar ales.

Respectndu-se aceste trei condiii, nu exist nici un motiv pentru ca E , respectiv


cheia de criptare, s nu poat fi fcut public; dimpotriv, toi utilizatorii care au
adoptat acest model de criptosistem trebuie s-i fac cunoscute cheile publice.
Plecnd de la aceste trei condiii, n anul 1978 a fost inventat criptosistemul
R.S.A. Denumirea lui provine de la numele celor trei inventatori ai acestui mod
de criptare a informaiei: Ron Rivest, Adi Shamir i Leonard Adelman.
Acest criptosistem st i astzi, n diverse variante, la baza sistemelor de protecie
a datelor i transmisiilor de informaii. El se bazeaz pe o problem matematic
dificil i anume gsirea unor numere prime foarte mari, fapt care a impulsionat
elaborarea unor metode specifice mai eficiente.
Pentru obinerea cheilor (cheia privat i cheia public), se procedeaz astfel:

Se aleg dou numere prime p i q;


Se calculeaz n p q i z p -1 q -1 ;
Se alege un numr e relativ prim cu z, astfel nct 1 e z ;
Se gsete un numrd, astfel nct e d mod z 1 i 1 d z.

Numrul e se numete exponent public, iar numrul d exponent privat.


n urma operaiilor anterioare se obin dou perechi de numere (n,e) i (n,d) care
reprezint cheia public, respectiv cheia privat.
Pentru a obine mesajul criptat c , mesajul clar m (privit ca ir de bii), se mparte
n k blocuri de text clar. Fiecrui bloc mi, i 0, k - 1 i se aplic funcia:
ci n, e m e mod n , unde i 0,k -1

(7.11)

Astfel, irul c obinut reprezint mesajul criptat.


Pentru decriptare (obinerea mesajului clar m), criptogramei c i se aplic funcia:
(7.12)
mi n, d cid mod n , unde i 0,k -1
Din motive de securitate numerele p i q se terg dup generarea cheilor publice
i private.
Securitatea metodei se bazeaz pe dificultatea factorizrii numerelor mari. Dac
un criptanalist ar putea factoriza numrul n (public cunoscut), atunci el ar putea
obine p i q , iar din acestea pe z . Cu acesta din urm aflat, se restrng i
variantele pentru e , respectiv d . Din fericire, matematicienii ncearc de peste

300 de ani s factorizeze numere mari i experiena acumulat sugereaz c


aceasta este o problem mai mult dect dificil.
n figura 7.4. este ilustrat modul de funcionare a algoritmului R.S.A.

Fig. 7.4. Schema bloc a funcionrii criptosistemului R.S.A.

Persoana A deine un grup (inel) de chei publice ale persoanelor B, C, D i E.


Pentru a transmite un mesaj criptat persoanei C, cripteaz mesajul (textul clar)
cu cheia public a lui C. Persoana C primete mesajul criptat de la A i l
decodific cu cheia sa privat, obinnd astfel textul clar original.
n cadrul grupului de persoane A, B, C, D, E, fiecare deine cheile publice ale
celuilalt i le utilizeaz pentru transmiterea mesajelor. De asemenea, fiecare
persoan i utilizeaz cheia privat (personal) pentru a decripta mesajele
primite, astfel nct numai destinatarul mesajului poate citi mesajul respectiv.
Aceast modalitate de criptare este utilizat atunci cnd expeditorul este
interesat ca nimeni (nici mcar cei din grup) s nu poat citi mesajul clar.
Dezavantajul acestei metode este c oricine din grup poate trimite mesaje, iar
destinatarul nu poate fi 100% sigur de identitatea expeditorului.
Un exemplu de calcul este prezentat n continuare.
Se aleg dou numere prime (pentru o criptare eficient p i q se aleg mai mari de
10100):
p = 61
q = 53

Se calculeaz:
n = pq = 6153 = 3233
z = (p-1)(q-1) = 6052 = 3120
Conform algorimului se alege e = 17 i d = 2753
Cheia public va fi (n,e)=(3233,17)
Cheia privat rezult (n,d)=(3233,2753)
Se alege mesajul clar (de criptat) m=123.
Codificarea este
c =me mod n = 12317 mod 3233 =
= 337587917446653715596592958817679803 mod 3233 = 855
Decodificarea este
m = cd mod n =8552753 mod 3233 =123
Semntura digital R.S.A.
Avantajul algoritmului R.S.A. este c poate fi utilizat i pentru semnarea
mesajelor expediate. Acest tip de semntur este cunoscut sub numele de
semntura digital R.S.A.
Semntura digital este folosit pentru a identifica autorul unui mesaj i
reprezint una dintre cele mai importante contribuii ale criptrii cu chei publice.
Primul standard internaional pentru semnturile digitale , ISO/IEC 9796, bazat
pe schema cheilor publice RSA, a fost adoptat n 1991. Schema bloc a sistemului
de transmitere a mesajelor semnate digital este reprezentat n figura 7.5.
Dup cum este cunoscut, fiecare membru al unui grup deine cheia public a
celorlali membri ai grupului i cheia sa privat. Pentru a transmite persoanei C
un mesaj criptat i semnat, persoana A cripteaz mesajul (textul clar) cu cheia sa
privat (personal). Persoana C primete mesajul criptat de la A i l decodific cu
cheia public a acesteia (cheia public a lui A), obinnd astfel textul clar original.

Fig. 7.5. Schema bloc a sistemului de transmitere a mesajelor semnate digital

Spre deosebire de schema de criptare din figura 7.4, n acest caz, toate persoanele
din grup pot decodifica mesajul dar nu exist nici un dubiu n privina identitii
expeditorului.
A, B, C, D i E pot fi att persoane ct i programe, ceea ce nseamn c acest
sistem de criptare poate fi folosit :
de persoane n vederea transmiterii de maseje (de exemplu transmiterea de
e-mail-uri, fiiere n orice format),
de programe (pachete de programe client/server) n vederea transmiterii
de informaii de la aplicaia server la aplicaia client i/sau invers, n cadrul
reelelor de tip LAN (Local Area Network) sau WAN (World Area
Network).
Folosind notaiile de la metoda de criptare, pentru a obine mesajul criptat c
(criptogram semnat digital), mesajul clar m (privit ca ir de bii), se mparte n
k blocuri de text clar. Fiecrui bloc mi, i 0, k - 1 i se aplic funcia

ci n, d m d mod n , unde i 0,k -1

(7.13)

Astfel irul c obinut reprezint mesajul criptat semnat.


Pentru decriptare (obinerea mesajului clar m), criptogramei c i se aplic funcia
m n, e c e mod n , unde i 0,k -1
(7.14)
i

7.3.3. Algoritmul El-Gamal

Schema de criptare El-Gamal se bazeaz pe rezolvarea problemei logaritmilor


discrei care consider drept date iniiale un grup G de ordinul n i G,
logaritmul discret al lui n baz , notat cu log este numrul ntreg unic x, 0
x n-1, astfel nct =x.
Cel mai important aspect al criptrii cu chei publice este acela care se refer la
faptul c autorul unui mesaj nu are posibilitatea s l decripteze, dup ce l-a
trimis destinatarului, deoarece nu deine cheia privat necesar decriptrii.
Astfel, dac este transmis, din greeal, un mesaj unui alt destinatar dect cel
dorit, acesta nu l va putea decripta, pstrndu-se n acest fel secretul respectivei
informaii.
n acest context, dou entiti A i B care doresc s comunice trebuie s parcurg
urmtoarele etape:
generarea cheilor pentru criptarea cu chei publice El-Gamal (algoritm 1);
realizarea schimbului de chei publice, care poate fi fcut pe orice canal de
comunicaii, indiferent de gradul de securitate conferit de acesta (de
exemplu prin e-mail sau telefonie);
criptarea de ctre B a mesajului pe care dorete s i-l transmit lui A
(algoritm 2);
decriptarea de ctre A a mesajului cifrat c primit de la B (algoritm 3).
Algoritm 1. Generarea cheilor pentru criptarea cu chei publice El-Gamal
Fiecare entitate creeaz o cheie public i o cheie privat corespunztoare.
Entitatea A trebuie s aplice urmtorii pai:
Generarea unui numr p prim, cu o valoare mare, i a unui numr
din Z*p;
Selectarea unui numr ntreg aleator a, 1 a p-2, i calcularea a
mod p;
A deine cheia public (p, , a) i cheia privat a.
Algoritm 2. Criptarea cu chei publice El-Gamal
Entitatea B cripteaz mesajul m, prin aplicarea urmtorilor pai:
Obinerea cheii publice aparinnd lui A (p, , a) ;
Reprezentarea mesajului ca un numr ntreg aparinnd domeniului
{0,1,...,p-1};
Selectarea unui numr ntreg aleator k, 1 k p-2;
Calcularea = k mod p i a lui = m(a)k mod p.

Trimiterea ctre A a textului cifrat c=(, ).


Mesajul este considerat a fi un ir de caractere. Pentru a putea fi criptat, aceste
caractere sunt transformate n codul ASCII (American Standard Code for
Information Interchange) echivalent lor. Deoarece reprezentarea mesajului se
face ca un numr ntreg aparinnd domeniului {0,1,...,p-1}, p nu poate fi ales
mai mic dect 128.
Algoritm 3. Decriptarea cu chei publice El-Gamal
Pentru a recupera textul m, care a fost cifrat, din c, A trebuie s aplice paii de
mai jos:
Folosind cheia privat , calculeaz p-1-a mod p, cu p-1-a= -a= -ak.
Recuperarea lui m calculnd ( -a) mod p.
Verificarea decriptrii. Decriptarea permite recuperarea textului mesajului
original, deoarece -a mod p = - akmak mod p = m.
n continuare este prezentat un exemplu de criptare folosind algoritmul El-Gamal
pentru parametri mici.
Generarea cheii. Entitatea A selecteaz numrul prim p=2357 i un =2 din
Z*2357. n continuare, A i alege cheia privat a=1751 i calculeaz
a mod p = 21751 mod 2357 =1185.
Cheia public a lui A este (p=2357, =2, a=1185).
Criptarea. Pentru a cripta mesajul m=2035, B selecteaz un numr ntreg aleator
k=1520 i calculeaz:
= 21520 mod 2357 = 1430
= 2035 11851520 mod 2357 =697.
B trimite lui A = 1430 i = 697.
Decriptarea. Pentru a decripta, A calculeaz
p - 1- a = 1430605 mod 2357 =872
i recupereaz mesajul m, calculnd
m = 872 697 mod 2357 = 607 784 mod 2357 = 2035.

7.3.4. Algoritmul Merkle-Hellman

Schema de criptare Merkle-Hellman se bazeaz pe problema sumei subirurilor.


Ideea de baz este selectarea unei instane a problemei sumei subirurilor care
este uor de rezolvat, deghizat apoi ca o instan a problemei generale a
problemei sumei subirurilor care este mai dificil de soluionat. irul original
poate servi drept cheia privat, iar irul transformat servete drept cheie
public.
Schema de criptare Merkle-Hellman este important din motive istorice,
deoarece a fost prima realizare concret a unei scheme de criptare cu chei
publice. Ulterior au fost realizate mai multe variante, dar toate, inclusiv cea
original, s-au dovedit nesigure.
Definiia problemei sumei subirurilor poate fi formulat astfel: fiind dat un ir
de ntregi pozitivi {a1, a2,,an} i un ntreg pozitiv s, s se determine dac exist
sau nu un subir aj a crui sum este s, i dac exist xi {0,1}, 1 i n astfel
nct i=1n aixi = s.
Algoritmul pentru generarea cheilor pentru criptarea cu chei publice MerkleHellman cuprinde n mod necesar urmtoarele etape:
Fiecare identitate i creeaz o cheie public i una privat corespunztoare
1. Un numr ntreg n este stabilit ca parametru comun de sistem.
2. Fiecare identitate urmeaz paii 3-7.
3. Se alege un ir supercresctor (b1, b2, ... , bn) i un modul M astfel nct
M>b1+b2++bn.
4. Se selecteaz un ntreg aleator W, 1 W M 1, astfel nct cel mai
mare divizor comun al lui W i M s fie 1.
5. Se alege o permutare aleatoare de ntregi {1, 2, , n}.
6. Se calculeaz ai = W bimod M pentru i=1, 2, ... , n.
7. Cheia public a lui A este (a1, a2, ... ,an), iar cheia privat este (,, M, W,
(b1, b2, ... ,bn)).
Criptarea cu chei publice Merkle-Hellman. B cripteaz un mesaj m pentru A.
a.
b.
c.
d.

Se obine cheia public autentic a lui A (a1, a2, ... ,an)


Mesajul m este reprezentat ca un ir binar de lungime n, m=m1m2mn
Este calculat ntregul c=m1a1+m2a2++mnan
Textul cifrat c este trimis ctre A.

Decriptarea cu chei publice Merkle-Hellman


e. Se calculeaz d = W-1c mod M.

f. Rezolvnd problema sumei subirurilor, sunt gsii ntregii r1, r2, ... , rn,
ri {0,1}, astfel nct d=r1b1+r2b2++rnbn.
g. Biii mesajului sunt: mi=r(i), i1,2,...,n.
Algoritmul binar extins al celui mai mare divizor comun, folosit pentru a
determina inversul fa de nmulire al x mod y
Date de intrare: dou numere ntregi x i z.
Date de ieire: ntregii a i b, astfel nct ax + bz = 1, unde 1 este cel mai mare
divizor comun al lui x i y.
1. ct timp x i y sunt pare, execut: xx/2, yy/2
2. ux, vy, A1, B0, C0, D1.
3. ct timp u este par, execut:
3.1. uu/2
3.2. dac AB0 (mod 2), atunci AA/2, BB/2;
altfel, A(A+y)/2, B(B-x)/2.
4. ct timp v este par, execut:
4.1. vv/2
4.2. dac CD0(mod 2), atunci CC/2, DD/2;
altfel, C(C+y)/2, D(D-x)/2.
5. dac u v atunci uu v, A A - C, B B - D
altfel: v v u, C C A, D D B.
6. Dac u = 0, atunci aC, bD i returneaz a, altfel reia de la pasul 3.
Definiie: un ir (b1, b2, ... , bn) de numere ntregi pozitive este supercresctor
dac are proprietatea bi > j=1i-1 bj pentru fiecare i, 2 i n.
Algoritm pentru rezolvarea problemei sumei unui subir supercresctor
Date de intrare: un ir supercresctor (b1, b2, ... , bn) i un numr ntreg s, care
este suma subirului bi.
Date de ieire: (x1, x2, ... , xn) unde xi {0,1}, astfel nct i=1n xibi = s.
1. i n
2. ct timp i 1 execut:
2.1 dac s bi , atunci xi 1 i s s - bi ; altfel: xi 0.
2.2 i i - 1
3. returneaz (x1, x2, ... , xn)
Verificarea decriptrii. Decriptarea din algoritmul de mai sus permite
recuperarea textului mesajului original, deoarece d W-1c W-1i=1n miai i=1n

mib(i) (mod M). Deoarece 0 d M, d = i=1n mibimod M, deci soluia oferit

la pasul g al decriptrii indic n mod corect biii mesajului dup aplicarea


permutrii
n continuare este prezentat un exemplu de criptare folosind algoritmul MerkleHellman pentru parametri mici
Generarea cheilor
Fie n=6. Entitatea A alege irul supercresctor (12, 17, 33, 74, 157, 316), M=737,
W=635, i permutarea = {1, 2, 3, 4, 5, 6} definit prin 1= 3, 2= 6, 3=
1, 4=2 , 5= 5 i 6=4 .
Cheia public a lui A n urma calculelor:
a1 = W b(1) mod M = 63533 mod 737 = 20955 mod 737 = 319
a2 = W b (2) mod M = 635316 mod 737 = 200660 mod 737 = 196
a3 = W b (3) mod M = 63512 mod 737 = 70620 mod 737 = 250
a4 = W b (4) mod M = 63517 mod 737 = 10795 mod 737 = 477
a5 = W b (5) mod M = 635157 mod 737 = 99695 mod 737 = 200
a6 = W b (6) mod M = 63574 mod 737 = 46990 mod 737 = 559
este irul (319, 196, 250, 477, 200, 559), iar cheia privat este ( M, W,(12, 17,
33, 74, 157, 316)).
Criptarea. Pentru a cripta mesajul m = 101101, B calculeaz
c = 1319 + 0196 + 1250 + 1477 + 0200 + 1559 = 1605
i l trimite lui A.
Decriptarea. Pentru a decripta c , A calculeaz d = W-1c mod M cu ajutorul
algoritmului binar extins al celui mai mare divizor comun, sub forma d = W-1c
mod M = 5131605 mod 737 = 136.
Pentru a decripta mesajul trebuie rezolvat ecuaia:
136 = 12r1 + 17r2 + 33r3 + 74r4 + 157r5 + 316r6, obinndu-se r1 = 1, r2 = 1, r3 = 1,
r4 = 1, r5 = 0, r6 = 0, apoi se aplic permutarea rezultnd biii mesajului: m1 =
r3 = 1, m2 = r6 = 0, m3 = r1 = 1, m4 = r2 = 1, m5 = r2 = 0, m6 = r4 = 1, deci
mesajul decriptat este m = 101101 , acelai cu cel care a fost criptat.
7.3.4. Algoritmul D.E.S
Sistemul D.E.S. (Data Encryption Standard) este unul dintre cele mai
cunoscute exemple de cifruri bloc, adoptat n 1977 n SUA de ctre National

Bureau of Standards drept standardul federal de procesare a informaiei pentru


criptarea informaiilor neclasificate, pornind de la un cifru elaborat de IBM.
D.E.S. este un cifru bloc cu lungimea de 64 bii prelucrai n conjuncie cu o cheie,
compus din 56 bii generai pseudo-aleator i 8 bii folosii pentru detectarea
erorilor de transmisie; fiecare din aceti bii reprezint paritatea impar a celor 8
octei ai cheii. Aceasta este expandat la lungimea blocului i pstrat de ctre
toi membrii unui grup de utilizatori.
Construcia fundamental a unui bloc D.E.S. este o combinaie a dou tehnici
elementare de criptare, i anume substituie urmat de permutare, efectuate
asupra textului, pe baza unei chei. Aceast construcie este cunoscut sub
denumirea de rund. Criptosistemul D.E.S. este compus din 16 runde. Algoritmul
este bazat pe un set de permutri, substituii i sum modulo 2, aplicate iterativ
de 16 ori, pe un bloc de 64 bii, prin folosirea de fiecare dat a unei chei diferite
de 48 bii, extras dintr-o cheie de 56 bii.
Criptarea D.E.S. const din urmtoarele categorii de prelucrare efectuate asupra
blocului ce conine textul de cifrat, conform prezentrii din figura 7.6 [2]:
blocul de date de 64 bii este supus unei permutri iniiale IP;
blocul permutat trece printr-un calcul complex care depinde de cheie i
care const din 16 iteraii funcional identice, parametrizate de chei
diferite;
un interschimb al celor dou jumti ale blocului, fiecare avnd 32 bii;
o permutare (transpoziie) final, care este inversa celei iniiale.
Prelucrarea la fiecare iteraie i const din urmtoarele operaii [2]:
se noteaz cu L(i-1) i R(i-1) cele dou jumti de 32 de bii, stnga i
dreapta, care compun blocul supus iteraiei respective;
considernd k(i) cheia i un bloc de 48 de bii alei din cei 64 de bii ai
cheii, sunt valabile relaiile pentru calculul ieirilor L(i) i R(i) :
L(i) = R(i-1);
R(i) = L(i-1) f(R(i-1), K(i))

(7.15)

Ultima iteraie este diferit de celelalte, fiind definit de relaiile:


L(16) = R(15);
R(16) = L(15) f(R(15), K(16))

(7.16)

64 bii text clar

Permutare
iniial

C
H
E
I
E

Iteraia 1

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

K
Iteraia 16

Interschimb
jumti

Permutare final

64 bii text
cifrat
Fig. 7.6. Schema general a criptrii cu algoritmul D.E.S.

Funcia de criptare f folosit realizeaz o substituie neliniar, astfel nct asupra


blocului iniial de 32 de bii se aplic o funcie de expandare E, care genereaz 48
de bii la ieire. n continuarea prelucrrilor fcute de funcia f, E(R(i-1)) se
nsumeaz modulo 2 cu cei 48 de bii ai cheii K(i). Rezultatul este partiionat n 8
blocuri de 6 bii care constituie intrrile a 8 cutii S(j), j=1,..,8, care realizeaz o
substituie neliniar cu 6 intrri i 4 ieiri.

Fie S1, S2,,S8 cele 8 cutii S, P funcia de permutare i E funcia de expandare


prezentate mai sus. Pentru a defini funcia f(R(i-1), K(i)) se realizeaz blocurile
B1,,B8 de 6 bii fiecare
B1,,B8 = K(i) E(R(i-1))

(7.17)

n acest caz, blocul f(R(i-1), K(i)) poate fi definit ca


f(R(i-1), K(i)) = P(S1(B1) S2(B2) S8(B8))

(7.18)

Dup calculul format din cele 16 iteraii descrise anterior, blocul de 32 de bii este
supus unei permutri IP-1, inversa permutrii iniiale.
Decriptarea const n folosirea aceluiai algoritm, dar cu cheile K(i) aplicate n
sens invers, de la K16 la K1. Astfel, primul pas n decriptare este aplicarea
permutrii IP, care dezleag ultimul pas IP-1 din operaia de criptare. Apoi se
genereaz n sens invers:
R(i-1) = L(i)
L(i-1) = R(i) f(L(i), K(i))

(7.19)

Relaiile (7.19) urmeaz a fi aplicate de la R(16) i L(16), generndu-se n final


R(0) i L(0). n final, blocul de 64 de bii obinut este supus unei permutri
inverse IP-1, ceea ce conduce la obinerea mesajului de tip text clar.
Atacuri asupra algoritmului D.E.S.
Pentru orice sistem de cifrare, cea mai popular metod de atac este atacul
forbrut, ceea ce nseamn ncercarea tuturor cheilor posibile pentru
spargere. Lungimea cheii este cea care determin numrul de chei posibile i,
prin urmare, posibilitatea de reuit a acestui atac.
n mediile academice, au fost avansate mai multe propuneri pentru spargerea
criptosistemului D.E.S. n 1977, Diffie i Hellman au propus o main de calcul,
al crei cost era estimat la 20 milioane USD, care putea gsi cheia D.E.S. n 24
ore. n 1993, Wiener a propus i el o main de cutare a cheii care costa 1 milion
USD i care gsea cheia D.E.S. n 7 ore.
Fezabilitatea spargerii criptosistemului D.E.S. a fost demonstrat nc din 1988,
cnd a fost nfiinat o comunitate de spargere a D.E.S. de ctre Electronic
Frontier Foundation (EFF). Motivaia acestui grup era s demonstreze c D.E.S.
era la fel de uor de spart n teorie, ca i n practic. Maina folosete atacul forat
pentru a sparge cheia n mai puin de dou zile de cutare.

Exist i o a doua categorie de atacuri, numite atacuri mai rapide dect


for-brut . n aceast categorie sunt incluse trei tipuri de atacuri cunoscute
care pot sparge toate cele 16 faze ale D.E.S. cu o complexitate mai mic dect
cutarea de tip for-brut: Criptanaliza Diferenial (DC), Criptanaliza Linear
(LC) i atacul Davie. Cu toate acestea, atacurile sunt teoretice i sunt imposibil de
pus n practic, fiind denumite i vulnerabiliti certificate.
Criptanaliza diferenial a fost descoperit la sfritul anilor 80 de Eli Biham i
Adi Shamir. Pentru a sparge toate cele 16 faze, criptanaliza diferenial necesit
247 secvene de text prestabilite. D.E.S. a fost proiectat s reziste atacului DC.
Criptanaliza linear a fost descoperit de Mitsuru Matsui n 1994 [20], i
necesit 243 secvene de text prestabilite; metoda a fost implementat i a fost
primul experiment criptanalitic raportat de ctre D.E.S. Nu exist nici o prob s
ateste faptul c DES a fost proiectat s reziste la acest tip de atac.
O generalizare a LC, i anume criptanaliza linear multipl, a fost sugerat n
tot n 1994 de ctre (Kaliski i Robshaw [21] i a fost rafinat mai departe de
Biryukov n 2004 [22] ; analiza lor sugereaz c aproximrile lineare multiple
pot fi folosite pentru a reduce datele necesare atacului cu cel puin un multiplu de
4, fiind necesare astfel 241 secvene in loc de 243.
n timp ce criptanaliza diferenial i cea linear sunt tehnici generale i pot fi
aplicate unui numr mare de categorii de criptosisteme, atacul Davie este o
tehnic specializat pentru D.E.S., propus la nceput de Davie in anii 80, i
mbuntti de Biham i Biryukov n 1997. Cea mai puternic form de atac
necesit 250 secvene de text prestabilite, are o complexitate de ordinul 250 i are
51% rat de success.
7.3.5. Algoritmul A.E.S.
Standardul de codare avansat A.E.S.- Advanced Encryption Standard a fost
dezvoltat n anul 1977 de doi criptografi belgieni, Joon Daemen i Vincent
Rijmen, sub denumirea de Rijandel, un hibrid alctuit din numele celor doi
inventatori. Acest algoritm a reprezentat o mbuntire a proiectului iniial al
celor doi, numit Square, fiind o reea de tip substituie-permutare. A.E.S.
prezint avantajul rapiditii, este relativ uor de implementat i necesit puin
memorie.
Descrierea algoritmului A.E.S.

A.E.S. are o mrime bloc fix de 128 bii i mrimea cheii de 128, 192 sau 256
bii i opereaz pe un tablou de bii de dimensiune 4x4, numit the state,
conform reprezentrii din figura 7.7.

Fig. 7.7. Descrierea algoritmului A.E.S.

Pentru codare, fiecare ciclu a lui A.E.S. (exceptnd ultimul) const din patru
stadii, i anume:
Substituire, prin efectuarea unui pas de substituie neliniar, prin care
fiecare bit este nlocuit cu un altul, conform descrierii din figura 7.7.;
Schimbarea rndurilor un pas de transpunere, unde fiecare rnd al strii
este schimbat ciclic la un anumit numr de pasi;
Amestecarea coloanelor - o operaie de amestecare care opereaz asupra
coloanelor de stare, combinnd cei 4 bii din fiecare coloan folosind o
transfomare liniar;
Cheia adugare ciclic, n care fiecare bit al strii este combinat cu cheia
ciclului, astfel nct fiecare ciclu este obinut din cheia zero folosind o cheie
program.
Ciclul final omite stadiul amestecrii coloanelor.
Pasul de substituie
n pasul de substituie, fiecare bit din tablou este actualizat folosind un S-box de
8 bii. Aceast operaie furnizeaz o neliniaritate n cifru. S-box-ul folosit este
obinut din inversarea funciei GF (28) cunoscut, cu bune proprieti neliniare.
Pentru a evita atacurile bazate pe proprieti simple algebrice, S-box-ul este
construit prin combinarea funciei inverse cu o transformare inversabil. S-boxul este de asemenea ales pentru a evita orice puncte fixe i orice puncte fixe
opuse.
Pasul de schimbare a rndurilor (Shift Rows)

Pasul de schimbare a rndurilor opereaz asupra rndurilor stadiului, conform


prezentrii din figura 7.8., schimbnd ciclic biii din fiecare linie dup un anumit
tipar. Pentru A.E.S., primul rnd este lsat neschimbat. Fiecare bit al celui de al
doilea rnd este schimbat cte unul ctre stnga. n mod similar, rndurile trei
ipatru sunt schimbate dup un tipar de doi, respectiv trei.
n acest fel, fiecare coloan a strii de ieire a pasului Schimbarea rndurilor
este alctuit din biii fiecrei coloane a strii de intrare.

Fig. 7.8. Pasul de schimbare a rndurilor

Pasul de combinare a coloanelor (Mix Columns)


n pasul de combinare a coloanelor, cei patru bii ai fiecrei coloane a strii sunt
combinai folosind o transformare liniar inversabil mpreun cu schimbarea
rndurilor, combinarea coloanelor furniznd difuzia n cifru. Fiecare coloan este
tratat ca un polinom definit n GF(28) i este atunci nmulit modulo X4 +1 cu
un polinom fix C(X), aa cum este ilustrat n figura 7.9.

Fig. 7.9. Pasul de combinare a coloanelor

Pasul cheie adugare ciclic (Add Round Key)

n acest pas, subcheia este combinat cu starea. Prin efectuarea fiecrui ciclu, o
subcheie este obinut din cheia principal folosind programul cheii, fiecare
subcheie avnd aceeai mrime ca i starea. Subcheia este adugat prin
combinarea fiecrui bit al strii cu bitul corespunztor al subcheii bitwise (bitul
inteligent) XOR. Realizarea acestui pas poate fi observat n figura 7.10.

Fig. 7.10. Pasul cheie adugare ciclic

Implementarea A.E.S. n produse informatice avnd misiunea de a proteja


sistemele de securitate naional i/sau informaiile trebuie s fie certificat de
Agenia de Securitate Naional (NSA) nainte de achiziie i folosire. Aceasta
marcheaz, n premier, accesul publicului la un cifru aprobat de NSA pentru
informaii de tip strict secret. Este interesant de observat c multe produse
publice folosesc implicit chei secrete de 128 bii; sunt posibile, aadar, atacuri de
14 cicluri pentru cheile de 192 bii i tot de 14 cicluri pentru cheile de 256 bii.
Pn n prezent, cele mai cunoscute atacuri sunt cele de 7 cicluri pentru cheile de
128 bii, 8 cicluri pentru cheile de 192 bii i 9 cicluri pentru cheile de 256 bii.
Criptografii care realizeaz aceste chei se tem, ns, de securitatea A.E.S. Ei
consider c marginea dintre numrul de cicluri specificate n cifru i cele mai
cunoscute atacuri este prea mic pentru confortul unei sigurane absolute. Riscul
este c unele modaliti de a mbunti aceste atacuri vor fi, evident, gsite i, n
consecin, cifrul poate fi spart. n acest context, ospargere de cifru este oricnd
mai rapid dect o cutare complet; astfel un atac mpotriva unei chei A.E.S. de
128 bii, necesit doar 2120 operaii pentru a se considera o spargere, chiar dac
acest lucru este, teoretic, complet imposibil. n consecin, din fericire, pentru
moment, asemenea preocupri pot fi ignorate.
Cel mai mare atac public cunoscut ca for brut, a fost asupra unei chei RC5 de
64 bii, prin reea distribuit. Lund n considerare faptul c, spre deosebire de
alte cifruri bloc, A.E.S. are o descriere matematic foarte riguroas, el nu a
constituit nc obiectul unui atac, dar unii cercettori sunt ngrijorai c
viitoarele atacuri pot gsi modalitai de a exploata aceast stuctur.

7.3.6. Curbe eliptice


Studiul curbelor eliptice este o ramur important a matematicii. Curbele
eliptice sunt simple funcii, definite peste orice cmp de numere i constau din
elemente numite puncte (x, y), cu reprezentrile grafice asociate cunoscute, de
tipul celor din figura 7.11. Interesul pentru aceste construcii matematice devine,
ns, cu totul special atunci cnd se studiaz punctele n care curbele respective
intersecteaz coordonatele ntregi (x, y).

Fig. 7.11. Reprezentarea grafic a unei curbe eliptice

Domeniul curbelor eliptice a fost studiat destul de intens de ctre matematicieni,


dar n ultima jumtate a secolului 20 au fost obinute rezultate foarte
semnificative. Una dintre aplicaiile teoriei curbelor eliptice este utilizarea
curbelor eliptice n criptografie [24].
Curbele eliptice pot furniza versiuni ale metodelor de criptare cu chei publice,
dovedindu-se, n unele cazuri, mai rapide i folosind chei mai scurte, cu avantajul
asigurrii unui nivel echivalent de securitate. Secretul const n utilizarea unui tip
aparte de grup matematic pentru aritmetica cheilor publice.
Pentru descrierea unei curbe eliptice este util un exerciiu de imaginaie a unei
reprezentri grafice pe o coal de hrtie. Fiecare linie reprezint un ntreg i
fiecare intersecie de linii reprezint o pereche de intregi de coordonate (x,y).
Desennd pe aceast coal de hrtie o curb care se ntinde la infinit i care
traverseaz un numr finit (x,y), la fiecare asemenea intersecie se poate marca
un punct. Aceste puncte speciale de pe curb pot fi numrate i poate fi definit un
"operator de adunare" care combin oricare dou puncte pentru a localiza astfel
un al treilea punct. Acest aa-numit operator de adunare care acioneaz asupra

punctelor formeaz un grup finit. Curba prezentat n figura 7.11. este definit de
ecuaia
y2 + y = x3 - x2

(7.20)

Adugarea de puncte pe curba eliptic


n cazul curbelor eliptice, regula referitoare la adugarea de puncte pleac de la
premisa c fiecare linie dreapt care trece prin curb o intersecteaz n exact trei
puncte. n acest context, regula de adugare a punctelor, fie ele u i v este
urmtoarea :

Se traseaz o linie dreapt prin u i v pentru a determina cel de al treilea


punct de intersecie w;
Se traseaz o linie vertical prin w pentru a se determina un alt punct de
intersecie, notat cu z.

Astfel, suma u + v = z.
Dar pentru a putea utiliza aceast regul n context criptografic, trebuie s fie
definite unele situaii speciale care implic existena unui punct imaginar
suplimentar O, numit origine sau punct la infinit. Se admite c punctul O este
localizat foarte sus, unde se presupune c toate liniile verticale converg. n plus, O
este pe curb, chiar dac nu este caracterizat de coordonatele specifice (x,y). O
alt presupunere este aceea c o linie tangent la un punct se spune c
intersecteaz punctul de dou ori.

Fig. 7.12. Adugarea de puncte pe curba eliptic

n exemplul considerat, linia care trece prin a i b intersecteaz un al "treilea"


punct b, conform reprezentrii din figura 7.12. Se noteaz aceast linie [a,b,b].

Aceast regul de adunare creeaz un grup matematic de puncte. Curba


reprezentat n figura 7.12. intersecteaz (0,0), (1,-1), (1,0), (0,-1), i O, sau {a, b,
c, d, O}. Se calculeaz a+b prin trasarea liniei tangente [a, b, b] pentru a
determina b, i apoi se utilizeaz linia [O, c, b] pentru a determina c.
Multiplicarea scalar a unui punct este o adunare repetat a punctului cu el
nsui. tiind c a+a=b i a+b=c, se poate calcula 3a =c. De asemenea, poate fi
demonstrat faptul c O este elementul neutru al grupului, deoarece pentru orice
v, v + O = v. Punctul suplimentar considerat, O, este analog multiplicrii prin 1
ntr-un grup de ntregi modulo p.
Din considerente criptografice, vor fi considerate cmpuri de numere finite, iar
aritmetica acestor curbe este operat modulo p, unde p este fie un numr prim
foarte mare, fie un numr putere foarte mare a lui 2. Un grup eliptic conine, de
regul N puncte, unde N este aproape egal cu p, N = k * q, q este prim, iar k este
un numr mic. Operaia de adunare pe o curb eliptic este corespondent
operaiei de nmulire n sisteme cu chei publice obinuite, iar multiplicarea este
corespondenta exponenierii numerelor n Zp*.
Considernd numrul prim p, p =
6.277.101.735.386.680.763.835.789.423.207.
666.416.083.908.700.390.324.961.279.
i n spaiul astfel definit, fie curba eliptic de forma
y2 = x3 + Ax2 + B (mod p)

(7.21)

cu A i B alte dou numere mari, atent alese, din Zp*. Aceast curb conine exact
N puncte, unde N =
6.277.101.735.386.680.763.835.789.423.337.
720.473.986.773.608.255.189.015.329.
Aceste N puncte formeaz un grup, conform regulii prezentate anterior.
Considernd p ca un numr binar, se observ c are o form special, p = 2192 264 - 1, ceea ce uureaz considerabil calculul. Oricum, calculele cu numere mari
nu constituie o problem pentru sistemele moderne, cu att mai mult cu ct
dimensiunile acestor numere sunt mult mai mici dect cele utilizate de metodele
tradiionale, de tip R.S.A.

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