MR - Analiza Uticaja AES Kriptografskog Algoritma Na Performanse Različitih Sistema Za Upravlja

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 64

UNIVERZITET SINGIDUNUM

BEOGRAD
DEPARTMAN POSLEDIPLOMSKIH STUDIJA
-MASTER STUDIJSKI PROGRAMSAVREMENE INFORMACIONE TEHNOLOGIJE

ore Petrovi

Analiza uticaja AES kriptografskog algoritma


na performanse razliitih sistema za
upravljanje bazom podataka
-Master rad-

Mentor:

Kandidat:

Prof. dr Mladen Veinovi

ore Petrovi, 410228/2011

Beograd, 2013. godine

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Analiza uticaja AES kriptografskog algoritma na performanse


razliitih sistema za upravljane bazom podataka
Saetak: U ovom radu analiziran je uticaj AES kriptografskog algoritma na rad razliitih
sistema za upravljanje bazom podataka i njihov uticaj na performanse Web aplikacija.
Analiza obuhvata popularne softverske alate (MySQL Server v5.5.13 i SQLite v3.7.7.1).
Performanse su testirane korienjem razliitih skripti za ifrovanje podataka pisane u PHP
programskom jeziku, na razliitim kombinacijama navedenih komponenata i sa razliitim
simuliranim optereenjima (ukupnim i paralelnim brojem zahteva). Prikazan je i detaljno
opisan izvorni kod PHP Web aplikacije. Prilikom testiranja, PHP izvorni kod je ifrovan
koristei alat ZendGuard v6.0 gde je detaljno opisana njegova primena. Dobijeni rezultati
su predstavljeni tabelarno i grafiki. Na osnovu dobijenih rezultata izvreno je poreenje
performansi razliitih komponenata.
Kljune rei: MySQL, SQLite, Web aplikacija, ZendGuard, apache, kriptografija, AES,
zatita podataka, PHP, analiza performansi

Analiza uticaja AES kriptografskog algoritma na performanse


razliitih sistema za upravljane bazom podataka
Abstract: This paper analys the impact of AES cryptographic algorithm on the different
systems for database management and their impact on the performance of Web
applications. The analysis includes the popular software tools (MySQL v5.5.13 Server and
SQLite v3.7.7.1). Performances are tested using various scripts to encrypt data written in
the PHP programming language, various combinations of these components and simulated
with different loads (the total number of requests and parallel). Shown and described in
detail the source code of PHP Web application. During testing, the PHP source code is
encrypted using ZendGuard tool v6.0 which is described in detail. The results are
presented in tables and graphs. Based on these results a comparison of the performance of
different components is done.
Keywords: MySQL, SQLite, Web application, ZendGuard, apache, cryptography, AES,
data protection, PHP, performance testing

-1-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

SADRAJ

Metodologije istraivakog projekta ............................................................. - 4 1.1 Uvodne napomene i obrazloenje rada ..................................................... - 4 1.2 Predmet istraivanja ................................................................................. - 4 1.3 Ciljevi i izdaci istraivanja ....................................................................... - 5 1.4 Istraivake hipoteze ................................................................................ - 5 1.5 Metodi istraivanja i tok istraivakog procesa ....................................... - 5 -

Arhitektura Web aplikacija i faktori performansi ....................................... - 6 2.1 Klijent-Server arhitektura ......................................................................... - 6 2.2 Iterativna i konkurentna obrada zahteva ................................................... - 7 2.3 Komunikacioni kanali .............................................................................. - 8 2.4 Anatomija troslojne arhitekture .............................................................. - 11 -

Kriptografska arhitektura ............................................................................ - 12 3.1 Osnove arhitekture.................................................................................. - 12 -

AES algoritam ................................................................................................ - 14 4.1 Realizacija ifrovanja u AES algoritmu ................................................. - 14 4.1.1 Funkcije koje se realizuju u procesu ifrovanja ........................................... - 15 4.1.2 Funkcije koje se realizuju u procesu deifrovanja ....................................... - 16 -

Eksperimentalno okruenje .......................................................................... - 17 5.1 Hardverska platforma ............................................................................. - 17 5.2 Softverski paketi ..................................................................................... - 18 5.2.1 MySQL sistem za upravljanje bazom podataka .......................................... - 18 5.2.2 SQLite3 sistem za upravljanje bazom podataka .......................................... - 20 5.2.3 Aplikativni server (Zend Server CE) ........................................................... - 21 5.2.4 ZendGuard (aplikacija za ifrovanje PHP izvornog koda) .......................... - 25 -

5.3 PHP Web aplikacija ................................................................................ - 30 5.3.1 PHP skripta bez ifrovanja .......................................................................... - 31 5.3.2 PHP skripta sa AES ifrovanjem ................................................................. - 33 5.3.3 PHP skripta sa AES ifrovanjem pomou SQL upita .................................. - 37 5.3.4 Tabele baze podataka................................................................................... - 39 -

Scenario eksperimentalnog testiranja ......................................................... - 41 -

-2-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

6.1 Tipovi vrenih testova ............................................................................ - 43 7

Tabelarno i grafiko predstavljanje dobijenih rezultata ........................... - 43 7.1 Tabelarno pojedinano predstavljanje .................................................... - 43 7.2 Grafiko pojedinano predstavljanje ...................................................... - 45 -

Uporeivanje rezultata ................................................................................. - 51 8.1 Kombinovanje broja zahteva .................................................................. - 51 8.2 Kombinovanje baze podataka sa razliitim PHP skriptama ................... - 52 8.3 Kombinovanje razliitih sistema za upravljanje bazom podataka.......... - 57 -

Zakljuak........................................................................................................ - 62 -

10 LITERATURA .............................................................................................. - 63 -

-3-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

1 Metodologije istraivakog projekta


1.1 Uvodne napomene i obrazloenje rada
Veliki broj poslovnih sistema za migraciju svojih informatikih servisa zadueni su
sistemi za upravljanje bazom podataka. Jedan od razloga upotrebe baze podataka je bolja
iskorienost skladitenja podataka poev od sortiranja podataka preko osnovnih relacionih
funkcija pa sve do zatite podataka i potrebom za maksimalnom iskorienosti resursa
hardvera. Pored relacionih sistema za upravljanje bazom podataka, esto se sreu sa Web i
internet tehnologijama koji postaju sve ei izbor infrastrukture i tehnolokog okruenja
za razvoj aplikacija. Sama arhitektura Web aplikacija u veini sluajeva podrazumeva
aktivnu komponentu na sloju logike, koja komunicira sa sistemom za upravljanje bazama
podataka. Performanse Web aplikacija predstavljaju njihov kritini atribut, a zavise od vie
faktora kao to su komunikacija izmeu sloja logike i baze podataka, komunikacioni
kanali, koji su kritini ali se na njih moe uticati spolja i loe performanse baze i logike
onemoguavaju potpuno iskoriavanje komunikacionih kanala. Na razvoj Web aplikacija
i sistema za upravljanje bazom podataka esto se susreu tehnologije zatita koji utiu na
bezbednost svojih sistema. Tehnologije koje se koriste u ovom radu su poznati alati i
opravdani od strane korisnika, kao to su: MySQL Server v5.5.13, SQLite v3.7.7.1 i
sistemi zatite AES kriptografskog algoritma. Odabir adekvatne tehnologije sistema za
upravljanje bazom podataka i sistema zatite je od kljunog znaaja u informacionim
tehnologija od koji zavise veliki broj poslovnih sistema.
1.2 Predmet istraivanja
U ovom radu, predmet istraivanja je specifian rad sistema za upravljanje bazom
podataka pod uticajem AES kriptolokog algoritma i njihov uticaj na web aplikacija. U
dananje vreme, sve je vea potranja za bazom podataka koji su najee izloeni
napadima. Iz tih razloga je i velika potranja za stabilnim, brzim i sigurnijim sistemima
koji bi zadovoljili potrebe korisnika i obezbedili njihovu sigurnost. Koncept upotrebe baze
podataka ima svoju specifinost i predstavljen je tako da omogui laku manipulaciju
podataka, jednostavan rad administratora, brzinu prilagoavanja i utedu vremena njihove
primene. Proizvodi ovakvih sistema se najee sreu sa sistemima zatite koji se koriste u
razvojne svrhe Web aplikacija.
U realizaciji eksperimentalnog testiranja korieni su MySQL Server v5.5.13 i
SQLite v3.7.7.1 sistemi za upravljanje bazom podataka testirani od strane PHP web
aplikacije koju ine tri vrste skripti zadueni za merenje optereenja performansi na
lokalnom i serverskom nivou pod uticajem AES kriptografskog algoritma.
Prethodno navedene PHP skripte su prikazane, opisane i ifrovane pomou
ZendGuard v6.0 alatom koji ifruje izvorni kod PHP-a i samim tim titi od nelegalnog
kopiranja, itanje privatnog kljua i upada.

-4-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

1.3 Ciljevi i izdaci istraivanja


Glavni cilj ovog rada je da se prikau rezultati AES kriptografskog algoritma na rad
performansi razliitih sistema za upravljanje bazom podataka MySQL Server v5.5.13 i
SQLite v3.7.7.1, prikaz ukupnih i paralelnih broja zahteva na razliitim softverskim
reenjima za distribuciju web aplikacija (ZendServerCE v5.6.0 i v6.1.0), kao i upotreba
ZendGuard alata za ifrovanje izvornog PHP koda i opis njegove primene. Na osnovu
dobijenih rezultata uraena je komparacija prethodno navedenih softvera gde su specifino
navedene njihove prednosti i mane kako i u komercijalnoj tako i u njihovoj svakodnevnoj
primeni.
1.4 Istraivake hipoteze
Opta hipoteza: Velika je potranja za pouzdanim sistemima za upravljanje bazom
podataka i odgovarajuim nainom zatite podataka. Treba se fokusirati na odabir pravog
reenja za odreene potrebe korisnika. Zapoeti analizu performansi prethodno navedenih
tehnologija, potrebno je dobro poznavati podruje web tehnologija i baza podataka koji su
usko povezani, a i donose velike mogunosti korienja to pozitivno utie na rad korisnika
a i na okruenje u kojem se nalazi, kao i poznavanje sistema zatite koji predstavljaju
kljuan faktor u dananjem informatikom svetu.
Radna hipoteza: Zapoeti analizu eksperimentalnog testiranja od posebnog znaaja je pravi
odabir sistema za upravljanje bazom podataka na kome su vrena kriptoloka
testiranja.
Autor ovog rada kreirao je skripte pisane u PHP programskom jeziku koji imaju za cilj da
testiraju performanse prethodno navedenih baza podataka pod uticajem kriptolokog
algoritma koji se izvrava na lokalnom i serverskom nivou web aplikacije. Skripte su
ifrovane pomou alata ZendGuard koji slui za zatitu izvornog koda PHP-a i spreava
nelegalno kopiranje i modifikovanje. Sa osposobljenom platformom za eksperimentalno
testiranje, omogueno je prikupljanje rezultata vrenih testova ukupnih i paralelnih broja
zahteva i zapisa baza podataka pod uticajem AES kriptolokog algoritma. Ovom analizom
mogu se prikupiti bitni rezultati navedenih tehnologija i odabrati adekvatno reenje za
potrebe korisnika.
1.5 Metodi istraivanja i tok istraivakog procesa
Metodologija istraivanja se svodi na korienje prikupljenih materija i nainu
njihove primene odnosno tehnologija koji su vezani za ovu oblast. Kod sistema za
upravljanje bazom podataka i web aplikacija, koji su navedeni u ovom radu, podignuti su
na host-u raunara na kojima je izvrena neophodna konfiguracija za eksperimentalno
testiranje. Prethodno navedene tehnologije su posebno testirane u kombinaciji sa
ifrovanim PHP skriptama pomou kojih je izvreno merenje performansi uticaja AES
kriptografskog algoritma. U ovom istraivakom radu prikazani su rezultati korienih
tehnologija i njihova primena kako bi se dolo do odreenih naunih saznanja koji se
primenjuju u dananjem informatikom svetu.

-5-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

2 Arhitektura Web aplikacija i faktori performansi


U tekstu koji sledi ukazaemo na neke od popularnih arhitektura Web aplikacija i
faktore performansi koji predstavljaju njihov kritini atribut, kao to su:
1. Klijent-server arhitektura
2. Iterativna i konkurentna obrada zahteva
3. Komunikacioni kanali
4. Anatomija troslojne arhitekture

2.1 Klijent-Server arhitektura


Klijent-server arhitektura [4] javlja se poetkom devedesetih godina XX veka,
prihvatanje doivljava ve polovinom iste decenije, a razvijen je kao rezultat nastojanja da
se to bolje iskoristi resurs personalnih raunara, kroz njihovu integraciju u jedinstven
sistem za obradu podataka. Arhitektura je bazirana na distribuciji funkcija izmeu dva tipa
nezavisnih autonomnih procesa: klijenta (korisnik) i servera (slika 1.).

Slika 1: Slojevita klijent-server arhitektura


Najei primer se ogleda u pregledanju internet stranica gde klijent predstavlja
aktivnog korisnika koji zahteva specifine usluge ili rezultate, alje zahteve i eka na
odgovor, dok je server pasivan, eka na zahteve korisnika, izvrava ih i alje korisniku.
Serveri su uglavnom jaki raunari sa izuzetnim karakteristikama i performansama zbog
toga to istovremeno moraju da obrade veliki broj zahteva sa tendecijom rasta. Za razliku
od korisnikih raunara, servere uglavnom pokreu napredniji operativni sistemi koji
pruaju mnogobrojne opcije sa ve definisanim ulogama.

-6-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Dakle, serveri pruaju funkcije ili usluge jednom ili veem broju klijenata, koji
zahtevaju takve usluge. Usluge koje server prua klijentima se realizuju preko namenskih
softverskih paketa (ili su zasnovane na mogunostima operativnog sistema). Na jednom
raunaru je mogue instalirati vie razliitih softverskih paketa i na taj nain dobiti
multifunkcionalan server. Funkcije kao to su e-mail razmena, pristup internetu i bazama
podataka su izgraeni na ovakvoj klijent-server arhitekturi.
2.2 Iterativna i konkurentna obrada zahteva
Prema postupuku obrade zahteva servere [2] moemo podeliti na:

servere sa iterativnom obradom zahteva

servere sa konkurentnom obradom zahteva.

Cilj servera sa iterativnom obradom zahteva je da oslukuju na dodeljenom portu


ekajui na zahtev klijenta. Nakon prihvatanja zahteva klijenta zahtevi ostalih klijenata su
na ekanju u ulaznom baferu ili se odbacuju sve dok se prihvaeni zahtev ne obradi i
rezultati te obrade poalju natrag klijentu.

Slika 2: Iterativni pristup obrade zahteva


Glavni problem koji se javlja kod iterativne obrade zahteva se ogleda u tome to
takav pristup moe znatno da utie na performanse u smislu broja obraenih zahteva po
jedinici vremena. Ako obrada jednog zahteva u toku svog izvrenja zauzme sve resurse
servera onda se performanse mogu smatrati optimalnim. U sluaju, da obrada zahteva trai
dodatno vreme usled ekanja na resurs koji nije potreban za obradu preostalih zahteva (koji
su na ekanju u ulaznom baferu ili su odbaeni), iterativni pristup daje loije performanse
od konkurentnog. Najvea prednost iterativnog pristupa jeste eleminisanje problema
konkurentnog pristupa internim resursima servera tako to se u jednom trenutku obrauje
samo jedan zahtev kako ne bi dolo do viestrukih zahteva za istim resursom.

-7-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Prednost konkurentne obrade zahteva je pristup sa boljim performansama u


situacijama u kojim server obrauje veliki broj paralelnih zahteva od vie klijenata u isto
vreme. Paralelna obrada zahteva se postie pokretanje novog procesa (ili niti procesa, u
zavisnosti od operativnog sistema) za obradu zahteva kod svakog klijenta.

Slika 3: Konkurentni pristup obrade zahteva


Za ovakav nain rada potreban je sloeniji serverski sofver koji se sastoji od
dispeerkog dela (dela koji je zaduen za pokretanje procesa njihove obrade i prihvatanje
zahteva) i dela koji je zaduen za konkretnu obradu zahteva. U odreenim situacijama
mogu se pokazati slabije performanse kod konkurentnog pristupa za obradu zahteva u
odnosu na iterativni pristup usled troenja procesorkog vremena na pokretanje novih
procesa za obradu zahteva. Takoe, softver koji omoguava konkurentnu obradu je
sloeniji jer interno reava konkurentni pristup sistemskim resursima. Softver za
konkurentnu obradu najee unapred aktivira odreen broj procesa za obradu zahteva a
ukoliko je potrebno taj broj i poveava do konfiguracione vrednosti ili ogranienja
sistemskim resursima.
2.3 Komunikacioni kanali
Dananje komunikacione mree [2] su sloeni sistemi koji obezbedjuju prenos
informacije u formi video signala, govornih signala, elektronske pote i raunarskih
fajlova. Korisnici su ti koji postave zahtev za eljenom komunikacionom uslugom
(servisom) aktivirajui pri tome jednostavne procedure na svom stacionarnom ili
mobilnom telefonu, TV aparatu, ili aplikaciji koja se izvrava na host raunaru, odnosno
PC raunar. Jedan od najeih primera se ogleda u korienju interneta gde korisnik
putem Web browsera ili Web klijenta ( Mozilla Firefox, Google Chrome, Opera, Safari,
Internet Explorer itd) uspostavlja komunikaciju i na taj nain dolazi do eljenih usluga ili
informacija.

-8-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 4: Web klijent arhitektura - komunikacija


Kao to je prikazano na slici 4, moemo primeti da se radi o takozvanoj Web klijent
arhitekturi koja se sastoji od:
OSI i TCP/IP modela - OSI model (Open System interconnection Basic Reference
Model ) je razvijen 1984. godine od strane ISO organizacije. Iako je ISO formalni
standard danas se u praksi ee korisit jednostavniji de facto standard Internet
model (TCP/IP). OSI model definie sedam slojeva gde se informacije prenose od
jednog sloja na sledei, sa poetnom takom sloja aplikacije i hijerarhiski sve do
fizikog sloja gde se informacije obrnutim redosledom preko komunikacionih
kanala zavravaju do aplikacionog sloja.
Sloj aplikacije - predstavlja interfejs mree ka korisniku. Osnovna uloga
ovog sloja je omoguiti pristup mrei korisnikim programima.
Transportni sloj kontrolie protok podataka izmeu sistema, definie
strukturu podataka u porukama i proverava greke.
Mreni sloj zadatak mremog sloja jeste odreivanje jedne ili vie
putanja kojima e poruka biti prosleena od izvorita do odredita. Mreni
sloj je zaduen da u svakom voru mree (stanici do odredita) odredi koji
je sledei raunar kome poruka treba biti prosleena.
Fiziki sloj i sloj veze Fiziki sloj je zaduen za prenos bitova odnosno
nula i jedinica putem komunikacionog kanala. Ovaj sloj definie pravila po
kojima se bitovi prenose, koji elektrini napon je potreban, koliko bitova se
alje po sekundi i fiziki format korienih kablova i konektora. Sloj veze
upravlja prenosom putem fizikog sloja i omoguava prenos osloboen
greaka na ovom i fizikom sloju. Zadatak sloja veze jeste da zatiti slojeve
vieg nivoa od greaka nastalih pri prenosu podataka.
-9-

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

HTTP klijentski software osnovna uloga Web browsera je da prikae


informacije korisniku. Informacije koje Web browseri (Web itai) pruaju su slike,
audio i video sadraj, zatim Flash i Java programe kao i XML datoteke i sl. Takoe,
imaju podrku i za HTML protokol koji komunicira na sloju aplikacije OSI modela.
Opertivnog sisitema osnovni nivo mrene podrke jeste podrka za hardver koji
slui za fiziki pristup mrei (modem, mrena kartica i sl). Podrka za hardver
raunara se kod operativnog sistema realizuju u vidu modula koji se nazivaju
drajverima (eng. driver). Veina operativnih sistema najee se isporuuje sa ve
sadranim drajverima za popularni mreni hardver. Osim podrke za mreni
hardver (fiziki sloj) operativni sistem mora imati podrku za protokole sloja veze,
mrenog sloja i transportnog sloja koji se koriste u mrei na koji je raunar
prikljuen.
Ukoliko korisnik eli da dobije eljene usluge ili informacije neophodno je da
uspostavi komunikaciju sa Web serverom. Osnovna funkcija Web servera je da isporui
web stranice na zahtev korisnika. To znai da server treba korisniku da dostavi HTML
dokumenta bilo kog sadraja, a tu mogu biti obuhvaeni dokumenti kao to su slike i
skripte.

Slika 5: Web server arhitektura komunikacija


Kao to je priakazano na slici 5. moe se primetit da Web server ima podrku za
TCP/IP protokol (standard za mrenu komunikaciju), mreni interfejs, zatim ima podru za
OSI i TCP/IP modele, podrka za PHP modul i HTTP protokol koji je namenjen za
razmenu poruka izmeu Web servera i Web klijenta. HTTP je aplikacijski protokol a ne
sistemski kao TCP/IP. Korisnik putem Web browsera, uspostavlja komunikaciju sa

- 10 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

serverom, alje zahtev putem HTTP, server odgovara na zahtev korisnika ili ukazuje na
greku ako server nije u stanju da odgovori na taj zahtev. Iako je primarna funkcija Web
servera da dostavi sadraj korisniku (HTML dokumenta, slike i sl), puna iplementacija
HTTP takoe omoguava nain prijema sadraja od strane klijenta. Ova funkcija se koristi
za dostavljanje Web obrazaca, ukljuujui i upload fajlova.
Treba naglasiti da Web server podrava dodatni sloj enkripcije SSL/TSL modul
koji ima funkciju da zatiti saobraaj. SSL modul je naroito pogodan za HTTP jer moe
da obezbedi zatitu ak iako je samo jedna strana komunikacije potvrdila svoj identitet. To
je sluaj koji se javlja kod HTTP transkacije podataka preko interneta gde je obino server
proveren distributer (od strane klijenta ispituje se sertifikat servera).
2.4 Anatomija troslojne arhitekture
Web aplikacije koje rade sa bazama podataka, funkcioniu samo po modelu
troslojne aplikacione logike. Apllikacije razvijene posredstvom troslojne arhitekture
funkcioniu primenom mrenih tehnologija koje su postojale mnogo pre pojave interneta
na koji smo danas navikli. Radilo se o takozvanim point-of-service sistemima koji su
stvoreni kako bi omoguili neometan elektronski transfer novca sa rauna to ih svrstava u
prvobitne aplikacije koje rade sa bazama podataka. Svaki sledei sistem ne prestavlja nita
drugo osim blagu modifikaciju i nadogradnju predhodno pomenutog point-of-service
modela.

Slika 6: Anatomija troslojne arhitekture


Troslojna arhitektura [5] koja je prikazana na slici 4. se sastoji od tri sloja:

Klijentski sloj - koji predstavlja situaciju gde korisnik putem Web Browsera (Web
itaa) pokuava da uspostavi komunikaciju koja e se ostvariti sa datom
aplikacijom.

- 11 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Srednji sloj za koji se takoe moe rei da je najkomplikovaniji i podrazumeva


vei deo aplikacione logike i slui kao jedna vrsta mosta izmeu sloja baze
podataka i klijentskog sloja.

Sloj baze podataka - koji predstavlja najnii nivo troslojne arhitekture, ovaj nivo
se sastoji od sistema za upravljanje bazom podataka. Takav sistem omoguava
unos, izmene, brisanja ili pretrage podataka od strane korisnika.

Troslojna arhitektura najee se primenjuje u razvijanju internet stranica gde


klijent uz pomo Web browsera vri konekciju i pristupa datom sadraju ili aplikaciji.
Ovakav pristup se esto naziva Front-end Web server, koji slui za prikazivanje
statinih (static, gde je kompletan sadraj i opis izgleda internet strane smeten u jednu
zajedniku datoteku ) i dinaminih (dynamic, gde su internet stranice ili prezentacije
generisane od strane Web aplikacija ) internet stranica. Zatim, srednji dinamian sloj koji
je generisan od strane aplikativnog servera, kao to su: Java EE, ASP.NET, PHP,
ColdFusion platforme. I trei sloj koji se esto naziva back-end database, odnosno sloj
baze podataka koji se sastoji od skup podataka database i sistema za upravljanje bazom
podataka. Uglavnom, ovaj sloj omoguava korisniku da pristupi odreenom sadraju i
bitnim informacijama koje nude internet stranice.

3 Kriptografska arhitektura
U dananje vreme kriptografija [6] se sve vie koristi, kako za zatitu i ouvanje
integriteta korisnikih podataka ili komunikacija, tako i u samom radu operativnih sistema
prilikom skinutih programa sa interneta u cilju zatite od virusa. Kriptografski algoritmi se
korisite za ifrovanje poruka, odnosno za njenu transformaciju iz otvorenog (ne
iforvanog) u ifrovani oblik. Postoje tri osnovna naina ifrovanja podataka a to su he
funkcija, simetrino i asimetrino ifrovanje. Korisnici u svakodnevnom radu primenjuju
razliite programe koji koriste kriptografske algoritme. Neki od tih programa su internet
pretraivai, mejl klijenti, instant mesenderi namenjeni za razmenu poruka koji koriste
biblioteke kriptografskih funkcija ili moduli za bezbednost, koji omoguavaju autorima tih
aplikacija jednostavno prikupljanje kriptografije i pruanje vee sigurnosti svojim
korisnicima.
3.1 Osnove arhitekture
Pre nego to je dolo do masovne upotrebe raunara, odnosno njihovog razvitka,
veina kriptografskih metoda ifrovanja baziralo se na tajnosti ifre. Takav vid algoritama
se pokazao dosta nepouzdani, te su se morale pronai neke druge metode ifrovanja. U
dananje vreme koriste se metode ifrvanja koje su zasnovane na upotrebi kljua. Klju je
najvaniji deo u procesu enkripcije i dekripcije podataka.
Upravo u zavisnosti od naina upotrebe kljua razvile su se dve klase algoritama.
Jedna je simetrina a druga asimetrina klasa [3]. Drugim reima, postoje simetrini i
asimetrini algoritmi kriptovanja. Osnovna razlika je u tome to simetrini algoritmi
kriptovanja koriste isti klju, dok asimetrini algoritmi koriste razliite kljueve u procesu
ifrovanja i deifrovanja podataka.

- 12 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 7: Simetrini algoritam ifrovanja1


Simetrini algoritmi sprovode dve funkcije: ifrovanje (eng. encryption) i
deifrovanje (eng. decryption) poruke. Kako bi proces kriptovanja bio mogu neophodno
je da obe strane (u ovom sluaju Alice - poiljalac i Bob - primalac) koriste isti klju u
procesu ifrovanja i deifrovanja poruka kao to je prikazano na slici 7. Tajni klju se esto
naziva i privatni klju koji se ne sme davati licima koji nisu ovlaeni za pristup sistemu.
U ovakvom sistemu esto se praktikuje razmena kljua putem specijalnih kanala:
kurirom, pismom ili slinim metodama. Treba naglasiti da ove metode razmene mogu biti
izloene socijalnim napadima.
Glavni nedostaci ovakvog sistema jeste to to svaka osoba koja koristi sistem mora
da poseduje klju. U sistemu postoji mrea korisnika koja komunicira zatienim
kanalima upotrebom simetrinog ifrovanja ali glavni problem se javlja u razmeni i
kontroli kljueva tanije koje lice koristi koji klju za ifrovanje.
ifrovanje se najee obavlja u blokovima ili protono (engl. stream). Kod blok
ifri podaci se obrauju blok po blok, tj. uzimaju se blokovi od vie bitova (64, 128, 192,
256 ...) pa se enkriptuju kao celina. Kada je re o protonim (stream) iframa, ifrovanje se
vri nad jednim bitom (bit po bit), odnosno bajtom (bajt po bajt).
Standardni simetrini algoritmi koji se danas koriste su: AES, DES, 3DES, IDEA,
RC, CAST, BLOWFISH.

Slika 8: Asimetrini algoritam ifrovanja


Asimetrini algoritmi koriste iste metode ifrovanja i deifrovanja podataka kao
kod simetrinih algoritama, s tim to, ovi algoritmi za proces ifrovanja i deifrovanja
podataka koriste javni i privatni klju. Javni klju koristi poiljalac (Alice koristi Bobov
javni klju) za ifrovanje poruke dok se privatni klju (Bobov tajni klju) koristi za
deifrovanje iste (slika 8.). Javni klju (eng. public key) moe biti javnog karaktera, ali isto
tako moe biti tajna za sve izuzev dva uesnika u vezi. Privatni klju (eng. Private key) je
tajan i poznat je samo primaocu poruke ili vlasniku. Ukoliko oba kljua dospeju u ruke
treeg lica, ifarski sistem se smatra nepouzdanim i ne moe garantovati tajnost poruke.
1

http://java.boot.by/scea5-guide/ch08s02.html

- 13 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Najpopularniji sistemi koji se danas koriste su: RSA, ECC, DIFFIE-HELLMAN,


EL Gamal.
Uglavnom simetrini algoritmi su po svojoj prirodi bri tj. njihova implementacija
na raunare se bre odvija od same implementacije asimetrinih algoritama. Zbog svoje
brze implementacije kao i procesu kriptovanja podataka, velika je primena simetrinih
algoritama. Sa druge strane, zbog nekih prednosti asimetrinih algoritama u praksi se obe
vrste algoritama koriste u cilju bolje zatite podataka.
4 AES algoritam
AES [7] (Advanced Encryption Standard) je simetrini kriptografski algoritam koji
je odabran od NIST (eng. National Institute of Standards and Technology) organizacija iz
SAD kao novi standard za ifrovanje podataka. Izvorni naziv AES algoritma je Rijndael
algoritam predloen od Belgijskih kriptografa: Joan Daeman i Vincent Rijmen, kao
standard razvijen je da bi zamenio DES ija sigurnost u dananje vreme nije dovoljna. Sam
Rijndael algoritam je razvijen tako da je mogue ifrovanje podataka u blokovima
informacija razliitih duina (128, 192 i 256 bit) i sa razliitom duinom kljua (128, 192 i
256 bit). Sa druge strane, DES (Data Encryption Standard) algoritam koristi duinu kljua
(56-bita) gde je proces ifrovanja i deifrovanja podataka znatno vei i zahtevao je veliku
procesorku mo raunara. AES algoritam je tkz blok-ifra koja koristi isti enkripcijski
klju u procesu ifrovanja i deifrovanja podataka koja se primenjuje u nekoliko iteracija
(rundi). Iteracija ili runda odnosi se na nain na koji algoritam menja podatke. Tako da u
dananje vreme, u zavisnosti od odabira duine enkripcijskog kljua, uobiajno takvih
runda bude 10,12 i 14 za veliinu kljua 128,192 i 256 bita.
Glavne karakteristike koje su uticale na odabir ovakvog algoritma je velika brzina i
smanjena korienost operativne memorije u procesu ifrovanja i deifrovanja, tako da u
dananje vreme, AES algoritam se u irokom spektru hardvera koristi od 8-bitnim
pametnim karticama pa sve do Mainframe raunara visokih performansi.
4.1 Realizacija ifrovanja u AES algoritmu
Kao to je napomenuto, AES algoritam je tkz blok-ifra koja koristi isti enkripcijski
klju u procesu ifrovanje i deiforvanje podataka koja se primenjuje u nekoliko iteracija
(rundi). AES ima 10 rundi a svaka runda se sastoji od 4 operacija odnosno etri razliita
tipa funkcija koja se primenjuju nad elementima matrice dimenzija 4x4 bajta, a to su:
1. SubBytes (nelinearna zamena bajtova pomou supstitucione tabele).
2. ShiftRows (promena mesta bajtova unutar istog reda).
3. MixColumns (transformacija bajtova unutar iste kolone).
4. AddRoundKey (inicijalno dodavanje kljua).
Pre prve runde vri se inicijalno dodavanje kljua (AddRoundKey), a u poslednjoj
rundi se izostavlja transformacija MixColumns.
U Rijindael algoritmu sve operacije sabiranja i mnoenja se vre nad elementima
konanog polja od = elemenata, gde m predstavlja prirodan broj. Navedena konana
polja se predstavljaju oznakom ( ) i nazivaju se Galoa (Galois Field), u ast
francuskog matematiara (variste Galois) od 256 elemenata (u oznaci (28 )).

- 14 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

4.1.1 Funkcije koje se realizuju u procesu ifrovanja


SubBytes vri nelinearnu zamenu bajtova ulazne poruke pomou suspstitucione stabele (S- box tabela). U toku kreiranja supstitucione s-tabele, vrednost ulaza x (x= 0
255) se dobija u dva koraka:

odreivanje inverzne vrednosti ulazne veliine = 1 pomou


logaritamske i antilogaritamske tabele, prema prethodno opisanom
mehanizmu.

vrednost datog ulaza supstitucione s-tabele se dobija odreivanjem


vrednostima svakog bita i unutar bajta (0 < 8).

ShiftRows je funkcija koja obavlja operacije nad elementima u redovima matrice


podataka dobijene nakon nelinearne transformacije pomou s-tabele. Rotacija bajtova
unutar istog reda matrice je prikazana na slici 9.

Slika 9: Rotacija elemenata unutar istog reda


Pravilo po kome se vri promena mesta bajta unutar istog reda matrice je prikazana
sledeim izrazom:
, = ,[+(,)]
MixColumns je funkcija koja se izvrava nakon realizacije funkcije ShiftRows i
vri transformaciju bajtova unutar iste kolone matrice. Transformacija elemenata kolone
matrice je prikazana na slici 10.

Slika 10: Transformacija elemenata kolone matrice

- 15 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Elementi kolone matrice se posmatraju kao koeficijent polinoma, pri emu svaki koeficient
predstavlja elemenat konanog polja (28 ) koji se mnoe sa konstantnim polinomom
() = 03 3 + 01 2 + 01 + 02 po modulu 4 + 1.
AddRoundKey je funkcija koja vri operacije eksluzivne disjunkcije nad
elemenata matrice, dobijene nakon izvrenja funkcije MixColumns, i matricom
odgovarajueg dela ekspandovanog kljua.
4.1.2 Funkcije koje se realizuju u procesu deifrovanja
Funkcije koje se realizuju u procesu deifrovanja podataka se odvijaju po istom
algoritmu kao i ifrovanje, jedina razlika je u tome to se umesto SubBytes, ShiftRows i
MixColumns koristi njohova inverza.
InvSubBytes vri nelinearnu transformaciju ulazne matrice dimenzije 4x4 bajta
koja se izvrava pomou inverzne supstitucione s-tabele. U toku kreiranja inverzne
susptitucione s-tabele vrednost za svaki od ulaza ( = 0 255) se odreuje u dva
koraka:

transformacija vrednosti ulaznog bajta x se


vrednosti svakog bita i unutar bajta (0 < 8):

realizuje odreivanjem

= (+2) 8 (+5) 8 (+7) 8


: = { },

vrednost ulaza x u inverznoj supstitucionoj tabeli se dobija kao rezultat


inverzne transformacije prethodno dobijene vrednosti = ()1.

InvShiftRows je funkcija koja obavlja operacije nad elementima u redovima


matrice podataka dobijene nakon prethodno obavljene transformacije. Inverzna rotacija
bajtova unutar istog reda matrice je prikazana na slici 11.

Slika 11: Inverzna rotacija elemenata unutar istog reda

- 16 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Pravilo po kome se vri promena mesta bajta unutar istog reda matrice je prikazana
sledeim izrazom:
,[+(,)] ,
InvMixColumns je funkcija koja se izvrava nakon realizacije funkcije
InvShiftRows i vri transformaciju elemenata unutar iste kolone matrice.
AddRoundKey je funkcija koja vri sabiranje po modoleu dva elemenata matrice,
dobijene nakon izvrenja funkcije InvMixColumns, sa odgovaravajuem delom kljua za
deifrovanje.
5 Eksperimentalno okruenje
Jedno eksperimentalno okruenje se sastoji od hardverske platforme,
virtualizacione platforme i softverskih alata. U daljem tekstu bie objanjene svaka od njih
pojedinano.
5.1 Hardverska platforma
Hardver koji je korien u ovakvom vidu eksperimentalnog testiranja je relativno
nov raunar zadovoljavajuih performansi:

Intel Core i7-950 Processor (8M Cache, 3.06 GHz, 4.80 GT/s Intel QPI)

Intel X58/ICH10R Chipsets

Kingston 6GB DDR3 1600MHz

WD Caviar Blue 500GB SATAII 16MB Cache 3.5"

- 17 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

5.2 Softverski paketi


U ovom delu rada napomenue se i objasniti softverski paketi koji su korieni u
analizi kao i PHP Web aplikacija koja predstavlja bitan faktor u realizaciji
eksperimentalnog testiranja. Softverski paketi koji su korieni u realizaciji
eksperimentalnog testiranja:

MySQL sistem za upravljanje bazom pdoataka

SQLite3 sistem za upravljanje bazom podataka

Aplikativni server (Zend Server CE)

PHP Web aplikacija

5.2.1 MySQL sistem za upravljanje bazom podataka


MySQL [1] (My Structured Query Language) sistem za upravljanje bazama
podataka (SUBP) je jedan od najpopularnijih open source (otvorenog koda) sistema na
Linux platformi i ini jednu od osnovnih komponenti za razvoj Web aplikacija. Sistem
omoguava da uvate podatke, da im pristupate i da ih organizujete na najbolji mogui
nain. Pri tome, SUBP moe da slui u organizaciji podataka i to od nivoa liste podataka,
pa sve do velike kolekcije tabela sa milionskim brojem zapisa. Danas veina programskih
jezika poseduju biblioteke za pristup bazi podataka MySQL. Dodatno, postoji Open
Database Connectivity (ODBC) interfejs pod nazivu MyODBC koji dozvoljava pristup
bazi podoataka za one programske jezike koje imaju podrku ODBC interfejsa, kao to su:
ASP i ColdFusion. Osim na Linux platformi ovaj sistem ima podrku i za AIX, BSD, Mac
OS X, QNX, IRIX, Novell NetWare, OpenBSD, OS/2, Solaris, SunOS, SCO sisteme i
Microsoft Windows operativne sisteme.

Slika 7: MySQL Sistem za upravljanje bazom podataka

Budui da je MySQL primarno relacioni sistem za upravljanje bazom podataka


Relational database management system (RDBMS) uz njega ne dolazi grafiki interfejs,
odnosno alat koji omoguava korisniku lako administriranje i upravljanje bazom podataka.
Uz ovaj softverski paket korisnici mogu da koriste Command Line Interface (CLI) alat ili
da preuzmu druge alate razvijene za administraciju i upravljanje podataka meu kojima se
nalaze: MySQL Query Browser, MySQL Workbench, Navicat, dbForge itd. Ovi alati
korisniku omoguavaju lakou administriranja i upravljanje bazom podataka, vizualni uvid
u rezultate izvrenih upita ili skripti.

- 18 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Glavne karakteristike koje ine MySQL posebnim su:

open source - Dostupan je na internetu a i pritom je besplatan. Ovo je veliki


kontrast drugim komercijalnim sistemima za baze podataka kao to su: Oracle, MS
SQL, Informix itd, kreiranih od strane velikih kompanija koji su pri tome i veoma
skupi.

brzina - Svaki od sistema za upravljanje bazom podataka poseduju podruja u


kojima se posebno istie. Od strane trita, priznato je da su odgovori MySQL
sistema bri nego kod drugih sistema. Upravo zbog brzine, MySQL je sistem izbora
za Web aplikacije, gde se zbog velikog saobraaja zahteva i velika brzina.

SQL orjentacija - MySQL sistem podrava Structuder Query Language (SQL),


najkorieniji jezik za definisanje i korienje podataka.

lakoa upotrebe - MySQL sistem je relativno mali sofverski paket koji ne zauzima
veliku koliinu prostora kao drugi SUBP. Razvoj ovakovog sistema fokusirana je
na iroku i laku upotrebljivost, gde se u paket ubacuju samo neophodne funkcije.
Ovim MySQL ini lakim za razumevanje, lakim za instaliranje, podeavanje i
administriranje.

ubrzani razvoj - Savremeni dodaci sistema za bazu podataka MySQL ukljuuju


podrku za transkacije, replikaciju, tekstualno pretraivanje i RAID fajl sisteme.

Takoe, od verzije 5.1 MySQL sistem [8] podrava i:

ogranienja na nivou kolone

particionisanje baze

XML funkcije

load emulator (podrka za simulaciju upotreba baze sa izvetajima o


performansama)

zakazivanje akcija (eng. event sheduling)

online bekap

replikaciju klastera i fail-safe replikaciju

MySQL sistem za upravljanje bazom podataka je primenjen u vie razliitih informacionih


sistema od kojih su najpoznatiji:

Facebook (on-line drutvena mrea sa preko sedam stotina i pedeset miliona


aktivnih korisnikih naloga meseno)

You Tube

Wikipedija (on-line enciklopedia sa nekoliko stotina miliona pregleda i nekoliko


miliona izmena u toku dana)

CNET Networks

i dr.

- 19 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Glavni nedostaci MySQL sistema u toku razvoja su bili nedostatak relacionih


funkcionalnosti, podrke za ACID i tretiranje NULL vrednosti. Meutim, poev od verzije
5 MySQL predstavlja funkcionalan i stabilan sistem za upravljane baze podataka u kome
su reeni predhodno napomenuti nedostaci. Ovakav ozbiljan i besplatan sistem je dodatni
razlog zato je ovaj sistem odabran kao primarni softverski paket za eksperimentalno
tesitranje. Verzija koja se koristi je MySQL Server 5.6.12.
5.2.2 SQLite3 sistem za upravljanje bazom podataka
SQLite [9] je relacioni sistem za upravljanje bazom podatka sadran u relativno
maloj C programskoj datoteci. Programski kod SQLite-a je zasnovana na open source
principu. To znai da se programski kod moe modifikovati, kopirati, objaviti i distribuirati
za bilo koju komercijalnu ili nekomercijalnu svrhu. Za razliku od klijent-server SUBP
sistema za upravljanje bazom podataka, SQLite nema odvojen proces sa kojim aplikacija
komunicira. Umesto toga, SQLite biblioteka je povezana i na taj nain postaje sastavni
deo aplikacije.

Slika 8: SQLite relacioni sistem za upravljanje bazom podataka

Primena SQLite-a je prilino iroka i kao primere za korienje, naveemo sledee


poznate aplikacije: Mozilla Firefox, Mozilla Thunderbird, Opera, Apple iOS, Nokia
Meamo, Google Android, BlackBerry, Symbian OS i dr.
Jedna od dobrih osobina koje prua SQLite jeste i mogunost integracije sa razliitim
programskim jezicima kao to su: Java, C#, C++, Common Lisp, PHP, Perl, C, Ruby,
Python, Smalltalk, BASIC, newLisp, Objective-C. Aplikacija implementira najvei deo
SQL-92 specifikacije. Nedostatak ovakvog sistema jeste delimina podrka za triggere,
nemogunost auriranja pogleda, nemogunost izmene ili biranja kolona. U procesu rada
sa SQLite bazom podataka jeste veliki broj procesa moe da pristupa radi itanja podataka
iz baze, dok kod procesa upisivanja moe da se izvrava samo po jedan proces. U
suprotnom javie se greka. Za razliku od poznatih sistema za upravljanje bazom podataka,
SQLite nema podrku administracije odnosno Zero configuration. Za CRUD operacije
SQLite se pokazao brim u odnosu na klijent/server baze podataka. Isporuuje se sa
samostalnim interfejsom komandne linije (CLI) koji moe da se koristi za administraciju
baza podataka.
Transakcije su atomine, konzistentne, izolovane i trajne (ACID) i nakon pada sistema ili
nestanka napajanja.
Postoji iroki broj grafikih alata za upravljanje ovom bazom. Neke od najpopularnijih
alata su:

sqliteexpert - je alat koji omoguuje: kreiranje baze, pregled i promene parametara,


online backup baze, upravljanje tabelama, upravljanje pogledima, Copy/Paste
zapamenih podataka i jo puno toga.
- 20 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

aqliteadmin - moan alat za lake kreiranje i upravljanje bazom. Fleksibilnost,


bogata jezika podrka i solidne karakteristike odlikuju ovaj grafiki alat.

sqliteman - najkoriceniji GUI alat


administratorima i developerima

SQLite Studio - alat koji takoe ima zanimljive karakteristike: podrka za UTF-8,
jednostavan GUI, fleksibilnost i lokalizacija, podrka open source licence, podrka
za full feature SQLite3 i SQLite2, eksportovanje velikog broja formata i dr.

aSQLiteManager - android aplikacija za upravljanje SQLite-om

na svetu

za SQLite3, namenjen

SQLite sistem za upravljanje bazom podataka se primenjuje u velikom broju informacionih


sistema kao to su:

Web primena - podrava sajtove male ili srednje veliine

Interne ili privremene baze podataka - esto se za aplikacije koji imaju veu
koliinu podataka trae razliita sortiranja. Ovo je esto lake i bre obaviti tako to
se podaci ubace u SQLite i sortiranje obavi sa upitima, spojevima i ORDER BY
klauzulama

Radi dobro kao zamena za funkcije koje slue za: otvaranje fajlova -fopen(), itanje
iz fajla -fread() i upis u fajl -fwrite()

Poto SQLite radi sa malo ili nimalo administracije pogodan je za ureaje i usluge
koje rade bez nadzora i bez ljudske pomoi

Nije preporuljiv u korienju sa velikim internet stranicama, klijent/server


aplikacijama ili kada postoji veliki broj konkurentnih procesa. Iako SQLite
podrava ove procese, sa velikim brojem konkurentnih procesa nastae i veliki broj
greaka koje se javljaju pri pokuaju da izvri veliki broj procesa upisa u bazu

SQLite je idealni besplatni sistem za upravljanje bazama podataka u situacijama


kada je potrebna sigurnost i ne oekuje se veliki broj upisa u bazi. Korienje SQLite-a je
prilino jednostavno, a mogunost integracije sa razliitim programskim jezicima sa
kojima ste ve navikli da radite moe uiniti ovaj posao znatno lakim. Odlino radi kao
format datoteke u desktop aplikacijama kao to su alati za finansijske analize, CAD paketi,
evidentiranje programa i sl.
5.2.3 Aplikativni server (Zend Server CE)
Zend Server CE (Zend Server Comunitie Edition) predstavlja jedan od popularnih
aplikativnih servera open source (otvorenog koda) koji je razvijen od istoimene
kompanije Zend. Sistem omoguava korsiniku jednostavno instaliranje i upotrebu, prua
osnovne performanse optimizacije i manipulisanje PHP aplikacija, zatim korienje
Apache HTTP servera, Zend Framework i PHP skripti u razvojne svrhe Web aplikacija.
Ovakav sistem dostupan je na Macintosh platformi dok je na Windows i Linux platformi
dostupan na: Red Hat Enterprise, CentOS, Fedora Core, Oracle Enterprise, Debian i
Ubuntu, zatim dostupan na: Microsoft Windows Server 2003/2008, Windows XP, Vista i
Windows 7 operativnim sistemima.

- 21 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 8: Zend Server CE - aplikativni server

Osnovne karakteristike koje ine Zend Server CE posebnim su:

besplatan i sertifikovan - Zend Server CE je sertifikovan od strane kompanije


Zend koji obuhvata najnovije ispravke greaka za bezbednost i performanse
softvera, a pritom je i besplatan.

lakoa instalacije i upotrebe - Sistem omoguava automatizovan instaler koji


brine o instaliranju i konfigurisanju komponenti (PHP, Apache i Zend Framework )
za svoj sistem, bez potrebe da preuzimate i instalirate pakete odvojeno.

administratorska konzola - Zend Server CE dolazi sa integrisanom


administratorskom konzolom koja se moe pristupiti preko Web pretraivaa.
Konzola omoguava preglednost i mogunost konfigurisanja: Apache, PHP servisa
i operativni status servera i sl.

Pri tome, sistem u sebi sadri dodatne razvojne alate [10], kao to su:

Zend Optimizer+ - koji ubrzava izvrenje skripti preko operacionog koda keiranje.

Zend Data Cache - skup funkcija koja ubrzava pristup podacima preko keiranja.

Zend Debugger - funkcionalna skripta za otklanjanje greaka.

Zend Java Bridge - to omoguava korienje Java aplikacija iz PHP skripti.

Od verzije 5 Zend Server CE pokazao se jako stabilnim i funkcionalanim sistemom za


upotrebu u razvojne svrhe Web aplikacija.
Zend Server CE poseduje Apache HTTP server [12] open source (otvorenog
koda) iji je proizvod Apache Software Foundation i predstavlja jedan od najpopularnijih
Web servera koji se koristi u razvojne svrhe Web aplikacija. Prema poslednjim podacima
iz 2012. zabeleeno je da je ovaj softver opsluivao 64.91% svih sajtova na internetu.

- 22 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 9: Klijent-server arhitektura


Primarna uloga Web servera je da oslukuje na portu 80 (predstavlja
podrazumevani port za HTTP protokol), gde na dobijeni zahtev klijenta pronalazi traeni
dokument (sadraj nekog fajla ili sam fajl i sl.), zatim poalje klijentu ili u sluaju da
traeni dokument ne postoji klijentu poalje obavetenje o datoj greci. Ovakav scenario
predstavlja osnovnu funkcionalnost Web servera.
Jedan od dodatnih alata koju omoguava Apache HTTP server je ab benchmarking tool2 (ApacheBench) koji je korien u realizaciji eksperimentalnog
testiranja (ukupnih i paralelnih broja HTTP zahteva). ApacheBench (AB) je alat koji slui
za merenje performasi HTTP Web servera i kao deo Apache programa alat je besplatan i
originalno je dizajniran da prikae koliko je zahteva u sekundi server u stanju da izvri.

Slika 10: ApacheBench komanda


Na slici 10 moemo videti primer AB funkcije koja se koristi za merenje
performansi HTTP Web servera. Sam ApacheBench alat prua i dodatne opcije odnosno
funkcije koje omoguavaju korisniku nain na koji eli da izvri merenje performansi
servera.
Neke
zahteva su:

od opcije koje su koriene u testiranju ukupnih i paralenih broja HTTP


-n (ukupan broj zahteva za izvrenje)
-c (ukupan broj zahteva za izvrenje u jednoj sesiji)
-k (izvrava vie zahteva u okviru jedne HTTP sesije)

http://httpd.apache.org/docs/2.0/programs/ab.html

- 23 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 11: ApacheBench (AB) merenje performansi servera


Na slici 11 moe se videti primer merenja performansi Web servera koristei
funkciju koja je prikazana u prethodnom primeru gde se alje 2000 zahteva u jednoj sesiji.
U ovom sluaju simulira se 2000 zahteva i alje se serveru, zatim eka se na odgovor
servera. Ono to se meri je vreme za koje e server da obradi poslate zahteve. U sluaju da
obrada zahteva nije uspela, prikazae se broj neobraenih zahteva (eng. Failed requests).

- 24 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

5.2.4 ZendGuard (aplikacija za ifrovanje PHP izvornog koda)


Razvojem i komercijalizacijom Web aplikacija, zatita izvornog programskog koda
postala je kljuan faktor u radu softverske industrije. U tu svrhu razvijene su razne tehnike
kojima se programski kod moe uiniti neitljivim ljudima. Jedan od popularnih metoda za
skrivanje izvornog koda programa je Obfuskacija. Obfuskacija je kodiranje (ne
enkripcija) programskog koda, u cilju smanjenja vidljivosti. Cilj je da se to vie smanji
smisao napisanog koda menjanjem imena promenjivih, funkcija, klasa itd. U sluaju Web
aplikacija koje su pisane u PHP programskom jeziku, najee korieno reenje je
ZendGuard, koji pored Obfuskacija, delimino kompajlira programski kod u takozvani
bytekod.

Slika 12: ZendGuard v6.0 aplikacija za ifrovanje PHP izvornog koda


ZendGuard [11] predstavlja jedan od popularnih aplikacija za skrivanje izvornog
programskog koda u sluaju korienja PHP-a. Ovaj alati nije besplatan a razvijen je od
istoimene kompanije Zend (dostupan je kao trial verzija u trajanju od nekoliko dana),
obezbeuje dovoljan broj metoda za skrivanje programskog koda koji poveava nivo
sigurnosti PHP-a na maksimum. Na ovaj nain onemoguavaju se neeljeni upadi u delove
aplikacije ali se i sam izvorni kod titi od kopiranja (nisu sve aplikacije otvorenog i
besplatnog koda), ime je onemoguena njegova nelegalna upotreba. Ovakav sistem
omoguava jednostavno instaliranje i upotrebu, a dostupan je na Macintosh platformi dok
je na Linux i Windows platformi dostupan na: Ubuntu, Fedora, Oracle Enterprise, Debian i
dr, zatim dostupan na: Microsoft Windows Server 2003/2008, Windows XP, Vista i
Windows 7 i 8 operativnim sistemima.
ZendGuard obuhvata tri glavne funkcije koje obezbeuju sloj zatite za PHP
aplikacije:

Kodiranje - (encoding) pretvara PHP izvorni kod neitljivim za ljude i sakriva


binarne datoteke koje su nezavisne od same platforme programskog koda Zend
aplikacije. Omoguava distribuciju web aplikacija ili internet stranica pisane u
PHP-u koje su dostupne korisicima irom sveta sa prisustvom skrivenog izvronog
koda.

Obfuskacija - omoguava skrivanje izvornog PHP koda i poboljava sigurnost


protiv napada. ZendGuard omoguava korisniku da odabere specifine vrste
zatite Obfuskacije: zatita funkcija, klasa, internih PHP funkcija i PHP varijable.

Generisanje kljueva - ZendGuard omoguava korisnicima da genereu licencni


klju koji je neophodan za pristup skrivenog izvornog PHP koda. Ovim

- 25 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

postupkom se zatiuju sva prava modifikovanja, umnoavanja i korienja


vlasnika aplikacija.
ifovanje pomou ZendGuard aplikacije omoguava programerima da kodiraju
svoju PHP skriptu u bilo kom trenutku u toku procesa razvoja aplikacije. to je jo vanije,
omoguava kodiranje (encoding) izvornog koda aplikacije pre njene distribucije ili
izdavanja.
ZendGuard optimizuje, obezbeuje sigurnost i licencira PHP izvorni kod aplikacije
i to:

Ubrzava proces rada - ZendGuard omoguava optimizaciju ifrovanja PHP


skripti, to dovodi do breg izvrenja i smanjuje optereenje CPU (procesor)
servera.

Neitljiv izvorni kod - fajlovi su kodirani u neitljivom formatu.

Zahteva vaeu dozvolu (korisniki podesiv) - fajlovi se mogu kodirati na nain


da se zahteva od korisnika odgovarajua dozvola (licenca datoteke ogranienja).

Datum isteka (korisniki podesiv) - fajlovi se mogu kodirati na nain da se


zahteva od korisnika unos njegovog isteka na odreenom vremenskom periodu.

Kreiranje kodiranog reima (korisniki podesiv) - Only Mode koji


omoguava da se veliki broj fajlova kodira iskljuivo pomou fajla koji u sebi
sadri jedinstveni digitalni potpis.

Veliki problem koji se javlja kod PHP skripte sa AES ifrovanjem je pristup
privatnog kljua koji je vidljiv u izvornom kodu same aplikacije i vidljiv korisniku. Da bi
spreili nelegalni pristup bitnim podacima i samog kljua, za takvu svrhu koriena je
ZendGuard aplikacija za ifrovanje PHP aplikacije pomou koje se vrilo eksperimentalno
testiranje razliitih sistema za upravljanje bazom podataka. Kako bi omoguili ifrovanje
PHP skripti pomou ZendGuard aplikacije. U daljem tekstu bie objanjen korak
realizacije.

- 26 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 13: ZendGuard v6.0 - kreiranje novog projekta


Da bi se zapoelo ifrovanje PHP skripti, moramo da kreira novi projekat na kome
emo da vrimo ifrovanje kao to je prikazano na slici 13.

Slika 14: ZendGuard v6.0 - podeavanje novog projekta


U toku kreiranja novog projekta moramo da unesemo informacije u odgovarajua
polja kao to su: Project name, product name, priduct version i output location (slika 14).

- 27 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 15: ZendGuard v6.0 - odabir PHP foldera za ifrovanje


Nakon konfiguracije projekta, u ovom delu se podeava putanja foldera u kojem se
nalaze PHP fajlovi pripremljeni za ifrovanje. U naem sluaju, svi fajlovi su smeteni u
folder pod imenom Encoding.

Slika 16: ZendGuard v6.0 odabir verzije PHP programskoj jezika


Od korisnika se zahtevaju odreena podeavanja PHP programskog jezika.
Moemo primetit da ZendGuard podrava i veliki broj PHP ekstenzija koji se mogu
koristiti u procesu ifrovanja, a to su: php, php3, php4, inc, phtml (slika 16). U ovom radu,
koriten je PHP programski jezik v5.4.

- 28 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Slika 17: ZendGuard v6.0 zavreno kreiranje projekta i poetak ifrovanja


Od ovog trenutka, na novokreirani projekat pod imenom EncodingPHPcode je
spreman za ifrovanje (slika 17). Aplikacija ima veliki broj podeavanja od kojih su: XML
editor, Security, konfigurisanje postojeeg projekta itd.

Slika 18: ZendGuard v6.0 - ifrovan prikaz PHP izvornog koda


Nakon kreiranja projekta, podeavanja i zavrenog ifrovanja moemo primetiti da
smo uspeno ifrovali PHP aplikaciju koja nije itljiva, zatiena od raznih neeljenih
upada i kopiranja (slika 18). Od ovog trenutka PHP aplikacija je spremna za upotrebu u
daljem eksperimentalnom testiranju.
- 29 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

5.3 PHP Web aplikacija


U ovom delu rada predstavie se uvid u napravljenu aplikaciju za upis i izmenu
odreenog broja ifrovanih i neifrovanih podataka. U razvoju aplikacije korien je PHP
[13] (Hypertext Preprocessor) programski jezik koji je orijentisan ka Web-u ali se danas,
usled svoje popularnosti, moe koristiti i u grafikim desktop aplikacija. PHP je besplatan i
moe se koristiti na razliitim platformama ali se najee sree kod Apache Web servera
na Linux operativnom sistemu.

Slika 19: Interfejs Web aplikacije


Na slici 19. predstavljen je primer Web aplikacije koja ima za cilj da omogui
korisniku eljeni unos broja zapisa, zatim generie nasumian niz podataka koji se
pripremaju za ifrovanje (koristei AES simetrini kriptografski algoritam) i izvrava se
upis/izmena zapisa u bazi podataka. Ono to aplikacija meri jeste za koje e vreme da se
izvri upis/izmena odreenog broja ifrovanih zapisa koristei razliite verzije sistema za
upravljanje bazom podataka.
Za testiranje razliitih sistema za upravljanje bazom podataka, kreirane su tri
razliite verzije skripti i to:

PHP skripta bez ifrovanja - ova skripta generie nasumian niz bez ifrovanja
na nivou PHP-a i vri upis/izmenu odreenog broja zapisa u bazi podataka.

PHP skripta sa AES ifrovanjem - ova skripta generie nasumian ifrovani niz
pomou AES algoritma koji se generie na nivou PHP-a. Nakon generisanja, niz
se upisuje i vri izmena u bazi podataka.

PHP skripta sa AES SQL ifrovanjem - ova skripta generie nasumian


ifrovani niz pomou AES algoritma koji se generie pomou SQL upita koji se
realizuje na nivou baze podataka. Nakon generisanja, niz se upisuje i vri izmena
u bazi podataka.

Treba napomenuti da za realizaciju PHP skripte sa AES SQL ifrovanjem nad


SQLite bazom nema besplatnih implementacija. Za takvo reenje treba izdvojiti odreenu
sumu novca.
SQLite baza podataka koristi drugaiju strukturu PHP izvornog koda koji
funkcionie na isti nain. ifrovanje na strani Web aplikacije je indentian. Za testiranje
SQLite baze koristimo PHP skriptu bez ifrovanja i PHP skriptu sa AES ifrovanjem.

- 30 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

U daljem tekstu ovog rada, detaljno emo objasniti i prikazati strukturu izvornog
koda prethodno navedenih skripti. Svaka skripta ima indentian izvorni kod pisan u PHP
programskom jeziku, a razlike se primeuju u nainu ifrovanja.
5.3.1 PHP skripta bez ifrovanja
PHP skripta bez ifrovanja je pisana u PHP programskom jeziku koja ima za cilj da
izvri odreeni broj upisa i izmena nasumino generisanih podataka i belei vreme
njihovog izvrenja.
Prvi korak ove skripte je priprema generisanih podataka za upis i izmenu. Nain
upisa i izmene predstaviemo i objasniti iz nekoliko dela PHP izvornog koda.
Prvi deo izvornog PHP koda predstavlja pripremu podataka koji se koriste za upis u
bazu podataka. Da bi PHP skripta funkcionisala moramo da kreiramo odreene Variable
(polja u kojima se upisuje odreena vrednost). Vrednosti koje mi koristimo su uglavnom
odreene funkcije samog PHP programskog jezika, a moe biti i odreeni broj ili karakter
slova. Opis korienih variabli:

$Request = uniqid(); - slui za generisanje jedinstvenog privatnok ID kljua koji


uglavnom ima svrhu za lake identifikovanje broja reda upisanih podatataka u bazi.

$Pocetak = microtime(1); - poinje da meri vreme od trenutka zapoete skripte.

$total_records - odreuje broj upisa i izmena generisanih podataka.

$Col1 i $Col2 - se koriste kao polja za ubacivanje generisanih podataka koji se


koriste za upis i izmenu podataka.

$Duzina = rand(300, 400); - slui za generisanje odreene duine podataka,


tanije izmeu 300 i 400 karaktera, koji se ubacuju u variable $Col1 i $Col2.
$Request = uniqid();
$Pocetak = microtime(1);
for ($i = 0; $i < $total_records; $i++) {
$Col1 = "";
$Col2 = "";
$Duzina = rand(300, 400);
for ($x = 0; $x < $Duzina; $x++) {
$Col1 .= rand(0, 9);
$Col2 .= rand(0, 9);
}
$Upit = "INSERT INTO parent (Request, Column1, Column2)
VALUES ('$Request'
, '$Col1'
, '$Col2'
);";
}

Za generisanje odreenog niza podataka koristimo for() petlju koja generie


nasuminu duinu podataka i ubacuje u variable $Col1 i $Col2. Nakon for() petlje,

- 31 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

kreirana je variabla $Upit sa SQL funkcijom koja slui za ubacivanje prethodno


generisanih podatka $Request, $Col1 i $Col2 u tabili pod nazivom Parent. Nakon upisa u
Parent tabeli iste podatke pripremamo i za tabelu Child. Kod izgleda ovako:
$Parent_ID = mysql_insert_id($DB);
for ($j = 0; $j < 3; $j++) {
for ($x = 0; $x < $Duzina; $x++) {
$Col1 .= rand(0, 9);
$Col2 .= rand(0, 9);
}
$Upit = "INSERT INTO child (Parent_ID, Column1, Column2)
VALUES ('$Parent_ID'
, '$Col1'
, '$Col2'
);";
}
}
$Trajanje_upisa = microtime(1) - $Pocetak;
Postupak za generisanje podataka je isti, s tim to se kod Child tabele upisuju isiti
podaci i to tri puta za svaki red u Parent tabeli. Treba napomenuti da se radi o relaciji 1:N.
Jedan red u Parent tabeli je tri reda u Child tabeli. Na kraju upisa uzima se dobijeno vreme
za upis i dodeljuje se variabli $Trajanje_upis. Vreme se upisuje u tabeli InsertLog
izraeno u sekundama.
Nakon operacije upisa, zapoinje poetak izmena gde se prvo isitaju svi podaci iz
Parent i Child tabele, zatim ti podaci se smetaju u nova polja variabli koji se pripremaju
za izmenu novim generisanim podacima. Kod izgleda ovako:
$pocetak_izmena = microtime(1);
$query = "SELECT * FROM parent
WHERE Request = '$Request' ORDER BY ID ASC;";
$resultSet = mysql_query($query, $DB);
while ($row = mysql_fetch_array($resultSet)) {
$id = $row['ID'];
$rows[] = $row["Request"];
$Column1 = $row["Column1"];
$Column2 = $row["Column2"];
Vrimo isitavanje podataka iz baze koje smetamo u etiri polja odnosno variable i
to: $id, $rows, $Column1 i $Column2 koji se koriste za izmenu postojeih podataka iz
baze. Kod za izmenu podataka izgleda ovako:
for ($i = 0; $i <= sizeof($rows); $i++) {
$Duzina = rand(300, 400);
for ($x = 0; $x < $Duzina; $x++) {
$Column1 .= rand(0, 9);
$Column2 .= rand(0, 9);
}

- 32 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

$SQL = "UPDATE parent


SET Column1 = '$Column1',
Column2 = '$Column2'
WHERE Request = '$Request' AND ID = $id;";
}
U ovom delu koristimo for() petlju koja ima za cilj da generie nove podatke koje
se koriste u zaemnu starih. Nakon generisanja vri se izmena podataka u Parent tabeli
pomou SQL funkcije UPDATE.
for ($i = 0; $i < sizeof($rows); $i++) {
for ($x = 0; $x < $Duzina; $x++) {
$Column1 .= rand(0, 9);
$Column2 .= rand(0, 9);
}
$SQL = "UPDATE child SET Column1 = '$Column1'
, Column2 = '$Column2'
WHERE Parent_ID = $id;";
}
}
$Trajanje_izmena = microtime(1) - $pocetak_izmena;
U ovom delu koristimo for() petlju koji generie nove podatke, zatim smeta ih u
variable $Column1 i $Column2 koje se koriste u zameni starih. Nakon generisanja vri se
izmena podataka u Child tabeli pomou SQL funkcije UPDATE. Nakon uspene izmene
podataka u Parent i Child, belei se vreme u variabli $Trajanje_izmena. Vreme se upisuje u
tabeli UpdateLog koje je izraeno u sekundama.
5.3.2 PHP skripta sa AES ifrovanjem
PHP skripta sa AES ifrovanjem [14] je pisana u PHP programskom jeziku koja
ima za cilj da izvri odreeni broj upisa i izmena nasumino generisanih podataka i belei
vreme njihovog izvrenja. Kompletan proces ifrovanja se izvrava na nivou Web
aplikacije.
Prvi korak ove skripte je priprema AES algoritma koji slui za ifrovanje
generisanih podataka za upis. Algoritatm je besplatan (otvorenog koda) pisan u PHP
programskom jeziku. Nain upisa predstaviemo i objasniti iz nekoliko dela PHP izvornog
koda.
Prvi deo izvornog PHP koda predstavlja pripremu podataka koji se koriste za upis u
bazu podataka. Da bi PHP skripta funkcionisala moramo da kreiramo odreene Variable
(polja u kojima se upisuje odreena vrednost). Vrednosti koje mi koristimo su uglavnom
odreene funkcije samog PHP programskog jezika, a moe biti i odreeni broj ili karakter
slova. Opis korienih variabli:
$key = ""; - definisani klju slui iskljuivo za ifrovanje podataka. Jaina
ifrovanja se odreuje po jaini kljua automatski. Ukoliko je klju 32 byte-a onda
se radi ifrovanje AES od 256 bit-a.
- 33 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

$iv = ""; - definisani interval ili inicijalizacioni vektor se koristi za nain ifrovanja
podataka.
$AES = new AES_Encryption($key, $iv); - konfigurisana variabla za korienje
ifrovanja generisanih podataka.
require_once('AES/AES_Encryption.php');
require_once('AES/padCrypt.php');
$Request = uniqid();
$key = "bac09c63f34c9845c707228b20cac5e0";
$iv = "1234567890123456";
$AES = new AES_Encryption($key, $iv);
$Pocetak = microtime(1);
for ($i = 0; $i < $total_records; $i++) {
// Priprema vrednosti za tabelu Parent
$Col1 = "";
$Col2 = "";
$Duzina = rand(300, 400);
for ($x = 0; $x < $Duzina; $x++) {
$Col1 .= rand(0, 9);
$Col2 .= rand(0, 9);
}

Da bi ifrovanje funkcionisalo moramo da dodamo dva PHP fajla odnosno AES


algoritam za ifrovanje. Zatim kreiramo variable za ifrovanje i to: klju $key,
inicijalizacioni vektor $iv i $AES koji slui za dalje ifrovanje podataka. Nakon pripreme
za ifrovanje, zapoinje da se meri vreme upisa. Koristimo for() petlju koja generie
nasumian niz podataka koji se dodeljuju variabli $Col1 i $Col2.
$encrypted_1 = mysql_real_escape_string($AES->encrypt($Col1));
$encrypted_2 = mysql_real_escape_string($AES->encrypt($Col2));
$base64_encrypted_1 = base64_encode($encrypted_1);
$base64_encrypted_2 = base64_encode($encrypted_2);
$Upit = "INSERT INTO Parent (Request, Column1, Column2)
values ('$Request'
, '$base64_encrypted_1'
, '$base64_encrypted_2'
);";
Da bi se ifrovaili podaci, koristimo metod $AES->encrypt($Col1) koji po zadatom
kljuu i vektoru ifruje $Col1 i dodeljuje variabli $encrypted_1 isti postupak je i za
variablu $Col2. ifrovani podaci moraju se encodovati odnosno ifrovati dodatnom
funkcijom base64_encode koji pretvara binarni sistem u ASCII standarni string format koji
se smetaju u $base64_encrypted_1 i $base64_encrypted_2. Nakon ifrovanja podaci se
ubacuju u parent tabeli.
for ($j = 0; $j < 3; $j++) {
for ($x = 0; $x < $Duzina; $x++) {
$Col1 .= rand(0, 9);
$Col2 .= rand(0, 9);
- 34 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

}
$encrypted_1 = mysql_real_escape_string($AES->encrypt($Col1));
$encrypted_2 = mysql_real_escape_string($AES->encrypt($Col2));
$base64_encrypted_1 = base64_encode($encrypted_1);
$base64_encrypted_2 = base64_encode($encrypted_2);
$Upit = "INSERT INTO Child (Parent_ID, Column1, Column2)
VALUES ('$Parent_ID'
, '$base64_encrypted_1'
, '$base64_encrypted_2'
);";
}
}
}
$Trajanje_upisa = microtime(1) - $Pocetak;
Isti metod za ifrovanje se upotrebljava i za upis u Child tabelu. Nakon zavretka
upisa ifrovanih podataka belei se vreme u variabli $Trajanje_upisa i upisuje u tabeli
InsertLog.
Nakon operacije upisa ifrovanih podataka, zapoinje poetak izmena gde se prvo
isitaju svi podaci iz Parent i Child tabele, zatim ti podaci se smetaju u nova polja variabli
koji se pripremaju za izmenu novim generisanim podacima. Kod izgleda ovako:
$pocetak_izmena = microtime(1);
$query = "SELECT * FROM parent
WHERE Request = '$Request'
ORDER BY ID ASC;";
$resultSet = mysql_query($query, $DB);
while ($row = mysql_fetch_array($resultSet)) {
$id = $row['ID'];
$rows[] = $row["Request"];
$Column1 = $row["Column1"];
$Column2 = $row["Column2"];
Vrimo isitavanje podataka iz baze koje smetamo u etiri polja odnosno variable i
to: $id, $rows, $Column1 i $Column2 koji se koriste za deifrovanje postojeih ifrovanih
podataka iz baze. Kod za deifrovanje podataka i priprema novih izgleda ovako:
$decrypted_1 = mysql_real_escape_string($AES->decrypt($Column1));
$decrypted_2 = mysql_real_escape_string($AES->decrypt($Column2));
for ($i = 0; $i <= sizeof($rows); $i++) {
$Duzina = rand(300, 400);
for ($x = 0; $x < $Duzina; $x++) {
$decrypted_1 .= rand(0, 9);
$decrypted_2 .= rand(0, 9);
}
Isitane ifrovane podatke iz baze moraju se prvo deifrovati pomou metode
$AES->encrypt($Col1) koji po zadatom kljuu i vektoru deifruju $Col1 i dodeljuje
- 35 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

variabli $decrypted_1 isti postupak je i za variablu $Col2. For() generie nove podatke koji
se spremaju za ifrovanje i zapoinje se izmena podataka. Kod za izmenu izgleda ovako:
$new_encrypted_1 = mysql_real_escape_string($AES->encrypt($decrypted_1));
$new_encrypted_2 = mysql_real_escape_string($AES->encrypt($decrypted_2));
$new_base64_encrypted_1 = base64_encode($new_encrypted_1);
$new_base64_encrypted_2 = base64_encode($new_encrypted_2);
$SQL = "UPDATE parent SET Column1 = '$new_base64_encrypted_1'
, Column2 = '$new_base64_encrypted_2'
WHERE Request = '$Request' AND ID = $id;";
}
Metod ifrovanja je indentian kao i kod upisa. Novo ifrovani podaci se smetaju u
variabli $new_base64_encrypted_1 i $new_base64_encrypted_2 koji su spremni za izmenu
podataka u tabeli Parent.

for ($i = 0; $i < sizeof($rows); $i++) {


for ($x = 0; $x < $Duzina; $x++) {
$decrypted_1 .= rand(0, 9);
$decrypted_2 .= rand(0, 9);
}
$new_encrypted_1 = mysql_real_escape_string($AES->encrypt($decrypted_1));
$new_encrypted_2 = mysql_real_escape_string($AES->encrypt($decrypted_2));
$new_base64_encrypted_1 = base64_encode($new_encrypted_1);
$new_base64_encrypted_2 = base64_encode($new_encrypted_2);
$SQL = "UPDATE child SET Column1 = '$new_base64_encrypted_1'
, Column2 = '$new_base64_encrypted_2'
WHERE Parent_ID = $id;";
}
}
$Trajanje_izmena = microtime(1) - $pocetak_izmena;
U ovom delu koristimo for() petlju koja generie nove podatke, zatim smeta ih u
variable $decrypted_1 i $decrypted_2 koji se ifruju i dodeljuju variabli $new_encrypted_1
i $new_encrypted_2. Zatim, encoduju se i smetaju u $new_base64_encrypted_1 i
new_base64_encrypted_2 koji se koriste u zameni starih podataka. Nakon generisanja vri
se izmena podataka u Child tabeli pomou SQL funkcije UPDATE. Nakon uspene izmene
podataka u Parent i Child, belei se vreme u variabli $Trajanje_izmena. Vreme se upisuje u
tabeli UpdateLog koje je izraeno u sekundama.

- 36 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

5.3.3 PHP skripta sa AES ifrovanjem pomou SQL upita


PHP skripta sa AES ifrovanjem [15] pomou SQL upita je pisana u PHP
programskom jeziku koja ima za cilj da izvri odreeni broj upisa i izmena nasumino
generisanih podataka i belei vreme njihovog izvrenja. Kompletan proces ifrovanja se
izvrava na nivou baze podataka.
Prvi korak ove skripte je priprema AES algoritma koji slui za ifrovanje
generisanih podataka za upis. Algoritatm je besplatan (otvorenog koda) pisan u PHP
programskom jeziku. Nain upisa predstaviemo i objasniti iz nekoliko dela PHP izvornog
koda.
Prvi deo izvornog PHP koda predstavlja pripremu podataka koji se koriste za upis u
bazu podataka. Da bi PHP skripta funkcionisala moramo da kreiramo odreene Variable
(polja u kojima se upisuje odreena vrednost). Vrednosti koje mi koristimo su uglavnom
odreene funkcije samog PHP programskog jezika, a moe biti i odreeni broj ili karakter
slova.
Napomenuli smo da su PHP skripte indentine u generisanju podataka ali se
razlikuju u nainu ifrovanja. U ovom delu rada prikazae se i objasniti nain ifrovanja.
Kod koji se koriti za ifrovanje je:
$Upit = "INSERT INTO parent (Request, Column1, Column2)
values ('$Request'
, AES_ENCRYPT('$Col1','$key')
, AES_ENCRYPT('$Col2','$key')
);";
Za razliku od PHP skripte sa AES ifrovanjem na strani Web aplikacije, ova skripta
vri ifrovanje direktno u bazi podataka. Jedino to se priprema na nivou Web aplikacije
jesu podaci koji se spremaju za ifrovanje. MySQL Server ima u sebi podrku za AES
enkripcijom odnosno funkcija koja se koristi u SQL upitu. Funkcija koja koristi generisane
podatke smetene u $Col1 i $Col2 i klju $key pomou koga se ifruju podaci je
AES_ENCRYPT('$Col1','$key'). Funkcija uzima podatke, zatim ifruje ih zadatim kljuem
i direktno smeta podatke u tabeli Parent.
$Upit = "INSERT INTO child (Parent_ID, Column1, Column2)
VALUES ('$Parent_ID'
, AES_ENCRYPT('$Col1','$key')
, AES_ENCRYPT('$Col2','$key')
);";
Slian postupak ifrovanja se ponavlja i kod upisa u tabeli Child. Nakon zavretka
belei se vreme i upisuje u tabeli InsertLog.
Nakon operacije upisa ifrovanih podataka, zapoinje poetak izmena gde se
prilikom isitavanja ifrovanih podataka deifruju iz Parent i Child tabele, zatim ti podaci
se smetaju u nova polja variabli koji se pripremaju za izmenu novim generisanim
podacima. Kod za deifrovanje izgleda ovako:

- 37 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

$pocetak_izmena = microtime(1);
$query = " SELECT ID
, Request
, AES_DECRYPT(Column1, '$key') AS Column1
, AES_DECRYPT(Column2, '$key') AS Column2
FROM parent
WHERE Request = '$Request' ORDER BY ID ASC;";
Podaci se deifruju ugraenom SQL funckijom MySQL Server-a AES_DECRYPT
koji koristi klju za deifrovanje podataka iz polja Column1 u tabeli Parent. Zatim,
smetaju se u odreene variable koje se koriste za ifrovanje.
$SQL = "UPDATE Parent SET Column1 = AES_ENCRYPT('$Column1','$key')
, Column2 = AES_ENCRYPT('$Column2','$key')
WHERE Request = '$Request' AND ID = $id;";
U samoj izmeni podataka, direktno se vri i ifrovanje pomou funkcije
AES_ENCRYPT koji koristi klju $key za ifrovanje i polje odnosno variablu $ Column1 i
Column2.
$SQL= "UPDATE Child SET Column1 = AES_ENCRYPT('$Column1','$key')
, Column2 = AES_ENCRYPT('$Column2','$key')
WHERE Parent_ID = $id;";
Slian postupak je i kod izmene podataka u tabeli Child gde se direktno ifruju
novo kreirani podaci. Nakon ifrovanja, belei se vreme izmena podataka koji se dodeljuju
variabli $Trajanje_izmena koji se upisuje u tabeli UpdateLog.

- 38 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

5.3.4 Tabele baze podataka


Da bi se omoguio pravilan rad Web aplikacije, neophodno je prisustvo sledeih
softverskih alata:
Apache Web Server koji je korien za pokretanje Web aplikacije na razliitom
Web browseru odnosno Web pretraivau (Google Chrome, Firefox, Safari itd.) koji
omoguava pregled i funkcionalnost same aplikacije (slika 9).
MySQL Server i SQLite alati nad kojim je vreno eksperimentalno testiranje i
koji slue za skladitenje odreenog broja ifrovanog zapisa. Da bi skladitenje podataka
bilo omogueno ono to se zahteva od korisnika jeste kreiranje odreene eme tabela u
bazi podataka.

Slika 20: ema tabela baze podataka


Na slici 20. moe se videti primer tabela koje su koriene za testiranje kao i za
skladitenje ifrovanih podataka. Tabele koje su koriene su:

parent

child

insertlog

updatelog

Od ovog trenutka aplikacija je spremna za rad i od korisnika se oekuje da unese


odreeni broj zapisa. Moe se primetiti da je re o relaciji 1:N izmeu tabela Parent i
Child, gde se za svaki red u Parent tabeli generiu nova tri reda u Child tabeli. Primer: ako
korisnik unese 100 zapisa, za svaki red u Parent tabeli, generiu se tri nova reda u Child
tabeli gde ukupan zbir zapisa iznosi (P100 + C300 = PC400). Nakon pokrenute aplikacije,
pokree se generator koji generie nasumian niz karaktera (tanije izmeu 300 i 400) koji
se ifruje AES kriptografskim algoritmom. Nakon ifrovanja generisanog niza, vri se upis
podataka u bazi za koje se meri vreme njenog izvrenja i belei u tabeli insertlog.
Posle upisa, vri se izmena ifrovanih podataka. Ovde treba napomenuti da se radi o
deifrovanju podataka iz baze, zatim generie se novi niz nasuminih vrednosti gde se

- 39 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

ponovo ifruje i vri izmena za koje se meri vreme njenog izvrenja i belei u tabeli
updatelog.

Slika 21: Primer podataka u bazi nakon ifrovanja


Na slici 21 prikazan je primer ifrovanih podataka u bazi nakon pokrenute
aplikacije gde se u Parent tabeli nalaze dve kolone (Column 1 i 2) u kojima se upisuju i
vre izmene nasuminih podataka.
Ovakvim metodom testiranja omoguilo se merenje performansi rada razliitih
verzija MySQL sistema za upravljanje bazom podataka na razliitim virtualizacionim
platformama pod uticajem AES kriptorafskog algoritma koristei Microsoft Windows
Server 2008 R2 Enterprise SP1 operativni sistem.

- 40 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

6 Scenario eksperimentalnog testiranja


U ovom delu rada opisaemo scenario eksperimentalnog testiranja koji se odnosi na
ispitivanju performansi MySQL i SQLite sistema za upravljanje bazom podataka i
simulacije kombinovanja HTTP zahteva.
Da bi scenario eksperimentalnog testiranja funkcionisao, neophodno je prisustvo
pet tipa instaliranih softverskih komponenata:

MySQL Server v5.5.13

SQLite v3.7.7.1

Zend Server CE aplikativni server

ZendGuard v6.0 i

PHP Web aplikacija

Slika 22: Proces eksperimentalnog okruenja

Proces eksperimentalnog okruenja koja je prikazana na slici 22. je predstavljena


kroz sledea tri koraka:
1. Prvi korak je instalacija aplikativnog servera ZendServer CE (community edition)
na kome je vreno testiranje ukupnih i paralelnih broja HTTP zahteva. U toku
instalacije treba odabrati Apache server koji slui za distribuciju PHP skripti za
elektronsko testiranje. Ovaj server je odabran od strane administratora i web developera
koji prua i dodatne alate koji olakavaju rad u razvijanju i odravanju Web aplikacija.
2. Drugi korak je instalacija MySQL sistema za upravljanje bazom podataka. Ovaj
server se lako instalira jer sada postoji i samostalni alat pod nazivom MySQL Installer
koji, pored instalacije MySQL servera, korisniku omoguava odabir eljenih alate kako
za administraciju tako i za razvoj baze podataka. Verzija koja je koriena u
eksperimentalnom testiranju je v5.5.13. Pored prethodno pomenute baze koristiemo i
SQLite koji se moe a i ne mora instalirati. U veini aplikativnih servera za distribuciju
i razvoj web aplikacija u svojoj strukturi imaju podrku za SQLite bazom podataka. U
naem sluaju, ZendServer ima podrku SQLite baze podataka.

- 41 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

3. Trei korak je instalacija aplikacije ZendGuard v6.0 pomou kojeg je vreno


ifrovanje PHP Web aplikacije. Aplikacija je jednostavna za korienje, ima iroko
izboralata za ifrovanje, podrava dodatne PHP ekstenzije, licenciranje PHP aplikacije
kao i XML editor. Cilj upotrebe ovakvog alata je testiranje performansi Web aplikacije
kao i baze podataka sa ifrovanim izvornim kodom PHP aplikacije.
4.

Trei korak je distribucija ifrovane PHP web aplikacije i to:

PHP skripta bez ifrovanja - skripta koja je namenjena za testiranje upisa i


izmena odreenog broja zapisa koji nije ifrovan.

PHP skripta sa AES ifrovanjem - skripta koja je namenjena za testiranje upisa i


izmena odreenog broja zapisa koji je ifrovan AES algoritmom. ifrovanje se vri
na nivou PHP skripte odnosno web aplikacije.

PHP skripta sa AES SQL ifrovanjem - skripta koja je namenjena za testiranje


upisa i izmena odreenog broja zapisa koji je ifrovan AES algoritmom pomou
SQL upita pri emu se ifrovanje izvrava direktno na nivou baze podataka.

Softverski alati na kojima je vreno eksperimentalno testiranje su:

MySQL Server v5.5.13 - koji je namenjen na testiranju upisa i izmene odreenog


broja zapisa koristei skripte sa i bez ifrovanja.

SQLite v3.7.7.1 - koji je namenjen na testiranju upisa i izmene odreenog broja


zapisa koristei skripte sa i bez ifrovanja.

ZendServer CE v5.6.0 i v6.1.0 - koji je namenjen na testiranju ukupnih i


paralelnih broja HTTP zahteva.

Treba napomenuti da za realizaciju PHP skripte sa AES SQL ifrovanjem nad


SQLite bazom nema besplatnih implementacija. Takoe, treba napomenuti da je testiranje
ukupnih i paralelnih broja HTTP zahteva vreno tako to je svaki test raen po tri puta, a u
tabelu rezultata upisana je srednja vrednost ta tri testa. Dobijeni rezultati predstavljeni su
tabelarno i grafiki. Na osnovu dobijenih rezultata izvreno je poreenje performansi
razliitih sistema za upravljanje bazom podataka kao i poreenje skripti za elektronsko
testiranje.
Prilikom izrade ove analize koriena je PHP web aplikacija (sa i bez AES
ifrovanja) za testiranje razliitih sistema za upravljanje bazom podataka. Takoe, testiran
je i proizvod za distribuciju web aplikacija koji je kljuni faktor u realizaciji
eksperimentalnog testiranja.

- 42 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

6.1 Tipovi vrenih testova


Testiranje je vreno preko HTTP i PHP i to sa razlitim brojem zahteva i zapisa na
razliitim softverskim alatima.

HTTP zahtev sa 2000 zahteva istovremeno


HTTP zahtev sa 2500 zahteva istovremeno
HTTP zahtev sa 3000 zahteva istovremeno
MySQL i SQLite sa 200 zapisa
MySQL i SQLite sa 300 zapisa
MySQL i SQLite sa 400 zapisa

7 Tabelarno i grafiko predstavljanje dobijenih rezultata


Posle izvrenog eksperimentalnog testiranja rezultati su predstavljeni na dva naina:

Tabelarno pojedinano predstavljanje

Grafiko pojedinano predstavljanje

7.1 Tabelarno pojedinano predstavljanje


Tabelarno je prikazano vreme koje je potrebno da se izvri odreeni broj zahteva
koristei ZendServer CE (v5.6.0 i v6.1.0) koja je prikazana na tabeli 1 i 2.
Tabela 1. Proseno vreme za izvravanje odreenog broja zahteva
ZendServer CE v5.6.0

Proseno vreme

Zahtev

00:00.873
00:01.071
00:01.313

2000
2500
3000

Tabela 2. Proseno vreme za izvravanje odreenog broja zahteva


ZendServer CE v6.1.0

Proseno vreme

Zahtev

00:00.798
00:01.025
00:01.274

2000
2500
3000

Tabelarno je prestavljeno vreme upisa i izmena odreenog broja zapisa MySQL


sistema za upravljanje bazom podataka (v5.5.13) na razliitim PHP skriptama sa i bez
ifrovanja prikazana je na tabeli 3, 4 i 5.

- 43 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Tabela 3. Vreme potrebno za izvrenje odreenog broja upisa i izmena zapisa bez ifrovanja
PHP - bez ifrovanja - MySQL Server - 5.5.13

Upis

Izmena

Zapis

00:00.197
00:00.148
00:00.099

00:26.667
00:12.168
00:04.377

400
300
200

Tabela 4. Vreme potrebno za izvrenje odreenog broja upisa i izmena zapisa sa AES ifrovanjem
PHP - AES ifrovanje MySQL Server - 5.5.13

Upis

Izmena

Zapis

00:00.324
00:00.266
00:00.159

00:58.582
00:26.162
00:08.624

400
300
200

Tabela 5. Vreme potrebno za izvrenje odreenog broja upisa i izmena zapisa sa AES ifrovanjem
na strani SQL upita
PHP - AES SQL ifrovanje MySQL Server - 5.5.13

Upis

Izmena

Zapis

00:00.234
00:00.165
00:00.108

00:58.582
00:26.162
00:08.624

400
300
200

Tabelarno je prestavljeno vreme upisa i izmena odreenog broja zapisa SQLite


sistema za upravljanje bazom podataka (v3.7.7.1) na razliitim PHP skriptama sa i bez
ifrovanja prikazana je na tabeli 6 i 7.
Tabela 6. Vreme potrebno za izvrenje odreenog broja upisa i izmena zapisa bez ifrovanja
PHP - bez ifrovanja SQLite - 3.7.7.1

Upis

Izmena

Zapis

00:00.276
00:00.141
00:00.210

00:16.874
00:07.441
00:02.696

400
300
200

Tabela 7. Vreme potrebno za izvrenje odreenog broja upisa i izmena zapisa sa AES ifrovanjem
PHP - AES ifrovanje SQLite - 3.7.7.1

Upis

Izmena

Zapis

00:00.314
00:00.214
00:00.176

00:21.538
00:10.072
00:03.609

400
300
200

- 44 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

7.2 Grafiko pojedinano predstavljanje


Grafiki prikazani su rezultati HTTP zahteva kao i rezultati upisa i izmena na
razliitim sistemima za upravljanje bazom podataka MySQL Server (v5.5.13) i SQLite
(v3.7.7.1) koji su razvrstani prema razliitim PHP skriptama sa i bez AES ifrovanja.
Vreme izraeno u sekundama potrebno za 2000, 2500, 3000 zahteva koristei
ZendServer CE (v5.6.0 i v6.1.0) prikazano je na slici 23 i 24.

HTTP zahtev ZendServer CE - v5.6.0


00:01.313

00:01.382
00:01.210
00:01.071
00:01.037
00:00.864

00:00.873

00:00.691
00:00.518
00:00.346
00:00.173

00:00.000
2000 zahteva

2500 zahteva

3000 zahteva

Slika 23: Vreme potrebno za izvrenje odreenog broja HTTP zahteva

HTTP zahtev ZendServer CE - v6.1.0


00:01.382

00:01.274

00:01.210
00:01.025

00:01.037
00:00.864

00:00.798

00:00.691
00:00.518
00:00.346
00:00.173
00:00.000
2000 zahteva

2500 zahteva

3000 zahteva

Slika 24: Vreme potrebno za izvrenje odreenog broja HTTP zahteva

- 45 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Vreme izraeno u sekundama potrebno za 200, 300 i 400 upisa i izmena zapisa
koristei MySQL Server (v5.5.13) na razliitim PHP skriptama sa i bez AES ifrovanja
prikazano je na slici 25, 26, 27, 28, 29 i 30.

MySQL Server 5.5.13 Upis


200 upisa

300 upisa

400 upisa

00:00.216

00:00.197

00:00.173

00:00.148

00:00.130
00:00.099
00:00.086
00:00.043
00:00.000

PHP Bez ifrovanja

Slika 25: Vreme potrebno za izvrenje odreenog broja upisa MySQL zapisa bez ifrovanja

MySQL Server 5.5.13 Izmena


200 izmena

300 izmena

400 izmena

00:30.240

00:26.667

00:25.920

00:21.600
00:17.280
00:12.168

00:12.960
00:08.640
00:04.377
00:04.320
00:00.000

PHP Bez ifrovanja

Slika 26: Vreme potrebno za izvrenje odreenog broja izmena MySQL zapisa bez ifrovanja

- 46 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

MySQL Server 5.5.13 Upis


200 upisa

300 upisa

400 upisa
00:00.324

00:00.346
00:00.302

00:00.266

00:00.259
00:00.216
00:00.173

00:00.159

00:00.130
00:00.086

00:00.043
00:00.000

PHP AES ifrovanje

Slika 27: Vreme potrebno za izvrenje odreenog broja upisa MySQL zapisa sa AES ifrovanjem

MySQL Server 5.5.13 Izmena


200 izmena

300 izmena

400 izmena

01:09.120
00:58.582

01:00.480
00:51.840
00:43.200
00:34.560

00:26.162

00:25.920
00:17.280

00:08.624

00:08.640
00:00.000

PHP AES ifrovanje

Slika 28: Vreme potrebno za izvrenje odreenog broja izmena MySQL zapisa sa AES ifrovanjem

- 47 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

MySQL Server 5.5.13 Upis


200 upisa

300 upisa

400 upisa

00:00.259

00:00.234

00:00.216
00:00.165

00:00.173
00:00.130

00:00.108

00:00.086
00:00.043
00:00.000

PHP AES SQL ifrovanja

Slika 29: Vreme potrebno za izvrenje odreenog broja upisa MySQL zapisa sa AES ifrovanjem
na strani SQL upita

MySQL Server 5.5.13 Izmena


200 izmena

300 izmena

400 izmena

00:38.880

00:35.472

00:34.560
00:30.240
00:25.920
00:21.600
00:15.908

00:17.280
00:12.960
00:08.640

00:05.156

00:04.320
00:00.000

PHP AES SQL ifrovanja

Slika 30: Vreme potrebno za izvrenje odreenog broja izmena MySQL zapisa sa AES ifrovanjem
na strani SQL upita

Vreme izraeno u sekundama potrebno za 200, 300 i 400 upisa i izmena zapisa
koristei SQLite (v3.7.7.1) na razliitim PHP skriptama sa i bez AES ifrovanja prikazano
je na slici 24, 25, 26 i 27.

- 48 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

SQLite v3.7.7.1 Upis


200 upisa

300 upisa

400 upisa

00:00.302

00:00.276

00:00.259
00:00.216

00:00.210

00:00.173

00:00.141

00:00.130
00:00.086
00:00.043
00:00.000

PHP Bez sifrovanja

Slika 31: Vreme potrebno za izvrenje odreenog broja upisa SQLite zapisa bez ifrovanja

SQLite v3.7.7.1 Izmena


200 izmena

300 izmena

400 izmena

00:21.600
00:16.874

00:17.280
00:12.960

00:07.441

00:08.640
00:04.320

00:02.696

00:00.000

PHP Bez sifrovanja

Slika 32: Vreme potrebno za izvrenje odreenog broja izmena SQLite zapisa bez ifrovanja

- 49 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

SQLite v3.7.7.1 Upis


200 upisa

300 upisa

400 upisa

00:00.346

00:00.314

00:00.302
00:00.259
00:00.216

00:00.214
00:00.176

00:00.173
00:00.130
00:00.086

00:00.043
00:00.000

PHP AES ifrovanje

Slika 33: Vreme potrebno za izvrenje odreenog broja upisa SQLite zapisa sa AES ifrovanjem

SQLite v3.7.7.1 Izmena


200 izmena

300 izmena

400 izmena

00:25.920
00:21.538
00:21.600
00:17.280
00:12.960

00:10.072

00:08.640
00:04.320

00:03.609

00:00.000

PHP AES ifrovanje

Slika 34: Vreme potrebno za izvrenje odreenog broja izmena SQLite zapisa sa AES ifrovanjem

- 50 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

8 Uporeivanje rezultata
Treba napomenuti da u odnosu na veliki broj HTTP zahteva, vrednosti rezultata su
gotovo identina i izraene su u sekundama.
Rezultati koji su dobijeni posle izvrenog testiranja prikazani su u razliitim
kombinacijama broja zahteva i verzija softvera za upravljanje bazom podataka. Takoe,
prikazane su razlike izmeu PHP skripti sa i bez ifrovanja kao i razlike izmeu MySQL
Servera verzije 5.5.13 i SQLite verzije 3.7.7.1 gde se grafiki mogu uoiti varijacije u
brzini (slika 46, 47, 48, 49, 50, 51, 52 i 53).
8.1 Kombinovanje broja zahteva
Grafiki je prikazano vreme koje je potrebno za izvrenje odreenog broja HTTP
zahteva, tanije, rezultati sa najboljim vremenom u kombinaciji sa razliitim verzijama
sofverskih alata Zend Server CE (v5.6.0 i v6.1.0).

HTTP zahtev ZendServer CE - v6.1.0 i v5.6.0


ZendServer CE - php 5.4.16 - v6.1.0

ZendServer CE- php 5.3.5 - v5.1.0

00:01.382
00:01.080
00:01.092

00:01.210
00:01.037
00:00.864

00:01.314
00:01.264

00:00.870
00:00.858

00:00.691
00:00.518

00:00.346
00:00.173
00:00.000
2000 zahteva

2500 zahteva

3000 zahteva

Slika 35: Uporedni prikaz vremena za izvrenje odreenog broja HTTP zahteva

Na osnovu dijagrama na slici 35. primeujemo da su rezultati testiranja skoro


indentina. Moemo rei da softverski alati ZendServerCE v5.6.0 i v6.1.0 imaju brz odziv
u izvrenju velikoh broja HTTP zahteva i pouzdani za razvijanje web aplikacija.

- 51 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

8.2 Kombinovanje baze podataka sa razliitim PHP skriptama


Grafiki je prikazano vreme koje je potreno za izvrenje odreeneog broja upisa i
izmena na razliitim sistemima za upravljanje bazom podataka MySQL v5.5.13 i SQLite
v3.7.7.1 u kombinaciji sa razliitim PHP skriptama sa i bez ifrovanja.
Ovde treba napomenuti da je izostavljena PHP skripta koja ifruje podatke pomou
AES enkripcije na strani SQL upita kod SQLite baze podataka. Za realizaciju ovakvog
reenja treba izdvojiti odreenu sumu novca.

MySQL Server 5.5.13 upis


PHP Bez ifrovanja

PHP AES ifrovanje


00:00.324

00:00.346
00:00.302

00:00.266

00:00.259

00:00.216
00:00.173
00:00.130

00:00.197
00:00.159

00:00.148

00:00.099

00:00.086

00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 36: Uporedni prikaz vremena za izvrenje odreenog broja upisa MySQL zapisa bez i sa AES
ifrovanjem

Na osnovu dijagrama moe se zakljuiti da je softverski alat MySQL Server


v5.5.13 bri u izvrenju 200, 300 i 400 upisa SQL zapisa bez ifrovanja, bri je za 33% u
odnosu na AES ifrovanje.

MySQL Server 5.5.13 izmena


PHP Bez ifrovanja

PHP AES ifrovanje

01:09.120

00:58.582

01:00.480
00:51.840
00:43.200
00:34.560

00:26.162

00:25.920
00:17.280
00:08.640

00:08.624
00:04.377

00:26.667

00:12.168

00:00.000
200 izmena

300 izmena

400 izmena

Slika 37: Uporedni prikaz vremena za izvrenje odreenog broja upisa MySQL zapisa bez i sa AES
ifrovanjem

- 52 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Na slici 37. primeujemo da je potrebno dosta vremena (tanije 40%) za izvrenje


PHP skripte sa AES ifrovanjem u izmeni 200, 300 i 400 SQL zapisa u odnosu na skriptu
bez ifrovanjakoristei softverski alat MySQl Server v5.5.13.

MySQL Server 5.5.13 upis


PHP Bez ifrovanja

PHP AES SQL ifrovanja

00:00.259

00:00.234

00:00.216

00:00.197

00:00.165

00:00.173

00:00.148

00:00.130

00:00.108
00:00.099

00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 38: Uporedni prikaz vremena za izvrenje odreenog broja upisa MySQL zapisa bez i sa AES
ifrovanjem na strani SQL upita

Sa dijagrama na slici 38. moemo primetiti zanimljiv podataka da vreme koje je


potrebno za izvrenje 200, 300 i 400 upisa kod PHP skripte sa AES ifrovanjem (ifrovanje
na strani SQL upita) je indentian sa rezultatima skripte bez ifrovanja.

MySQL Server 5.5.13 izmena


PHP Bez ifrovanja

PHP AES SQL ifrovanja

00:38.880

00:35.472

00:34.560
00:30.240

00:26.667

00:25.920
00:21.600

00:15.908

00:17.280

00:12.168

00:12.960
00:08.640
00:04.320

00:05.156
00:04.377

00:00.000
200 izmena

300 izmena

400 izmena

Slika 39: Uporedni prikaz vremena za izvrenje odreenog broja izmena MySQL zapisa bez i sa
AES ifrovanjem na strani SQL upita

- 53 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Na dijagramu slika 39. mogu se uoiti pozitivni rezultati u izvrenju 200, 300 i 400
izmena SQL zapisa kod PHP skripte sa AES ifrovanjem (ifrovanje na strani SQL upita) i
skripte bez ifrovanja.

MySQL Server 5.5.13 upis


PHP AES ifrovanje

PHP AES SQL ifrovanja

00:00.346

00:00.324

00:00.302
00:00.266
00:00.259

00:00.234

00:00.216
00:00.173
00:00.130

00:00.165

00:00.159
00:00.108

00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 40: Uporedni prikaz vremena za izvrenje odreenog broja upisa MySQL zapisa sa AES
ifrovanjem

Na slici 40. moe se zakljuiti da se PHP skripta sa AES ifrovanjem (ifrovanje na


strani skripte) pokazala sporija u izvrenju od 200, 300 i 400 upisa MySQL zapisa,
meutim izvandredne rezultate je pokazala skripta sa AES ifrovanje na strani SQL upita
(bra za 32%).

MySQL Server 5.5.13 izmena


PHP AES ifrovanje

PHP AES SQL ifrovanja

01:09.120
00:58.582

01:00.480
00:51.840
00:43.200

00:35.472

00:34.560
00:26.162

00:25.920

00:15.908

00:17.280
00:08.640

00:08.624
00:05.156

00:00.000

200 izmena

300 izmena

400 izmena

Slika 41: Uporedni prikaz vremena za izvrenje odreenog broja izmena MySQL zapisa sa AES
ifrovanjem

- 54 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Na osnovu dijagrama na slici 41. mogu se primetiti rezultati koji ukazuju na sporije
izvrenje PHP skripte sa AES ifrovanjem (ifrovanje na strani skripte) u izmeni 200, 300 i
400 zapisa, dok se najbre pokazala skripta sa AES ifrovanjem na strani SQL upita (bra
za 43%).

MySQL Server 5.5.13 upis


PHP Bez ifrovanja

PHP AES ifrovanje

PHP AES SQL ifrovanja


00:00.324

00:00.346
00:00.302
00:00.266
00:00.259

00:00.234

00:00.216

00:00.173
00:00.130

00:00.197
00:00.159
00:00.099

00:00.148

00:00.165

00:00.108

00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 42: Uporedni prikaz vremena za izvrenje odreenog broja upisa MySQL zapisa sa PHP
skriptama

Na slici 42. moe se primetiti uporedni prikaz rezultata od kojih se najsporije


pokazala PHP skripti sa AES ifrovanjem (ifrovanje na strani skripte) u odreenom broju
upisa 200, 300 i 400 zapisa, dok su se najbre pokazala skripta sa i bez AES ifrovanja.

MySQL Server 5.5.13 izmena


PHP Bez ifrovanja

PHP AES ifrovanje

PHP AES SQL ifrovanja

01:09.120
00:58.582

01:00.480
00:51.840
00:43.200

00:35.472

00:34.560
00:26.162
00:25.920
00:15.908

00:17.280
00:08.640

00:26.667

00:08.624
00:04.377 00:05.156

00:12.168

00:00.000
200 izmena

300 izmena

400 izmena

Slika 43: Uporedni prikaz vremena za izvrenje odreenog broja izmena MySQL zapisa sa PHP
skriptama

- 55 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Na dijagramu slika 43. mogu se primetiti rezultati koji ukazuju na sporije izvrenje
PHP skripte sa AES ifrovanjem (ifrovanje na strani skripte) u izmeni 200, 300 i 400
zapisa, dok se najbre pokazala skripta bez ifrovanja (bra za 53%).

SQLite v3.7.7.1 upis


PHP Bez sifrovanja

PHP AES ifrovanje

00:00.346

00:00.314

00:00.302

00:00.276

00:00.259
00:00.216
00:00.173

00:00.214

00:00.210
00:00.176

00:00.141

00:00.130
00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 44: Uporedni prikaz vremena za izvrenje odreenog broja upisa SQLite zapisa bez i sa AES
ifrovanja

Na slici 44. moe se zakljuiti da se PHP skripta sa AES ifrovanjem (ifrovanje na


strani skripte) sporije pokazala u izvrenju od 300 i 400 zapisa. Meutim, u izvrenju od
200 zapisa gotovo iste rezultate pokazuje kao i skripta bez ifrovanja.

SQLite v3.7.7.1 izmena


PHP Bez sifrovanja

PHP AES ifrovanje

00:25.920
00:21.538
00:21.600
00:16.874

00:17.280
00:12.960

00:10.072

00:08.640
00:04.320

00:07.441
00:03.609
00:02.696

00:00.000
200 izmena

300 izmena

400 izmena

Slika 45: Uporedni prikaz vremena za izvrenje odreenog broja izmena SQLite zapisa bez i sa
AES ifrovanja

Na dijagramu slika 45 primeujemo da se PHP skripta koja vri izmene od 200, 300
i 400 zapisa sporije pokazala u odnosu na skriptu bez ifrovanja (bra za 25% ).

- 56 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

8.3 Kombinovanje razliitih sistema za upravljanje bazom podataka


Uporedni prikaz vremena potrebnog za izvrenje odreenog broja SQL zapisa u
kombinaciji sa razliitim sistemima za upravljanje bazom podataka koristei razliite PHP
skripte i to:

PHP skripta bez ifrovanja

PHP skripta sa AES ifrovanjem (ifrovanje se realizuje na strani web aplikacije)

PHP skripta sa AES ifrovanjem (ifrovanje se realizuje na strani SQL upita)

Uporeivanje baza podataka - upis


MySQL bez ifrovanja

SQLite3 bez ifrovanja

00:00.302

00:00.276

00:00.259
00:00.216

00:00.210

00:00.197

00:00.173
00:00.130

00:00.148
00:00.141
00:00.099

00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 46: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
upisa SQL zapisa bez ifrovanja

Iz priloenog dijagrama na slici 46. moe se zakljuiti da MySQL Server i SQLite3


belee gotovo indentine rezultate u izvrenju odreenog broja upisa 200, 300 i 400 zapisa
koristei PHP skriptu bez ifrovanja.

- 57 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Uporeivanje baza podataka - izmena


MySQL bez ifrovanja

SQLite3 bez ifrovanja

00:30.240
00:26.667
00:25.920
00:21.600
00:16.874

00:17.280
00:12.168

00:12.960

00:07.441

00:08.640
00:04.320

00:04.377
00:02.696

00:00.000

200 izmena

300 izmena

400 izmena

Slika 47: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
izmena SQL zapisa bez ifrovanja

Sa dijagrama na slici 47. moe se zakljuiti da se MySQL Server sporije pokazao u


izvrenju odreenog broja izmena od 200, 300 i 400 zapisa u odnosu na SQLite3 koji je
pokazao bre vreme izvrenja (bri za 60%) koristei PHP skriptu bez ifrovanja.

Uporeivanje baza podataka - upis


MySQL sa AES ifrovanjem

SQLite3 sa AES ifrovanjem

00:00.346

00:00.324
00:00.314

00:00.302

00:00.266

00:00.259
00:00.216
00:00.173

00:00.214
00:00.176
00:00.159

00:00.130
00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 48: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
upisa SQL zapisa sa AES ifrovanjem

Na osnovu dijagrama na slici 48. moemo primetiti da su MySQL Server i SQLite3


pokazali izvanredne rezultate u izvrenju odreenog broja upisa 200, 300 i 400 zapisa
koristei PHP skriptu sa AES ifrovanjem (ifrovanje na strani skripte).

- 58 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Uporeivanje baza podataka - izmena


MySQL sa AES ifrovanjem

SQLite3 sa AES ifrovanjem

01:09.120
00:58.582

01:00.480
00:51.840
00:43.200
00:34.560
00:26.162

00:25.920

00:21.538

00:17.280
00:08.640

00:10.072

00:08.624
00:03.609

00:00.000

200 izmena

300 izmena

400 izmena

Slika 49: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
izmena SQL zapisa sa i sa AES ifrovanjem

Iz priloenog dijagrama moemo primetiti da se MySQL Server pokazao sporiji u


izvrenju odreenog broja izmena 200, 300 i 400 ifrovanih zapisa u odnosu na SQLite3
koji belei daleko bolje rezultate (bri za 70%).

Uporeivanje baza podataka - upis


MySQL bez ifrovanja

SQLite3 sa AES ifrovanjem

00:00.346

00:00.314

00:00.302
00:00.259

00:00.214

00:00.216

00:00.197

00:00.176
00:00.173
00:00.130

00:00.148
00:00.099

00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 50: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
upisa SQL zapisa sa i bez AES ifrovanja

Na slici 50. moe se zakljuiti da se SQLite3 sporije pokazao u izvrenju odreenog


broja upisa 200, 300 i 400 ifrovanih zapisa koristei PHP skriptu sa AES ifrovanjem u
odnosu na MySQL Server bez ifrovanja.

- 59 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Uporeivanje baza podataka - izmena


MySQL bez ifrovanja

SQLite3 sa AES ifrovanjem

00:30.240
00:26.667
00:25.920
00:21.538
00:21.600
00:17.280

00:12.168
00:10.072

00:12.960
00:08.640
00:04.320

00:04.377
00:03.609

00:00.000
200 izmena

300 izmena

400 izmena

Slika 51: Uporedni prikaz virtualizacionih platfromi u izvrenju odreenog broja izmena SQL
zapisa sa i bez AES ifrovanja

Na osnovu dijagrama na slici 51. moemo primetiti da se MySQL Server sporije


pokazao u izvrenju odreenog broj izmena 200, 300 i 400 zapisa bez ifrovanja. Meutim,
zadivljujue rezultate pokazao je SQLite3 koristei PHP skriptu sa AES ifrovanjem gde je
pokazao brzinu izmena ak i do 45% u odnosu na svog prethodnika.

Uporeivanje baza podataka - upis


MySQL sa AES SQL ifrovanjem

SQLite3 sa AES ifrovanjem

00:00.346

00:00.314

00:00.302
00:00.259
00:00.216

00:00.214
00:00.176

00:00.173
00:00.130

00:00.234

00:00.165

00:00.108

00:00.086
00:00.043
00:00.000
200 upisa

300 upisa

400 upisa

Slika 52: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
upisa SQL zapisa sa ifrovanjem

Na osnovu dijagrama na slici 52. moemo primetiti da se SQLite3 pokazao sporiju


u izvrenju odreenog broja upisa 200, 300 i 400 zapisa u odnosu na MySQL koji je
pokazao bolje rezultate (bri za 35%) koristei PHP skriptu sa AES ifrovanjem (ifrovanje
na strani SQL upita).
- 60 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

Uporeivanje baza podataka - izmena


MySQL sa AES SQL ifrovanjem

SQLite3 sa AES ifrovanjem

00:38.880
00:35.472
00:34.560
00:30.240
00:25.920
00:21.538

00:21.600
00:15.908

00:17.280
00:12.960
00:08.640
00:04.320

00:10.072
00:05.156
00:03.609

00:00.000
200 izmena

300 izmena

400 izmena

Slika 53: Uporedni prikaz sistema za upravljanje bazom podataka u izvrenju odreenog broja
izmena SQL zapisa sa ifrovanjem

Iz priloenog dijagrama na slici 53. uoavamo da je MySQL server pokazao sporije


rezultate u izvrenju odreenog broja izmena 200, 300 i 400 ifrovanih zapisa (koji se
realizuje na strani SQL upita). Meutim, SQLite3 pokazao je bolje rezultate u realizaciji
izmena ifrovanih zapisa (bri za 50%).
Na osnovu analize ukupnih rezultata, doli smo do sledeih podataka:
MySQL Server v5.5.13 i SQLite v3.7.7.1 pokazali su se stabilni u izvrenju
velikog broja upisa i izmena odreenog broja zapisa. Da bi se najbolje uoile prednosti i
mane ponuenih sistema za upravljanje bazom podataka, dobijene rezultate predstaviemo
na osnovu sledeih PHP skripti:

PHP skripta bez ifrovanja - korienjem ove skripte, MySQL Server se pokazao
stabilnijim alatom za upravljanje bazom podataka. Pokazao je izvanredno vreme
upisa kao i izmena odreenog broja zapisa (slika 46 i 50).

PHP skripta sa AES ifrovanjem - uticajem ove skripte, MySQL Server se


pokazao sporiji za 70% u izvrenju odreenog broja izmena ifrovanog zapisa u
odnosu na SQLite3 koji je pokazao fantastine rezultate (slika 40). Meutim, to se
tie upisa ifrovanog zapisa sistemi su pokazali podjednaka optereenja sa malim
varijacijama u rezultatima (slika 49). ifrovanje je raeno na nivou PHP-a to je
predstavljalo veliko optereenje na baze podataka.

PHP skripta sa AES SQL ifrovanjem - korienjem ove skripte, MySQL Server
v5.5.13 je pokazao zadovoljavajue rezultate u izvrenju odreenog broja upisa
ifrovanog zapisa (slika 52). Meutim, to se tie izmena, sporiji se pokazao za
50% u odnosu na SQLite3 koji je koristio skriptu sa AES ifrovanjem na nivou
PHP-a (slika 53).

- 61 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

9 Zakljuak
U ovom radu uraena je analiza uticaja AES kriptografskog algoritma na
performanse razliitih sistema za upravljanje bazom podataka pod uticajem PHP skripti
ifrovanog izvornog koda (skripta bez ifrovanja, skripta sa ifrovanjem na lokalnom i
serverskom nivou sa uticajem ZendGuard aplikacije) i razliitih softverskih alata (MySQL
Server v5.5.13 i SQlite v3.7.7.1). Takoe, raeno je testiranje ukupnih i paralelnih brojeva
HTTP zahteva na razliitim verzijama softverskih alata (ZendServer CE v5.6.0 i v6.1.0).
Uraeni su testovi zasnivani na ukupnom i paralelnom broju zahteva i zapisa napomenutih
komponenti kao i njihova kombinacija.
Rezultati ovog rada pokazuju da je MySQL Server v5.5.13 jedan od boljih i
najkorienijih sistema za upravljanje bazom podataka. Njegova prednost se ogleda u tome
to ovaj softver spada u red besplatnih proizvoda koji se uglavnom koriste za komercijalnu
(poslovnu) upotrebu, ali u odnosu na SQLite3, ovaj softver je pokazao loe performanse
prilikom testiranja. Rezultati su pokazali da je znatno sporiji u izvrenju velikog broja
izmena ifrovanih podataka na lokalnom i serverskom nivou. Sa druge strane, bolje
rezultate belei prilikom upisa ifrovanih podataka gde je optereenje servera bilo
minimalno. Iako se pokazao loiji u izmeni podataka, ovaj proizvod ima veliki broj
administratorskih alata koji znatno olakavaju rad sa bazom podataka.
Analizom rezultata SQLite v3.7.7.1 baze podataka pokazao je zadovoljavajue
performanse prilikom testiranja. Rezultati su pokazali da u odnosu na MySQL Server
v5.5.13, ovaj softver je pokazao odline rezultate u izvrenju velikog broja izmena
ifrovanih podataka (belei 70% bre performanse) na lokalnom i serverskom nivou. Sa
druge strane, sporiji se pokazao u izvrenju odreenog broja upisa ifrovanih podataka
naroito na serverskom nivou to je predstavljalo veliko optereenje na performansi baze
podataka. Treba napomenuti da ovakav softverski alat dolazi kao sastavni deo aplikacije
(nema potrebe za dodatnom instalacijom), a potranja za ovakvom bazom podataka je
iroka i esto se primenjuje u razvijanju malih i srednjih aplikacija. Mane ovakvog
softverskog alata je nedostatak administratorskih alata to predstavlja potekoe za
developere i ne olakava rad sa bazom podataka.
Na osnovu istraivanja koja smo sproveli utvrdili smo da su se MySQL Server
v5.5.13 i SQLite v3.7.7.1 pokazali stabilni u izvrenju velikog broja upisa i izmena
odreenog broja ifrovanih podataka. Meutim, na osnovu rezultata i alata koje ova dva
softvera nude, mogu se uoiti prednosti i mane. Utvrdili smo da se MySQL Server v5.5.13
preporuuje kao najbolje reenje za upotrebu. Lako i brzo se moe implementirati u svako
okruenje, administracija je olakana, izdrljiv je na optereenja visokog nivoa. Upotreba
ovakvog softverskog alata preporuuje se za komercijalnu upotrebu iz tih razloga to se
pokazala stabilna u izvrenju velikog broja upisa ifrovanih podataka kao i mnotvo drugih
profesionalnih alata za administraciju. to se tie SQLite v3.7.7.1 preporuuje se iskljuivo
za upotrebu malih i srednjih aplikacija kao to su: Android aplikacije, iOS aplikace i dr.
Pouzdan je u velikom broju izmena ifrovanih podataka, u veini sluajeva integrisan je
kao sastavni deo aplikacije i ne predstavlja gubitak podataka u trenutku nestanka struje.
Zatitom izvornog koda PHP aplikacije alat ZendGuard opravdao je svoje postupke i toplo
se preporuuje u razvojne svrhe Web aplikacija. Omoguava iroki broj alata za zatitu od
nelegalne upotrebe i kopiranja izvornog koda, licenciranje kao i upotrebe XML editora.

- 62 -

ore Petrovi

Analiza uticaja AES kriptografskog algoritma na performanse razliitih baza podataka

10 LITERATURA
[1] M. Veinovi, G. imi, Uvod u baze podataka, Univerzitet Singidunum, Beograd,
2010.
[2] M. Veinovi, A. Jevremovi, Uvod u raunarske mree, Univerzitet Singidunum,
Beograd, 2008.
[3] M.Milosavljevi, G.Grubor, Osnove zatita informacija, Univerzitet Singidunum,
Beograd, 2010.
[4] Client-server model, http://en.wikipedia.org/wiki/Client%E2%80%93server_model
[5] Troslojna arhitektura, http://en.wikipedia.org/wiki/Multitier_architecture
[6] Kriptografija, http://en.wikipedia.org/wiki/Cryptography
[7] AES (Advanced Encryption Standard) dokumentacija,
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
[8] MySQL 5.5 Reference Manual, http://dev.mysql.com/doc/refman/5.5/en/
[9] SQLite Reference Manual, http://www.sqlite.org/docs.html
[10] Zend Server CE Reference Manual v403, http://static.zend.com/topics/ZendServer-CE-Reference-Manual.pdf
[11] ZendGuard v6.0 user guide, http://files.zend.com/help/Zend-Guard/zend-guard.htm
[12] Apache Web server dokumentacija, http://httpd.apache.org/docs/
[13] PHP dokumentacija, http://php.net/docs.php
[14] PHP AES 256 ifrovanje, http://www.coderelic.com/2011/10/aes-256-encryptionwith-php/
[15] PHP MySQL AES 256 ifrovanje, http://techpad.co.uk/content.php?sid=82
Slike koje su koriene u ovom radu su preuzete iz ve navedenih literatura osim tamo gde
je naznaeno drugaije.

- 63 -

You might also like