dr - razvoj sopstvenog rešenja za kriptografsku zaštitu sa implementiranim modulom za generisa

55
  UNIVERZITET SINGIDUNUM FAKULTET ZA INFORMATIKU I RAČUNARSTVO Razvoj sopstvenog rešenja za kriptografsku zaštitu sa implementira nim modulom za generisanje simetričnog kriptološkog ključa - Diplomski rad - Mentor: Doc. dr Aleksandar Jevremović Student: Marija Vujošević Br. Indeksa: 2011/201751  Beograd, 2013.

Upload: komsha18300

Post on 02-Nov-2015

4 views

Category:

Documents


0 download

DESCRIPTION

Kriptografske oblasti.

TRANSCRIPT

  • UNIVERZITET SINGIDUNUM

    FAKULTET ZA INFORMATIKU I RAUNARSTVO

    Razvoj sopstvenog reenja za kriptografsku zatitu sa

    implementiranim modulom za generisanje simetrinog kriptolokog

    kljua

    - Diplomski rad -

    Mentor:

    Doc. dr Aleksandar Jevremovi

    Student:

    Marija Vujoevi

    Br. Indeksa: 2011/201751

    Beograd, 2013.

  • MENTOR

    __________________________

    Doc. dr Aleksandar Jevremovi

    DEKAN

    _____________________

    Prof. dr Miroslav Lutovac

    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

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

  • 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 file-encryption 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

    - 1 -

    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 -

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 2 -

    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 -

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 3 -

    5.1 Sumarni ciljevi rada i ostvareni rezultati ............................................................. - 51 -

    5.2 Predlog za budui rad .......................................................................................... - 51 -

    6 Literatura ............................................................................................................- 52 -

    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 -

    Spisak slika

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 4 -

    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 -

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 5 -

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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 6 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 7 -

    2 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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 8 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 9 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 10 -

    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_fajla-originalna_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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 11 -

    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 64-bitnom. 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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 12 -

    Slika 2.6 Folder Lock Zakljuavanje fajlova

    Slika 2.7 Folder Lock ifrovanje fajlova

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 13 -

    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

    AES-Twofish 256; 256 128

    AES-Twofish-Serpent 256; 256; 256 128

    Serpent-AES 256; 256 128

    Serpent-Twofish-AES 256; 256; 256 128

    Twofish-Serpent 256; 256 128

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 14 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 15 -

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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 16 -

    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)

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 17 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 18 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 19 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 20 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 21 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 22 -

    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 a deifrovanje

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

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 23 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 24 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 25 -

    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 Izlaz

    (u bitovima)

    Inicijalna veliina u bitovima

    Broj rundi

    Kolizije

    SHA-0 160

    SHA-1 160 512 80 Da

    SHA-2

    SHA-224 224 512 64 Za sad ne

    SHA-256 256 512 64 Ne

    SHA-384 384 1024 80 Ne

    SHA-512 512 1024 80 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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 26 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 27 -

    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 da ne

    Determinizam da ne

    Periodinost da 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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 28 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 29 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 30 -

    - 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 n-

    bitnim blokovima. Svrha je odreivanje da li se duina najdueg uzastopnog ponavljanja poklapa sa duinom koja bi se oekivala u nizu sluajnih brojeva.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 31 -

    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 M

    128 8

    6272 128

    750,000 104

    Primer:

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

    - Ulazni parametri

    = 11001100000101010110110001001100111000000000001001 00110101010001000100111101011010000000110101111100 1100111001101101100010110010

    n = 128

    - Obrada

    Maksimalno ponavljanje podbloka

    Maksimalno ponavljanje podbloka

    11001100 (2) 00010101 (1)

    01101100 (2) 01001100 (2)

    11100000 (3) 00000010 (1)

    01001101 (2) 01010001 (1)

    00010011 (2) 11010110 (2)

    10000000 (1) 11010111 (3)

    11001100 (2) 11100110 (3)

    11011000 (2) 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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 32 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 33 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 34 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 35 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 36 -

    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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 37 -

    #00s = 250116

    #01s = #10s = 249855

    #11s = 250174

    22 = 0.343128; 2

    1 = 0.003364; 2

    0 = 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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 38 -

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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 39 -

    3.5.14 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

    - Zakljuak

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

    Stanje = x x2 P Zakljuak

    -4 3.835698 0.573306 sluajan

    -3 7.318707 0.197996 sluajan

    -2 7.861927 0.164011 sluajan

    -1 15.692617 0.007779 nije sluajan

    +1 2.485906 0.778616 sluajan

    +2 5.429381 0.365752 sluajan

    +3 2.404171 0.790853 sluajan

    +4 2.393928 0.792378 sluajan

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 40 -

    3.5.15 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

    - Zakljuak

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

    Stanje = x x2 P Zakljuak

    -4 3.835698 0.573306 sluajan

    -3 7.318707 0.197996 sluajan

    -2 7.861927 0.164011 sluajan

    -1 15.692617 0.007779 nije sluajan

    +1 2.485906 0.778616 sluajan

    +2 5.429381 0.365752 sluajan

    +3 2.404171 0.790853 sluajan

    +4 2.393928 0.792378 sluajan

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 41 -

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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 42 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 43 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 44 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 45 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 46 -

    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.

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 47 -

    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 Opis

    Procesor Intel i5 3570 3.4GHz

    Memorija 8GB RAM

    Hard disk 1TB

    Rezolucija ekrana 1280x1024 Tabela 4.1 Hardverske karakteristike razvojnog i eksperimentalnog okruenja

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 48 -

    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

    Bigrami

    random.org generisan klju

    00 7773 7471

    01 7828 8299

    10 7827 8300

    11 7821 9294

    Trigrami

    random.org generisan klju

    000 3818 3537

    001 3955 3935

    010 3863 4172

    011 3965 4127

    100 3955 3936

    101 3873 4364

    110 3965 4127

    111 3856 5167 Tabela 4.2 Rezultati serijskog testa

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 49 -

    Entropija sa preklapanjem

    random.org generisan klju

    Monobit 0.9999982981270112 0.9978454731456681

    Bigram 0.9999969195844207 0.9978439065269784

    Trigram 0.9999512260990479 0.9974066948986483

    Matrica 4x4 0.9999630196341835 0.997744280937179 Tabela 4.3 Rezultati ispitivanja entropije sa preklapanjem

    Entropija bez preklapanja

    random.org generisan klju

    Monobit 0.9999982981270112 0.9978454731456681

    Bigram 0.9999443575006272 0.9978439065269784

    Trigram 0.9999343024266536 0.9974066948986483

    Matrica 4x4 0.9999630196341835 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.

    Slika 4.14 Prikaz dobijenog kljua preko histograma

    200 300 400 500 600 700 800 900 10000

    20

    40

    60

    80

    100

    120

    140

    160

    180

    200

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 50 -

    Slika 4.15 Prikaz vrednosti dobijenih preko X

    ose 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...).

    300 400 500 600 700 800 900 10000

    20

    40

    60

    80

    100

    120

    200 300 400 500 600 700 8000

    20

    40

    60

    80

    100

    120

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 51 -

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

  • Marija Vujoevi Razvoj sopstvenog reenja za kriptografsku zatitu sa implementiranim

    modulom za generisanje simetrinog kriptolokog kljua

    - 52 -

    [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

    6 Literatura

    Spisak slikaSpisak tabela1 Uvod1.1 Predmet istraivanja1.2 Doprinosi rada1.3 Struktura rada

    2 Pregled u oblasti istraivanja2.1 Prednosti i nedostaci ifrovanja fajlova u Windows operativnom sistemu2.2 Razvoj aplikacija za ifrovanje fajlova simetrinim kriptolokim kljuem2.2.1 AES Crypt2.2.2 AxCrypt2.2.3 CryptoForge2.2.4 Folder Lock2.2.5 TrueCrypt

    2.3 Primena tehnologije zasnovane na simetrinom kriptolokom kljuu

    3 Teorijske osnove istraivanja3.1 Simetrini ifarski sistemi3.1.1 DES3.1.2 AES

    3.2 Reimi rada blokovskih ifara3.2.1 Elektronska kodna knjiga (ECB)3.2.2 Ulanavanje blokova ifrata (CBC)3.2.3 Inicijalni vektor3.2.4 Ispunjavanje

    3.3 He funkcija3.3.1 MD53.3.2 SHA3.3.3 Kriptografska so

    3.4 Generatori sluajnih brojeva3.4.1 Pravi generator sluajnih brojeva (TRNG)3.4.2 Pseudosluajni generator brojeva (PRNG)3.4.3 Entropija

    3.5 NIST testovi3.5.1 Ispitivanje uestalosti u nizu3.5.2 Ispitivanje uestalosti u bloku3.5.3 Ispitivanje uzastopnih ponavljanja istih bitova u nizu3.5.4 Ispitivanje najdueg uzastopnog ponavljanja jedinica u bloku3.5.5 Ispitvanje stanja binarne matrice3.5.6 Ispitivanje diskretne Furijerove transformacije3.5.7 Ispitivanje nepreklapajuih uzoraka3.5.8 Ispitivanje preklapajuih uzoraka3.5.9 Maurerov univerzalni statistiki test3.5.10 Ispitivanje linearne kompleksnosti3.5.11 Serijski test3.5.12 Ispitivanje pribline entropije3.5.13 Ispitivanje sluajnih zbirova3.5.14 Ispitivanje sluajne digresije 3.5.15 Ispitivanje sluajne promenljive digresije

    4 Pregled predloenog reenja4.1 Generika ema predloenog reenja4.2 Postavka i objanjenje eksperimentalnog okruenja4.3 Performanse predloenog okruenja sa prikazom eksperimentalnih rezultata4.4 Oblast primene predloenog reenja

    5 Zakljuak5.1 Sumarni ciljevi rada i ostvareni rezultati5.2 Predlog za budui rad

    6 Literatura