Sunteți pe pagina 1din 14

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

1..15

) sunt

copiai n matricea de stare dup regula:


s[r,c] = in[r + 4c]
dup care toate prelucrrile necesare obinerii vectorilor de ieire (out
efectua pe matricea de stare (Fig. 1).

Fig. 1 Intrarea, ieirea i matricea de stare

1..15

se vor

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 valoarea 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.

AES-128
AES-192
AES-256

Lungimea cheii

Mrimea

Numrul de

4
6
8

blocului
4
4
4

cicluri
10
12
14

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 implementarea
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 pseudocodul cifrrii, n care transformrile individuale SubBytes(), ShiftRows(),
MixColumns() i AddRoundKey() proceseaz matricea de stare i vor fi
descrise n urmtoarele seciuni.

n aceast figur irul w[] reprezint programarea cheii, iar toate ciclurile de
Fig.2 Pseudo-codul pentru
criptare

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,

2) se aplic transformarea peste

GF(2), obinndu-se noul element


(*)

pentru

i = 0,7

, unde bi este al i-lea bit al octetului iar c i 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
s i ,i = {53}

dac

, 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:

Funcia ShiftRows()

Fig.4 Efectul Funciei


SubBytes()

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

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:

Funcia MixColumns()

Fig.5 Efectul Funciei


ShiftRows()

n cadrul acestei transformri care opereaz cu coloanele matricii de stare,


coloanele sunt considerate polinoame din GF(28) i sunt nmulire modulo x4+1
a ( x ) = {03}x 3 + {01}x 2 + {01}x + {02}

cu un polinom fixat

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 set
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
i = 0, Nb( Nr + 1) 1

[w i ]

, cu

. 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 1 a 2 a 3 ]

[a 1 a 2 a 3 a 0 ]

ca i intrare, execut o permutare ciclic i returneaz


Rcon [i]

Vectorul ciclic constant

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

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