Sunteți pe pagina 1din 13

MINISTERUL EDUCAIEI AL REPUBLICII MOLDOVA UNIVERSITATEA TEHNIC A MOLDOVEI FACULTATEA RADIOELECTRONIC I TELECOMUNICAII CATEDRA TELECOMUNICAII

REFERAT la lucrarea de laborator nr.2 Tema: ALGORITMI SIMETRICI DE CRIPTARE. ALGORITMUL AES la disciplina: Protecia informaiei

A efectuat studenta gr. TLC-xxx xxx.

A verificat conf. univ., dr. Ciobanu M.

CHIINU 2011

Noiuni generale: Criptografia a devenit azi unul dintre domeniile dinamice de cercetare tiinific datorit aplicaiilor ei n securitatea calculatoarelor i a Internet -ului. Acoperit mult vreme sub "secretul" utilizrilor militare i diplomatice, astzi criptografia trebuie "demistificat", fiind, nici mai mult nici mai puin dect un instrument n activitile informatice curente. n rile dezvoltate, se poate vorbi de o criptografie de uz cotidian. Sistemele criptografice simetrice Sistemele criptografice simetrice folosesc aceeai cheie K, att la cifrarea (criptarea) ct i la descifrarea (decriptarea) mesajelor. Cheia este secret i este folosit n comun de ctre emitor, cel care cifreaz mesajul M i de ctre receptor, cel care descifreaz criptograma C.

Fig.1. Sistem criptografic simetric Sistemele simetrice sunt folosite pentru protecia datelor memorate n fiiere, baze de date sau a informaiilor transmise n reele. Criptosisteme simetrice ca standardul american de cifrare DES (Data Encryption Standard) sau sistemul AES. Securitatea criptrii simetrice depinde mult de protecia cheii criptografice. Ca urmare, administrarea acestora este un factor esenial i se refer la: - generarea cheilor, adic mijloacele pseudo-aleatoare de creare a succesiunii de octei (bii) ai cheii;

- distribuia cheilor, adic modul n care se transmit i se fac cunoscute cheile tuturor utilizatorilor cu drept de acces la informaiile criptate; - memorarea cheilor, adic stocarea lor sigur pe un suport magnetic sau pe un card, de obicei criptate sub o alt cheie de cifrare a cheilor, numit i cheie master. Problema fundamental a utilizrii criptografiei n reele este aceea a gsirii unor modaliti de distribuie sigur i periodic a cheilor criptografice, fiind necesar ca acestea s fie schimbate ct mai des. n Internet, pentru aceasta, se utilizeaz tot serviciile reelei, folosind protocoale speciale sau sisteme cu chei publice, aa numitele anvelope (plicuri) digitale.

Figura 2 Schema de aplicare a unui algoritm simetric Algoritmul AES Matricea de stare Operaiile interne ale algoritmului AES se realizeaz pe o matrice bidimensional de octei numit matrice de stare. Matricea de stare este format din 4 rnduri de , fiecare coninnd Nb octei, unde Nb este egal cu lungimea blocului mprit la 32. Un element din matricea de stare se noteaz cu s r,c sau s[r,c] (rndul r i coloana c). Elementele sunt repretate n baza 16 (hexazecimal).

n cadrul criptrii respectiv decriptrii, vectorii de intrare (in copiai n matricea de stare dup regula: s[r,c] = in[r + 4c]

1..15)

sunt

dup care toate prelucrrile necesare obinerii vectorilor de ieire (out 1..15 se vor efectua pe matricea de stare (Fig. 1).

Fig. 1 Intrarea, ieirea i matricea de stare

Elementele vectorilor de ieire sunt copiai din matricea de stare la finalul criptrii dup regula: out[s+4c] = s[r,c] Elementele matricii de stare, care sunt constituite din 4 octei, se pot rescrie sub forma unor cuvinte de 32 de biti sub forma: wi = s 0,i s 1,i s 2,i s 3,i Specificaiile algoritmului Pentru algoritmul AES lungimea secvenei de intrare, a celei de ieire i a matricii de stare este de 128 de bii. Acest fapt este reprezentat n algoritm prin alegerea numrului de coloane ale matricii de stare Nb=4, semnificnd numrul de cuvinte pe 32 de bii. Lungimea cheii de criptare poate fi aleas de 128, 192 sau 256 de bii, fapt care este reprezentat n algoritm prin v aloarea lui Nk care poate fi 4, 6 respectiv 8 adic numrul de cuvinte de 32 de bii din cheie. Numrul ciclurilor necesare executrii algoritmului depinde de mrimea cheii, ca i n tabelul de mai jos.

Lungimea cheii

Mrimea blocului

Numrul de cicluri 10 12 14

AES-128 AES-192 AES-256

4 6 8

4 4 4

Algoritmul AES utilizeaz o funcie ciclic att pentru criptare ct i pentru decriptare, care execut patru transformri diferite pe octet: 1) octeii se substituie folosind un tabel predefinit de substituie, 2) liniile din matricea de stare sunt deplasate folosindu-se diferite valori de offset, 3) datele cuprinse n fiecare coloan a matricii de stare sunt amestecate ntre ele, i 4) adugarea cheii ciclice la matricea de stare.

Descrierea mecanismului de criptare La nceputul criptrii, secvena de la intrare este copiat n matricea de stare folosindu-se conveniile de construcie a matricii de control. Dup ce iniial a fost adugt cheia, matricea de stare este transformat prin implementa rea funciei ciclice de 10, 12 sau 14 ori ( n funcie de lungimea cheii de criptare ) cu ultimul ciclu diferind puin de celelalte precedente. Matricea final de stare este apoi copiat la ieire. Funcia ciclic este parametrizat folosindu-se un program al cheii care ntr-un ir de cuvinte pe patru octei derivat, folosindu -se rutina de extindere a cheii descris n urmatoarea seciune. n Fig.2 este descris pseudo codul cifrrii, n care transformrile individuale SubBytes(), ShiftRows(), MixColumns() i AddRoundKey() proceseaz matricea de stare i vor fi descrise n urmtoarele seciuni.

Fig.2 Pseudo-codul pentru criptare

n aceast figur irul w[] reprezint programarea cheii, iar toate ciclurile de criptare sunt identice, excepie fcnd ciclul final care nu include funcia MixColumns(). Descrierea funciilor utilizate pentru criptare Funcia SubBytes() Aceast funcie execut o transformare neliniar prin care sunt substituii octeii din matricea de stare prin utilizarea tabelului de substituie S -box. Acest tabel este cel din figura urmtoare este inversabil i este construit prin compunerea a dou transformri pe bii: 1) se ia inversul fa de nmulire n GF(28), elementul {00}fiind de sine stttor, GF(2), obinndu-se noul element
(*)

2) se aplic transformarea peste

pentru i = 0,7 , unde bi este al i-lea bit al octetului iar ci este al i-lea bit al octetului c de valoare {63} sau {01100011}. Forma matricii S-box folosit n

funcia SubBytes() este prezentat n form hexazecimal n Fig.3 . De exemplu dac s i,i = {53} , atunci valoarea obinut se va determina la intersecia liniei a 5-a i a coloanei a 3-a.

Fig.3 Matricea de substituie

n forma matricii, elementul rezultat din S-box poate fi exprimat i prin:

Figura urmtoare ilustreaz efectul funciei SubBytes() asupra matricii de stare:

Fig.4 Efectul Funciei SubBytes()

Funcia ShiftRows() Aceast funcie realizeaz o deplasare ciclic a octeilor de pe ultimele trei coloane ale matricii de control, cicluri care dureaz diferit adic au offseturi diferite. Primul rnd r=0 nu este deplasat. Specific acestei transformri este operaia urmtoare:

cu r = 1,3 i c = 0, Nb 1 , unde numrul de deplasri shift(r,Nb) depinde de numrul liniei r dup cum urmeaz: shift(i,4)=i , unde i = 1,3 , avnd ca efect deplasarea octeilor pe poziiile inferioare de pe linie, n timp ce octeii de pe poziiile inferioare sunt deplasai pe poziii superioare n linie, dup cum este artat n figura urmtoare:

Fig.5 Efectul Funciei ShiftRows()

Funcia MixColumns() n cadrul acestei transformri care opereaz cu coloanele matricii de stare, coloanele sunt considerate polinoame din GF(28) i sunt nmulire modulo x4+1 cu un polinom fixat a ( x ) = {03}x 3 + {01}x 2 + {01}x + {02} aa cum urmeaz

Ca i rezultat al acestei nmuliri, cei patru octei de pe o coloan sunt nlocuii cu:

Figura urmtoare ilustreaz efectul transformrii MixColumns()

Fig.6 Efectul Funciei MixColumns()

Funcia AddRoundKey() Conform principiului algoritmului de criptare, cheia ciclic este adugat matricii de stare printr-o compunere XOR pe bii, adic fiecare cheie conine Nb cuvinte din programul cheii, cuvinte care sunt adugate coloanelor matricii de stare aa cum urmeaz

unde [ w i ] sunt cuvintele din programul de cheie descris n urmtoarele seciuni, iar round este un ntreg pozitiv mai mic sau egal cu numrul de cicluri. n cadrul criptrii, primaadunare a cheii ciclice se face pentru round = 0 , mai devreme de aplicarea funciei ciclice. Aplicarea AddRoundKey() se face n ciclurile de la 1 la final. Aciunea acestei transformri este ilustrat mai jos, n Fig.7 , innd cont c l = round* Nb

Fig.7 Efectul Funciei AddRoundKey()

Funcia de extindere a cheii Algoritmul AES preia cheia ce criptare i desfoar o ntrag rutin de extindere a acesteia pentru a genera programul cheii. Funcia de extindere a cheii genereaz un numr de Nb(Nr+1) cuvinte: algoritmul are nevoie de un se t iniial de Nb cuvinte, iar fiecare dintre cele Nr cicluri are nevoie de Nb cuvinte. Programul cheii rezultat conine un ir de cuvinte pe 4 octei, notat [ w i ] , cu

i = 0, Nb ( Nr + 1) 1 .

Extinderea cheii de intrare n programul cheii se desfoar

conform pseudo-codului de mai jos:

Fig.8 Pseudo-codul funciei de extindere a cheii de criptare

SubWord() este o funcie care preia un cuvnt pe patru octei de la intrare i aplic transformarea conform S-box fiecrui octet. Funcia RotWord() preia un cuvnt [a 0 a 1a 2 a 3 ] ca i intrare, execut o permutare ciclic i returneaz
[a 1 a 2 a 3 a 0 ] .

Vectorul ciclic constant

Rcon[i]

conine valorile date de

[ x i 1 ,{00}, {00}, {00}] .

Descrierea mecanismului de decriptare Transformrile din cadrul criptrii se inverseaz i apoi se implementeaz n ordine invers, rezultnd astfel algoritmul de decriptare al standardului AES. Transformrile utilizate n cadrul decriptrii: InvShiftRows(), InvSubBytes(), InvMixColumns() respectiv AddRoundKey() vor fi descrise n cele ce urmeaz.

Decriptarea este descris n pseudocod n Fig. 9; vectorul w[ ] conine programarea cheii care a fost descris in seciunea anterioar.

Fig.9 Algoritmul de decriptare n pseudocod

Avantajele sistemelor criptografice simetrice: 1. Pot transmite volume mari de date. Exist implementri hard care pentru unele sisteme de criptare pot asigura rate de criptare de sute de mega-octei pe secund (sunt i implementri soft cu rate de mega-octei pe secund). 2. Cheile sunt relativ scurte. 3. Pot fi folosite ca baz de construcie a diverselor mecanisme de criptare, cum ar fi generatori de numere pseudo-aleatoare, generatori de funcii de dispersie, scheme de semntur. 4. Prin compunere pot conduce la sisteme de criptare puternice. 5. Au o istorie bogat n evenimente i experien. Dezavantaje ale sistemelor de criptare cu cheie simetric: 1. Cheia trebuie s rmn permament secret n (cel puin) dou locuri distincte.

2. Cu ct lungimea unui mesaj criptat este mai mare, cu att el este mai uor de spart. 3. n reele mari, o gestionare a cheilor devine extrem de dificil. 4. Necesit un canal sigur de comunicare, cel puin pentru transmiterea cheii. Acest lucru devine dificil mai ales pentru sistemele care necesit schimbri frecvente ale cheilor de criptare/decriptare.

Bibliografie
M. Borda Teoria transmiterii informaiei