Симетрично, асиметрично, хеш и још много тога…

Kriptografija je tehnika zaštite informacija i komunikacije putem primene skupa pravila i matematičkih koncepata, poznatih kao algoritmi, kako bi samo ovlašćene osobe mogle razumeti sadržaj. Njena primarna svrha je sprečavanje neovlašćenog pristupa podacima.

Izraz „kriptografija“ potiče od grčke reči „kryptos“, što znači „skriven“. Dakle, doslovno, „kripto“ označava „skriveno“, dok „grafija“ znači „pisanje“.

U ovom tekstu, obradićemo osnove kriptografije, istražiti njene različite oblike kroz primere, razmotriti izazove i pogledati buduće pravce razvoja. Cilj je pružiti sveobuhvatan pregled, obuhvatajući kako glavne tako i manje poznate koncepte.

Kriptografija igra ključnu ulogu u zaštiti digitalne komunikacije i podataka u različitim sistemima i aplikacijama, garantujući poverljivost i bezbednost informacija. Ona štiti podatke od neautorizovanog pristupa.

Pogledajmo kako funkcioniše kriptografija:

  • Proces započinje sa pošiljaocem koji ima poruku ili podatke za slanje.
  • Originalna poruka, poznata i kao „čist tekst“, pretvara se u nečitljiv format putem procesa koji se zove šifrovanje.
  • Primalac koristi ključ za transformaciju šifrovanog teksta (nečitljivog formata) nazad u čitljiv oblik, proces poznat kao dešifrovanje.
  • Dešifrovana poruka je sada ponovo u čistom tekstu i identična je originalnoj poruci koju je poslao pošiljalac.
  • Primalac sada ima pristup originalnoj poruci.

Sada, hajde da istražimo temeljne principe kriptografije.

Osnovni Principi Kriptografije

Četiri su ključna principa kriptografije:

#1. Poverljivost: Samo primalac treba da ima pristup informacijama, koje moraju biti privatne za sve ostale.

#2. Integritet: Podaci ne smeju biti promenjeni tokom skladištenja ili prenosa, a svaka promena mora biti lako uočljiva.

#3. Neporecivost: Pošiljalac ne može poreći da je poslao informacije nakon što je to učinjeno.

#4. Autentifikacija: Proverava se identitet i pošiljaoca i primaoca, kao i poreklo i odredište informacija.

Pre nego što nastavimo, objasnićemo neke osnovne termine.

Rečnik:

Reč Značenje
Kriptografija Tehnika obezbeđivanja informacija i komunikacije korišćenjem algoritama i matematičkih koncepata, tako da samo ovlašćena osoba može da ih razume.
Šifra Metod ili algoritam koji se koristi za šifrovanje i dešifrovanje podataka.
Šifrovanje Proces transformacije čistog teksta u šifrovani tekst.
Čist tekst Originalni, nešifrovani oblik podataka ili teksta.
Šifrovani tekst Šifrovani podaci (šifrovani oblik podataka) ili tekst.
Dešifrovanje Obrnuti proces transformacije šifrovanog teksta nazad u čisti tekst koristeći ključ za dešifrovanje.
Ključ Deo informacije, najčešće niz bitova, koji se koristi za kontrolu procesa šifrovanja i dešifrovanja.
Razmena ključeva Bezbedan prenos ključeva za šifrovanje između pošiljaoca i primaoca.

Postoje tri osnovne vrste kriptografije:

  • Kriptografija sa simetričnim ključem
  • Kriptografija sa asimetričnim ključem
  • Heš funkcije

Kriptografija sa Simetričnim Ključem

Kriptografija sa simetričnim ključem, takođe poznata kao enkripcija sa jednim ključem, je tehnika šifrovanja koja koristi isti tajni ključ i za šifrovanje i za dešifrovanje podataka.

U ovom metodu, i pošiljalac i primalac moraju koristiti isti tajni ključ da bi razumeli podatke. Funkcioniše tako što menja normalne podatke u tajni kod (šifrovani tekst) primenom tajnog ključa i određenog matematičkog procesa.

Kada primalac, koji takođe zna tajni ključ, primi tajno kodiranu poruku, može primeniti isti matematički proces da je pretvori nazad u normalne podatke. Na taj način, primalac dobija originalnu informaciju iz tajnog koda.

Razmotrimo proces kroz sledeće korake:

  • Algoritam konvertuje originalni tekst (čist tekst) u šifrovani tekst koristeći tajni ključ.
  • Zatim, pošiljalac šalje taj šifrovani tekst primaocu preko komunikacionog kanala. Ovaj kanal može biti privatni ili javni.
  • Primaoci koriste isti tajni ključ da dešifruju šifrovani tekst i pretvore ga u originalni tekst.

Ovaj proces simetričnog šifrovanja obezbeđuje da komunikacija između pošiljaoca i primaoca ostane bezbedna. Međutim, tajni ključ mora ostati poverljiv.

Radi održavanja poverljivosti i integriteta, obe strane moraju bezbedno upravljati i štititi ovaj tajni ključ.

Postoje dve vrste simetričnih šifara:

  • Strim šifra
  • Blok šifra
Strim Šifra Blok Šifra
Šifrovanje podataka u blokovima fiksne dužine, dok ih sistem zadržava u memoriji dok se ne formiraju kompletni blokovi za obradu Šifruje podatke bit po bit ili bajt po bajt
Koristi 8-bitni ključ Koristi 64-bitni ili veći ključ
Složenija od blok šifre Jednostavnija od strim šifre
Sporija i pogodna za offline aplikacije Koristi ECB i CBC režime
Koristi CFB i OFB režime

Primeri simetričnih algoritama šifrovanja uključuju:

  • AES (Napredni Standard Šifrovanja): Poznat je po svojoj bezbednosti i efikasnosti. Koristi se za zaštitu osetljivih podataka, poput bežične sigurnosti, računarstva u oblaku, bankarstva i e-trgovine.
  • DES (Standard Šifrovanja Podataka): Starija metoda šifrovanja koja je zamenjena AES i 3DES. Koristi 56-bitni ključ.
  • IDEA (Međunarodni Algoritam Šifrovanja Podataka): Koristi 128-bitni ključ i primenjuje se u raznim aplikacijama.
  • Blowfish: Algoritam dizajniran kao zamena za DES ili IDEA.
  • RC4 (Rivest Cipher 4): Razvio ga je Ron Rivest. Poznat po jednostavnosti i brzini, ali ima određene bezbednosne probleme u nekim implementacijama.
  • RC5 (Rivest Cipher 5): Dizajniran da bude efikasan i siguran, sa promenljivom veličinom bloka i ključa.
  • RC6 (Rivest Cipher 6): Dizajniran da pruži bolju bezbednost i performanse u odnosu na ranije verzije.

AES, DES, IDEA, Blowfish, RC5 i RC6 su blok šifre.

RC4 je strim šifra.

Prednosti Kriptografije sa Simetričnim Ključem

  • Brža je i efikasnija od asimetrične kriptografije.
  • Veličina ključa je mala, što omogućava generisanje jačih šifara.
  • Relativno je isplativo generisati jake ključeve za šifre.
  • AES je jedan od bezbednih algoritama.

Nedostaci Kriptografije sa Simetričnim Ključem

  • Bezbedno deljenje ključeva za šifrovanje sa svim stranama koje treba bezbedno da komuniciraju je veliki izazov.
  • Bezbednost celog sistema može biti ugrožena ako napadač presretne ili kompromituje ključ tokom prenosa.
  • Sistemi simetričnog šifrovanja zahtevaju pažljive prakse upravljanja ključevima. To uključuje generisanje, čuvanje, ažuriranje i opozivanje ključeva. Loše upravljanje ključevima može dovesti do kršenja bezbednosti.
  • Napadači mogu presresti ključeve koji se razmenjuju preko nesigurnog kanala, što kompromituje komunikaciju.

Uprkos nedostacima, simetrično šifrovanje je suštinski deo moderne kriptografije i široko se koristi u mnogim aplikacijama. Snažne prakse upravljanja ključevima i bezbedne metode razmene ključeva mogu pomoći u prevazilaženju nekih od izazova.

Kriptografija sa Asimetričnim Ključem

Asimetrična kriptografija koristi parove ključeva – privatni koji se čuva u tajnosti i javni koji se javno deli. Možete koristiti nečiji javni ključ za šifrovanje poruke, a samo ta osoba može je dešifrovati svojim privatnim ključem.

Ovaj metod pojačava digitalnu bezbednost omogućavajući sigurnu komunikaciju bez deljenja tajnih ključeva, što je ključno u našem online svetu.

Ovo je korisno za sigurnu komunikaciju jer su primaocima potrebni samo vaši javni ključevi. Tako se izbegava rizik od deljenja tajnog simetričnog ključa.

Ovi „algoritmi sa javnim ključem“ koriste par ključeva za obezbeđivanje podataka.

Jednostavnije objašnjenje:

  • Postoje dva ključa. Javni ključ, kome svi mogu pristupiti, i privatni ključ koji se čuva u tajnosti.
  • Javni ključ se koristi za šifrovanje ili zaključavanje podataka.
  • Privatni ključ se koristi za dešifrovanje ili otključavanje podataka.

Važno je razumeti da nije moguće otkriti privatni ključ iz javnog ključa. Takođe, javni ključevi se obično povezuju sa identitetima organizacije poznate kao sertifikaciono telo.

Sigurna komunikacija: Pošiljalac i primalac su razmenili sigurnu poruku bez ugrožavanja svojih privatnih ključeva.

Ovi algoritmi se oslanjaju na matematičke probleme kao što su celobrojna faktorizacija i diskretni logaritmi za kreiranje digitalnih potpisa i uspostavljanje/distribuciju sesijskih ključeva, kao što je u TLS protokolu.

Neki primeri algoritama asimetričnog šifrovanja uključuju:

  • RSA (Rivest-Shamir-Adleman): Jedan od najčešće korišćenih algoritama asimetričnog šifrovanja. Baziran na matematičkim svojstvima velikih prostih brojeva i koristi se za sigurnu razmenu ključeva i digitalne potpise.
  • Kriptografija Eliptičke Krive (ECC): Bazirana je na algebarskoj strukturi eliptičkih krivih nad konačnim poljima. ECC nudi prednost manjih veličina ključeva u poređenju sa ne-ECC kriptografijom. Uglavnom se koristi za generisanje pseudoslučajnih brojeva i digitalnih potpisa.
  • Diffie-Hellman Razmena Ključeva: Ovaj algoritam se koristi za sigurnu razmenu ključeva. Ključ kreiran ovim metodom može se koristiti za šifrovanje sa simetričnim algoritmom. Glavni cilj je da omogući dvema stranama da kreiraju zajednički tajni ključ preko nesigurnog komunikacionog kanala.

Prednosti Asimetrične Kriptografije

  • Asimetrična enkripcija pruža veću sigurnost u poređenju sa simetričnom kriptografijom.
  • Primalac može da potvrdi identitet pošiljaoca.
  • Asimetrična enkripcija je rešila problem distribucije ključeva, pomenut u nedostacima simetrične kriptografije.
  • Primaoci poruke mogu da otkriju da li je poruka izmenjena tokom prenosa.

Nedostaci Asimetrične Kriptografije

  • Asimetrično šifrovanje je sporiji proces od simetrične kriptografije.
  • Zahteva više računarskih resursa od simetrične kriptografije.
  • Asimetrična kriptografija se oslanja na javne i privatne ključeve. Bezbedno upravljanje ključevima može biti složeno i izazovno, posebno u sistemima velikih razmera.
  • Najveći potencijalni nedostatak je njena ranjivost na kvantne računare, koji mogu rešiti određene matematičke probleme brže od klasičnih računara, ugrožavajući sigurnost enkripcije.

Međutim, organizacije i istraživači aktivno rade na prelasku na kvantno otporne kriptografske tehnike.

Pređimo na sledeću vrstu kriptografije:

Heš Funkcije

Kriptografske heš funkcije se razlikuju od drugih vrsta kriptografije jer ne šifruju podatke. Umesto toga, koriste složenu matematiku da pretvore bilo koji podatak u jedinstveni kod sastavljen od slova i brojeva.

Ovi kodovi se nazivaju heš kodovi, heš vrednosti ili sažeci poruka. Važni su za proveru da li su podaci bezbedni; kada se podaci šalju ili čuvaju, njihov heš kod se izračunava i šalje ili čuva sa podacima.

Primalac može ponovo da izračuna šifru podataka koje je primio i da je uporedi sa poslatom. Ako se kodovi poklapaju, to znači da su podaci ostali bezbedni tokom prenosa i skladištenja.

Jednostavnije objašnjenje korak po korak:

Strana pošiljaoca:

  • Pošiljalac koristi heš funkciju da kreira jedinstvenu heš vrednost za date podatke.
  • Nakon kreiranja heš vrednosti, pošiljalac šalje i originalnu poruku i heš kod primaocu preko nebezbednog kanala.

Strana primaoca:

  • Primalac prima poruku i heš kod.
  • Primalac takođe koristi isti alat (heš funkciju) da kreira novi heš kod za primljenu poruku.
  • Primalac upoređuje novi heš kod sa onim koji je poslao pošiljalac.

Ishod:

  • Ako se heš kodovi poklapaju, to znači da poruka nije promenjena tokom prenosa i da je bezbedna.
  • Ako se heš kodovi ne poklapaju, to sugeriše da je poruka promenjena i da nije bezbedna.

Osobine koje heš funkcije čine korisnim:

Svojstva Heš Funkcije:

  • Determinističke: Ako date isti ulaz, uvek će proizvoditi isti izlaz.
  • Ujednačenost i bez kolizija: Dobra heš funkcija treba da proizvodi ravnomerno raspoređene izlaze, kako bi se izbegli sudari.
  • Efikasne: Heš funkcije su dizajnirane da budu računaraski efikasne, omogućavajući brzu obradu velike količine podataka.
  • Izlaz fiksne veličine: proizvodi izlaz fiksne veličine bez obzira na veličinu ulaza, što omogućava efikasno skladištenje i pretragu podataka.

Heš funkcije imaju mnoge primene u računarstvu i bezbednosti informacija, uključujući kriptografiju, proveru integriteta podataka, indeksiranje podataka, otisak prstiju podataka, skladištenje lozinki, digitalnu forenziku i blokčejn.

Često korišćene kriptografske heš funkcije uključuju:

Postoje dve široko korišćene porodice kriptografskih heš funkcija – MD porodica (MD = sažetak poruke) i SHA porodica (SHA = bezbedni heš algoritam).

  • SHA-1 (Algoritam bezbednog heširanja 1): Bila je jedna od popularnih heš funkcija, ali se sada smatra slabom zbog ranjivosti. Više se ne koristi za većinu sigurnosnih aplikacija.
  • MD5 (Message Digest Algoritam 5): Bio je popularan, ali se sada smatra slabim zbog ranjivosti na koliziju. Ne koristi se za sigurnosno osetljive aplikacije.
  • SHA-3: Novija porodica heš funkcija odabranih na konkursu od strane Nacionalnog instituta za standarde i tehnologiju (NIST). Pruža snažnu sigurnost i otporna je na određene napade.

Iako heš funkcije ne šifruju poruke, one su sastavni deo kriptografije jer igraju ključnu ulogu u obezbeđivanju i autentifikaciji podataka, što su ključni ciljevi kriptografije.

Prednosti Heš Funkcije

  • Sigurna heš funkcija garantuje visoku otpornost na koliziju.
  • Dve datoteke se mogu lako uporediti radi jednakosti putem heširanja.
  • Heš funkcije su brze i efikasne.
  • U DBMS-u, heširanje se koristi za pretragu lokacije podataka bez upotrebe indeksne strukture.

Nedostaci Heš Funkcije

  • Heš funkcije mogu raditi manje efikasno kada postoje brojne kolizije.
  • Nisu dozvoljene nulte vrednosti.
  • Implementacija heš tabela može biti izazovna zbog njihove složenosti.
  • U praksi, gotovo je nemoguće u potpunosti sprečiti heš kolizije kada se radi sa velikim skupom potencijalnih ključeva.

Pročitajte takođe: Kako se zaštititi od napada duginim tabelama

Primena Kriptografije u Stvarnom Životu

  • Autentifikacija/Digitalni potpisi: Autentifikacija je vitalan proces potvrđivanja autentičnosti podataka, verifikacije izvora dokumenta, validacije identiteta pošiljaoca, tačnosti vremenske oznake i obezbeđivanja legitimiteta identiteta računara ili korisnika. Digitalni potpisi koriste kriptografske metode koje uključuju heš funkciju i privatni ključ za validaciju i bezbedno potpisivanje dokumenata.
  • Šifrovanje skladišta u oblaku: Kriptografija se koristi za obezbeđivanje datoteka uskladištenih u oblaku i tokom prenosa na i sa usluga u oblaku.
  • Elektronski novac: Elektronski novac uključuje elektronske transfere sredstava između strana, koji mogu biti debitni ili kreditni, i anonimni ili identifikovani. Koristi šifrovanje, digitalne potpise i kriptografiju sa javnim ključem za bezbednost, omogućavajući različite vrste transakcija.
  • Šifrovanje/dešifrovanje u e-pošti: Šifrovanje e-pošte obezbeđuje sadržaj e-pošte od neovlašćenog pristupa korišćenjem kriptografije javnog ključa. Svaki korisnik ima par javnih i privatnih ključeva, pri čemu se javni ključ koristi za šifrovanje, a samo privatni ključ može da dešifruje poruku.
  • Šifrovanje u WhatsApp-u: WhatsApp koristi signalni protokol za šifrovanje, kombinujući simetričnu i asimetričnu kriptografiju ključa za poverljivost, integritet, autentifikaciju i neporecivanje. Za razmenu ključeva koriste se algoritmi zasnovani na Curve25519.
  • Šifrovanje u Instagramu: Instagram komunikacija je šifrovana korišćenjem SSL/TLS preko porta 443, sprečavajući prisluškivanje podataka koji se razmenjuju između korisnika i Instagram servera.
  • Provera autentičnosti SIM kartice: Provera autentičnosti SIM kartice uključuje proveru pristupa SIM kartice mreži generisanjem slučajnog broja i primenom algoritama kao što je A3 sa tajnim ključem Ki. Šifrovanje se oslanja na A8 algoritam i ključ sesije KC, koji se koristi sa A5 algoritmom za šifrovanje/dešifrovanje podataka.

Izazovi u Kriptografiji

  • Upravljanje ključevima ostaje izazov jer je bezbedna distribucija i upravljanje ključevima za šifrovanje složeno, posebno u sistemima velikih razmera. Mehanizmi za skladištenje i oporavak ključeva moraju biti robusni.
  • Simetrična kriptografija može postati neefikasna kada mnogi korisnici treba da bezbedno komuniciraju. Svaki par korisnika zahteva jedinstveni ključ, koji može postati glomazan kako se broj korisnika povećava.
  • Asimetrična kriptografija zahteva duže ključeve od simetrične kriptografije da bi se postigao isti nivo bezbednosti, što dovodi do sporije obrade i povećanih zahteva za resursima.
  • Otkrivanje ranjivosti ili slabosti u heš funkcijama može dovesti do kršenja bezbednosti. Kriptografska zajednica mora kontinuirano analizirati i prilagođavati heš funkcije da bi ublažila takve rizike.
  • U aplikacijama gde se heš funkcije koriste za skladištenje lozinki, potrebno je pravilno „saltovanje“ lozinki da bi se sprečili napadi duginim tabelama. Izazov leži u jedinstvenom i tajnom „saltu“.
  • Pojava kvantnog računarstva predstavlja značajan izazov za kriptografiju. Kvantni računari su izuzetno brzi u rešavanju specifičnih matematičkih problema, koristeći principe kvantne fizike.

Ova brzina ugrožava temelje trenutnih kriptografskih sistema, koji se oslanjaju na složenost matematičkih problema kako bi osigurali sigurnost podataka. Kvantni računari potencijalno ugrožavaju bezbednost naših metoda šifrovanja.

Principi kvantne mehanike koje kvantni računari koriste su neobični, ali im daju moć da obavljaju zadatke koji su van domašaja klasičnih računara.

Shodno tome, potreba za razvojem novih kriptografskih tehnika koje mogu izdržati kvantne napade postaje sve hitnija, stvarajući stalan izazov u kriptografiji.

Budući Trendovi u Kriptografiji

  • Razvoj i usvajanje postkvantnih kriptografskih algoritama koji su otporni na kvantne napade biće značajan trend. Istražuju se algoritmi kao što je kriptografija zasnovana na rešetki.
  • Sve je više prihvaćeno šifrovanje zasnovano na oblaku i upravljanje ključevima, posebno u finansijama. Homomorfno šifrovanje omogućava proračune na šifrovanim podacima bez njihovog dešifrovanja. Ovo može poboljšati privatnost u računarstvu u oblaku i obradi podataka.
  • Kriptografija igra ključnu ulogu u obezbeđivanju blokčejn tehnologije, i to dvoje će se nastaviti preplitati u budućnosti.
  • Sa povećanim propisima o zaštiti podataka, kao što je GDPR, tokenizacija se sve češće koristi u zdravstvu, finansijskim uslugama i preduzećima. Tokenizacija zamenjuje stvarne podatke tokenom koji je bezvredan za hakere.

Završne Reči

Kriptografija je ogromno polje sa mnogo toga za istraživanje, a mi smo samo zagrebali površinu pokrivajući osnove.

Pokrili smo kriptografiju, njene principe, tipove, heš funkcije, izazove, buduće trendove i praktične primene.

Ipak, ima još mnogo toga da se otkrije.

Sledeće, kriptografija u oblaku: Uvodni vodič i Google Cloud studija slučaja.