Documente Academic
Documente Profesional
Documente Cultură
Criptarea imaginilor
Cuprins
Cuprins .................................................................................................................. 1
Introducere............................................................................................................. 1
Introducere
1
6.1.1 Algoritmul Blum-Blum-Shub
Acest algoritm [1] este folosit pentru generarea unei secvenţe de biţi pseudoaleatoare, secvenţă
folosită ca şi cheie de criptare de către algoritmul AES. Acest algoritm este destul de simplu de
implementat, dar este extrem de eficace pentru scopul acesta, de a genera o cheie de criptare
pseudoaleatoare. Anume, dacă se generează numere (secvenţe de biţi, până la urmă) în intervalul [0..n-1],
un observator nu poate prezice numărul care urmează a fi generat cu o probabilitate mai mare de 1/n.
Algoritmul funcţionează destul de simplu, fiind prezentat în cele ce urmează. Iniţial, se generează
două numere prime Blum, p şi q. Numerele prime Blum sunt numere prime, pentru care restul împărţirii lor
la 4 este 3. Pasul următor este alegerea unui număr, seed, din intervalul [1..p*q]. Se calculează:
xo seed 2 (mod n), n p * q ;
Mai departe se calculează:
xi xi21 (mod n), zi paritatea ( xi );
Paritatea unui număr se defineşte ca fiind restul împărţirii numărului xi la 2. Secvenţa de ieşire este
z1, z2, ... zn.
Algoritmul AES este un algoritm de criptare simetric, bloc. Aceasta înseamnă că la criptare şi la
decriptare se foloseşte aceeaşi cheie, şi că procesul de criptare se desfăşoară pe blocuri de biţi. În cazul
acestui algoritm, sunt specificate diferite lungimi pentru cheia de criptare, şi anume 128, 192 sau 256 de
biţi. De asemenea, lungimea unui bloc de date care se criptează este de 128 de biţi.
Acest algoritm foloseşte, în principal, trasformări pe biţi. Aceste transformări sunt: sunstituţia
octeţilor de date cu valori specificate, rotirea valorilor din fiecare linie a matricii intermediare, mixarea
elementelor de pe coloanele acestei matrici, şi adăugarea unei chei circulare. Această stare intermediară
este reprezentată ca şi o matrice de 4 X 4 octeţi. Pseudocodul acestui algoritm este:
Functie Criptare
Start
Adăugare Cheie Circulară
Pentru runda = 1 pana la Nr – 1
Substituţie Octeţi;
Rotire Linii;
Mixare Coloane;
Adăugare Cheie Circulară
sfarşit pentru
Substituţie Octeţi;
Rotire Linii;
Mixare Coloane;
Adăugare Cheie Circulară
Sfârşit funcţie
Funcţiile descrise în acest pseudocod sunt descrise mai jos. Substituţia de octeţi este, de fapt,
înlocuirea valorii din marticea intermediarp cu o valoare citită din un tabel standardizat. Rotirea liniilor se
desfăşoară in felul descris în cele ce urmează. Prima linie este neschimbată. A doua linie este rotită de la
stânga la dreapta cu un octet, a treia linie este rotită cu doi octeţi, iar a patra linie etse rotită cu trei octeţi.
Funcţia de mixare coloane este mai complicată, implică calculul elementelor din coloane în funcţie de
elementele vechi şi formulele de mai jos:
2
s '0, c ({02} *s 0, c ) ({03} *s1, c ) s2, c s3, c
s '1, c ({02} *s1, c ) ({03} *s 2, c ) s3, c s0, c
s ' 2, c ({02} *s 2, c ) ({03} *s 3, c ) s0, c s1, c
s '3, c ({02} *s 3, c ) ({03} *s 0, c ) s1, c s2, c
Funcţia de adăugare cheie circulară este, de fapt, o operaţie sau-exclusiv realizată între matricea
de stare şi cheia de criptare expandată. Algoritmul de expandare, precum şi alte detalii despre algoritmul
AES se pot găsi în [2] şi [3].
Imaginea bitmap este descompusă în plane de biţi. Acest lucru înseamnă că imaginea este
parcursă pixel cu pixel, şi se citeşte valoarea corespunzătoare bitului care se doreşte a fi criptat. Am decis
ca aplicaţia să suporte doar imagini cu 24 de biţi pe pixel, adică fiecare culoare (roşu, albastru şi verde)
este reprezentată pe câte un octet. Deci, din aceste imagini se pot extrage 24 de plane de biţi.
Aplicaţia oferă utilizatorului o interfaţă grafică extrem de intuitivă, pentru a fi cât mai uşor de utilizat.
Ea oferă, de asemenea, un meniu extrem de uşor de folosit, fiind intuitiv în ceea ce priveşte funcţionalitatea
butoanelor.
Interfaţa grafică a aplicaţiei este prezentată mai jos. Ea oferă un meniu de tip pop-up, două
butoane, trei controale de tip radio button şi 24 de controale de tip check box. Această interfaţă este
prezentată în Figura 1.
Meniul “Fişier” al aplicaţiei oferă trei submeniuri: “Deschide”, “Criptează” şi “Închide”. Primul meniu
oferă posibilitatea alegerii unei imagini în format bitmap pentru criptare, cel de-al doilea efectuează
criptarea propriu-zisă iar cel de-al treilea închide aplicaţia. Acest meniu este prezentat în figura 2.
3
Butoanele de pe interfaţa grafică au funcţii intuitive, fiind intitulate sugestiv. Astfel, butonul
“Deschide” oferă posibilitatea alegerii unui fişier bitmap de criptat. Butonul “Criptează” realizează efectiv
criptarea imaginii.
Controalele de tip Radio Button oferă utilizatorului control asupra lungimii cheii de criptare. Aceasta
poate avea trei valori, lunginea cheii de criptare poate fi 128, 192 sau 256 biţi.
Controalele de tip Combo Box sunt destinate selecţiei planului de biţi dorit a fi criptat. De
asemenea, se poate alege un plan de biţi corespunzător unei singure culori din imagine. În momentul de
faţă, trebuie făcută o menţiune. Aplicaţia nu poate cripta decât imagini cu 24 de biţi pe pixel, adică nuanţa
de roşu a pixelului este reprezentată pe 8 biţi, nuanţa de verde a pixelului este reprezentată pe 8 biţi şi
nuanţa de albastru a pixelului este reprezentată pe 8 biţi.
La apăsarea butonului “Deschide”, se deschide o căsuţî de dialog care permite deschiderea unui
fişier de intrare, de criptat, fişier bitmap. Acest fişier este deschis de aplicaţie, şi este afişat într-o fereastră
separată. Un exemplu de imagine deschisă este prezentat în figura 3.
4
La apăsarea butonului “Criptează”, se declanşează procesul efectiv de criptare a imaginii. După ce
acest proces este încheiat, se deschide o căsuţă de dialog în care user-ul are posibilitatea alegerii unui
nume sub care să fie salvat fişierul bitmap criptat, şi a unei locaţii în care să fie salvat acest fişier. Această
facilitate este prezentată în figura 4.
Se vor utiliza diferite imagini bitmap pentru a studia modul de criptare folosind algorimii implementati
in aplicaţia software.
Rezumat