Osnovi kriptografije
U prošla dva broja Male škole bezbednosti pričali smo o NTFS fajl sistemu, njegovim osobinama i sposobnostima. Jedna od navedenih sposobnosti NTFS-a, koja nije bila objašnjena, je Encrypting File System ( EFS ) čiji se rad zasniva na infrastrukturi javnih kriptografskih ključeva ( Public Key Infrastructure – PKI ). Da bismo razumeli kako radi EFS moramo prvo naučiti neke osnovne kriptografske pojmove i principe...
Kriptografija, po nekima umetnost, a po nekima nauka, je veština zaštite informacija pretvaranjem istih u format čitljiv samo autorizovanim licima i/ili sistemima. Počeci primene kriptografije datiraju još iz vremena starih Asiraca i Egipćana, kada su informacije štićene manuelno. U dvadesetom veku počela je da se primenjuje mehanička kriptografija, čiji je najpoznatiji predstavnik nemačka elektromehanička kripto-mašina iz Drugog svetskog rata po nazivu "Enigma".

Slika 1: Enigma
Razvojem informatičke industrije rodila se i moderna kriptografija zasnovana na kompjuterima, koja će i biti tema ovog članka. Razvojem računarskih mreža, a posebno Interneta, postavilo se logično pitanje o načinu zaštite informacija koje putuju preko mreže ili se smeštaju na diskove naših računara. Odgovor na to pitanje je pronađen u primeni kriptografskih algoritama.
Šta je to algoritam?
Algoritam je korak-po-korak procedura za rešavanje nekog problema. Taj problem može biti bilo zaštita poverljivih informacija bilo bezazleno kuvanje kafe. Algoritam opisuje, ne samo "sastojke", već i redosled njihovog korišćenja. Kriptografski algoritam (ili Cipher) definiše kojom će se metodom podaci kriptovati, kako će se vršiti autentifikacija, provera integriteta podataka i dekripcija na drugom kraju komunikacionog kanala.
Postoje tri tipa kriptografskih algoritama i to su:
1. Hashing algoritmi
2. Algoritmi bazirani na simetričnim ključevima
3. Algoritmi bazirani na asimetričnim ključevima
Hashing
Hashing ili Message Digest je rezultat fiksne veličine dobijen primenom jednosmerne matematičke funkcije na neke podatke. Šta ovo u stvari znači? Bez obzira na veličinu ulaznih podataka, bila to e-mail poruka od nekoliko redova teksta ili Tolkinov «Gospodar prstenova», dobićemo rezultat jednake, fiksne veličine. Funkcija je jednosmerna zato što je nemoguće dobiti originalne podatke iz rezultata. Ova vrsta algoritama se ne koristi za činjenje podataka nečitkim , već za proveru integriteta podataka.
Najčešće korišćeni hashing algoritmi su sledeći:
1. Secure Hash Algorithm v.1 ( SHA - 1 ) proizvodi 160-bitni rezultat ( ključ) iz ulaznog podatka bilo koje veličine
2. Message Digest Algorithm postoji u verzijama MD2, MD4, MD5. Najčešće korišćena je verzija MD5 koja daje ključ veličine 128 bita bez obzira na veličinu ulaznih podataka.
MD5 je brži algoritam od SHA-1 i do 30%, ali je SHA-1 pouzdaniji zbog dužine ključa.
Čemu hashing služi?
Recimo da korisnik Pera hoće da pošalje e-mail Miki, ali na taj način da Mika kada dobije poruku bude siguran da je niko usput nije menjao. Pera bi prvo napisao poruku, a zatim bi je pustio kroz hashing algoritam i dobijeni ključ bi dodao na poruku, koju bi zatim poslao Miki. Kada Mika dobije taj e-mail, on prvo vrši proveru integriteta poruke puštajući je kroz isti hashing algoritam kao i Pera. Dobijeni rezultat se upoređuje sa Perinim i, ukoliko su ključevi isti od prvog do poslednjeg bita, Mika smatra da poruka nije menjana u toku transporta. Ceo ovaj proces je potpuno automatizovan, tako da ni Pera ni Mika ne moraju znati ništa o kriptografiji, da bi mogli uspešno da primene ovaj vid zaštite podataka.
Symmetric Key Algorithms
Algoritmi bazirani na simetričnim ključevima se mogu zvati još i Secret Key Algorithms ili Private Key Algorithms. Ovi algoritmi se koriste za kriptovanje (šifriranje) podataka, odnosno za pretvaranje podataka u oblik nečitak neautorizovanim korisnicima i/ili sistemima. Osnovna ideja je da se za kripciju i dekripciju podataka koristi isti ključ. Simetrični ključ u ovom trenutku možemo zamisliti kao neku lozinku kojom smo zaključali npr. Word dokument. Ista lozinka se koristi i za zaključavanje i za otključavanje dokumenta. Dobre strane simetričnih algoritama su da se odlikuju izuzetnom brzinom i kriptografskom snagom. Loše strane su što svi subjekti uključeni u komunikaciju moraju imati isti ključ, pa je nemoguće ostvariti bezbednu komunikaciju ukoliko je dati ključ kompromitovan. Poseban problem predstavlja dogovaranje oko ključa, kao i njegova distribucija.
Simetrični algoritmi se po načinu kriptovanja dele na dva tipa:
1. Blok Ciphers kriptuju podatke u blokovima od po 64 bita (najčešće)
2. Stream Ciphers kriptuju podatke bit po bit.
Najčešće korišćeni simetrični algoritmi mogu se videti u sledećoj tabeli:
algoritam način kriptovanja dužina ključa u bitima
DES (Data Encryption Standard) Block 56
3DES (Triple DES) Block 168
RC2 Block 1 - 2048
RC4 Stream 1 - 2048
Blowfish Block 1 – 448
IDEA Block 128




del.icio.us
Digg
Twitter
Facebook
Pošaljite komentar