Sunteți pe pagina 1din 49

Cuprins

Lucrarea nr.1. Metoda de criptare RSA Lucrarea nr.2. Metoda de criptare DES Lucrarea nr.3. O utilizare posibil a parolelor, protecia unui document Lucrarea nr. 4. Criptarea rapid a directoarelor i fiierelor pentru transmiterea lor prin pot electronic , folosind metoda de criptare IDEA Lucrarea nr. 5. Metoda de criptare AES Lucrarea nr. 6. Tehnici de balizare folosind transformarea wavelet Lucrarea nr.7. Protecia potei electronice folosind pachetul de programe PGP, Pretty Good Privacy

1 9 23 26 31 39 43

Lucrarea nr.1. Metoda de criptare RSA


1. Introducere Este o metod de criptare cu chei publice. Ideea de baz const n faptul c procedura de criptare este facut public de ctre fiecare utilizator i poate fi folosit de toi ceilali utilizatori pentru cifrarea mesajelor ce le sunt adresate. n schimb procedura de decriptare, diferit de cea de criptare, este inut secret. Cele dou proceduri se aleg astfel nct cunoaterea uneia (cea fcut public) s nu permit obinerea celei de a doua (cea de descifrare). 2. Aritmetica n cmpul claselor de resturi modulo numr prim Criptosistemul RSA folosete exponenierea n cmpul claselor de resturi modulo numar prim pentru a cripta i decripta mesaje text convertite ntr-o form numeric. n cele ce urmeaz se prezint ideile principale privind aritmetica n acest cmp, utilizate i de ctre metoda RSA. Aritmetica modular este o aritmetic cu numere ntregi i pozitive (sau zero). Aritmetica modular este similar cu cea obinuit cu o singur diferen: aritmetica modular lucreaz cu o mulime restrns de numere, mulime definit de ctre un singur numr modulul. De exemplu, s considerm aritmetica modulo 5 (pentru simplitate). Mulimea de numere utilizat este {0,1,2,3,4}. n aceast clas, considernd numerele n ordine cresctoare dup cifra 4 urmeaz cifra 0 i apoi 1 ... numerele repetndu-se ciclic, cu perioada cinci. Orice numr n aceast clas se transform ntr-unul din cele cinci numere posibile. De fapt el este egal cu restul mpririi lui la 5. n aritmetica cmpului modulo 5 numerele se transform astfel: 0 -> 0 1 -> 1 2 -> 2 3 -> 3 4 -> 4 5 -> 0 6 -> 1 7 -> 2 8 -> 3 ... 2.1. nmulirea modulo numr prim nmulirea a dou numere modulo 5 este destul de simpl. n primul rnd ne bazm doar pe mulimea de numere {0,1,2,3,4}. Numerele se nmulesc n mod obinuit dar se reine ca rezultat restul mpririi la 5 a produsului obinut. Astfel 3*3 mod 5 = 4, deorece 3*3 = 9 iar 9 mod 5 este 4. Putem stabili tabela nmulirii modulo 5, astfel:

|01234 -------------0|00000 1|01234 2|02413 3|03142 4|04321 Generalizarea pentru orice modul este foarte simpl. Orice numr reprezentat modulo n este egal cu restul mpririi lui cu numrul n. 2.2. Proprieti ale multiplicrii modulo numr prim 1. Identitatea Orice numr din aceast clas nmulit cu 1 d tot numrul respectiv.Astfel, 1*1 mod 5 = 1 2*1 mod 5 = 2 3*1 mod 5 = 3 .. etc 2. Inversa Un numr N are o invers M, dac N nmulit cu M d elementul identitate. Astfel pentru modulo 5: 3*2 mod 5 = 1, deci numrul 2 este inversul numrului 3 pentru nmulirea modulo 5. 3. Numere relativ prime i inversa multiplicativ n exemplul de mai sus toate numerele, exceptnd numrul 0, au invers n raport cu nmulirea (multiplicativ). Acest lucru ns nu este adevrat pentru orice valoare de modul. Astfel, s-a artat c un numr M oarecare are invers multiplicativ n raport cu nmulirea modulo N, doar dac cele dou numere sunt relativ prime. n cazul nmulirii modulo 5, acest deziderat se verific, deorece N=5 este un numr prim. 4. Funcia indicatorul lui Euler Funcia indicatorul lui Euler, n cazul unui modul N, J(N), indic numrul numerelor relativ prime cu N din mulimea {1 ... N-1}. Astfel, ea indic cte numere din aceast mulime posed invers multiplicativ, n raport cu numrul N. Funcia indicatorul lui Euler, n cazul unui modul N, J(N), poate fi calculat factoriznd numrul N. De exemplu: Dac, N=P1*P2* ...*PM (P1 ...PM - numere prime) atunci: J(N)=(P1-1)*(P2-1)* ...*(PM-1)

Dac N este un numr prim, rezult J(N)=N-1 2.3. Exponenierea modular i funcia indicatorul lui Euler Vom nota cu simbolul "^" operatorul de exponeniere. Cum se calculeaza o anumit putere modulo un anumit numr ? S considerm din nou N=5. Calculm 3^2 mod 5: 3^2 = 9 iar 9 mod 5 este 4 . Exponeierea modulo un anumit numr poate fi calculat i iterativ, astfel: (3^3 mod 5)^2 mod 5 = (3^3)^2 mod 5 dar: (3^3 mod 5)^2 mod 5 = 2^2 mod 5=4 n aritmetica obinuit exponenierea iterat se reduce la o singur exponeniere. Astfel: (3^3)^2 = 3^6 deorece 3*2 = 6. n aritmetica modulo 5 (unde nu exist numrul 6): (3^3)^2 mod 5 devine 3^(3*2 mod J(5)) mod 5, care, deorece J(5) = 4, este 3^2 mod 5 = 4. Sistemul de criptare RSA este de tip exponenial. Funcia de criptare RSA este: c=w^e mod n unde: n - modulul, e - exponentul public, w - textul clar, c - textul criptat, Modulul n este obinut prin produsul a dou numere prime mari: n=p*q astfel nct funcia indicatorul lui Euler: J(n)=(p-1)*(q-1) devine mult mai greu de determinat. Perechea (e,n) este fcut public (cheia public). Funcia de decriptare RSA este: w=c^d mod n unde: d - exponentul privat, ce verific: e*d mod J(n) = 1, deci d reprezint inversul multiplicativ al lui e n raport cu funcia indicatorul lui Euler, J(n). Acest lucru nseamn, deasemenea, c numrul e este inversul lui d fa de operaia de exponeniere modulo n. Astfel: (w^e mod n)^d mod n = w^(e*d mod J(n)) mod n = w

Gsirea lui d (valoarea lui e fiind public) necesit cunoaterea lui J(n) pentru n fixat. Rezistena la atacuri a metodei de criptare const tocmai n dificultatea factorizrii numrului n (pentru o valoare suficient de mare). 3. Proiectarea unui sistem de criptare RSA Dimensionarea unui astfel de sistem pornete n mod curent de la alegerea a dou numere prime mari: p i q. Se calculeaz: n=p*q i: J(n)=(p-1)*(q-1) Se alege un numr e, relativ prim cu J(n). Se recomand alegerea lui e din intervalul [max(p,q)+1, J(n)]. Se caut numrul d, inversul fa de exponenierea modulo n al numrului e, numr ce verific: w^(e*d) mod n = w pentru orice w din mulimea {1 ... n-1}, problem ce se reduce la a cuta inversul fa de multiplicarea modulo J(n), deorece: e*d mod J(n) = 1 Avnd aceste numere, se face public perechea (e,n) - cheia public i se pstreaz secret cuplul (d,n) - cheia privat. Criptarea presupune calculul valorii: c = w^e mod n n timp ce decriptarea se face prin calculul valorii: w = c^d mod n 4. Un exemplu de utilizare a sistemului de criptare RSA Alegem: p=7 q = 11 rezult: n = p*q = 77 - modulul J(n) = (p-1)*(q-1) = 60 - funcia indicatorul lui Euler Alegem: e = 37 rezult: d = 13 - un numr ce verific relaia e*d mod J(n) = 1 Considerm corespondena dintre alfabetul latin i cifre: - un numr relativ prim cu J(n)

A B C D E F G H I J K L M N O P R S T U V W X Y Z _ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 unde caracterul '_' semnific 'spaiu'. Deorece n < 2626 criptarea se va face caracter cu caracter. Astfel alegnd, de exemplu, textul clar, 'H', lui i va corespunde cifra, w=8. Textul criptat se determin conform: c = w^e mod n n exemplul nostru: c = 8^37 mod 77 = (8^32 * 8^4 * 8) mod 77 = = ((8^32 mod 77)*(8^4 mod 77)*(8 mod 77)) mod 77 = = 64*15*8 mod 77 = 57 c = 57 unde exponenialele modulo 77 succesive ale lui 8 se calculeaz n mod iterativ, calculnd pe rnd: 8 mod 77 = 8 8^2 mod 77 = 64 8^4 mod 77 = 8^2*8^2 mod 77 = = ((8^2 mod 77)*(8^2 mod 77)) mod 77 = 15 8^8 mod 77 = 8^4*8^4 mod 77 = = ((8^4 mod 77)*(8^4 mod 77)) mod 77 = = 15*15 mod 77 = 71 8^16 mod 77= 8^8*8^8 mod 77 = = ((8^8 mod 77)*(8^8 mod 77)) mod 77 = = 71*71 mod 77 = 36 8^32 mod 77= 8^16*8^16 mod 77= = ((8^61 mod 77)*(8^16 mod 77))mod 77 = = 36*36 mod 77 = 64 Decriptarea presupune calculul: w = c^d mod n n cazul nostru: w = 57^13 mod 77 = (57^8 * 57^4 * 57) mod 77 = = ((57^8 mod 77)*(57^4 mod 77)*(57 mod 77)) mod 77 = = 36*71*57 mod 77 = 8 w=8

unde exponenialele modulo 77 succesive ale lui 57 se calculeaz deasemenea n mod iterativ, calculnd pe rnd: 57 mod 77 = 57 57^2 mod 77 = 15 57^4 mod 77 = (57^2*57^2) mod 77 = = ((57^2 mod 77)*(57^2 mod 77)) mod 77 = = 15*15 mod 77 = 71 57^8 mod 77 = (57^4*57^4) mod 77 = =((57^4 mod 77)*(57^4 mod 77)) mod 77 = = 71*71 mod 77 = 36 5. Prezentarea programului folosit Metoda de criptare RSA este simulat cu ajutorul unui program scris n limbajul C. Lansarea acestui program se efectueaz din Windows Commander fcnd click pe Lab_crypt.exe. Pe ecran apare un panou virtual de sistem de criptare RSA, cum este cel din figura 1.

Figura 1. Panoul frontal al sistemului virtual de criptare RSA.

Principalele funcii ale acestui sistem sunt:


6

Componente - se prezint algoritmii implementai. Fcnd click pe butonul Componente de pe panoul frontal, se deschide fereastra prezentat n figura 2.

Figura 2. Subfunciile corespunztoare funciei Componente.

Fcnd click pe butonul Algoritmul RSA, se deschide fereastra prezentat n figura urmtoare.

Figura 3. Subfunciile corespunztoare funciei Algoritmul RSA.

Fcnd click pe butonul Descriere poate fi citit o prezentare a algoritmului RSA. Fcnd click pe butonul Exemplu poate fi urmrit realizarea unei criptri i a decriptrii corespunztoare. Fcnd click pe butonul Exerciiu pot fi realizate criptri i decriptri cu algoritmul RSA. n continuare se prezint un exemplu pentru nelegerea modului de utilizare a acestei funcii. Folosind ferestrele de sub literele p i q se aleg pentru acestea valorile 7 i 11. Dup apsarea butonului Genereaz rezult valorile 7 pentru E i 43 pentru D, cu ajutorul crora se construiesc cheia public (7,77) i cheia privat (43,77). Dup apsarea butonului > poate fi realizat criptarea unei litere cu algoritmul RSA. Se alege, de exemplu, folosind fereastra de sub mesajul Alegei o liter de criptat, litera H. Se specific cheia public de criptare (7,77). Se apas butonul Cripteaz i se obine mesajul criptat 57. n vederea decriptrii acestuia se apas butonul >. n fereastra corespunztoare mesajului criptat se scrie 57. n fereastra Cheia privat se scrie (43,77). Se apas butonul Decripteaz. Se obine mesajul original, decriptat cu cheia privat, H. 6. Desfurarea lucrrii 6.1. Se verific toate funciile programului evideniate n paragraful anterior. n acest mod se nva s se lucreze cu programul 6.2. Se efectueaz verificarea funcionrii programului efectund o criptare i o decriptare. Rezultatele vor fi salvate ntr-un fiier word, din directorul user, in al carui nume vor aparea numele studentului i L1.

6.3. Pentru acelai mesaj se va simula folosirea a dou sisteme de criptare RSA, prin alegerea, a dou seturi diferite de parametri p, q i e. Pentru fiecare dintre aceste experimente se va nota irul de date w i irurile de date c. Se va compara fiecare dintre irurile de date c obinute astfel cu irul de date w. Se va stabili care dintre cele dou alegeri de parametri a fost mai inspirat. i comentariile inspirate de acest experiment vor fi consemnate n fiierul Word cu rezultatele lucrrii amintit mai sus.

Lucrarea nr.2. Metoda de criptare DES


1. Introducere Este o metod de criptare cu chei secrete. Pentru criptarea unui anumit mesaj se folosete o cheie secret. Pentru decriptarea mesajului cifrat obinut astfel se folosete aceeai cheie. Algoritmul DES (Data Encription Standard) este un algoritm de criptare cu chei simetrice fiind cel mai rspndit algoritm n ntreaga lume. A fost adoptat de National Security Agency (NSA) din S.U.A. ca un standard de criptare. Structural este constituit ca o combinaie de algoritmi de tip transpoziie i subsituie. El este construit pentru a cifra i descifra blocuri de 64 bii prin intermediul unei chei de criptare de 56 bii. 2. Calcularea cheii 2.1 Se ia o cheie de 64 de bii. 2.2 Se aplic regula bitului de paritate: fiecare octet din cheie trebuie s aib un numr impar de bii "1". Dac un octet are numr par de bii "1", atunci ultimul bit din octet se seteaz corespunztor. 2.3 Algoritmul de calculare a cheii 2.3.1 Se face permutarea urmtoare a cheii de 64 bii (tot al 8-lea fiind scos, reducnd astfel cheia la 56 bii) folosind tabelul PC1. Bitul 1 (bitul cel mai semnificativ, MSB) al cheii permutate K+ este bitul 57 al cheii originale K, al 2-lea este bitul 49, .a.m.d, ultimul, adic bitul 56 din K+ fiind bitul 4 din K. 2.3.2 Se mparte cheia permutat, K+, n dou jumti. Primii 28 de bii se noteaz cu C[0] i ultimii 28 cu D[0]. 2.3.3 Se calculeaz 16 subchei. Se ncepe cu i=1. 2.3.3.1 Se efectueaz deplasri circulare spre stnga att asupra lui C[i1] ct i asupra lui D[i-1], pentru a obine pe C[i] respectiv D[i]. Numrul de permutri din fiecare iteraie este dat de tabelul LS. 2.3.3.2 Se permut irul concatenat C[i]D[i]dup tabelul PC2. Din aceast permutare se vor obine cheile K[i], care au o lungime de 48 de bii. 2.3.3.3 Se reia ciclul de la 2.3.3.1 pn este calculalt i K[16]. Observaie: Aceast etap poate fi reprezentat grafic ca n figura urmtoare.

Figura 1. Mecanismul de generare a cheilor de iteraie.

3. Criptarea blocului de date de 64 de bii 3.1 Se ia un bloc de date de 64 de bii. Dac blocul este mai scurt, atunci se va completa cu zerouri n limita celor 64 de bii. 3.2 Se efectueaz o permutare asupra blocului de date conform tabelului IP. 3.3 Se mparte blocul n dou jumti. Primii 32 de bii se noteaz cu L[0], iar ultimii cu R[0]. 3.4.Se aplic cele 16 subchei blocului de date. Se ncepe cu i=1. 3.4.1 Se extinde irul R[i-1] de 32 de bii la 48 de bii dup tabelul E. 3.4.2 Se efectueaz operaia XOR (SAU EXCLUSIV sau altfel spus adunare bit cu bit modulo 2) ntre irul obinut anterior E(R[i-1]) i cheia corespunztoare, K[i]. 3.4.3 Se mparte rezultatul operaiei de mai sus ( E(R[i-1]) XOR K[i] ) n 8 grupuri de 6 bii. Biii de la 1 la 6 se noteaz cu B[1], biii de la 7 la 12 cu B[2], .a.m.d., biii 43-28 fiind notai cu B[8]. 3.4.4 Se nlocuiesc valorile gsite n cutiile S pentru toate grupurile B[j], ncepnd cu j=1.; Fiecare valoare din cutiile S se consider ca avnd 4 bii.

10

3.4.4.1 Se iau bitul 1 i bitul 6 din grupurile B[j] mpreun, ca un numr de 2 bii (s-i spunem m), care va indica rndul din cutia S[j] corespunztoare grupului B[j]. 3.4.4.2 Se iau biii 2, 3, 4 i 5 mpreun, ca un numr de 4 bii (s-l notm cu n), care va indica coloana din cutia S[j] corespunztoare grupului B[j]. 3.4.4.3 Se nlocuiete grupul B[j] cu numrul de 4 bii S[j][m][n]. 3.4.4.4 Se va relula ciclul de la 3.4.4.1 pn cnd toate cele 8 grupuri vor fi nlocuite. 3.4.5 Noile grupuri B[1] la B[8] se vor concatena (se vor pune mpreun) dup care asupra noului ir se va efectua o permutare n funcie de tabelul P. 3.4.6 Se face XOR ntre rezultatul etapei de mai sus i L[i-1] pentru a-l obine pe R[i]. Toate aceste etape se pot scrie astfel:

R[i]

L[i-1]

XOR

P(S[1](B[]1)...S[8](B[8])),

unde B[j] este un grup de 6 bii obinut din E(R[i-1]) XOR K[i]. (Funcia dup care se calculeaz R[i] poate fi scris mai concis astfel: R[i] = L[i-1] XOR f(R[i-1], K[i]) ). Observaie: Calculul funciei f se face ca n figura urmtoare:

Figura 2. Calculul funciei f.

3.4.7 Se face nlocuirea L[i] = R[i-1] 3.4.8 Se reia ciclul de la 3.4.1 pn cnd i ultima cheie, adic K[16], a fost

11

aplicat blocului de date. 3.5 Se face permutarea asupra irului R[16]L[16] (a se observa c de data asta, irul R[16] este pus naintea lui L[16] ) conform tabelului IP-1. Observaie: Calcularea blocului de date poate fi reprezentat grafic ca n figura urmtoare.

Figura 3. Criptarea unui mesaj.

4. Decriptarea unui bloc de date de 64 de bii 4.1 Se vor repeta etapele de la 2 cu observaia c subcheile K[i] se vor aplica n ordine invers, adic se va ncepe cu cheia K[16], apoi K[15], K[14], .a.m.d. pn la K[1]. 5. Un exemplu de aplicare a algoritmului DES Fie un mesaj M = 0123456789ABCDEF ce trebuie cripatat cu DES. M este un text n format hexazecimal. Rescriind pe M n format binar, vom obine un bloc de 64 de bii: M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 pe care l mprim n dou jumti: L = 0000 0001 0010 0011 0100 0101 0110 0111 R = 1000 1001 1010 1011 1100 1101 1110 1111 Atenie! Att M ct i L i R se pot scrie sub form de matrice, acest lucru neinfluennd deloc rezultatul criptrii. Vom citi de la stnga la dreapta astfel c primul bit din M este 0 ultimul fiind 1. Algoritmul DES lucreaz cu blocuri de text folosind chei de 56 de bii. n realitate cheile apar ca avnd 64 de bii dar fiecare al 8-lea bit din cheie nu este folosit (adic biii de pe poziile 8,

12

16, 24, 32, 40, 48, 56 i 64). n orice caz noi vom scrie toi cei 64 de bii, numrndu-i de la stnga la dreapta, n calculele ce vor urma, dar cum se va vedea dealtfel, biii menionai vor fi eliminai cnd vom crea cele 16 subchei. Deci, s considerm K, n forma hexazecimal, K = 133457799BBCDFF1 care s fie cheia cu care s criptm mesajul M. Din nou, o vom tansforma n binar (1 = 0001, 3 = 0011. etc. i se grupeaz n grupuri de cte 8, pentru a putea urmri mai uor biii care vor fi eliminai): K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 Pasul 1: Crearea celor 16 subchei Cheia K (64 de bii) va fi permutat dup tabelul PC-1 n modul urmtor: pentru c 57 este primul numr din tabel, nseamn c al 57-lea bit din cheia K va deveni primul bit din cheia permutat K+; urmtorul numr din tabel este 49 deci al 49-lea bit din K va deveni al doilea bit din K+; .a.m.d. Observaie: Numai 56 de bii din cheia iniial vor fi permutai, adic nu vor fi folosii biii cu indicii 8, 16, 24, 32, 40, 48, 56 i 64. Deci, avem K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 i dup permutare vom avea: K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111 n continuare, vom mpri pe K+ n dou jumti C0 i D0. C0 = 1111000 0110011 0010101 0101111 D0 = 0101010 1011001 1001111 0001111 cu C0 i D0 astfel obinui vom crea cele 16 blocuri Cn i Dn, 1<=n<=16. Fiecare pereche Cn i Dn se va forma din perechea precedent, Cn-1 i Dn-1 prin deplasri spre stnga dup tabelul LS. Pentru a efectual o deplasare spre stnga, se mut fiecare bit cu un loc spre stnga cu excepia primului bit care este pus la sfritul blocului.

13

LS
Numrul iteraiei 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Numrul de deplasri spre stnga 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Asta nsemn c, de exemplu, C3 i D3, se obin din C2 i D2, respectiv prin 2 deplasri spre stnga, iar C16 i D16 se obin din C15 i D15 respectiv printr-o deplasare spre stnga a biilor cu o poziie. Astfel, vom obine: C0 = 1111000011001100101010101111 D0 = 0101010101100110011110001111 C1 = 1110000110011001010101011111 D1 = 1010101011001100111100011110 C2 = 1100001100110010101010111111 D2 = 0101010110011001111000111101 C3 = 0000110011001010101011111111 D3 = 0101011001100111100011110101 C4 = 0011001100101010101111111100 D4 = 0101100110011110001111010101 C5 = 1100110010101010111111110000 D5 = 0110011001111000111101010101 C6 = 0011001010101011111111000011 D6 = 1001100111100011110101010101 C7 = 1100101010101111111100001100 D7 = 0110011110001111010101010110 C8 = 0010101010111111110000110011 D8 = 1001111000111101010101011001 C9 = 0101010101111111100001100110 D9 = 0011110001111010101010110011

14

C10 = 0101010111111110000110011001 D10 = 1111000111101010101011001100 C11 = 0101011111111000011001100101 D11 = 1100011110101010101100110011 C12 = 0101111111100001100110010101 D12 = 0001111010101010110011001111 C13 = 0111111110000110011001010101 D13 = 0111101010101011001100111100 C14 = 1111111000011001100101010101 D14 = 1110101010101100110011110001 C15 = 1111100001100110010101010111 D15 = 1010101010110011001111000111 C16 = 1111000011001100101010101111 D16 = 0101010101100110011110001111 n continuare vom forma cheile Kn, 1<=n<=16, aplicnd tabelul PC-2 fiecrei perechi concatenate CnDn. Observaie: fiecare pereche concatenat are 56 de bii, dar PC-2 nu folosete dect 48 dintre acetia. PC2 14 3 23 16 41 30 44 46 17 28 19 7 52 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32

Permutarea se va face exact ca i n cazul lui PC-1, adic primul bit din Kn este bitul 14 din CnDn, al doilea este bitul 17 din CnDn, ncheindu-se cu ce de-al 48-lea care este bitul 32 din CnDn. Pentru prima cheie avem C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110 care dup efectuarea permutrii dup PC-2 va deveni: K1 = 000110 110000 001011 101111 111111 000111 000001 110010 La fel se procedeaz i pentru celelalte 15 perechi i vom obine n final: K2 = 011110 011010 111011 011001 110110 111100 100111 100101 K3 = 010101 011111 110010 001010 010000 101100 111110 011001 K4 = 011100 101010 110111 010110 110110 110011 010100 011101 K5 = 011111 001110 110000 000000 111111 110101 001110 101000 K6 = 011000 111010 010100 100111 110010 000111 101100 101111 K7 = 111011 001000 010010 010110 111111 100001 100010 111100

15

K8 = 111101 111000 101000 000111 010110 010011 101111 111011 K9 = 111000 001101 101111 111101 011111 011110 011110 000001 K10 = 101100 011111 001101 101000 111101 100100 011001 001111 K11 = 001000 010101 111111 010011 110111 101101 001110 000110 K12 = 011101 010111 000111 110101 100101 000110 011111 101001 K13 = 100101 111100 010111 010001 111110 101011 101001 000001 K14 = 010111 110100 001110 110111 111100 101110 011100 111010 K15 = 101111 111001 000110 001101 001111 010011 111100 001010 K16 = 110010 110011 110110 001011 000011 100001 011111 110101 K1 K16 sunt cele 16 subchei pe care le vom folosi pentru criptarea mesajului M. Pasul 2: Critarea blocului de 64 de bii Se va rearanja blocul iniial de text M dup tabelul IP. Procedeul de permutare este acelai ca i cel descris la PC-1 i PC-2. IP
58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7

M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010 Pe IP l vom mpri n dou jumti L0 i R0. L0 = 1100 1100 0000 0000 1100 1100 1111 1111 R0 = 1111 0000 1010 1010 1111 0000 1010 1010 n continuare, vom face 16 iteraii, 1<=n<=16, folosind funcia f, care avnd ca parametri dou iruri ( un bloc de date de 32 de bii i o cheie Kn de 48 de bii) va da ca rezultat un ir de 32 de bii. Observaie: n cele ce urmeaz se va considera semnul + ca reprezentnd operaia SAU Exclusiv XOR (adic adunare bit cu bit modulo 2) Vom face urmtoarele calcule: Ln = Rn-1 Rn = Ln-1 + f(Rn-1, Kn) Pentru n=1 avem: K1 = 000110 110000 001011 101111 111111 000111 000001 110010 L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010 R1 = L0 + f(R0,K1) S vedem cum aplicm funcia f. n primul rnd l vom extinde pe Rn-1 folosind tabelul E. Observaie: tabelul E conine o serie de numere care se repet astfel c face posibil ca dintrun ir de 32 de bii s obinem unul de 48.

16

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

Pentru exemplificare s calculm pe E(R0) din R0. R0 = 1111 0000 1010 1010 1111 0000 1010 1010 E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101 Observaie: fiecare grup de 4 bii din R0 a fost extins ntr-unul de 6 bii. Apoi, n calcularea funciei f, facem XOR ntre E(Rn-1) i Kn: Kn + E(Rn-1) Astfel c pentru K1 i E(R0) vom avea: K1 = 000110 110000 001011 101111 111111 000111 000001 110010 E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101 K1+E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111 Mai este un lucru de fcut n calcularea funciei f. n momentul de fa avem 16 blocuri de 48 de bii pe care le-am aranjat fiecare n 8 grupuri de cte 6 bii fiecare. Acum vom folosi aa numite cutii S (S boxes). Fiecrui grup de 6 bii i se va asocia, n ordine, o cutie S din cele 8. Observaie: fiecare bloc este mprit n 8 grupuri, deci cte un grup pentru fiecare cutie. Fiecare grup de 6 bii reprezint o adres n cutia care i-a fost asociat. La adresa indicat de grup vom gsi n cutie un numr de 4 bii care va nlocui grupul de 6 bii care l-a ales. Astfel c nlocuind toate cele 8 grupuri dintr-un bloc va rezulta un bloc de 32 de bii. Aceste operaii le vom scrie astfel: Kn + E(Rn-1) =B1B2B3B4B5B6B7B8 S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) Dup cum spuneam mai nainte, fiecare grup de 6 bii reprezint o adres. Selecia numrului aflat n cutie la acea adres se face n felul urmtor: se ia prima i ultima cifr din grupul de 6 bii care va fi un numr binar de 2 bii, care reprezint numrul rndului din cutie. Celelalte 4, care formeaz un numr de 4 bii reprezint, trasnformat n zecimal, numrul coloanei din cutie. Spre exemplu, dac avem grupul 010111 atunci numrul care l vom selecta din cutia corespunztoare se va afla pe rndul 1 (01) i coloana 11 (adic 1011). S1
14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13

17

S2
15 3 0 13 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 9 12 5 11 7 0 8 6 2 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 10 5 15 9

S3
10 13 13 1 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12

S4
7 13 10 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14

S5
2 14 4 11 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 1 10 7 13 14 11 13 7 2 6 1 8 13 8 5 15 6 5 0 9 15 3 15 12 0 15 10 5 9 13 3 6 10 0 9 3 4 14 8 0 5 9 6 14 3

S6
12 10 9 4 1 15 14 3 10 4 15 2 15 2 5 12 9 7 2 9 2 12 8 5 6 9 12 15 8 5 3 10 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13

S7 4 13 1 11 0 4 2 11 11 14 7 13 15 4 12 0 9 3 8 1 7 13 10 14 3 14 10 12 3 15 9 5 6 7 12 8 5 2 0 10 15 5 6 8 9 1 6 2

18

11

13

10

15

14

12

S8
13 1 7 2 15 11 8 13 4 4 8 1 6 10 9 15 3 12 11 7 14 1 4 2 10 12 0 9 5 6 3 6 10 14 11 13 5 0 15 0 14 3 12 9 5 7 2 8

2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 Deci, pentru primul bloc avem: K1+E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111 S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111 Ultimul pas n calcularea funciei f este s facem o permutare a rezulatului obinut din cutiile S. f = P(S1(B1)S2(B2)...S8(B8)) Aceasta permutare se efectueaz la fel ca i Pc-1, PC-2, IP, etc. P
16 29 1 5 2 32 19 22 7 12 15 18 8 27 13 11 20 28 23 31 24 3 30 4 21 17 26 10 14 9 6 25

n cazul nostru: S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111 f = 0010 0011 0100 1010 1010 1001 1011 1011 Avnd funcia f, putem s aplicm formula: R1 = L0 + f(R0,K1) = 1100 1100 0000 0000 1100 1100 1111 1111 + 0010 0011 0100 1010 1010 1001 1011 1011 = 1110 1111 0100 1010 0110 0101 0100 0100 Urmtorul pas va fi s facem L2 = R1 pe care l-am calculat mai nainte i apoi s-l calculm pe R2 la fel ca mai nainte. Acest set de operaii se va repeta de 16 ori, pn vom avea determinate L16 i R16, dup care le punem mpreun dar n ordine invers, adic R16L16 i aplicm permutarea final IP-1. IP-1
40 39 38 37 8 7 6 5 48 47 46 45 16 15 14 13 56 55 54 53 24 23 22 21 64 63 62 61 32 31 30 29

19

36 35 34 33

4 3 2 1

44 43 42 41

12 11 10 9

52 51 50 49

20 19 18 17

60 59 58 57

28 27 26 25

Fr a mai scrie calculele de la fiecare etap, vom scrie direct pe L16 i R16 L16 = 0100 0011 0100 0010 0011 0010 0011 0100 R16 = 0000 1010 0100 1100 1101 1001 1001 0101 R16L16 = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100 IP-1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101 care n hexa este 85E813540F0AB405 Aceasta este forma criptat a mesajului M = 0123456789ABCDEF cu cheia K = 133457799BBCDFF1. 5. Prezentarea programului folosit Metoda de criptare DES este simulat cu ajutorul unui program scris n limbajul C. Lansarea acestui program se efectueaz din Windows Commander fcnd click pe DES.exe. Pe ecran apare o fereastr n care trebuie introdus parola tti. Pe ecran apare un panou virtual de sistem de criptare DES, cum este cel din figura 4.

Figura 4. Panoul frontal al sistemului virtual de criptare DES.

Principalele funcii ale acestui sistem sunt: Teorie - se prezint chestiunile teoretice coninute n paragrafele anterioare (2 i 3, respectiv 4) ale acestei lucrri. Deoarece fiierul de prezentare este de tip .html pot fi folosite la citire facilitile specifice cuttoarelor pe INTERNET. O variant coninnd mai puine greeli de ortografie poate fi citit, folosind programul Word, n fiierul Des.htm . Fcnd click pe butonul Teorie de pe panoul frontal, se activeaz fereastra prezentat n figura 5.

Figura 5. Subfunciile corespunztoare funciei Teorie.

20

Fcnd click pe butonul Descrierea Algooritmului, pe ecranul panoului frontal poate fi citit textul prezentat n paragrafele 2 i 3. Fcnd click pe butonul Exemplu de criptare, poate fi citit textul din paragraful 4. Pe durata citirii unuia dintre aceste texte celelalte funcii ale sistemului virtual de criptare DES sunt dezactivate. Exerciiu. Fcnd click pe butonul Exerciiu, pe ecran apare fereastra prezentat n figura urmtoare.

Figura 6. Subfunciile corespunztoare funciei Exerciiu.

Introducnd 8 caractere pentru cheia de criptare i 8 caractere pentru irul de date se activeaz butonul OK din fereastra din figura anterioar. Fcnd click pe acesta se trece la primul pas al algoritmului de criptare DES, n care cheia i mesajul sunt transformate n iruri de date cu lungimea de 64 de bii. Algoritmul poate continua fcnd click pe butonul > din noua fereastr afiat pe ecran. n pasul doi se genereaz cele 16 subchei de iteraie. Valorile acestora sunt afiate n noua fereastr care apare pe ecran. Pasul al treilea corespunde criptrii propriuzise. Este afiat pe ecran mesajul criptat. Ultimul pas corespunde decriptrii. Se poate sesiza identitatea dintre textul n clar al mesajului iniial i textul obinut n urma decriptrii. Info. Fcnd click pe butonul Info se poate afla de ce parola acestui program este tti. Autorul acestui program l-a creat n urma frecventrii unui cerc tiinific organizat de d-na Profesor dr. ing. Miranda Naforni. Test. Fcnd click pe butonul Test al panoului frontal din figura 4, poate fi fcut testarea cunotiinelor pe care le-ai acumulat despre algoritmul DES. Ieire. Fcnd click pe butonul Ieire al panoului frontal din figura 4 se poate prsi programul. 6. Desfurarea lucrrii 6.1. Se verific toate funciile programului evideniate n paragraful anterior. n acest mod se nva s se lucreze cu programul. 6.2. Se efectueaz verificarea funcionrii programului efectund o criptare i o decripate, cu ajutorul opiunii Exerciiu. Dup efectuarea criptrii se noteaz textul n clar (n cele trei
21

forme ale sale: ir de caractere, binar, hexazecimal) i irul de date obinut n urma criptrii. Acesta se folosete la decriptare, urmnd ca dup aceasta s se regseasc textul n clar folosit la criptare. Mesajul n clar i criptat vor fi salvate ntr-un fiier Word, denumit cu numele utilizatorului i indicele lucrrii de laborator, pentru a putea fi identificat ulterior, n directorul Users. 6.3. Pentru acelai mesaj se va simula folosirea a dou sisteme de criptare DES, prin alegerea, a dou chei iniiale diferite. Pentru fiecare dintre aceste experimente se vor nota formele n clar i criptat ale mesajului. Se vor compara cele dou mesaje criptate obinute astfel numrndu-se caracterele comune (care se gsesc n acelai loc i au aceai valoare). Pe baza acestui criteriu se va stabili care dintre cele dou alegeri de parametri a fost mai inspirat. i comentariile inspirate de acest experiment vor fi consemnate n fiierul Word cu rezultatele lucrrii amintit mai sus. 6.4. Se va efectua testul propus alegnd opiunea Test. Dac nu se obine un rezultat satisfctor testul se reia dup ce se recitesc n prealabil paragrafele 2,3 i 4 ale acestui document.

22

Lucrarea 3. O utilizare posibil a parolelor, protecia unui document


1. Introducere Procesorul de text, Word, propune mai multe mijloace de limitare a accesului la un document, bazate pe folosirea unei parole. Este posibil: - Atribuirea unei parole pentru deschiderea documentului n scopul mpiedicrii deschiderii sale de ctre utilizatori neautorizai, - Atribuirea unei parole n scopul mpiedicrii utilizatorilor (care nu o cunosc) de a efectua modificri, (ei pot ns s deschid documentul). Dac un utilizator deschide documentul fr a folosi parola i apoi l modific, el va trebui s salveze noul document creat cu un alt nume; - Se recomand deschiderea documentului doar pentru citire. Dac un utilizator deschide documentul doar pentru citire i l modific apoi, el trebuie s dea un nou nume documentului nou creat, pentru a-l putea nregistra. n schimb dac un utilizator deschide documentul n modul citire-scriere i l modific, atunci el l poate nregistra sub acelai nume. - Se recomand atribuirea unei parole cu ocazia distribuirii unui document, pentru a mpiedica orice modificare a acestuia, cu excepia comentarilor sau a corecturilor. - Se recomand folosirea unei parole atunci cnd se creaz un formular cu ajutorul cmpurilor de formular, pentru a mpiedica utilizatorii de a modifica seciunile specificate.

Atenie. Dac ai uitat parola pe care ai atribuit-o unui document nu vei mai putea s deschidei acest document, s-i suprimai protecia sau s recuperai datele coninute n acesta. De aceea se recomand s se pstreze ntr-un loc sigur o list a parolelor i a documentelor corespunztoare.
1.1. Parol pentru deschiderea unui document Se deschide documentul. n meniul Fichier (File) se face click pe Enregistrer sous, (Save as), iar apoi se face click pe Options. n zona Mot de passe pour la lecture (Password for reading) se tasteaz o parol i apoi se face click pe OK. n final se face click pe Enregistrer (Save). Urmtoarea deschidere a acestui fiier va putea fi fcut doar dup ce se comunic parola corect. 1.2. Parol pentru modificarea unui document Se deschide documentul. n meniul Fichier (File) se face click pe Enregistrer sous, (Save as), iar apoi se face click pe Options. n zona Mot de passe pour la modification (Password for modification) se tasteaz o parol i apoi se face click pe OK. Apoi se face click pe Enregistrer (Save). Sfat. Dac se distribuie un document pentru lectur li se poate permite lectorilor acestuia s emit sugestii cu ajutorul cmpurilor Commentaires (Adnotations) sau Revisions, protejnd documentul pentru orice alt tip de modificare. n meniul Outils (Tools), facei click pe Protejer le document (Protect the document) i apoi pe opiunea Revisions. Pentru a
23

permite recenzorilor s insereze comentarii fr a modifica coninutul documentului facei click pe opiunea Commentaires (Adnotations). 1.3. Deschiderea documentului doar n modul citire Se deschide documentul. Se apas, n meniul Fichier (File) pe Enregistrer sous (Save as). Se apas apoi pe Options. Apoi se activeaz cmpul Lecture seule recommandee (Read only) i apoi se apas pe OK. n final se apas pe Enregistrer (Save). 1.4. Pregtirea unui document pentru verificare Utilitarul Microsoft Word pune la dispoziie mai multe opiuni de trimitere a unui document la verificare i cteva opiuni de urmrire a modificrilor efectuate, de ncorporare i de conservare a unei nregistrri a modificrilor aduse. n cazul n care se dorete revizuirea unui document de ctre o echip, dar se dorete ca decizia final, legat de acceptarea sau refuzarea unei modificri, s fie luat de o singur persoan, pot fi pregtite mai multe copii ale documentului care s fie distribuite membrilor echipei de revizuire, care-i consemneaz observaiile n mod electronic. Pentru a asigura urmrirea modificrilor, utilitarul Word folosete opiunea Marques de revision pentru a putea fi vzute schimbrile i comentariile fiecrui membru al echipei de ndat ce acesta a ncheiat sarcina sa. n acest fel persoana responsabil poate decide care modificri i comentarii trebuie incluse n forma final a documentului. Dac se dorete includerea ulterioar a altor membri n echipa de corectare, documentul iniial poate fi configurat n aa fel nct Word s salveze automat o variant instantanee a fiecrei copii realizate de ctre fiecare corector atunci cnd acesta nchide documentul respectiv, dup ce l-a modificat. Toate versiunile sunt stocate n acelai document, dar n modul de lucru normal programul Word afieaz doar versiunea curent. Pentru fiecare versiune a documentului programul Word nregistreaz data i ora salvrii precum i numele persoanei care a efectuat acele modificri. Orice versiune anterioar poate fi afiat ntr-o fereastr distinct deschiznd-o cu ajutorul cutiei de dialog, Versions. 1.5. Protejarea textului fix al unui document Dup creerea unui formular se poate ca acesta s fie protejat astfel nct utilizatorii si s nu poat completa dect n anumite zone. Pentru aceasta n meniul Outils (Tools), se face click pe Protection du document (Document protection). Apoi se face click pe Formulaire (Form). Apoi se tasteaz o parol n zona Mot de passe (facultatif) (Password). i utilizatorii care nu cunosc aceast parol pot s completeze formularul. Pentru a proteja integritatea formularului se face click pe OK. Pentru a proteja doar anumite pri ale formularului e necesar ca acestea s se gseasc n seciuni distincte. De aceea trebuie fcut click pe Sections i apoi trebuie dezactivat opiunea de seciuni pentru cele care nu se dorete a fi protejate. Sfat. Pe durata crerii sau a modificrii unui formular protecia sa poate fi activat sau dezactivat rapid, fcnd click n meniul Formulaires pe Protection du formulaire. 2. Desfurarea lucrrii Scopul acestei lucrri este familiarizarea cu sistemul de protecie prin parole al documentelor, specific utilitarului Word, din pachetul de programe Office, conceput la firma Microsoft. Se exemplific toate posibilitile de protecie prin parole descrise mai sus.

24

2.1. Se pornete programul Word. Se creaz un document, coninnd minimul dou propoziii. Apoi n meniul Fichier (File) se face click pe Enregistrer sous, (Save as), iar apoi se face click pe Options. n zona Mot de passe pour la lecture (Password for reading) se tasteaz o parol i apoi se face click pe OK. n final se face click pe Enregistrer (Save). Se ncearc deschiderea aceluiai document. Ce se constat ? Rspunsul la aceast ntrebare va fi consemnat ntr-un nou document, care va conine un referat despre aceast lucrare i care va fi salvat ntr-un fiier al crui nume va conine numele dumneavoastr i numrul de ordine al acestei lucrri, ntr-un director care poart numele dumneavoastr, situat n directorul Users, de pe calculatorul pe care lucrai. n acelai fiier va fi salvat i documentul creat anterior i parolat. 2.2. Se creaz un nou document, care va conine de asemenea cel puin dou propoziii. n meniul Fichier (File) se face click pe Enregistrer sous, (Save as), iar apoi se face click pe Options. n zona Mot de passe pour la modification (Password for modification) se tasteaz o parol i apoi se face click pe OK. Apoi se face click pe Enregistrer (Save). Apoi se ncearc deschiderea documentului salvat anterior. Ce se constat ? Rspunsul la aceast ntrebare, consemnat n documentul referat mpreun cu cel de al doilea fiier parolat se salveaz n directorul din Users amintit mai sus. 2.3. Se creaz un nou document care va conine de asemenea cel puin dou propoziii. Apoi se face click pe Outils (Tools) din meniul principal al programului Word. Apoi se face click pe opiunea Protection du document. n noua fereastr aprut se selecteaz opiunea Modifications (Changes), iar n zona Mot de passe (faultatif), (Password), se nscrie o parol. Dup aceea se face click pe butonul OK. Apare o nou fereastr, n care se nscrie din nou aceeai parol. Apoi se salveaz documentul fcndu-se click pe Fichier (File), apoi pe Enregistrer sous (Save as) i n final pe Enregistrer (Save). Se redeschide documentul salvat anterior. Se ncearc tergerea textului. Ce se constat ? Rspunsul la aceast ntrebare va fi consemnat n documentul care conine referatul acestei lucrri. Apoi se selecteaz opiunea Outils (Tools) din meniul principal al programului Word. Se face click pe Oter le document i n fereastra aprut se nscrie parola folosit. Apoi se ncearc din nou tergerea unor caractere din document. Ce se constat de aceast dat ? i rspunsul la aceast ntrebare va fi consemnat n referatul acestei lucrri. Se repet experiena de mai sus alegnd pe rnd celelalte dou opiuni din fereastra care apare dup ce se face click pe Protection du document (Document protection): Commentaires (Adnotations) i Formulaires (Forms). Cnd se alege opiunea Commentaires (Adnotations) trebuie ca din meniul principal al programului Word s se aleag opiunea Insertion i apoi Commentaires. n acest mod vor putea fi incluse comentarii n documentul considerat. 2.4. Imaginai un experiment pentru a verifica afirmaiile din paragraful 1.5.

25

Lucrarea 4. Criptarea rapid a directoarelor i fiierelor pentru transmiterea lor prin pot electronic, folosind metoda de criptare IDEA
1. Introducere Metodele de criptare cu cheie secret, ca de exemplu DES, AES sau IDEA, pot fi utilizate pentru transmiterea sigur a unor fiiere prin pota electronic. Un astfel de fiier poate fi criptat i transmis ca i document ataat, cu ajutorul oricrui program de pot electronic. Scopul acestei lucrri este familiarizarea cu un program de criptare rapid a fiierelor care poate fi utilizat pentru transmisii prin pot electronic. Acest program se numete DATAGUARD i se bazeaz pe folosirea algoritmului IDEA. 2. Algoritmul IDEA A fost conceput n Elveia de ctre Xuejia Lai i James Massey n anul 1992. Patentul su se gsete la firma Ascom. Principala sa aplicaie este programul de criptare pentru pota electronic, PGP, Prety Good Privacy. Este unul dintre sistemele de criptare cele mai rapide i mai sigure disponibile la ora actual. Folosete o cheie de 128 de bii. Pe baza acesteia se construiesc 52 de sub-chei cu lungimea de 16 bii fiecare. Cte dou dintre acestea se utilizeaz la fiecare dintre cele 8 iteraii ale algoritmului, i cte 4 se utilizeaz naintea fiecrei iteraii i dup ultima iteraie. Nu folosete nici un tabel de alocare de bii i nici o cutie de tip S. Cifrarea i descifrarea se fac pe blocuri de cte 64 de bii. Se bazeaz pe utilizarea unor operaii algebrice utile n operaiile de criptare cum ar fi suma modulo 2, suma modulo 216 , produsul modulo 216 +1. n continuare se dau cteva explicaii referitoare la aceste nmuliri. Operaia de nmulire cu zero are ca rezultat zero i nu este o operaie inversabil. Dar nmulirea folosit n acest algoritm trebuie s fie o operaie inversabil. Numrul 216 +1 are valoarea 65537 i este prim. Pe baza tabelului de nmulire specific mulimii claselor de resturi modulo 216 +1 se constat c aceast operaie este inversabil dac se evit nmulirea cu zero (se elimin din tabel prima linie i prima coloan). Toate aceste operaii se efectueaz asupra unor sub-blocuri de 16 bii. S-a dovedit c IDEA este mai sigur dect DES la atacuri de criptanaliz diferenial. 2.1. Descrierea algoritmului IDEA Fie cele patru sferturi ale textului clar care trebuie criptat notate cu A, B, C i D, i cele 52 de sub-chei notate cu K(1) K(52). nainte sau n cursul primei iteraii se efectueaz urmtoarele operaii: Se nmulete A cu K(1). Rezultatul va reprezenta noua valoare a lui A. Se adun modulo 216 K(2) la B. Rezultatul va reprezenta noua valoare a lui B. Se adun modulo 216 K(3) la C. Rezultatul va reprezenta noua valoare a lui C. Se nmulete D cu K(4). Rezultatul va reprezenta noua valoare a lui D. Prima iteraie propriuzis const din executarea urmtoarelor operaii: Se calculeaz suma modulo 2 dintre A i C (rezultatul se noteaz cu E). Se calculeaz suma modulo 2 dintre B i D (i se noteaz cu F). Se nmulete E cu K(5). Rezultatul reprezint noua valoare a lui E. Se adun modulo 216 noua valoare a lui E la F. Rezultatul va reprezenta noua valoare a lui F. Se nmulete noua valoare a lui F cu K(6). Se adun rezultatul, care reprezint noua valoare a lui F, la E. Se modific valorile lui A i C nsumnd modulo 2 aceste valori cu valoarea curent a lui E. Noile valori pentru A i C se substituie una celeilalte
26

obinndu-se astfel dou dintre cele 4 blocuri iniiale ale celei de a doua iteraii i anume A i C. Se modific valorile lui B i D, nsumnd modulo 2 aceste valori cu valoarea curent a lui F. Noile valori pentru B i D se substituie una celeilalte obinndu-se astfel celelalte dou dintre cele 4 blocuri iniiale ale celei de a doua iteraii i anume B i D. Prima iteraie este prezentat n figura 1. Celelalte 7 iteraii sunt identice, doar c se folosesc celelalte sub-chei: de la K(7) la K(12) pentru cea de a doua iteraie i de la K(43) la K(48) pentru cea de a 8-a iteraie. La ultima iteraie nu se mai face substituia final dintre A i C respectiv B i D. Ultimele operaii sunt: Se nmulete A cu K(49). Se adun modulo 216 K(50) la B. Se adun modulo 216 K(51) la C. Se nmulete D cu K(52). Cele 8 iteraii ale algoritmului IDEA sunt prezentate n figura 2.

Figura 1. Prima iteraie. 2.2. Decriptarea

Figura 2. Structura algoritmului IDEA.

Cum se poate inversa o iteraie a algoritmului IDEA, cnd toate cele 4 blocuri se modific n acelai timp ? Rspunsul se bazeaz pe o proprietate a sumei modulo 2. Suma modulo 2 a dou variabile A i C nu se modific atunci cnd cele dou variabile sunt nsumate modulo 2 cu o aceeai variabil, X. D: An = Av + X ; C n = C v + X ; An + C n = Av + C v + X + X = Av + C v Se observ c variabila X a disprut. Aceeai proprietate este valabil i pentru variabilele B i D. ntruct variabilele folosite n iteraiile algoritmului IDEA sunt funcii de A + C i B + D rezult c cele 4 variabile pot fi recuperate. Inversarea operaiei de adunare modulo 216 se face prin calculul complementului fa de 2. Pentru prima iteraie a algoritmului de decriptare se utilizeaz urmtoarele chei: KD(1) KD(2) KD(3) KD(4) = 1/K(49) = -K(50) = -K(51) = 1/K(52)

27

Pentru cheile din urmtoarele iteraii procedura urmtoare se repet de 8 ori, adunnd 6 la fiecare indice al unei chei de decriptare i scznd 6 din fiecare indice al unei chei de criptare: KD(5) = K(47) KD(6) = K(48) KD(7) KD(8) KD(9) KD(10) = 1/K(43) = -K(45) = -K(44) = 1/K(46)

2.3. Generarea sub-cheilor Primele 8 sub-chei se obin prin segmentarea cheii originale a algoritmului IDEA n segmente de 16 bii. Apoi se efectueaz o deplasare circular la stnga a cheii originale cu 25 de poziii i o nou segmentare obinndu-se urmtoarele 8 chei. Aceast procedur de deplasare la stnga i segmentare este repetat pn cnd se obin toate cele 52 de chei de criptare necesare. 3. Programul DATAGUARD Realizeaz o criptare (decriptare) rapid a fiierelor i directoarelor. Datele criptate astfel pot fi transmise prin programe comune de pot electronic n reele publice (inclusiv INTERNET), asigurndu-li-se securitatea. Utilizarea unor algoritmi eficieni i optimizai, reduce pierderile de performan ale sistemului de transmisiuni datorate proceselor de criptare i de decriptare, fr a scdea securitatea comunicaiei. 3.1. Managementul parolelor O calitate remarcabil a acestui program este autorizarea accesului utilizatorilor prin parole. Pot fi realizate mai multe clase de utilizatori, fiecare constnd dintr-un numr orict de mare de membri. n scopul decriptrii unui anumit fiier toi membrii unui anumit grup trebuie s-i foloseasc parolele individuale. Fiecare membru poate aparine la diferite grupuri n acelai timp (folosind aceai parol). Exist de asemenea posibilitatea ca oricare doi membri ai unui grup, format de exemplu din opt membri, s decripteze mpreun un fiier (Principiul celor patru ochi). Parolele pot fi introduse de la tastatur sau de pe purttoare de date (de exemplu dischete). Nu este necesar ca parola de pe dischet s fie recunoscut ca atare, orice fiier de pe dischet poate fi folosit drept parol (ca de exemplu un fiier de imagine, sau un fiier de sunet sau un fiier de text). 3.2. Algoritmi folosii Algoritmul IDEA a dobndit certificatul ISO, ISO/IEC 9979 i lucreaz cu o cheie fix de 128 de bii, iar datele mesajului sunt grupate n blocuri de cte 64 de bii. Algoritmul SEAL(TM) cripteaz fiecare bit separat, fiind un sistem de criptare de secven. Acest algoritm a fost conceput la IBM de ctre P. Rogaway i D. Coppersmith. Lucreaz cu o cheie de 160 de bii. Acest algoritm a fost optimizat pentru procesoare de 32 de bii i se crede c este cel mai rapid i mai sigur sistem de criptare soft existent pe pia asigurnd performane ridicate pe durata criptrii i a decriptrii, dovedind c ipoteza c sistemele de criptare hard sunt mai rapide dect sistemele de criptare soft este fals. Dezavantajul acestui algoritm, n comparaie cu algoritmii de criptare pe blocuri, ca de
28

exemplu IDEA, este c necesit o faz de iniializare nainte de a ncepe procedura de criptare sau decriptare a unui fiier. De aceea acest algoritm este mai lent dect algoritmul IDEA n cazul fiierelor de criptat scurte. Acesta este motivul pentru care n programul DATAGUARD exist un comutator pentru selectarea celui mai potrivit algoritm pentru un anumit mesaj de criptat. La decriptare programul DATAGUARD recunoate automat algoritmul folosit pentru codare. i ali algoritmi de criptare pot fi inclui n programul DATAGUARD la cererea clienilor. 3.3. Varianta Demo folosit n aceast lucrare Programul folosit n aceast lucrare este o variant, Demo, a programului DATAGUARD. Varianta comercial a acestui program are un domeniu larg de utilizare. Unele funcii nu sunt disponibile n aceast variant Demo. - Tehnologia de criptare folosit n aceast variant nu asigur acelai nivel de confidenialitate ca n cazul variantei comerciale. Se utilizeaz chei de 12 bii i nu de 128 sau 160 de bii. - Pot fi creai doar utilizatori diferii, nu i grupuri de utilizatori diferite. - Programul de "Help" nu este complet. Atenie. Dac uitai parola cu care ai criptat anumite fiiere acestea vor rmne criptate (pe durata criptrii fiierul original este ascuns) i nu le vei mai putea folosi. Algoritmii din aceast variant lucreaz cu chei de lungime mai scurt. Nu folosii parole simple. De securitatea acestora depinde securitatea criptrii fiierelor. Nu folosii drept parole nume, numere de telefon sau date de natere. 3.3.1. Panoul frontal al programului DATAGUARD Acest panou frontal v permite s definii controale sau s creai clase, utilizatori sau grupuri. Putei, de asemenea, s criptai sau s decriptai, direct, folosind acest panou frontal. Putei specifica dac dorii ca programul DATAGUARD s se lanseze automat la pornirea sistemului. n acest scop trebuie marcat cmpul Auto Load de pe panoul frontal. Dac prezena pe ecran a acestui panou frontal v deranjeaz, apsai butonul "Close" i panoul frontal va disprea. Vei continua s vedei o iconi DATAGUARD pe task bar. 3.3.1.1. Configurarea programului DATAGUARD 1. Definii cel puin o clas. 2. Dup ce ai fcut asta, putei defini utilizatorul (utilizatorii) care au acces la clas (clase). Asta este tot. Acum putei experimenta programul DATAGUARD. Apsai butonul Encrypt din colul dreapta jos al panoului frontal 3.3.1.1.1. Key management Pot fi create, editate sau terse clase. Pentru a efectua aceste aciuni este suficient s se apese unul din butoanele din partea dreapt. Numele claselor sunt afiate pe coloana din stnga. Pe coloana din dreapta pot fi vzui utilizatorii sau grupurile din aceast clas.

29

3.3.1.1.2. Password settings Pot fi specificate parole pentru fiecare clas. Dup ce ai fcut asta, le putei secretiza cu ajutorul unei parole. Schimbrile pe care le facei se vor aplica doar la utilizatori noi. 3.3.1.1.3. Encryption settings Poate fi specificat algoritmul de criptare pentru fiecare clas i putei defini cum s manipuleze programul DATAGUARD fiierele criptate. 4. Desfurarea lucrrii Se instaleaz varianta Demo a programului DATAGUARD, fcnd click pe DG32SETUP.EXE. Se configureaz acest program, constituindu-se o clas, format din 2 utilizatori, unul fiind operatorul calculatorului respectiv iar cellalt operatorul unui calculator vecin. Aceai clas va fi creat i pe calculatorul vecin (cei doi utilizatori i vor alege pentru cele dou calculatoare, aceeai parol). 4.1. Cele dou calculatoare i vor activa legtura prin INTRANET, ntre partiiile care conine directorul Users/STII. n acest scop din programul Windows Commander de pe fiecare calculator se va alege opiunea Commands i apoi Share Current Directory, apoi Sharing. Se va crea un fiier cu numele original.txt. Acesta va fi salvat n directorul Users/STII al calculatorului respectiv. Apoi va fi criptat folosind algoritmul IDEA i parola utilizatorului calculatorului respectiv. Din directorul Users/STII va disprea fiierul original.txt i va aprea un fiier cu numele original.txt.Ctx. Acesta va putea fi decriptat folosind aceeai parol, de ctre acelai utilizator. Se va verifica faptul c procesul de criptare-decriptare nu introduce erori. 4.2. Se va repeta experimentul descris mai sus pentru fiiere de tip .doc, .bmp i .pdf. 4.3. Se va crea un fiier cu numele original.txt. Acesta va fi salvat n directorul Users/STII al calculatorului respectiv. Apoi va fi criptat folosind algoritmul IDEA i parola utilizatorului respectiv. Din directorul Users/STII va disprea fiierul original.txt i va aprea un fiier cu numele original.txt.Ctx. Acest fiier se va transmite calculatorului omolog prin INTRANET n directorul Users/STII. Aici va fi decriptat folosind parola utilizatorului acelui calculator. n directorul Users/STII al celui de al doilea calculator va aprea fiierul original.txt . Se va verifica identitatea dintre fiierele original.txt, creat iniial i fiierul obinut dup decriptare. 4.4. Se va repeta experimentul descris mai sus pentru fiiere de tip .doc, .bmp i .pdf. 4.5. Se vor repeta experimentele descrise mai sus folosindu-se, de aceast dat, algoritmul de criptare SEAL. 4.6. Dezinstalai programul DATAGUARD.

30

Lucrarea 5. Metoda de criptare AES 1. Introducere


Recent a fost omologat un nou standard de criptare simetric a datelor, The Advanced Encryption Standard, care urmeaz s nlocuiasc vechiul standard, DES. Acest standard este bazat pe algoritmul Rijndael.

2. Algoritmul Rijndael
Algoritmul care a ctigat competiia pentru standardul AES este numit Rijndeal. Acesta realizeaz doar operaii pe octei ntregi. El este foarte flexibil deoarece dimensiunea blocurilor cu care se lucreaz poate fi aleas de valoare 128, 192 sau 256 de bii. Descrierea original a algoritmului Rijndael se gsete la adresa: http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ . n continuare se prezint varianta care lucreaz cu blocuri de 128 de bii. Rijndael are un numr variabil de iteraii. Acesta poate fi (fr a calcula ultima iteraie care nu este complet): 9 dac att blocurile ct i cheia iniial au o lungime de 128 de bii; 11 dac fie blocurile fie cheia iniial au lungimea de 192 de bii i nici una dintre ele nu are o lungime superioar acestei valori; 13 dac att blocurile ct i cheia au o lungime de 256 de bii. Pentru a cripta un bloc de date cu algoritmul Rijndael, primul pas presupune calculul unui sau-exclusiv ntre blocul de text clar i o sub-cheie. Paii urmtori sunt iteraiile care se vor prezenta n continuare. Ultimul pas este constituit de ultima iteraie care este incomplet, neconinnd operaia de amestecare a coloanelor, the Mix Column step.

2.1. Iteraiile algoritmului


Fiecare iteraie obinuit se efectueaz n 4 pai. Primul pas este cel de substituire al octeilor, the Byte Sub step. n acest pas fiecare octet al textului clar este substituit cu un octet extras dintr-o cutie de tip S. Cutia de tip S este descris de matricea: 99 124 119 123 242 107 111 197 48 1 103 43 254 215 171 118 202 130 201 125 250 89 71 240 173 212 162 175 156 164 114 192 183 253 147 38 54 63 247 204 52 165 229 241 113 216 49 21 4 199 35 195 24 150 5 154 7 18 128 226 235 39 178 117 9 131 44 26 27 110 90 160 82 59 214 179 41 227 47 132 83 209 0 237 32 252 177 91 106 203 190 57 74 76 88 207 208 239 170 251 67 77 51 133 69 249 2 127 80 60 159 168 81 163 64 143 146 157 56 245 188 182 218 33 16 255 243 210 205 12 19 236 95 151 68 23

31

196 96 70 224 194 231 108 186 232 112 97 225 155 140 65

167 126 61 100 93 25 115 129 79 220 34 42 144 136 238 184 20 222 94 11 219 50 58 10 73 6 36 92 211 172 98 145 149 228 121 200 55 109 141 213 78 169 86 244 234 101 122 174 8 120 37 46 28 166 180 198 221 116 31 75 189 139 138 62 181 102 72 3 246 14 53 87 185 134 193 29 158 248 152 17 105 217 142 148 30 135 233 206 85 40 223 161 137 13 191 230 66 104 153 45 15 176 84 187 22 Cel de al doilea pas al unei iteraii uzuale se numete deplasarea liniilor, the Shift Row step. Considernd c blocul care trebuie construit este alctuit cu octeii numerotai de la 1 la 16, aceti octei se aranjeaz ntr-un dreptunghi i se deplaseaz dup cum urmeaz: De la la 1 5 9 13 1 5 9 13 2 6 10 14 6 10 14 2 3 7 11 15 11 15 3 7 4 8 12 16 16 4 8 12 Cel de al treilea pas al algoritmului de criptare Rijndael este numit amestecarea coloanelor, the Mix Column step. Acest pas se realizeaz prin nmulire matricial: fiecare coloan, n aranjamentul pe care l-am observat, este nmulit cu matricea: 2311 1231 1123 3112 Aceast nmulire matricial corepunde unei nmuiri specific cmpului Galois al lui 28, definit de polinomul modul x 8 + x 4 + x 3 + x + 1 . Aceast nmulire (folosind acelai polinom modul) a fost prezentat i exemplificat n paragraful destinat bazelor matematice ale criptrii. Octeii care trebuie nmulii sunt privii ca i polinoame i nu ca i numere. De exemplu prin nmulirea unui octet cu 3 se obine rezultatul operaiei sau-exclusiv dintre acel octet i i varianta sa obinut prin rotirea acelui octet cu o poziie la stnga. Dac rezultatul acestei nmuliri are mai mult de 8 bii, biii suplimentari nu sunt pur i simplu ignorai. Pentru eliminarea lor se calculeaz sau-exclusiv ntre rezultatul obinut (n urma "nmulirii" deja efectuate) (deplasat la stnga dac este necesar) i irul binar cu lungimea de 9 bii; 100011011 (care corespunde polinomului modul). Cel de al patrulea pas al algoritmului Rijndael este cel de adugare a sub-cheii, the Add Round Key step.

32

Acesta presupune doar calculul unui sau-exclusiv cu sub-cheia specific iteraiei curente. O iteraie uzual a acestui algoritm are aspectul din figura urmtoare.

Figura 1. O iteraie a algoritmului Rijndael.

Din ultima iteraie este omis pasul de amestecare a coloanelor.

2.2. Decriptarea
Pentru a decripta mesajul fabricat de algoritmul Rijndael este necesar ca operaiile descrise s fie nlocuite cu operaiile lor inverse i ca acestea s fie aplicate n ordine invers (prima operaie din algoritmul de decriptare trebuie s fie inversa ultimei operaii din algoritmul de criptare). Succesiunea pailor n algoritmul Rijndael este: ARK BS SR MC ARK BS SR MC ARK ... BS SR MC ARK BS SR ARK

Dei aceast secven nu este simetric, ordinea unor operaii poate fi modificat fr ca procesul de criptare s fie afectat. De exemplu pasul de substituire a octeilor BS (notat cu B n continuare), poate fi la fel de bine fcut i dup pasul de deplasare a liniilor SR (notat cu S n continuare). Aceast observaie este util pentru procesul de decriptare. Fcnd aceast inversare secvena algoritmului, de forma: A BSMA BSMA ... BSMA BSA se transform ntr-o secven de forma: A SBMA SBMA ... SBMA SBA (1R)

33

Pentru fiecare pas s-a folosit notaia bazat pe prima liter a denumirii engleze a pasului. Dac se inverseaz secvena care descrie algoritmul se obine: ASB AMSB ... AMSB AMSB A (2R)

Comparnd secvenele (1R) i (2R) se constat c pe lng diferita poziionare a spaiilor (acestea marcheaz nceputul unei noi iteraii a algoritmului de criptare) singura diferen care mai apare este c grupurile "MA" din (1R) sunt nlocuite cu grupuri "AM" n (2R). E clar c nu este suficient inversarea ordinii pailor folosii la criptare pentru a se face decriptarea ci trebuie inversate i operaiile care compun aceti pai. Pentru inversarea pasului ARK trebuie inversat funcia sau-exclusiv. Dar aceast inversare se realizeaz tot cu funcia sau-exclusiv. De aceea pasul ARK nu trebuie inversat la decriptare. Nu acelai lucru se poate spune despre ceilali pai. Este de exemplu cazul pasului de amestecare a coloanelor, MC, (notat cu M n relaiile (1R) i (2R)) pentru inversarea cruia, n procesul de decriptare este necesar inversarea matricii cu care se nmulete fiecare vector. La fel trebuie procedat i cu matricea cutiei de tip S din pasul de substituie a octeilor, BS (notat cu B n relaiile (1R) i (2R)). Revenind la relaiile (1R) i (2R) este legitim ntrebarea: Trebuie inversat ordinea secvenei pailor "MA" i "AM" pentru decriptare ? Rspunsul este Nu, deoarece operaia de nmulire a matricilor este distributiv n raport cu operaia de adunare pe cmpul Galois al lui 28 . Operaia de sau-exclusiv din cadrul pasului MC (M) este de fapt identic cu operaia de adunare definit pe cmpul Galois al lui 28 . De aceea cheile de iteraie, implicate n procesul de inversare al pasului de amestecare a coloanelor, trebuiesc nmulite cu inversa matricii de amestecare a coloanelor i apoi se pot calcula funciile sau-exclusiv, la fel ca la criptare (bineneles cheile de iteraie trebuiesc luate n ordine invers n raport cu ordinea folosit la criptare). Matricea pentru inversarea pasului de amestec al coloanelor este: 14 11 13 9 9 14 11 13 13 9 14 11 11 13 9 14 iar forma sa binar, folosit n algoritmul de decodare este: 1110 1011 1101 1001 1001 1110 1011 1101 1101 1001 1110 1011 1011 1101 1001 1110 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01

111 101 110 100 01 01 00 00 110 100 111 101 00 00 01 01 1100 1000 1110 1010 00 00 10 10 1011 1101 1000 1110 01 01 10 10 0 0 1 0 01 01 10 11

2.3. Generarea cheilor


Pentru cazul n care se folosete o cheie iniial cu lungimea de 128 bii sau de 192 de bii, toate subcheile necesare pentru toate iteraiile, se obin din cheia iniial (prima subcheie fiind chiar cheia iniial) sau din variante ale cheii iniiale i au aceeai lungime cu aceasta.

34

Subcheile sunt alctuite din cuvinte de 4 octei. Fiecare cuvnt se obine calculnd sauexclusiv ntre cuvntul anterior de 4 octei i cuvntul corespunztor dintr-o variant anterioar sau rezultatul aplicrii unei funcii acestui cuvnt (din varianta precedent). Pentru stabilirea primului cuvnt dintr-o anumit variant, cuvntul iniial (cel curent pentru iteraia respectiv) este pentru nceput rotit cu opt poziii spre stnga, apoi octeii si sunt modificai folosind cutia de tip S din pasul de substituie a biilor BS (B) corespunztor, iar apoi se calculeaz sau-exclusiv ntre primul octet al rezultatului obinut anterior i o constant dependent de iteraie. Constantele dependente de iteraie sunt: 1 2 4 8 16 32 64 128 27 54 108 216 171 77 154 47 94 188 99 198 151 53 106 212 179 125 250 239 197 145 57 114 228 211 189 97... sau n binar: 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000 00011011 00110110 01101100 11011000 10101011 01001101 10011010 00101111 01011110 10111100 01100011 11000110 10010111 00110101 01101010 11010100 10110011 01111101 11111010 11101111 11000101 10010001 00111001 01110010 11100100 11010011 10111101 01100001... puterile lui 2 succesive n reprezentarea din cmpul Galois al lui 28 folosit.

3. Programul AES
Lucrarea de fa se bazeaz pe utilizarea programului aes.exe. Cnd se face click pe aes.exe, pe ecranul monitorului apare fereastra din figura urmtoare.

Figura 2. Fereastra principal a programului AES.

Fcnd click pe Teorie, se obine fereastra reprezentat n figura urmtoare.

Figura 3. Fereastra Teorie a programului AES.

Dup cum se poate vedea din figura anterioar, poate fi consultat o prezentare n limba romn a algoritmului Rijndael, Standardul AES (RO) i o prezentare a aceluiai standard n limba englez, Atandardul AES (EN). De asemenea poate fi utilizat un program de nvare a algoritmului, tutorial.exe. Fcnd click pe Exemplu, se obine fereastra din figura urmtoare
35

.
Figura 4. Fereastra Exemplu a programului AES.

Fcnd click pe Criptare, se obine fereastra din figura urmtoare.

Figura 5. Fereastra de criptare.

Se completeaz, n fereastra din stnga sus, textul de criptat i apoi cheia de criptare. n fereastra din dreapta

36

sus apare textul de criptat, codat n hexazecimal. Apoi se apas pe butonul "Cripteaz", obinndu-se fereastra din figura urmtoare.

Figura 6. Rezultatul criptrii.

Textul criptat este prezentat n fereastra din stnga jos. n fereastra din dreapta jos este prezentat textul criptat codat n hexazecimal. Pot fi codate i fiiere. n acest scop, se apas pentru nceput pe butonul "Citeste IN". Cu ajutorul ferestrei care se deschide, n urma acestei aciuni, se selecteaz fiierul care se dorete a fi criptat. Acesta poate fi de tip .txt, .doc, .html, etc. Dup specificarea cheii de criptare, se apas butonul "Cripteaz". Fiierul criptat poate fi salvat. n acest scop trebuie apsat butonul "Salveaza OUT". Pentru a decripta un fiier, se alege, n fereastra din figura 4, opiunea Decriptare. Apoi se poate selecta, cu ajutorul opiunii "Citeste IN", fiierul care se dorete a fi decriptat. Dup aceast selecie, se specific cheia de decriptare (care trebuie s fie identic cu cea care a fost folosit pentru criptare). n fereastra din stnga jos apare textul criptat, iar n fereastra din dreapta jos, textul criptat, codat n hexagesimal. Apoi se apas butonul "Decripteaza". n fereastra din stnga sus apare textul decriptat, iar n fereastra din dreapta sus, varianta codat n hexagesimal a acestuia. Bineneles c i acest text poate fi salvat dac se apas butonul "Save OUT".

4. Desfurarea lucrrii
4.1.Se verific toate funciile programului evideniate n paragraful anterior. n acest mod se nva s se lucreze cu programul. 4.2.Se parcurge programul tutorial.exe .

37

4.3. Se efectueaz verificarea funcionrii programului efectund o criptare i o decripate. Dup efectuarea criptrii se noteaz textul n clar (n cele dou forme ale sale: ir de caractere i hexazecimal) i se salveaz irul de date obinut n urma criptrii, ntr-un fiier text. Acesta se folosete la decriptare, urmnd ca dup aceasta s se regseasc textul n clar folosit la criptare. Mesajul n clar i criptat vor fi salvate ntr-un fiier Word, denumit cu numele utilizatorului i indicele lucrrii de laborator, pentru a putea fi identificat ulterior, n directorul Users. 4.4. Pentru acelai mesaj se va simula folosirea a dou sisteme de criptare AES, prin alegerea, a dou chei iniiale diferite. Pentru fiecare dintre aceste experimente se vor nota formele n clar i criptat ale mesajului. Se vor compara cele dou mesaje criptate obinute astfel numrndu-se caracterele comune (care se gsesc n acelai loc i au aceai valoare). Pe baza acestui criteriu se va stabili care dintre cele dou alegeri de parametri a fost mai inspirat. i comentariile inspirate de acest experiment vor fi consemnate n fiierul Word cu rezultatele lucrrii, amintit mai sus.

38

Lucrarea 6. Tehnici de balizare utiliznd transformarea wavelet 1. Scopul lucrrii


Balizarea este o tehnic de autentificare a imaginilor. Prin inserarea unei balize invizibile ntr-o imagine, nainte ca aceasta s fie difuzat i prin extragerea balizei dup recepia acesteia la utilizator, poate fi autentificat dreptul de proprietate auspra imaginii respective al celui care a difuzat-o. n acest mod pot fi identificai i utilizatorii ilegali ai unei anumite imagini. Pentru realizarea balizrii este necesar s se genereze o baliz invizibil, s se insereze aceast baliz n imaginea care trebuie difuzat i s se poat extrage din imaginea recepionat de utilizator. n cazul n care un utilizator ilegal utilizeaz imaginea respectiv, pentru ca aceasta s nu poat fi autentificat, ar fi necesar ca baliza coninut n aceasta s fie ndeprtat. O balizare de calitate trebuie deci s fie rezistent la atacurile unor utilizatori ilegali. n lucrarea de fa se studiaz o metod de balizare adaptiv (baliza generat este dependent de imaginea de difuzat).

2. O metod de balizare
O modalitate de a insera o baliz ntr-o imagine are la baz utilizarea transformrii imaginii. Cea mai des folosit transformare este DCT (transformarea cosinus discret). Necesitatea de a face invizibil baliza face dificil procesul de balizare, rezultnd proceduri complicate de prelucrare a imaginii. Din acest motiv, inserarea balizei n domeniul transformatei DCT trebuie s respecte unele condiii perceptule, impuse de regul sistemului ce realizeaz cuantizarea n domeniul DCT. Utilizarea transformrii wavelet discret (DWT) n procesul de balizare a imaginilor aduce unele avantaje fa de transformarea DCT. Astfel, transformarea DWT a unei imagini este tot o imagine cu aceleai dimensiuni cu cele ale imaginii originale, dar care const din dou zone importante: zona de aproximare numit i rezumat, de dimensiuni mai reduse n raport cu imaginea original; zona cu detalii care const ntr-un set de imagini de dimensiuni reduse ce conin detaliile imaginii originale. Rezult deci c transformarea DWT ofer acces direct asupra detaliilor unei imagini. Acest lucru permite utilizarea unei proceduri simple i rapide de inserare a balizei n imagine prin modificarea detaliilor imaginii, pstrnd n acelai timp transparena perceptual a balizrii. Din tehnicile de balizare ce utilizeaz transformarea DWT sunt superioare celor ce utilizeaz transformarea DCT. Aa cum s-a artat anterior, o tehnic simpl de balizare const n modificarea detaliilor unei imagini, echivalent cu o modulare n amplitudine a coeficienilor transformrii DWT corespunztori. n cele ce urmeaz se va prezenta un mod de implementare n Matlab a acestei metode de balizare, beneficiind de suportul oferit de pachetul Wavelab n domeniul transformrii DWT.

3.1. Algoritmul de inserare a balizei in imagine


Balizarea imaginii se realizeaz conform schemei bloc din figura 1.

39

K T.I Separare D.I. detalii N.D.I Asamblor N.T.I.

D.W.T. O.I.

A.I. Separare rezumat

I.D.W.T. W.a

W.I

Figura 1. Schema de balizare.

i const din urmtoarele etape: calculul transformatei DWT a imaginii originale O.I., T. I.; separarea detaliilor i a rezumatului din cadrul T.I. (D.I. i respectiv A.I.); multiplicarea detaliilor cu constanta K (N.D.I.); asamblarea imaginii balizate n domeniul transformatei DWT, din rezumat i din detaliile multiplicate cu K (N.T.I.); calculul transformrii DWT inverse n vederea obinerii imaginii balizate (W.I); obinerea balizei prin calculul diferenei dintre imaginea original i imaginea balizat (W.a). n continuare se prezint succint modul n care are loc separarea rezumatului de detalii pentru o imagine dat, precum i reasamblarea lor dup inserarea balizei. Aa cum s-a artat anterior transformarea DWT a unei imagini este compus din dou zone principale, ca n figura 2.
A

D1 D4

D2 D3

D5

D6

Figura 2. Transformarea DWT a unei imagini.

Zona delimitat de blocurile A, D1, D2 i D3 reprezint rezumatul imaginii rezultate n urma transformrii DWT, n timp ce zona delimitat de blocurile D4, D5 i D6 reprezint detaliile. Numrul de blocuri ce revine fiecrei zone n parte depinde de numrul de iteraii
40

din calculul transformrii DWT. Mrimea blocurilor poate fi aleas dup dorin, singura cerin fiind ca ele s nu aparin simultan celor dou zone definite anterior. Dup multiplicarea cu constanta K (aleas n aa fel nct s se asigure transparena perceptual) a coeficienilor DWT din blocurile D4, D5 i D6, se obin blocurile D4, D5 i D6 ce conin deja baliza. Asamblarea blocurilor noi obinute se face ca n figura 3, pentru a putea obine n urma transformrii DWT inverse imaginea balizat.

D1 D4 '

D2 D3

D5 '

D6 '

Figura 3. Asamblarea blocurilor de imagine dup inserarea balizei.

Dup cum s-a putut observa, aceast metod de balizare este adaptiv, deoarece depinde de coninutul imaginii originale (surs). n ce privete valoarea constantei K, este relativ uor de determinat valoarea ei n aa fel nct balizarea s fie imperceptibil. Prin urmare nu este necesar utilizarea de tehnici suplimentare pentru a asigura transparena perceptual.

3.2. Algoritmul de extragere a balizei


Extragerea balizei dintr-o imagine balizat utiliznd algoritmul prezentat n paragraful 3.1. se face cu schema din figura 4.
1 K

WI r

DWT

TWI r Separare DWI r


detalii

ODI r w ar
Asamblor

Separare rezumat

IDWT

AWI r

TI r

OI r

Figura 4. Schema de extragere a balizei

Paii parcuri pentru extragerea balizei sunt similari cu cei de la balizare: calculul transformatei DWT a imaginii balizate; separarea zonelor cu rezumat i respectiv cu detalii ale imaginii; nmulirea detaliilor cu constanta 1/K;

41

reasamblarea zonelor cu rezumat i a celor cu detalii rezultate dup multiplicarea cu K; calculul transformatei DWT inverse pentru obinerea imaginii originale. calculul balizei ca diferen dintre imaginea balizat recepionat i cea original obinut n urma extragerii balizei. n cazul n care imaginea balizat utilizat de algoritmul de extracie este identic cu cea obinut la balizare, balizele obinute n procesul de inserare i extracie sunt identice. Dac apar erori de transmisie a imaginii balizate, sau prelucrri/atacuri asupra imaginii balizate, baliza extras nu va mai fi identic cu baliza obinut n cadrul procesului de inserare a balizei. Dac algoritmul de balizare este robust, diferena dintre cele dou balize trebuie s fie mic. Pentru a caracteriza gradul de asemnare a celor dou balize n vederea identificrii, se definete factorul de asemnare ca fiind factorul de corelaie, cu relaia:

fc =

w a [m, n ] w ar [m, n ]
m n 2 2 [m, n ] w ar [m, n ] wa m n m n

Valoarea factorului de corelaie este unitar atunci cnd balizele de la inserare i extracie sunt identice, i scade spre zero atunci cnd apar diferene. Ea servete ca msur a robusteii algoritmului de balizare la prelucrri i atacuri asupra imaginii balizate. Totodat, valoarea sa poate fi folosit ca i criteriu de decizie pentru a stabili dac n imaginea analizat se afl baliza cutat. Pentru aceasta este nevoie s se stabileasc o valoare de prag (de ex. 0.7) peste care se decide c baliza extras este cea cutat, n caz contrar neputndu-se face identificarea cert.

4. Desfurarea lucrrii 1.
Din Windows Commander se selecteaz directorul compwater.m. Se citete cu F4. Se selecteaz textul (Edit, Select All) i se copiaz (Edit, Copy). Se deschide MATLAB-ul. Se copiaz textul selectat anterior n fereastra de lucru a MATLAB-ului (Edit, Paste). Se ruleaz acest program (Enter). Se salveaz n directorul USERS (personal) rezultatele obinute (cele 4 imagini: imaginea original, imaginea transmis, baliza generat la emisie i baliza generat la recepie).

2.
Se studiaz programul Matlab utilizat, citind (cu F4) fiierul compwater.m i identificnd principalele etape ale algoritmilor de inserare, respectiv extragere a balizei. Se vor comenta rezultatele obinute.

3.
Se repet punctele anterioare pentru o alt valoare a lui k, de exemplu 2. n acest scop se modific linia 13 a programului compwater.m.

4.
Se repet punctele anterioare pentru o alt imagine, de exemplu: Lenna. n acest scop se modific linia a doua a programului compwater.m, aceasta devenind: ingrid=readimage('Lenna').

42

Lucrarea 7. Protecia potei electronice folosind pachetul de programe PGP, Pretty Good Privacy 1. Scopul lucrrii
Se studiaz modul n care pot fi criptate mesajele electronice folosind programul PGP.

2. Pachetul de programe PGP, Pretty Good Privacy


Acest pachet a fost conceput de Phil Zimmermann. Deoarece acesta a fost suspectat c ar fi nclcat interdicia impus de guvernul american asupra exportului de produse criptografice, el a fost urmrit n justiie timp de mai muli ani. n prezent este patronul unei companii de software care comercializeaz acest pachet de programe.

Funcionarea PGP
PGP combin civa dintre cei mai buni parametri ai criptografiei simetrice i asimetrice. El este un sistem de criptare hibrid. Cnd un utilizator cripteaz un text n clar cu PGP, acesta comprim prima dat textul n clar. Compresia crete rezistena la atacuri de criptanaliz. Apoi PGP creaz o cheie de sesiune care este folosit o singur dat. Aceast cheie este un numr aleator. Ea lucreaz n acord cu un algoritm de criptare foarte sigur i rapid pentru a cripta varianta comprimat a textului n clar. Rezultatul este textul criptat. De ndat ce datele au fost criptate, este criptat i cheia sesiunii, folosindu-se cheia public a destinatarului. Varianta criptat a cheii sesiunii este transmis mpreun cu textul criptat. Pentru decriptare se aplic operaiile dscrise n ordine invers. Destinatarul recepioneaz mesajul PGP, i folosete cheia secret pentru a reconstrui cheia sesiunii, pe care apoi programele PGP o folosesc pentru a decripta textul criptat.

Chei
PGP memorez cheile n dou fiiere de pe hard disk-ul calculatorului gazd. Unul dintre ele este folosit pentru cheile secrete iar cellalt pentru cheile publice. Acestea se numesc inele de chei keyrings. Dac un utilizator i pierde cheia secret, el nu va mai putea s decripteze nici un mesaj PGP pe care l primete.

Semnturi digitale
Se folosesc pentru autentificarea sursei mesajului i pentru verificarea integritii acestuia. Ele asigur i nerepudierea mesajului. n figura urmtoare este exemplificat modul de generare a unei semnturi digitale. n loc s se cripteze informaia cu cheia public a cuiva se folosete cheia secret a utilizatorului. Dac acea informaie poate fi decriptat cu cheia public a utilizatorului atunci nseamn c a fost generat de ctre acesta. PGP folosete funcia hash MD-5 pentru a obine un rezumat (message digest) al textului n clar pe care trebuie s-l semneze utilizatorul. Cu ajutorul acestui rezumat i al cheii secrete a utilizatorului, acesta creaz semntura. PGP transmite mpreun semntura i mesajul n clar. Dup recepie destinatarul folosete PGP pentru a recompune rezumatul, verificnd n acest fel semntura. Mesajul n clar poate fi criptat sau nu. Semnarea unui text n clar este util dac unii dintre destinatari nu sunt interesai sau nu sunt capabili s verifice semntura.

43

Figura 1. Generarea unei semnturi digitale.

Att timp ct se utilizeaz o funcie hash sigur, nu exist nici o posibilitate s se copieze semntura cuiva dintr-un mesaj i s se ataeze ntr-un altul sau se altereze un mesaj semnat. Cea mai mic modificare a unui document semnat va cauza insuccesul procesului de verificare a semnturii. Semnturile digitale joac un rol important n autentificarea i validarea cheilor unor noi utilizatori PGP. n figura urmtoare se prezint procesul de generare i inserare a unei semnturi digitale.

Figura 2. Procesul de inserare a semnturii digitale.

Ce este o parol de tip fraz ?


O parol de tip fraz este o variant mai lung de parol care este folosit de ctre un utilizator n scop de identificare. Aceasta este mai sigur mpotriva atacurilor bazate pe fora brut. PGP folosete o parol de tip fraz pentru criptarea cheii unui utilizator pe propriul calculator. Nu este permis ca utilizatorul s-i uite parola de tip fraz.

44

mprtirea cheilor
Se spune c un secret nu mai este secret dac este cunoscut de dou persoane. La fel este i n cazul unei chei secrete. Dei nu este recomandabil uneori este necesar s se utilizeze n comun chei secrete. n aceste situaii este recomandabil ca poriuni ale cheii secrete s fie fcute cunoscute cte unei persoane, astfel nct acea cheie s poat fi folosit doar cu participarea tuturor acelor persoane.

3. Desfurarea lucrrii
1. Se instaleaz programul de pot electronic, Eudora, fcnd click pe Setup.exe, din directorul Disk1us. Se configureaz programul instalat. Se instaleaz programul PGP, fcnd click pe PGPDesktop710Eval30.exe1. Se configureaz programul PGP. n acest scop se citete fiierul ReadMe din directorul c:\ Program Files \ Network Associates \ PGP for Windows ** \ . Apoi se deschide programul Eudora i se face click pe PGP. Se citesc Help Topics i apoi se configureaza (respectiv se verifica configurarea), dupa ce s-a apasat pe butonul Options. O parte a unui exemplu de configurare este prezentat n figurile urmtoare:

Figura 3. Configurarea programului de pot electronic.

45

Figura 4. Configurare general.

Figura 5. Configurarea fiierelor.

46

Figura 6. Configurarea firewall-ului.

2. Dup configurare se deschide Eudora se selecteaz Message i apoi New Message. Se selecteaz PGP keys i se apas pe Server i apoi pe Send to, alegndu-se pgpkeys.mit.edu. 3. Se transmite un mesaj criptat unui utilizator care nu are instalat programul PGP. n acest scop se deschide Eudora se selecteaz Message i apoi New Message. Se scrie mesajul se selecteaz PGP Encrypt Email Message (celelealte opiuni se vor deselecta) i apoi Send. Se constat c forma criptat a mesajului nu poate fi neleas de ctre acesta. 4. Se transmite acelai mesaj unui utilizator care are instalat programul PGP. Se verific faptul c acesta poate nelege mesajul. 5. Se repet cele dou operaii, descrise anterior pentru o nou alegere a parolei de tip fraz. 6. Se dezinstaleaz programele Eudora i PGP.

47

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