You are on page 1of 55

UNIVERZITET SINGIDUNUM

FAKULTET ZA INFORMATIKU I RAUNARSTVO

Razvoj sopstvenog reenja za


kriptografsku zatitu sa
implementiranim modulom za
generisanje simetrinog kriptolokog
kljua
- Diplomski rad -

Mentor:

Student:

Doc. dr Aleksandar Jevremovi

Marija Vujoevi
Br. Indeksa: 2011/201751

Beograd, 2013.

FAKULTET ZA INFORMATIKU I RAUNARSTVO

UNIVERZITET SINGIDUNUM
FAKULTET ZA INFORMATIKU I RAUNARSTVO
Beograd, Danijelova 32

Kandidat: Marija Vujoevi


Broj indeksa: 2011/201751
Smer: Informatika i raunarstvo

Tema: Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim modulom


za generisanje simetrinog kriptolokog kljua

Zadatak: Razvijenim reenjem generisati isto sluajne kljueve (TRNG). Prikazati


eksperimentalne rezultate testiranja i porediti ih sa uzorkom sa random.org

MENTOR
Datum odobrenja rada:
Beograd, ___.___._____.

__________________________
Doc. dr Aleksandar Jevremovi

DEKAN
_____________________
Prof. dr Miroslav Lutovac

Razvoj sopstvenog reenja za kriptografsku zatitu sa


implementiranim modulom za generisanje simetrinog
kriptolokog kljua
Saetak: U ovom radu fokus je stavljen na razvoj sopstvene aplikacije za kriptografsku
zatitu fajlova upotrebom simetrinih ifarskih algoritama (DES, AES). U aplikaciji e biti
implementiran sopstveni modul za generisanje kriptolokih kljueva, zasnovan na
vrednostima dobijenim preko pokreta mia. Razvoj modula za generisanje i upravljanje
kljuevima bie podvrgnut teorijsko-informacionoj analizi kakva se oekuje za primene
kljueva u ovakve svrhe. Deo algoritma koji se odnosi na upravljanje kljuevima
obezbedie siguran nain skladitenja. Za mesta skladitenja kljueva predvieni su
hardverski tokeni sa kontrolom pristupa (USB token). Pored razvoja i implementacije
navedenih kripto komponenti, stavljen je fokus i na programsku ergonomiju koja e
obezbediti pravilnu upotrebu programa u cilju smanjenja greaka koje mogu da izazovu
odreene bezbednosne probleme na strani korisnika.
Kljune rei: simetrini ifarski sistemi, generisanje simetrinih kriptologkih kljueva,
pokreti mia

Solution development with the implemented cryptographic


protection module for a symmetric key generation
Abstract: In this paper, we focused on the development of our own application for fileencryption using symmetric encryption algorithms (DES, AES). The application will
implement its own module of cipher keys based on the values obtained via the mouse
movement. Development of modules for generating and managing keys will be subjected
to theoretical-informational analysis which is expected for uses the keys for such
purposes. Part of the algorithm that refers to key management will provide a safe means
of storage. Hardware tokens to control access (USB token) are provided for key storage.
In addition to the development and implementation of these cryptographic components,
the focus is placed on the software ergonomics that will ensure the proper use of the
solution in order to reduce errors that can cause some security problems in the industry.
Keywords: symmetric cipher systems, symmetric key generation, mouse movement

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

SADRAJ
Spisak slika ............................................................................................................... - 3 Spisak tabela ............................................................................................................ - 4 1 Uvod .................................................................................................................... - 5 1.1 Predmet istraivanja .............................................................................................. - 5 1.2 Doprinosi rada ....................................................................................................... - 6 1.3 Struktura rada ........................................................................................................ - 6 2 Pregled u oblasti istraivanja ................................................................................ - 7 2.1 Prednosti i nedostaci ifrovanja fajlova u Windows operativnom sistemu .......... - 7 2.2 Razvoj aplikacija za ifrovanje fajlova simetrinim kriptolokim kljuem ............. - 8 2.2.1 AES Crypt ................................................................................................................... - 8 2.2.2 AxCrypt ...................................................................................................................... - 9 2.2.3 CryptoForge ............................................................................................................. - 10 2.2.4 Folder Lock............................................................................................................... - 11 2.2.5 TrueCrypt ................................................................................................................. - 13 -

2.3 Primena tehnologije zasnovane na simetrinom kriptolokom kljuu ............... - 14 3 Teorijske osnove istraivanja ...............................................................................- 15 3.1 Simetrini ifarski sistemi .................................................................................... - 15 3.1.1 DES ........................................................................................................................... - 16 3.1.2 AES ........................................................................................................................... - 18 -

3.2 Reimi rada blokovskih ifara .............................................................................. - 21 3.2.1 Elektronska kodna knjiga (ECB) ............................................................................... - 22 3.2.2 Ulanavanje blokova ifrata (CBC) ........................................................................... - 22 3.2.3 Inicijalni vektor ........................................................................................................ - 23 3.2.4 Ispunjavanje ............................................................................................................. - 24 -

3.3 He funkcija .......................................................................................................... - 24 3.3.1 MD5 ......................................................................................................................... - 24 -

-1-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

3.3.2 SHA........................................................................................................................... - 24 3.3.3 Kriptografska so ....................................................................................................... - 25 -

3.4 Generatori sluajnih brojeva ............................................................................... - 26 3.4.1 Pravi generator sluajnih brojeva (TRNG) ............................................................... - 26 3.4.2 Pseudosluajni generator brojeva (PRNG) .............................................................. - 27 3.4.3 Entropija .................................................................................................................. - 27 -

3.5 NIST testovi .......................................................................................................... - 28 3.5.1 Ispitivanje uestalosti u nizu .................................................................................... - 28 3.5.2 Ispitivanje uestalosti u bloku ................................................................................. - 29 3.5.3 Ispitivanje uzastopnih ponavljanja istih bitova u nizu ............................................. - 30 3.5.4 Ispitivanje najdueg uzastopnog ponavljanja jedinica u bloku ............................... - 30 3.5.5 Ispitvanje stanja binarne matrice ............................................................................ - 32 3.5.6 Ispitivanje diskretne Furijerove transformacije ....................................................... - 32 3.5.7 Ispitivanje nepreklapajuih uzoraka ........................................................................ - 33 3.5.8 Ispitivanje preklapajuih uzoraka ............................................................................ - 34 3.5.9 Maurerov univerzalni statistiki test ....................................................................... - 35 3.5.10 Ispitivanje linearne kompleksnosti .......................................................................... - 35 3.5.11 Serijski test............................................................................................................... - 36 3.5.12 Ispitivanje pribline entropije .................................................................................. - 37 3.5.13 Ispitivanje sluajnih zbirova ..................................................................................... - 38 3.5.14 Ispitivanje sluajne digresije .................................................................................... - 39 3.5.15 Ispitivanje sluajne promenljive digresije................................................................ - 40 -

4 Pregled predloenog reenja ...............................................................................- 41 4.1 Generika ema predloenog reenja ................................................................. - 41 4.2 Postavka i objanjenje eksperimentalnog okruenja .......................................... - 42 4.3 Performanse predloenog okruenja sa prikazom eksperimentalnih rezultata . - 48 4.4 Oblast primene predloenog reenja .................................................................. - 50 5 Zakljuak.............................................................................................................- 51 -

-2-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

5.1 Sumarni ciljevi rada i ostvareni rezultati ............................................................. - 51 5.2 Predlog za budui rad .......................................................................................... - 51 6 Literatura ............................................................................................................- 52 -

Spisak slika
Slika 2.1 AES Crypt ifrovanje fajla .............................................................................. - 8 Slika 2.2 AES Crypt Deifrovanje fajla .......................................................................... - 8 Slika 2.3 AxCrypt ifrovanje fajla ................................................................................. - 9 Slika 2.4 AxCrypt Unos lozinke prilikom ifrovanja fajla ............................................ - 10 Slika 2.5 CryptoForge - ifarski algoritmi ...................................................................... - 11 Slika 2.6 Folder Lock Zakljuavanje fajlova ................................................................ - 12 Slika 2.7 Folder Lock ifrovanje fajlova...................................................................... - 12 Slika 2.8 TrueCrypt Generisanje kljua pokretima mia ............................................ - 14 Slika 2.9 TrueCrypt Generisan klju ........................................................................... - 14 Slika 3.1 Proces ifrovanja i deifrovanja u simetrinim ifarskim sistemima.............. - 15 Slika 3.2 DES blokovska ifra ......................................................................................... - 16 Slika 3.3 Jedna runda DES algoritma ............................................................................ - 17 Slika 3.4 E-kutija ............................................................................................................ - 17 Slika 3.5 S-kutija ............................................................................................................ - 18 Slika 3.6 P-kutija............................................................................................................ - 18 Slika 3.7 ByteStub operacija ......................................................................................... - 19 Slika 3.8 ShiftRow operacija.......................................................................................... - 20 Slika 3.9 MixColumn operacija ..................................................................................... - 20 Slika 3.10 AddRowKey operacija................................................................................... - 20 Slika 3.11 AES funkcija runde za runde 1,2,..., nr-1 ...................................................... - 21 Slika 3.12 ECB reim rada ............................................................................................. - 22 Slika 3.13 CBC reim rada ............................................................................................. - 22 Slika 3.14 ematski prikaz rada reima za ulanavanje blokova .................................. - 23 Slika 3.15 Vizuelna uporedna analiza rezultata TRNG (levo) i PRNG (desno) .............. - 27 Slika 4.1 ema aplikacije - Generisanje kljua .............................................................. - 41 Slika 4.2 ema aplikacije - ifrovanje ............................................................................ - 42 Slika 4.3 ema aplikacije - Deifrovanje........................................................................ - 42 Slika 4.4 Poetni panel razvijenog reenja ................................................................... - 43 Slika 4.5 Odabir nivoa sigurnosti .................................................................................. - 44 Slika 4.6 Obavetenje pre poetka generisanja kljua ................................................. - 44 Slika 4.7 Proces generisanja kljua ............................................................................... - 45 Slika 4.8 Generisanje klua uspeno zavreno ............................................................. - 45 Slika 4.9 Zatita kljua lozinkom ................................................................................... - 46 Slika 4.10 Proces ifrovanja eljenog fajla upotrebom generisanog kljua.................. - 46 -

-3-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 4.11 Unos lozinke za verifikaciju kljua ................................................................ - 46 Slika 4.12 Odabir jezika aplikacije ................................................................................. - 47 Slika 4.13 O programu .................................................................................................. - 47 Slika 4.14 Prikaz dobijenog kljua preko histograma ................................................... - 49 Slika 4.15 Prikaz vrednosti dobijenih preko X ose ........................................................ - 50 Slika 4.16 Prikaz vrednosti dobijenih preko Y ose ........................................................ - 50 Slika 4.17 Vizuelna uporedna analiza rezultata sa random.org (levo) i generisanog kljua
(desno) ............................................................................................................................. - 50 -

Spisak tabela
Tabela 2.1 TrueCrypt ifarski algoritmi...................................................................... - 13 Tabela 3.1 He algoritmi ............................................................................................... - 25 Tabela 3.2 Karakteristike dva tipa generatora sluajnih brojeva ................................. - 27 Tabela 4.1 Hardverske karakteristike razvojnog i eksperimentalnog okruenja ......... - 47 Tabela 4.2 Rezultati serijskog testa .............................................................................. - 48 Tabela 4.3 Rezultati ispitivanja entropije sa preklapanjem ......................................... - 49 Tabela 4.4 Rezultati ispitivanja entropije bez preklapanja........................................... - 49 -

-4-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Uvod
1.1 Predmet istraivanja
Informacije predstavljaju vaan resurs u savremenom poslovanju. Bez obzira
u kom se obliku uvaju, moraju biti adekvatno zatiene. Iz tog razloga zatita
informacija, ouvanje njene poverljivosti, integriteta i celovitosti je od presudne
vanosti.
Istraivanjem dosadanjeg stanja u ovoj oblasti i predstavljenih reenja,
dolo se do zakljuka da je potrebno razviti reenje za kriptografsku zatitu fajlova i
generisanje kljueva koji e potom biti podvrgnuti teorijsko-informacionoj analizi.
Razvijena aplikacija bie koriena za ifrovanje svih vrsta fajlova simetrinim
ifarskim algoritmima. Korisnik e imati mogunost odabira nivoa sigurnosti koji eli
da koristi i u skladu sa tim e se primenjivati odgovarajui algoritam (DES, AES 128 ili
192), a samim tim i odgovarajua duina kljua.
U aplikaciji e biti implementiran sopstveni modul za generisanje kriptolokih
kljueva, zasnovan na vrednostima dobijenim preko pokreta mia. Proces
generisanja kljua vrie se sakupljanjem koordinata, u okviru panela za generisanje
koji e se prikazati korisniku, na kojima je kliknuo miem. Vreme potrebno za
njegovo generisanje zavisie od nivoa sigurnosti. Nakon to je klju generisan, od
korisnika e se zahtevati da unese lozinku kojom e se dodatno tititi taj klju. Na
ovaj nain bie koriena dvofaktorska autentifikacija kombinovanjem neega to
korisnik ima i neega to zna.
Generisan klju e se uvati iskljuivo na hardverskom tokenu (USB token).
Za ifrovanje e moi da se izabere iskljuivo fajl koji se nalazi na nekoj drugoj
lokaciji u odnosu na onu na kojoj je smeten klju.
Takoe, panja e biti stavljena i na programsku ergonomiju radi
obezbeivanja pravilne upotrebe programa kako bi se spreile eventualne greke od
strane korisnika i na taj nain onemoguili potencijalni bezbednosni problemi.
Aplikacija e biti razvijena na Microsoft .NET platformi, u programskom
jeziku C#. Za prikaz dobijenih rezultata bie korien alat Matlab R2012b.

-5-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

1.2 Doprinosi rada


U osnovne doprinose ovog rada spadaju:

Generisanje kljua na isto sluajan nain


Upotreba mia za dobijanje kljua
Klju se dodatno titi lozinkom koju definie korisnik
Reenje koje e pruiti visok nivo sigurnosti podataka koji se ifruju
Visok nivo ergonomije prilikom upotrebe aplikacije

U nastavku rada svi doprinosi e biti detaljno opisani.

1.3 Struktura rada


U nastavku rada bie predstavljene neke od aplikacija za ifrovanje fajlova
simetrinim kriptolokim kljuem, zatim teorijske osnove istraivanja u kojima e
biti obraeni simetrini ifarski sistemi, reimi rada blokovskih ifara, he funkcije,
generatori sluajnih brojeva i testovi definisani od strane NIST-a (eng. National
Institute of Standards and Technology - amerika federalna agencija za standarde i
tehnologiju).
Nakon toga bie predstavljeno i razvijeno reenje ukljuujui i rezultate testova
kojima su podvrgnuti kljuevi u teorijsko-informacionoj analizi. Na kraju e biti
prikazani ostvareni rezultati kao i predlog za budui rad.

-6-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Pregled u oblasti istraivanja


2.1 Prednosti i nedostaci ifrovanja fajlova u Windows operativnom
sistemu
Jedna od novina uvedena u Microsoft Windows 2000 operativnom sistemu i
NTFS 5.0 fajl sistemu predstavlja Encrypting File System (EFS) tehnologija, koja je
dizajnirana za brzo ifrovanje fajlova na vrstom disku raunara.
EFS sistem koristi i javni i privatni klju za ifrovanje i CriptoAPI arhitekturu.
Upotreba odgovarajueg simetrinog algoritma za ifrovanje se razlikuje u razliitim
verzijama Windows-a. Tako je Microsoft Windows 2000 koristio DESX, Windows XP
3DES, a Windows XP SP1, Windows 2003, Windows Vista i Windows 7 koriste AES.
ifrovanje datoteka ne zahteva od korisnika da izvri preliminarne operacije. Tokom
prvog ifrovanja datoteke, korisniku se automatski izdaju sertifikat i privatni klju.
Jedna od znaajnih karakteristika EFS je ta da fajlovi ostaju zatieni i kada se
prekopiraju u drugi folder ili na drugi NTFS disk. U sluaju prenosa na drugi fajl
sistem, fajlovi se automatski deifruju. Kada korisnik dodaje nove datoteke u
ifrovani direktorijum, oni bivaju automatski ifrovani. Od korisnika se ne zahteva da
eksplicitno deifruje fajl pre upotrebe, jer je EFS ugraen u operativni sistem i
automatski e izvriti ovu funkciju, uz potovanje svih bezbednosnih mera.
EFS tehnologija omoguava da fajlovi ifrovani od strane jednog korisnika ne
mogu biti otvoreni od strane drugog ukoliko on ne poseduje odgovarajue dozvole.
Nakon to je ifrovan, fajl ostaje ifrovan bez obzira na to da li se nalazi na
originalnoj ili je premeten na neku drugu lokaciju na disku. Mogu se ifrovati sve
vrste fajlova, ukljuujui i izvrne.
Korisnik koji ima dozvolu za deifrovanje fajla je u stanju da radi sa njim kao
sa bilo kojim drugim, bez ikakvih ogranienja. Nasuprot tome, drugim korisnicima je
pristup zabranjen. Ovaj pristup je veoma pogodan. Korisnik ima mogunost da
pouzdano i brzo ogranii pristup poverljivim informacijama drugih lanova
domainstva ili kolegama sa kojima deli raunar.
EFS izgleda kao idealan alat, meutim to nije sluaj. Podaci ifrovani
korienjem ove tehnologije mogu biti u potpunosti izgubljeni, na primer, prilikom
ponovne instalacije operativnog sistema.
Fajlovi na disku su ifrovani pomou FEK (eng. File Encription Key). FEK se
ifruje pomou glavnog (eng. master) kljua, koji je ifrovan pomou odgovarajuih
kljueva korisnika. Sami korisniki kljuevi su ifrovani heovanom vrednou
korisnike lozinke, a heovana lozinka koristi SYSKEY bezbednosnu funkciju.
Ovaj lanac ifrovanja trebalo bi pouzdano da titi podatke, ali u praksi, kao
to e biti objanjeno u nastavku, zatita se na kraju moe svesti na upotrebu
lozinke korisnika za prijavljivanje na sistem. Zbog ovakvog lanca ifrovanja, ukoliko

-7-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

se lozinka izgubi ili promeni ili ukoliko operativni sistem padne ili se ponovo
instalira, postaje nemogue da se dobije pristup EFS ifrovanim fajlovima. U stvari,
pristup moe biti trajno izgubljen. Standardni korisnici ne razumeju u potpunosti
kako funkcionie EFS i esto plaaju cenu toga time to gube svoje podatke.

2.2 Razvoj aplikacija za ifrovanje fajlova simetrinim kriptolokim kljuem


S obzirom na sistem za ifrovanje fajlova u Windows operativnom sistemu i
njegove prednosti i mane, razvijeno je dosta aplikacija za ifrovanje simetrinim
kljuem. U nastavku e biti predstavljene neke od najboljih na tritu.
2.2.1 AES Crypt
AES Crypt predstavalja open-source aplikaciju za ifrovanje fajlova AES
blokovskom ifrom. Podrava rad na Windows, Linux i MacOS operativnim
sistemima. Postoje 32-bitna i 64-bitna verzija aplikacije, kao i aplikacija sa
grafikim interfejsom i konzolna aplikacija. Aplikacija sa grafikim interfejsom se
zapravo integrie u Windows Explorer.
Prilikom ifrovanja korisnik unosi lozinku kojom se tite inicijalni vektor i
klju koji se generiu na sluajan nain. Duina lozinke moe biti i samo jedan
karakter. Nakon ifrovanja originalni fajl se zadrava, a ifrovani fajl u formatu
ime_fajla.orignalna_ekstenzija.aes se uva na istoj lokaciji kao i originalni fajl.
Veliina bloka i IV su 128 bita, dok je duina kljua 256 bita. Od funkcija za
saimanje koristi SHA-256.

Slika 2.1 AES Crypt ifrovanje fajla

Slika 2.2 AES Crypt Deifrovanje fajla

-8-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

2.2.2 AxCrypt
AxCrypt predstavlja jednu od vodeih aplikacija za ifrovanje fajlova na
Windows operativnom sistemu. Aplikacija je besplatna i nakon instalacije se
integrie u Windows Explorer.
Prilikom ifrovanja unosi se lozinka i/ili se odabira unapred generisani fajl
sa kljuem kojim se titi ifrat. Duina lozinke nema ogranienja, iako se
korisnicima savetuje da ifra ne sadri manje od 5 karaktera, samog ogranienja u
aplikaciji nema.
Postoji mogunost generisanja random kljua od 128 bita. Mogue ga je
sauvati jedino na nekom od prenosnih medijuma (USB token). Ukoliko se zajedno
koriste lozinka i generisani klju, vri se njihova konkatenacija, zatim se heuju da
bi se takav klju koristio prilikom ifrovanja odnosno deifrovanja. AxCrypt koristi
AES 128 blokovsku ifru i SHA-1 funkciju za saimanje.
ifrovani fajl dobija naziv u formatu ime_fajla-originalna_ekstenzija.axx.
Originalni fajl se ne uva ve biva zamenjen ifrovanim. Aplikacija podrava
ifrovanje vie fajlova odjednom.

Slika 2.3 AxCrypt ifrovanje fajla

-9-

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 2.4 AxCrypt Unos lozinke prilikom ifrovanja fajla

2.2.3 CryptoForge
CryptoForge predstavlja jednostavnu aplikaciju za upotrebu za ifrovanje
fajlova kako za privatne tako i za poslovne korisnike. Omoguava zatitu fajlova,
foldera ili poruka upotrebom do etiri simetrina algoritma (i CBC reima rada):

Blowfish (448-bitni klju)


Rijndael (256-bitni klju)
Trostruki DES (168-bitni klju)
Gost (256-bitni klju)

Omoguava rad sa svim tipovima fajlova, bilo da se nalaze na lokalnom


raunaru ili na nekom od raunara u mrei. Maksimalna veliina fajla koju
podrava je 16TB.
Prilikom pokretanja aplikacijie, korisnik unosi lozinku, koja se heuje i koja
predstavlja klju za ifrovanje i deifrovanje sadraja. Sadri ugraenu funkciju koja
prua mogunost kompresovanja sadraja pre ifrovanja ime se dodatno
poveava sigurnost. ifrovani fajl dobija naziv u formatu ime_fajlaoriginalna_ekstenzija.cfe. Originalni fajl se ne uva ve biva zamenjen ifrovanim.
Takoe, postoji mogunost ifrovanja i samog naziva fajla. U tom sluaju fajlu e
biti dodeljen nasumino generisan naziv sa ekstenzijom .cfe.

- 10 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 2.5 CryptoForge - ifarski algoritmi

2.2.4 Folder Lock


Folder Lock je koncept bezbednosti podataka koji omoguava
zakljuavanje, skrivanje i zatititu fajlova, foldera i diskova lozinkom, ifrovanje
fajlova i foldera, a opciono omoguava kreiranje rezervnih kopija ifrovanih fajlova
na sigurnom online nalogu. Pored zakljuavanja, ifrovanja i sigurne rezervne
kopije, Folder Lock nudi dodatne funkcije za zatitu podataka, kao to su zatita
USB / CD, zakljuavanje fajlova, kreiranje novanika, seckanje fajlova.
Radi na Windows operativnom sistemu, kako na 32-bitnom, tako i na 64bitnom. Za ifrovanje fajlova koristi 256-bitnu AES enkripciju i 128-bitnu enkripciju
za sve online komunikacije.
Nakon prvog pokretanja aplikacije od korisnika se zahteva da unese glavnu
lozinku (eng. Master password) ija duina mora biti u rasponu od 6-100 karaktera.
Nakon toga, sva administrativna prava (ukljuujui ifrovanje i zakljuavanje
fajlova) se vezuju za ovu lozinku. Ona postaje glavna lozinka za celu aplikaciju, a
moe se podesiti ili menjati od strane korisnika koji je prvi instalirao aplikaciju. S
obzirom da celo funkcionisanje, a samim tim i sigurnost aplikacije zavisi od njene
jaine, neophodno je da bude dovoljno jaka da se odupre bilo kojoj vrsti
potencijalnog napada (npr. brute-force, napad renikom, itd). Kao prevencija
napada na lozinku, korisnik ima mogunost podeavanja opcije za spreavanje
viestrukog unosa pogrene lozinke.

- 11 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 2.6 Folder Lock Zakljuavanje fajlova

Slika 2.7 Folder Lock ifrovanje fajlova

- 12 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

2.2.5 TrueCrypt
TrueCrypt je softverski sistem za uspostavljanje i odravanje on-the-fly
ifrovanog diska to znai da su podaci automatski ifrovani pre nego to su
sauvani i deifrovani odmah nakon to su uitani, bez dodatne intervencije od
strane korisnika. Svi podaci koji se ifruju odnosno deifruju se, umesto na disku,
uvaju u RAM memoriji. Bez unosa ispravne lozinke i fajla sa kljuem, nije mogue
pristupiti nijednom podatku koji se nalazi na ifrovanom disku.
TrueCrypt particije ifruju se nekim od navedenih algoritama:
Algoritam

Duina kljua

Veliina bloka

AES

256

128

Serpent

256

128

Twofish

256

128

256; 256

128

256; 256; 256

128

256; 256

128

256; 256; 256

128

256; 256

128

AES-Twofish
AES-Twofish-Serpent
Serpent-AES
Serpent-Twofish-AES
Twofish-Serpent

Tabela 2.1 TrueCrypt ifarski algoritmi

Aplikacija podrava sledee algoritme za saimanje:

RIPEMD-160
SHA-512
Whirlpool

Generator sluajnih brojeva (RNG) koristi se za generisanje glavnog kljua


za ifrovanje, pomonog kljua, za kriptografsku so kao i za klju. U RAM memoriji
se kreira prostor (eng. pool) od 320 bajtova u koji se smetaju podaci iz sledeih
izvora:
Pokreti mia
Pritisci tastera na tastaturi
Na Mac i Linux operativnim sistemima: vrednosti generisane od strane
ugraenog generatora sluajnih vrednosti
Na Windows operativnom sistemu: statistika mrenog interfejsa,
vremenske promenljive...
Prilikom kreiranja particije na kojoj e se nalaziti fajlovi koji se ifruju,
potrebno je definisati lozinku za tu particiju. Maksimalan broj karaktera je 64, a
prilikom unosa kratke lozinke korisnik se upozorava ukoliko je uneo manje od 20
karaktera.

- 13 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 2.8 TrueCrypt Generisanje kljua pokretima mia

Slika 2.9 TrueCrypt Generisan klju

2.3 Primena tehnologije zasnovane na simetrinom kriptolokom kljuu


Reenja bazirana na upotrebi simetrinog kriptolokog kljua pogodna su za
privatne i poslovne korisnike koji imaju potrebu za zatitom odreenih podataka
koje uvaju ili na svom raunaru ili na nekom prenosnom medijumu. Poslovni
korisnici imaju potrebu za zatitom poverljivih kompanijskih podataka, dok privatni
korisnici ele da neke svoje podatke zatite ukoliko se oni nalaze na raunaru koji
dele sa npr. drugim lanovima porodice.
Ovakva reenja su pogodna ukoliko ne postoji potreba za razmenom kljua
sa drugim korisnicima. U tom sluaju bi se zahtevao njegov transfer kroz neki
siguran komunukacioni kanal. Za takve potrebe moda je dobro razmisliti o upotrebi
asimetrinog kriptolokog kljua.

- 14 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Teorijske osnove istraivanja

Svojstvo da se informacije mogu itati samo od autorizovanih korisnika ili


primaoca predstavlja tajnost podataka. Zatita tajnosti informacija postie se na taj nain
to se u procesu ifrovanja otvorena poruka, upotrebom odgovarajueg kljua,
transformie u novi oblik informacije - ifrat. Deifrovanje predstavlja reverzni proces u
odnosu na ifrovanje - transformie ifrat u otvoreni tekst. ifrovanjem se postie zatita
tajnosti i integritet informacija.
Tajnost poruke zasniva se iskljuivo na tajnosti kljua s obzirom da je rad svih
ifarskih algoritama koji se danas koriste poznat. Klju predstavlja poetnu vrednost
algoritma kojim se vri ifrovanje, a tajnost se ogleda u tome to njega poseduje samo
osoba koja vri ifrovanje.
Tehnike ifrovanja imaju veliki znaaj iz razloga to imaju glavnu ulogu u zatiti od
informatikih prevara, povrede sigurnosti podataka, zatiti pouzdanosti korespodencije,
profesionalne tajne i u elektronskoj trgovini.

3.1 Simetrini ifarski sistemi


Simetrini ifarski sistemi predstavljaju sisteme ifrovanja tajnim kljuem pri
emu je klju za ifrovanje identian kljuu za deifrovanje. Karakteriu se relativno
velikom brzinom rada i jednostavnom implementacijom.
Kod ifrovanja poruke upotrebom simetrinih sistema, tajnost i autentinost
poruke zasnivaju se na autentinosti kljua, a sistem je bezbedniji ukoliko se klju
generie na to sluajniji nain.

Slika 3.1 Proces ifrovanja i deifrovanja u simetrinim ifarskim sistemima

Simetrini ifarski sistemi se dele na:

Klasine
Sekvencijalne
Blokovske

U nastavku e biti opisan rad blokovskih ifara.

- 15 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Blokovske ifre se mogu posmatrati kao moderni naslednici klasinih kodnih


knjiga gde klju odreuje kodnu knjigu. Unutranji rad algoritama savremenih
blokovskih ifara je kompleksan. Kod blokovskih ifara, otvoreni tekst i ifrat se dele
na blokove fiksne duine (64, 128, 192, 256) u bitovima, zatim se svaki blok
nezavisno ifruje. ifrat se dobija na osnovu otvorenog teksta iterativnom
primenom funkcije koja se naziva runda. Ulaz u funkciju runde je klju i izlaz
prethodne runde. Blokovske ifre kombinuju svojstva konfuzije i difuzije i
kompletnost. Najee se realizuju softverski.
3.1.1 DES
Data Encryption Standard (DES) razvijen je 1970-tih godina. Predstavlja
blokovsku ifru sa simetrinim kljuem usvojenu od strane NIST-a (eng. National
Institute of Standards and Technology - amerika federalna agencija za standarde i
tehnologiju). Pripada grupi modernih ifara.
Cilj dizajna je bio da se uvedu principi konfuzije i difuzije.

Konfuzija ifrat treba da zavisi od otvorenog teksta i kljua na sloen


nain.
Difuzija Svaki bit ifrata treba da je funkcija svih bitova otvorenog teksta i
svih bitova kljua.

DES vri ifrovanje blokova duine 64 bita kljuem duine 56 bita.

Slika 3.2 DES blokovska ifra

Svaki blok otvorenog teksta se transformie u 16 rundi koje obavljaju


identinu operaciju. U svakoj rundi se koristi 48 bita kljua (podklju).
DES je Fejstel ifra. Fejstel ifra (nazvana po pioniru blokovskih ifara
Horstu Fejstelu) ne predstavlja odreenu ifru nego generalni princip dizajniranja
ifri. Kod Fejstel ifri otvoreni tekst P se deli na blokove tako to se svaki blok deli
na dva dela levi L i desni R.
P = (L0, R0)

- 16 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

U svakoj rundi i (i = 1, 2,..., n), leva i desna strana se izraunavaju na sledei nain:
=
=

F je funcija runde.
Ki je podklju za rundu i. Podklju je izveden iz kljua K prema specifinom
algoritmu. Izlaz iz runde je ifrat C.
=(

Poto je DES Fejstel ifra, ifrovanje prati pravila prikazana u jednaini:


(

)=

)))

Slika 3.3 Jedna runda DES algoritma

E-kutija (eng. expand) proiruje i permutuje 32 ulazna bita na 48 bita i


podklju je XOR-ovan sa rezultatom. Potom S-kutije (eng. substitution) kompresuju
ta 48 bita na 32 bita pre nego to se rezultat prosledi P-kutiji (eng. permutation).
Izlaz iz P-kutije je XOR-ovan sa starom levom polovinom da bi se dobila nova desna
polovina.
32 bita

48 bita
Slika 3.4 E-kutija

- 17 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

48 bita

32 bita
Slika 3.5 S-kutija

32 bita

32 bita
Slika 3.6 P-kutija

Trideset godina intenzivne kriptoanalize nije otkrilo nikakve propuste tipa


back door. Sa aspekta sigurnosti, danas je DES ranjiv na brute-force napade samo
zbog male duine kljua, a ne zato to postoji neki ozbiljniji skraeni napad. Iako su
razvijeni neki napadi koji teorijski zahtevaju neznatno manje posla u odnosu na
potpunu pretragu kljueva, svi dosad napravljeni programi za razbijanje DES-a
jednostavno isprobavaju sve kombinacije kljueva dok ne naiu na onu pravu,
odnosno, primenjuju potpunu pretragu kljueva.
3.1.2 AES
Advanced Encryption Standard (AES) je najrasprostranjenija simetrina
ifra. Iako se izraz Standard odnosi samo na Vladu SAD-a, AES je obavezan za
upotrebu i u raznim industrijskim standardima, a takoe se koristi i u komercijalne
svrhe. U komenrcijalne standarde koji koriste AES spadaju standard za Internet
sigurnost IPsec, TLC, standard za ifrovanje Wi-Fi komunikacije IEEE 802.11i, SSH
(eng. Secure Shell) mreni protokol, Internet komunikacija preko Skype-a i razni
drugi sigurnosni proizvodi.
Razvijen je krajem 1990-tih godina od strane NIST-a i zasnovan na Rijndael
(izgovara se slino kao eng. Rain doll) algoritmu. AES je kao i DES, blokovska ifra
sa simetrinim kljuem standardizovana od strane NIST-a. Za razliku od DES-a, nije
Fejstel ifra. Glavna posledica toga je da AES operacije moraju biti povratne da bi
se neto moglo deifrovati. Takoe, za razliku od DES-a, AES algoritam ima
komplikovanu matematiku strukturu.
- 18 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Otporan na poznate napade, veoma je brz, mogu je paralelni dizajn, kao i


implementacija na mnogim procesorima i pametnim karticama. Do danas nisu
uoeni bolji napadi od brute-force napada na AES.
Funkcionalni parametrima AES-a su:

Duina bloka otvorenog teksta je 128, 192 i 256 bita


Duina kljua je 128, 192 i 256 bita
Ima ukupno od 10 do 14 rundi, zavisno od duine kljua
U svakoj rundi koriste se 4 funkcije
- Nelinearni sloj (eng. ByteSub)
- Sloj linearnog meanja (eng. ShiftRow)
- Nelinearni sloj (eng. MixColumns)
- Dodatni sloj kljua (eng. AddRoundKey).

Bitna karakteristika AES-a je da je duina bloka otvorenog teksta u


potpunosti nezavisna od duine kljua. To znai da je mogue ifrovati blok
otvorenog teksta duine 128 bita sa kljuem duine 256 bita.
Sve operacije AES algoritma obavljaju se na dvodimenzionalnom nizu
bitova, odnosno matrici stanja. ifrovanje, odnosno deifrovanje se vri tako to se
ulazni blok podatka kopira u matricu stanja nad kojom se sprovode razne
operacije. Zavrna vrednost matrice ili stanje, kopira se u izlazni ifarski blok. AES
ulazne podatke tretira kao matrice dimenzije 4x4.
ByteStub operacija se primenjuje na svaki bajt aij tako da je
bij=ByteStub(aij). Kao rezultat se dobija niz bij prikazan na slici 3.7.

Slika 3.7 ByteStub operacija

ByteStub operacija je za AES isto to i S-kutija za DES. Moe se posmatrati


kao nelinearna, ali invertibilna, kompozicija dve matematike operacije ili kao
tabela.
ShiftRow operacija predstavlja ciklino pomeranje bajtova u svakom redu
matrice 4x4. U prvom redu ne postoji pomeranje, u drugom se pomera jedan bajt,
u treem dva i u poslednjem redu tri bajta se pomeraju u levo.

- 19 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 3.8 ShiftRow operacija

MixColumn operacija se primenjuje na svaku kolonu matrice 4x4 kao to je


prikazano na slici 3.9. Ovu operaciju ine operacije pomeranja i XOR-ovanja.

Slika 3.9 MixColumn operacija

AddRoundKey je jednostavna operacija. Kao kod DES-a, algoritam


rasporeda kljua je korien da bi se generisao podklju za svaku rundu.
Ako je Kij matrica 4x4 podkljua za odreenu rundu, onda se podklju XOR-uje sa
trenutnom matricom 4x4 aij koja predstavlja ulaz kao to je prikazano u nastavku:

Slika 3.10 AddRowKey operacija

- 20 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 3.11 AES funkcija runde za runde 1,2,..., nr-1

3.2 Reimi rada blokovskih ifara


Upotrebom blokovskih ifara (DES, AES) uvek postoji potreba da se ifruje
vie od jednog bloka otvorenog teksta. Prilikom ifrovanja odnosno deifrovanja,
svaki otvoreni tekst se deli na blokove veliine n bita. Otvoreni tekst koji prelazi n
bita se deli na n-bitne blokove. Ukoliko duina otvorenog teksta nije deljiva sa n
bita, mora biti dopunjena do veliine bloka.
Postoji vie naina da se ifruje dugaak otvoreni tekst sa blokovskim
iframa. Najpoznatiji reimi rada su:

ECB Elektronska kodna knjiga (eng. Electronic Code Book)


CBC Ulanavanje blokova ifrata (eng. Cipher Block Chaining)
CFB Sprega ifrata (eng. Cipher Feedback)
OFB Sprega izlazne vrednosti (eng. Output Feedback)
CTR Brojaki (eng. Counter)

Svi reimi rada su nezavisni (odnosno primenljivi) na svim blokovskim algoritmima.

- 21 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

3.2.1 Elektronska kodna knjiga (ECB)


Elektronska kodna knjiga (eng. Electronic codebook - ECB) predstavlja
najjednostavniji reim rada blokovskih ifara. Princip rada ovog reima je u tome
da se za isti blok otvorenog teksta dobija isti blok ifrata. U ovom reimu svaki blok
ifrata je potpuno nezavisan.
U ECB reimu, ifrovanje se vri na sledei nain
= ( , )

za i = 0, 1, 2

za i = 0, 1, 2

a deifrovanje
( , )

Problem sa ECB reimom se ogleda u tome to se prilikom kriptoanalize


poreenjem vie otvorenih tekstova i ifrata bez upotrebe kljua moe primetiti da
se delovi poruke ponavljaju. Napada moe zakljuiti da je Ci = Cj i iz toga
zakljuuje da je Pi = Pj. Razliite poruke imaju zajednike bitne sekvence.
Redudansa poruka moe biti velika.
Ilustracija ECB reima prikazana je na slici 3.12.

Slika 3.12 ECB reim rada

3.2.2 Ulanavanje blokova ifrata (CBC)


Reim ulanavanja blokova ifrata (eng. Cipher-block chaining - CBC)
predstavlja najee korien reim. Radi na principu ulanavanja blokova ifrata.
ifrat od prethodnog bloka otvorenog teksta koristi se za zamagljivanje
otvorenog teksta sledeeg bloka, pre nego to se primeni algoritam za ifrovanje.
Ilustacija CBC reima prikazana je na slici 3.13.

Slika 3.13 CBC reim rada

- 22 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Formula za ifrovanje u CBC reimu je


= (

, )

= (
= (
= (

( , )

za i = 0, 1, 2
, )
, )
, )

a za deifrovanje
=

=
=
=

za i = 0, 1, 2

( , )
( , )
( , )

U reimu za ulanavanje blokova ifrata, otvoreni tekst se prvo XOR-uje


predhodnim blokom ifrata pre nego to se ifruje. Nakon to se blok otvorenog
teksta ifruje, njegov ifrat se smeta u registar povratnih vrednosti. Pre ifrovanja
novog bloka otvorenog teksta, XOR-uje se sa povratnom vrednou da bi se dobio
novi ulaz za naredni blok. Prednost CBC reima je ta da identian otvoreni tekst
nee identino odgovarati ifratu.

Slika 3.14 ematski prikaz rada reima za ulanavanje blokova

3.2.3 Inicijalni vektor


Inicijalni vektor se koristi samo za generisanje prvog bloka ifrata. Poeljno
je da bude generisan na isto sluajan nain i nije neophodno da bude tajan.
Duina inicijalnog vektora (IV) je uvek jednaka veliini bloka date ifre.

- 23 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

3.2.4 Ispunjavanje
Veina otvorenog teksta koji je potrebno ifrovati nije deljiv sa veliinom
bloka i iz tog razloga poslednji blok nema dovoljan broj bita. Reenje ovog
problema ogleda se u ispunjavanju tog bloka. Ispunjavanje (eng. padding) se moe
vriti nulama, jedinicama i nulama. PKCS7 predstavlja jedan od najpopularnijh
reima ispunjavanja.

3.3 He funkcija
S obzirom da ifrovanje ne titi integritet poruke, za zatitu integriteta
(autentinosti sadraja poruke) koristi se he funkcija (funkcija za saimanje poruke
odnosno za generisanje skraene verzije poruke). Za otvoreni tekst razliite duine,
nakon primene he funkcije dobija se tekst fiksne duine.
Glavna karakteristika he funkcije u kriptografskim aplikacijama je ta da mora biti
jednosmerna.
y = h(M)
h he funkcija
M poruka
Y rezultat he funkcije
Najpoznatija grupa he funkcija je MD4 grupa. MD5, SHA i RIPEMD
pripadaju ovoj grupi.
3.3.1 MD5
MD5 (eng. Message Digest) predstavlja jednosmernu funkciju koja za ulaz
proizvoljne duine daje izlaz od 128 bita. Razvijena je 1991. godine od strane
Rolanda Rivesta. Bila je iroko rasprostranjena (za sigurnost Internet protokola, za
poreenje sauvanih lozinki). Poznato je da ima slabosti i da nije otporna na
kriptografske napade. I pored ovoga, zbog svoje brzine rada se koristi u proveri
integriteta veih fajlova.
3.3.2 SHA
Nakon to su primeene slabosti kod MD5 funkcije, 1993. godine NIST je
uveo novi standard - SHA (eng. Secure Hash Algorithm). Prvi lan ove porodice je
nazvan SHA, iako je on danas poznat pod nazivom SHA-0. Modifikovan je 1995.
god. i dobijen je SHA-1. Razlika izmeu SHA-0 i SHA-1 ogleda se u rasporedu
funkcija za kompresovanje koji obezbeuje veu kriptografsku sigurnost.

- 24 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

NIST je 2002. god. uveo novu familiju algoritama (SHA-2) koje se razlikuju
po duini he vrednosti: SHA-256, SHA-384 i SHA-512. SHA-224 je objavljen 2004.
god. Ovi algoritmi su bezbedniji zbog duine he vrednosti i odreenih promena u
algoritmu. Takoe su kompatibilni sa AES blokvskom ifrom.
SHA-1 predstavlja industrijski standard u kriptografiji i pored toga to
algoritmi iz SHA-2 porodice pruaju veu sigurnost. SHA-0 i SHA-1 algoritmi se
danas ne mogu smatrati bezbednim zato to postoje kriptografski napadi koji su
sposobni da pronau koliziju za relativno kratko vreme.
Algoritam
SHA-0
SHA-1
SHA-2

SHA-224
SHA-256
SHA-384
SHA-512

Izlaz
(u bitovima)
160
160
224
256
384
512

Inicijalna
veliina u
bitovima

Broj
rundi

Kolizije

512
512
512
1024
1024

80
64
64
80
80

Da
Za sad ne
Ne
Ne
Ne

Tabela 3.1 He algoritmi

3.3.3 Kriptografska so
Prilikom logovanja korisnika na sistem, vri se provera validnosti njegove
lozinke. Ukoliko se u bazi uvaju he vrednosti lozinki, prilikom autentifikacije
rauna se he vrednost unete lozinke od strane korisnika i poredi se sa vrednou
iz baze. Ukoliko se one poklapaju, korisnik je autentifikovan i omoguen mu je
pristup sistemu.
S druge strane, ukoliko napada eli da pristupi, moe koristiti napad sa
renikom (eng. dictionary attack). Da bi mu se oteao posao koristi se
kriptografska so (eng. salt) koja predstavlja sluajne vrednosti koje se dodaju
lozinci pre upotrebe he funkcije. Kriptografska so i rezultat he funkcije se
smetaju u bazu. Ukoliko je broj moguih posoljenih vrednosti dovoljno veliki,
ovim se praktino eliminie napad sa renikom, jer napada za svaku kriptografsku
so mora da generie he vrednost.
Posoljena vrednost ne mora da bude tajna. Ona se moe posmatrati kao
inicijalni vektor (IV) kod blokovskih ifara ime se postie da se isti blokovi
otvorenog teksta ifruju na razliit nain. Po tom principu, primenom posoljene
vrednosti, identine lozinke dobijaju razliite he vrednosti.
y = h(p,s)
p lozinka
s sluajna vrednost
- 25 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

h he funkcija
y rezultat he funkcije lozinke i sluajne vrednosti

3.4 Generatori sluajnih brojeva


Sluajnost predstavlja sutinu za generisanje kljueva i jednu od glavnih
sigurnosnih komponenti za mnoge kriptografske protokole. Ukoliko se za
generisanje kljua koristi neodgovarajua sluajnost, celokupna sigurnost protokola
moe biti ugroena. Sa ovog stanovita, generisanje ovakvih sluajnih podataka je
od velike vanosti.
Generatori sluajnih brojeva (eng. Random Number Generator - RNG) se
koriste u velikom broju aplikacija za simulacije i kriptografiju. Predstavljaju vaan
deo mnogih kriptografskih sistema, kao to su generisanje kljueva, inicijalizacija
vektora, za ispunjavanje poruka i drugo.
Generatori sluajnih brojeva su ureaji koji generiu niz brojeva ili neku vrstu
simbola koji se pojavljuju nasumice. Koriste se u razne svrhe, kao to su simulacija,
modelovanje sloenih fenomena, kriptografija i naravno zauvek popularne igre i
kockanje. Postoje dva osnovna pristupa za generisanje sluajnih brojeva:

Pravi generator sluajnih brojeva (eng. True Random Number Generator TRNG)
Pseudosluajni generator brojeva (eng. Pseudo Random Number Generator
- PRNG)

3.4.1 Pravi generator sluajnih brojeva (TRNG)


Pravi generator sluajnih brojeva (eng. True Random Number Generator TRNG) izvlai sluajnosti iz fizikih fenomena kao to su atmosferski um, male
varijacije u pokretima mia ili vreme izmeu poteza miem. Uglavnom se koristi u
igrama i kockanju gde je potrebna istinska sluajnost, jer su previe spori za
upotrebu u statistikim i kriptografskim aplikacijama.
TRNG karakterie injenica da njegov izlaz ne moe da se reprodukuje. Na
primer, ako se novi baci 100 puta i snimi dobijena sekvenca od 100 bita, bie
gotovo nemogue da bilo ko generie istu sekvencu od 100 bita. anse za uspeh su
1/2100, to predstavlja izuzetno malu verovatnou. TRNG je zasnovan na fizikim
procesima. Neki od primera su bacanje novia, bacanje kockice, um
poluprovodnika... U kriptografiji, TRNG je esto potreban za generisanje sesijskih
kljueva, koji se potom distribuiraju korisnicima.

- 26 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

3.4.2 Pseudosluajni generator brojeva (PRNG)


Pseudosluajni generator brojeva (eng. Pseudo Random Number Generator
- PRNG) predstavlja generator za generisanje pseudosluajnih brojeva na osnovu
inicijalnog stanja koje je odreeno na sluajan nain.
U odnosu na TRNG, PRNG je algoritam koji koristi neku matematiku
formulu ili za generisanje niza brojeva koji se pojavljuju nasumice. Niz brojeva
proizvedenih nije zaista sluajan. Potpuno je odreen proizvoljnim poetnim
stanjem. PRNG je efikasan, deterministian i periodian, to ga ini pogodnim za
aplikacije gde se zahteva mnogo brojeva i gde je korisno da se isti redosled moe
lako ponoviti kao to su simulacije i modelovanja. PRNG treba da poseduje neke
karakteristike da bi se smatrao dobrim PRNG-om, kao to su uniformnost,
nezavisnost, pravilna inicijalizacija, nepredvidivost, efikasnost i prenosivost.
Kvalitet sluajnosti PRNG-a se meri izlaganjem skupu statistikih testova koji se
nazivaju konzervativni testovi. Svaki kriptografski siguran PRNG treba da zadovolji
dva osnovna uslova: test sledeeg bita i stanje kompromisa ekstenzija.

Karakteristike

PRNG

TRNG

Efikasnost
Determinizam
Periodinost

da
da
da

ne
ne
ne

Tabela 3.2 Karakteristike dva tipa generatora sluajnih brojeva

Slika 3.15 Vizuelna uporedna analiza rezultata TRNG (levo) i PRNG (desno)

3.4.3 Entropija
Teorija informacija se bavi merenjem i prenosom informacija kroz
komunikacioni kanal. enonova teorija informacija predstavlja osnovni rad u ovoj
oblasti, koja prua mnogo korisnih alata koji se zasnivaju na merenju informacije u
smislu bita ili u smislu sloenosti struktura potrebnih za kodiranje datih podataka.

- 27 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

U teoriji informacija pod pojmom entropije misli se na enonovu entropiju


objavljenu u njegovom uvenom radu iz 1948. godine Matematika teorija
komunikacija. Ona predstavlja meru za koliinu neodreenosti odnosno prosenu
koliinu informacije koju sadre generisane poruke nekog informacionog izvora.
Koliina informacija u poruci M se meri entropijom poruke, oznaenom sa
H(M). Entropija poruke merena u bitovima je log2n, u kojima je n broj moguih
znaenja. Ovo podrazumeva da je svako znaenje podjednako verovatno.
Za poruku P koja predstavlja binarni niz, entropija zavisi od verovatnoe 0 i
1. Entropija binarnih nizova se definie na sledei nain:
H = - p log2 p - (1 - p) log2 (1 - p)
Kod binarnih sekvenci, entropija H predstavlja informaciju po jednom bitu.
Poeljna vrednost entropije je H1. Ova vrednost vai za verovatnoe pojavljivanja
nula i jedinica P1/0 {~0.5, ~0.5}.
Entropija se esto koristi u vezi sa generatorima sluajnih brojeva. Redosled
sluajnih promenljivih se naziva sluajna ako ima maksimalnu entropiju po bitu,
to je 1:0.

3.5 NIST testovi


NIST-ov paket testova predstavlja statistiki paket koji se sastoji od 15
testova koji su razvijeni za testiranje sluajnosti binarne sekvence koje proizvode
hardver ili softver na bazi kriptografski sluajnih ili pseudosluajnih brojeva. Ovi
testovi se fokusiraju na razliite vrste nesluajnosti koje bi mogle da postoje u nizu.
Neki testovi su podeljeni u vie podtestova.
3.5.1 Ispitivanje uestalosti u nizu
U fokusu ovog testa je ispitivanje odnosa jedinica i nula u nizu bitova. Cilj je
uoavanje jednakosti pojavljivanja ove dve vrednosti. Potreban je priblian broj
jedinica i nula u sekvenci. Svi podtestovi koji proizilaze iz ovog testa direktno
zavise od njegove uspenosti.
Test se poziva preko metode Frequency(n) gde je n duina bitnog uzorka.
Metoda koristi i dodatni parametar koji predstavlja niz bitova generisanog preko
RNG ili PRNG koji se testira.

- 28 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Primer:
-

Ulazni parametri
= 11001001000011111101101010100010001000010110100011
00001000110100110001001100011001100010100010111000
n = 100

Obrada
S100 = -16
sobs = 1.6

Izlazni parametar
P = 0.109599

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.2 Ispitivanje uestalosti u bloku


Test posmatra odnos jedinica i nula u n-bitnim blokovima. Cilj predstavlja
uoavanje jednakosti broja jedinica i nula u svakom n-bitnom bloku.
Poziv testa se vri preko metode BlockFrequency(M,n) gde su
M duina svakog bloka
n duina bitnog uzorka

Kao i kod testa za ispitivanje uestalosti u nizu, koristi se i dodati parametar .


Primer:
-

Ulazni parametri
= 11001001000011111101101010100010001000010110100011
00001000110100110001001100011001100010100010111000
n = 100
M = 10

Obrada
N = 10
X2 = 7.2

- 29 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Izlazni parametar
P = 0.706438

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.3 Ispitivanje uzastopnih ponavljanja istih bitova u nizu


Posmatrana karakteristika u ovom testu je ukupan broj uzastopnih
ponavljanja jednog broja u nizu. Svrha ovog testa je da se odredi da li broj
uzastopnih ponavljanja nula i jedinica odgovara oekivanoj sluajnoj sekvenci.
Poziv testa se vri preko metode Runs(n) gde je n duina bitnog uzorka.
Takoe postoji i dodatni parametar .
Primer:
-

Ulazni parametri
= 11001001000011111101101010100010001000010110100011
00001000110100110001001100011001100010100010111000
n = 100
= 0.02

Obrada
= 0.42
Vn(obs) = 52

Izlazni parametar
P = 0.500798

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.4 Ispitivanje najdueg uzastopnog ponavljanja jedinica u bloku


U ovom testu se posmatra najdue uzastopno ponavljanje jedinica u nbitnim blokovima. Svrha je odreivanje da li se duina najdueg uzastopnog
ponavljanja poklapa sa duinom koja bi se oekivala u nizu sluajnih brojeva.

- 30 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Poziv testa vri se preko metode LongestRunOfOnes(n) gde je n duina bitnog


uzorka. Takoe postoji i dodatni parametar .

M duina svakog bloka. Test je podeen tako da za M koristi tri vrednosti: M = 8,


M = 128 i M = 104 u skladu sa duinom parametra n:
Minimum n
128
6272
750,000

M
8
128
104

Primer:
U sluaju kada je K = 3 i M = 8:
-

Ulazni parametri
= 11001100000101010110110001001100111000000000001001
00110101010001000100111101011010000000110101111100
1100111001101101100010110010
n = 128

Obrada
Maksimalno ponavljanje
podbloka
11001100 (2)
01101100 (2)
11100000 (3)
01001101 (2)
00010011 (2)
10000000 (1)
11001100 (2)
11011000 (2)

Maksimalno ponavljanje
podbloka
00010101 (1)
01001100 (2)
00000010 (1)
01010001 (1)
11010110 (2)
11010111 (3)
11100110 (3)
10110010 (2)

0 = 4; 1 = 9; 2 = 3; 4 = 0; x2 = 4.882457
-

Izlazni parametar
P-value = 0.180609

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

- 31 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

3.5.5 Ispitvanje stanja binarne matrice


Svrha ovog testa je provera linearne zavisnosti izmeu podnizova fiksne
duine iz originalnog niza.
Poziv testa vri se preko metode Rank(n) gde je n duina bitnog uzorka.
Koristi se i dodati parametar .
Primer:
-

Ulazni parametri
= 11001001000011111101101010100010001000010110100011
00001000110100110001001100011001100010100010111000
n = 100

Obrada
N1 = 46
N0 = 47.5
d = -1.376494

Izlazni parametar
P = 0.168669

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.6 Ispitivanje diskretne Furijerove transformacije


Fokus ovog testa predstavlja najvie vrednosti diskretne Furijerove
transformacije niza. Svrha ovog testa je da otkrije periodine funkcije u testiranom
nizu koja bi ukazivala na odstupanje od pretpostavke o sluajnosti. Namera je da
se otkrije da li je broj najviih vrednosti koje prelaze 95% znaajno razliit od
preostalih 5%.
Poziv testa vri se preko metode DiscreteFourierTransform(n) gde je n
duina bitnog uzorka. Koriste se i dodatni parametri:
M broj redova u matrici
Q broj kolona u matrici

- 32 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Primer:
-

Ulazni parametri
= prvih 1000000 binarnih vrednosti proirenje
n = 100000
M = Q = 32

Obrada
N = 97
FM = 23, FM-1 = 60, N FM FM-1= 14
2 = 1.2619656

Izlazni parametar
P = 0.532069

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.7 Ispitivanje nepreklapajuih uzoraka


Karakteristika koja se posmatra u ovom testu je uestalost pojave svih
moguih n-bitnih uzoraka gde ne dolazi do preklapanja u celom ispitivanom nizu.
Test bi trebalo da otkrije da li je broj pojava uzoraka koji se ne preklapaju priblino
jednak broju koji se oekuje za niz sluajnih brojeva.
Poziv testa vri se preko metode NonOverlappingTemplateMatching(m,n) gde su
m duina bita u ablonu
n duina bitnog uzorka
Primer:
-

Ulazni parametri
= 220 bitova dobijenih preko G-SHA-1 generatora
n = 220
B = 000000001

Obrada
= 255.984375
2 = 247.499999

- 33 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

W1 = 259; W2 = 229; W3 = 271; W4 = 245; W5 = 272; W6 = 262;


W7 = 259; i W8 = 246
2(obs) = 5.999377
-

Izlazni parametar
P = 0.110434

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.8 Ispitivanje preklapajuih uzoraka


Karakteristika koja se posmatra u ovom testu je uestalost pojave svih
moguih n-bitnih uzoraka gde dolazi do preklapanja u celom ispitivanom nizu. Test
bi trebalo da otkrije da li je broj pojava uzoraka koji se preklapaju priblino jednak
broju koji se oekuje za niz sluajnih brojeva.
Poziv testa vri se preko metode OverlappingTemplateMatching(m,n) gde su
m duina bita u ablonu
n duina bitnog uzorka
Primer:
-

Ulazni parametri
= binarno proirenje do 1000000 bita
n = 1000000
B = 111111111

Obrada
0 = 329; 1 = 164; 2 = 150; 3 = 111; 4 = 78; and 5 = 136
2 (obs) = 8.965859

Izlazni parametar
P = 0.110434

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

- 34 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

3.5.9 Maurerov univerzalni statistiki test


Ovim testom se ispituju mogunosti kompresije niza bez gubitka
informacije. Za niz koji se moe znaajno kompresovati smatra se da nije niz
sluajnih bitova zbog injenice da je kompresija niza efikasnija ukoliko niz pokazuje
periodina svojstva.
Poziv testa vri se preko metode Universal(L, Q, n) gde su
L duina svakog bloka
Q broj blokova u inicijalnoj sekvenci
n duina bitnog uzorka
Takoe postoji i dodatni parametar .
Primer:
-

Ulazni parametri
= binarno proirenje do 1000000 bita
n = 1000000
B = 111111111

Obrada
0 = 329; 1 = 164; 2 = 150; 3 = 111; 4 = 78; and 5 = 136
2 (obs) = 8.965859

Izlazni parametar
P = 0.110434

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.10

Ispitivanje linearne kompleksnosti

Ovaj test se koristi za dobijanje duine linearnog pomerakog registra (eng.


Linear feedback shift register - LFSR). Svrha ovog testa je utvrivanje da li je
sekvenca dovoljno kompleksa da se moe smatrati sluajnom.
Poziv testa vri se preko metode LinearComplexity(M, n) gde su
M duina svakog bloka
n duina bitnog uzorka
- 35 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Koristi se i dodati parametar kao i K broj stepeni slobode


Primer:
-

Ulazni parametri
= prvih 1000000 binarnih vrednosti proirenja
n = 1000000 = 106
M = 1000

Obrada
v0 = 11; v1 = 31; v2 = 116; v3 = 501; v4 = 258; v5 = 57; v6 = 26
2(obs) = 2.700348

Izlazni parametar
P = 0.845406

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.11

Serijski test

Test se koristi za utvrivanje uestalosti svih moguih preklapanja n-bitnog


niza u itavoj sekvenci.
Poziv testa vri se preko metode Serial(m, n) gde su
m duina svakog bloka
n duina bitnog uzorka
Koristi se i dodati parametar .
Primer:
-

Ulazni parametri
= 1000000 bita binarnog proirenja
m=2
n = 1000000 = 106

Obrada
#0s = 499971
#1s = 500029
- 36 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

#00s = 250116
#01s = #10s = 249855
#11s = 250174
22 = 0.343128; 21 = 0.003364; 20 = 0.000000
-

Izlazni parametar
22 = 0.339764
222 = 0.336400
P1 = 0.843764
P2 = 0.561915

Zakljuak
S obzirom da su P1 i P2 0.01, smatra se da je sekvenca sluajna.

3.5.12

Ispitivanje pribline entropije

U ovom testu posmatra se takoe uestalost pojave svih moguih


preklapajuih n-bitnih uzoraka u nizu. Cilj je poreenje uestalosti preklapajuih
blokova sa oekivanim rezultatima.
Poziv testa vri se preko metode ApproximateEntropy(m, n) gde su
m duina svakog bloka
n duina bitnog uzorka
Koristi se i dodati parametar .
Primer:
-

Ulazni parametri
= 11001001000011111101101010100010001000010110100011
00001000110100110001001100011001100010100010111000
m=2
n = 100

Obrada
ApEn(m) = 0.665393
2(obs) = 5.550792

- 37 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Izlazni parametar
P = 0.235301

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

3.5.13

Ispitivanje sluajnih zbirova

Svrha ovog testa je potreba da se utvrdi da li je kumulativni zbir parcijalnih


sekvenci koje se javljaju u nizu koji se testira suvie veliki ili suvie mali u odnosu
na oekivano ponaanje tog kumulativnog zbira sluajnih sekvenci.
Poziv testa vri se preko metode CumulativeSums(mode,n) gde su
mode mode = 0 ili mode = 1
n duina bitnog uzorka
Koristi se i dodati parametar .
Primer:
-

Ulazni parametri
= 11001001000011111101101010100010001000010110100011
00001000110100110001001100011001100010100010111000
n = 100
mode = 0 || mode = 1

Obrada
z = 1.6 || z = 1.9

Izlazni parametar
P = 0.219194 || P = 0.114866

Zakljuak
S obzirom da je P 0.01, smatra se da je sekvenca sluajna.

- 38 -

Marija Vujoevi

3.5.14

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Ispitivanje sluajne digresije

Svrha ovog testa je da se utvrdi da li broj odreenih stanja u okviru ciklusa


odstupa od onoga to bi se oekivalo od sluajne sekvence. Ovaj test je zapravo niz
od osam testova (i zakljuaka), jedan test i zakljuak za svako od stanja: -4, -3, -2, 1 i +1, +2, +3, +4.
Poziv testa vri se preko metode RandomExcursions(n) gde je n duina
bitnog uzorka. Koristi se i dodati parametar .
Primer:
-

Ulazni parametri
= 1000000 bita binarnog proirenja
n = 1000000 = 106

Obrada
J = 1490
Stanje = x
-4
-3
-2
-1
+1
+2
+3
+4

x2
3.835698
7.318707
7.861927
15.692617
2.485906
5.429381
2.404171
2.393928

P
0.573306
0.197996
0.164011
0.007779
0.778616
0.365752
0.790853
0.792378

Zakljuak
sluajan
sluajan
sluajan
nije sluajan
sluajan
sluajan
sluajan
sluajan

Zakljuak
Za x, u sedam stanja vai da je P 0.01, to dovodi do zakljuka da je sekvenca
sluajna.

- 39 -

Marija Vujoevi

3.5.15

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Ispitivanje sluajne promenljive digresije

Svrha testa je da se utvrdi da li ukupan broj stanja u kojima se niz nalazi,


izmeu [-9, -1] i [1, 9] premauje oekivane vrednosti isto sluajne sekvence. Ovaj
test zapravo predstavlja grupu od 18 testova (i zakljuaka), svaki test i zakljuak za
svako stanje: -9, -8,..., -1i +1, +2,...,+9.
Poziv testa vri se preko metode RandomExcursionsVariant(n) gde je n
duina bitnog uzorka. Koristi se i dodati parametar .
Primer:
-

Ulazni parametri
= 1000000 bita binarnog proirenja
n = 1000000 = 106

Obrada
J = 1490
Stanje = x
-4
-3
-2
-1
+1
+2
+3
+4

x2
3.835698
7.318707
7.861927
15.692617
2.485906
5.429381
2.404171
2.393928

P
0.573306
0.197996
0.164011
0.007779
0.778616
0.365752
0.790853
0.792378

Zakljuak
sluajan
sluajan
sluajan
nije sluajan
sluajan
sluajan
sluajan
sluajan

Zakljuak
S obzirom da je P 0.01 za svako od 18 stanja za x, smatra se da je sekvenca
sluajna.

- 40 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Pregled predloenog reenja

U ovom poglavlju bie predstavljeno razvijeno reenje. Prvo e biti objanjeno


preko generikih ema, a zatim i njegova konkretna primena. Nakon toga, bie prikazane
performanse i rezultati dobijeni preko nekoliko testova kojima je podvrgnuto.

4.1 Generika ema predloenog reenja


Razvijeno reenje se sastoji iz tri faze: generisanje kljua, ifrovanje i
deifrovanje. Parametri za generisanje kljua zavise od nivoa sigurnosti odabranog
od strane korisnika. Nakon procesa generisanja kljua, korisnik unosi lozinku kojom
se on titi. Materijal za klju ine lozinka, algoritam za ifrovanje (izabran na osnovu
nivoa sigurnosti) i parametri dobijeni preko mia. Jedan deo tih parametara se
koristi za inicijalni vektor, a drugi za sam klju.
Korisnikova lozinka se uva kao posoljena, pa heovana vrednost. Potom se uzima
he vrednost algoritma, inicijalnog vektora i kljua i zatim se vri konkatenacija te
etiri vrednosti. Nakon toga se kreira fajl sa ekstenzijom .key (slika 4.1) i uva na
izabranoj lokaciji od strane korisnika (na USB tokenu).

Slika 4.1 ema aplikacije - Generisanje kljua

U procesu ifrovanja nakon uspene validacije unete lozinke od strane


korisnika, iz kljua se uzima algoritam kojim se ifruje fajl. ifrovani fajl sadri he
vrednosti algoritma i njegove originalne ekstenzije i naravno, sam fajl. Nakon
ifrovanja, originalni fajl se brie, a ifrovani dobija ekstenziju .enc (slika 4.2). Iz tog
razloga se uva originalna ekstenzija.

- 41 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 4.2 ema aplikacije - ifrovanje

Prilikom deifrovanja, kao i prilikom ifrovanja, od korisnika se zahteva da,


nakon to izabere fajl koji eli da deifruje i odgovarajui klju, unese lozinku.
Ukoliko je ispravna, proverava se da li algoritam iz kljua odgovara onom iz
ifrovanog fajla. Potom se iz fajla uklanjaju podaci o algoritmu i ekstenziji i on se
deifruje. Podatak o ekstenziji se koristi za vraanje originalne ekstenzije fajla (slika
4.3).

Slika 4.3 ema aplikacije - Deifrovanje

4.2 Postavka i objanjenje eksperimentalnog okruenja


Aplikacija je razvijena na Microsoft .NET platformi (.NET Framework 4.0), u
programskom jeziku C#. Za testiranje koriena je aplikacija namenjena za te svrhe,
a kao okruenje za grafiki prikaz dobijenih rezultata korien je alat Matlab
R2012b.
Svrha razvijenog reenja je ifrovanje svih vrsta fajlova simetrinim ifarskim
algoritmima korienjem kljua koji je generisan na sluajan nain pokretima mia.
Dobijeni klju predstavlja vrstu TRNG i podvrgnut je teorijsko-informacionoj analizi.

- 42 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Aplikacija je osmiljena tako da korisniku omoguava lak i intuitivan rad. Na


glavnom panelu, korisnik ima mogunost da odabere da li eli da generie klju ili da
ifruje ili deifruje eljeni fajl (slika 4.4).

Slika 4.4 Poetni panel razvijenog reenja

Nakon instalacije i inicijalnog pokretanja aplikacije, prvenstveno je


neophodno generisanje barem jednog kljua kojim se moe vriti ifrovanje fajlova.
Pre samog generisanja istog, potrebno je iz menija Alatke odabrati opciju Opcije
koja omoguava odabir nivoa sigurnosti koji e se koristiti kako za generisanje
kljueva (vreme potrebno za njegovo generisanje) tako i za samo ifrovanje fajlova.
Definisana su tri nivoa sigurnosti:

Nizak
Srednji
Visok

Odabirom niskog nivoa koristie se DES ifarski algoritam. Srednji nivo


podrazumeva AES 128 (duina bloka 128 bita, duina kljua 128 bita). Na visokom
nivou sigurnosti koristie se AES 192 (Rijndael) (duina bloka 192 bita, duina kljua
192 bita).
Prilikom odabira odreenog nivoa, korisnik dobija i krae objanjenje ta koji
od nivoa znai kako bi mu bio olakan odabir (slika 4.5). He funkcija SHA-256 se
koristi za sve nivoe sigurnosti.

- 43 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 4.5 Odabir nivoa sigurnosti

Sledei korak za korisnika predstavlja generisanje kljua. Pre samog poetka,


obavetava se o akcijama koje je potrebno da preduzme tokom trajanja generisanja
(slika 4.6).

Slika 4.6 Obavetenje pre poetka generisanja kljua

Zatim poinje proces generisanja. Od korisnika se zahteva da klikne miem


na kvadrat koji je oznaen bojom. Nakon svakog klika, prikazuje se sledei sluajno
izabran kvadrat. Tokom ovog perioda, skupljaju se koordinate mia prilikom klika
(slika 4.7). Ukoliko korisnik nije bio aktivan barem tri sekunde, ukupno vreme
potrebno za generisanje se za toliko uveava.
Tokom generisanja, materijal za klju se uva u memoriji.

- 44 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 4.7 Proces generisanja kljua

Nakon zavretka, korisnik se obavetava da je klju generisan (slika 4.8).

Slika 4.8 Generisanje klua uspeno zavreno

U narednom koraku se od njega zahteva da unese lozinku kojom e se tititi


taj klju (slika 4.9). Minimalna duina mora biti 6 karaktera. Na ovaj nain u procesu
ifrovanja ili deifrovanja, korisnik e morati da koristi dvofaktorsku autentifikaciju
koristei neto to ima (klju) i neto to zna (lozinka). Sledei korak je uvanje
kljua na odabranom harverskom tokenu (USB token). uvanje na vrstom disku nije
mogue.

- 45 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Slika 4.9 Zatita kljua lozinkom

Korisnik moe generisati neogranieni broj kljueva za sva tri nivoa


sigurnosti. Kada poseduje kljueve, moe ih koristi za ifrovanje ili deifrovanje
odabirom eljenog fajla i kljua. Fajl koji se ifruje moe se nalaziti na bilo kojoj
lokaciji osim one na kojoj se nalazi i klju (slika 4.10). Pre samog ifrovanja vri se
verfikacija kljua putem lozinke koja je unesena prilikom njegovog generisanja (slika
4.11).

Slika 4.10 Proces ifrovanja eljenog fajla upotrebom generisanog kljua

Slika 4.11 Unos lozinke za verifikaciju kljua

Nakon ifrovanja, originalni fajl se brie, a novi ifrovani fajl dobija ekstenziju
.enc i uva se na istoj lokaciji na kojoj je bio i originalni fajl.

- 46 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Sa osnovnog panela aplikacije, iz menija Alati Jezik, korisnik ima mogunost


izbora jezika aplikacije. Lokalizovana je na srpski (latinica i irilica) i engleski (slika
4.12).

Slika 4.12 Odabir jezika aplikacije

Iz menija O programu, prikazuju se informacije o aplikaciji (njenoj verziji i


autoru) (slika 4.13).

Slika 4.13 O programu

Specifikacija hardverske platforme


Ceo proces razvoja reenja, kao i njegovo testiranje u eksperimentalnom
okruenju sprovedeno je na hardverskoj platformi sa sledeim karakteristikama:

Komponente
Procesor
Memorija
Hard disk
Rezolucija ekrana

Opis
Intel i5 3570
3.4GHz
8GB RAM
1TB
1280x1024

Tabela 4.1 Hardverske karakteristike razvojnog i eksperimentalnog okruenja

- 47 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

4.3 Performanse predloenog okruenja sa prikazom eksperimentalnih


rezultata
Jaka informaciona analiza generisanog kljua je od velike vanosti iz razloga
to postavlja teorijske okvire za utvrivanje jaine dobijenog kriptolokog kljua.
Korienjem enonove entropije dolazi se do prosene koliine informacija koje su
sadrane u dobijenom kljuu.
Nad dobijenim kljuevima sprovedeni su testovi za procenu informacionog
sadraja (objanjeni u poglavlju 3.5). Od opisanih testova, za ovo reenje najvaniji
su serijski test i ispitivanje entropije preklapajuih i nepreklapajuih uzoraka.
Dobijeni rezultati predstavljeni su u uporednom prikazu sa uzorkom preuzetim sa
www.random.org. Rezultati testova prikazani su u tabelama 4.2, 4.3 i 4.4.

Serijski test

00
01
10
11

Bigrami
random.org generisan klju
7773
7471
7828
8299
7827
8300
7821
9294

000
001
010
011
100
101
110
111

Trigrami
random.org generisan klju
3818
3537
3955
3935
3863
4172
3965
4127
3955
3936
3873
4364
3965
4127
3856
5167
Tabela 4.2 Rezultati serijskog testa

- 48 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Entropija sa preklapanjem
random.org
0.9999982981270112
0.9999969195844207
0.9999512260990479
0.9999630196341835

Monobit
Bigram
Trigram
Matrica 4x4

generisan klju
0.9978454731456681
0.9978439065269784
0.9974066948986483
0.997744280937179

Tabela 4.3 Rezultati ispitivanja entropije sa preklapanjem

Entropija bez preklapanja


random.org
0.9999982981270112
0.9999443575006272
0.9999343024266536
0.9999630196341835

Monobit
Bigram
Trigram
Matrica 4x4

generisan klju
0.9978454731456681
0.9978439065269784
0.9974066948986483
0.997744280937179

Tabela 4.4 Rezultati ispitivanja entropije bez preklapanja

Na slikama 4.14, 4.15 i 4.16 predstavljeni su dobijeni rezultati preko histograma u


Matlab-u.
200
180
160
140
120
100
80
60
40
20
0
200

300

400

500

600

700

800

900

1000

Slika 4.14 Prikaz dobijenog kljua preko histograma

- 49 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

120

120

100

100

80

80

60

60

40

40

20

20

0
300

400

500

600

700

800

900

0
200

1000

Slika 4.15 Prikaz vrednosti dobijenih preko X


ose

300

400

500

600

700

800

Slika 4.16 Prikaz vrednosti dobijenih preko Y


ose

Generisani klju predstavljen je preko bitmape i uporeen je sa uzorkom sa


random.org gde se jasno vidi da je dobijen TRNG (slika 4.17).

Slika 4.17 Vizuelna uporedna analiza rezultata sa random.org (levo) i generisanog kljua (desno)

4.4 Oblast primene predloenog reenja


Razvijeno reenje podjednako se moe koristiti kako u privatne tako i u
poslovne svrhe. Zauzima vrlo malo prostora na disku. Namenjeno je svima kojima je
potreban visok stepen zatite podataka, a istovremeno omoguava lako i intuitivno
korienje.
Poslovni korisnici aplikaciju mogu koristiti za npr. zatitu strogo poverljive
dokumentacije i drugih fajlova koji su od vitalne vanosti za kompaniju. Sa druge
strane, privatni korisnici takoe imaju potrebu za zatitom odreenih podataka,
naroito ako se oni nalaze na raunarima koje dele sa drugim korisnicima
(lanovima porodice, prijateljima...).

- 50 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Zakljuak
5.1 Sumarni ciljevi rada i ostvareni rezultati
U ovom radu razvijeno je reenje za kriptografsku zatitu svih vrsta fajlova uz
implementirani modul za generisanje kriptolokog kljua preko pokreta mia koji su
uzeti kao materijal za klju zbog potrebe da se omogui to vea sluajnost, a samim
tim i entropija. Cilj je bio da se postigne pravi generator sluajnih brojeva (TRNG).
Takoe je omogueno generisanje neogranienog broja kljueva uz odabir
odreenog nivoa sigurnosti. Dobijeni kljuevi se skladite iskljuivo na hardverskom
tokenu (USB token). Dosta panje je posveeno i ergonomiji aplikacije kako bi
korisnici sa lakoom mogli da je koriste.
Generisani kljuevi su podvrgnuti teorijsko-informacionoj analizi u
eksperimentalnom okruenju kojom je potvreno da je postignuta eljena
sluajnost. Kao reprezentativni uzorak sa kojim su uporeivane dobijene vrednosti
koriene su vrednosti preuzete sa sajta random.org.
Da bi se spreila zloupotreba kljueva od strane drugih korisnika ili u sluaju
krae istih, uvedena je dvofaktorksa autentifikacija prilikom ifrovanja odnosno
deifrovanja fajlova. Generisani kljuevi se dodatno tite lozinkom.

5.2 Predlog za budui rad


Razvijena aplikacija predstavlja verziju 1.0. U planu je dalji razvoj u cilju
dodatnog poboljanja ergonomije. Takoe, bie razmatrano reenje problema
razmene i upravljanja kljuevima koje nije obuhvaeno ovim radom.

- 51 -

Marija Vujoevi

Razvoj sopstvenog reenja za


kriptografsku zatitu sa implementiranim
modulom za generisanje simetrinog kriptolokog kljua

Literatura

[1] M. Stamp, Information security: principles and practice, 2nd ur., New Jersey: John
Wiley & Soons, 2011.
[2] B. Schneier, Applied Cryptography: Protocols, Algorthms, and Source Code in C, 2nd
ur., New Jersey: John Wiley & Sons, 1996.
[3] C. Paar / J. Pelzl, Understanding cryptography, Verlag, Berlin, Heidelberg: Springer,
2010.
[4] M. Veinovi / S. Adamovi, Kriptologija 1, Beograd: Univerzitet Singidunum, 2013.
[5] Specification for the AES, NIST, 2001. http://www.nist.gov/CryptoToolkit
[6] A. Jagannatam, Mersenne Twister A Pseudo Random Number Generator and its
Variants.
[7] G. Srivastava, Pseudorandom number generator using multiple sources of entropy,
University of Victoria, 2006.
[8] A. Rukhin, J. Soto, J. Nechvatal, M. Smid, E. Barker, S. Leigh, M. Levenson, M. Vangel,
D. Banks, A. Heckert, J. Dray / S. Vo, A Statistical Test Suite for Random and
Pseudorandom Number Generators for Cryptographic Applications, NIST,
Gaithersburg, MD, 2010.
[9] ElcomSoft, Advantages and disadvantages of EFS and effective recovery of
encrypted data, ElcomSoft Co. Ltd., Moscow, 2007.
[10] AES Crypt, http://www.aescrypt.com
[11] AxCrypt, http://www.axantum.com/axcrypt
[12] CryptoForge, http://www.cryptoforge.com
[13] Folder lock, http://www.newsoftwares.net/folderlock
[14] TrueCrypt, http://www.truecrypt.org
[15] Random.org, http://www.random.org

- 52 -

You might also like