Асиметрично шифровање објашњено за 5 минута или мање

Podaci su izuzetno važni i, ukoliko dođu u pogrešne ruke, mogu prouzrokovati štetu pojedincima, trećim licima ili čitavim organizacijama.

Zato imamo enkripciju, metodu za zaštitu podataka tokom njihovog čuvanja ili prenosa putem interneta.

U ovom tekstu ćemo se detaljnije osvrnuti na asimetričnu enkripciju.

Započnimo.

Šta je enkripcija?

Enkripcija predstavlja kompjuterski proces transformacije podataka u format koji je teško dešifrovati (poznat i kao šifrovani tekst). Ovaj proces se oslanja na složene algoritme za šifrovanje.

Dakle, tražite od računara da šifruje podatke radi sigurnog skladištenja ili prenosa. To takođe podrazumeva da samo autorizovana lica imaju pristup tim podacima.

U osnovi enkripcije leže kriptografski ključevi. To su matematički generisani ključevi, izračunati na osnovu različitih parametara šifrovanja, uz prethodni dogovor između pošiljaoca i primaoca.

Razmotrimo primer jednostavne enkripcije.

Recimo da vi (nazovimo vas Bob) želite da pošaljete poruku Džonu, vašem prijatelju sa interneta, koji voli šifrovane tekstove.

Bob sastavlja poruku, a zatim je provlači kroz proces šifrovanja. Algoritam šifrovanja koji koristi je jednostavan. Prvo, Bob pomera ASCII vrednost svakog karaktera za 4 pozicije i kreira šifrovani tekst.

Na primer, slovo „A“ čija je ASCII vrednost 65, postaje 69, što odgovara slovu „E“. Dakle, „E“ ima ASCII vrednost 69. Prateći ovaj jednostavan metod, Bob kreira šifrovanu poruku i šalje je Džonu.

Pošto su se Džon i Bob prethodno dogovorili kako da kodiraju i dekodiraju poruke, mogu bezbedno razmenjivati poruke.

Ako Bob napiše „Zdravo, Džone“, šifrovani tekst će biti „LIJPS0$NRNR“.

Proces vraćanja poruke u originalni oblik, nakon što ju je Bob poslao, naziva se dešifrovanje.

Da biste bolje razumeli ovaj proces, pogledajte ASCII tabelu.

Takođe pročitajte: Najbolji konvertori teksta u ASCII koje treba isprobati

Šta je asimetrična enkripcija?

Asimetrična enkripcija (takođe poznata kao asimetrična kriptografija) je enkripcija koja koristi javni ključ. U ovom pristupu, algoritam vrši enkripciju i dekripciju uz pomoć dva para ključeva:

  • Javni ključ: Javni ključ se koristi za enkripciju poruka.
  • Privatni ključ: Privatni ključ se koristi za dekripciju poruka. Privatni ključ se još naziva i tajni ključ, jer se ne sme deliti i vlasnik ga čuva u tajnosti.

Kako onda funkcioniše asimetrična enkripcija?

Vratimo se na Boba i Džona iz prethodnog primera.

Bob je shvatio da njegov način slanja šifrovanih poruka Džonu nije dovoljno siguran. Na kraju krajeva, svako bi lako mogao dešifrovati poruke grubom silom.

Zato je odlučio da koristi asimetričnu enkripciju za slanje poruka Džonu.

U tom slučaju, Bob prvo traži Džonov javni ključ. Budući da već poznaje Džona, može ga pitati lično.

Inače, postoji direktorijum javnih ključeva (PKD) gde entiteti mogu registrovati i podeliti svoj javni ključ. Na taj način, svako ko želi da pošalje bezbednu poruku, mora da dođe do javnog ključa te osobe.

Sada, Bob može koristiti asimetričnu enkripciju za šifrovanje poruke koristeći javni ključ primaoca, u ovom slučaju Džonov javni ključ.

Džon prima poruku i dešifruje je koristeći svoj privatni ključ.

S druge strane, moguće je i obrnuto. To znači da se podaci mogu šifrovati i dešifrovati korišćenjem privatnog ključa.

Dakle, ako Bob šifruje poruku svojim privatnim ključem, Džon može da je dešifruje koristeći Bobov javni ključ!

Asimetrična enkripcija radi jer je za njeno funkcionisanje neophodan pristup oba ključa. To se razlikuje od simetrične enkripcije, gde se i enkripcija i dekripcija vrše pomoću jednog ključa.

Kako funkcioniše asimetrična kriptografija?

Da bismo stekli jasno razumevanje kako funkcioniše asimetrična kriptografija, moramo pogledati njen osnovni mehanizam.

Osnovni proces u velikoj meri zavisi od algoritma koji koristi dobro definisanu matematičku funkciju. Ova funkcija upravlja generisanjem parova ključeva.

Međutim, način generisanja ključeva varira u zavisnosti od dogovora između pošiljaoca i primaoca.

Većina alata i programskih jezika već poseduje unapred definisane biblioteke za kriptografiju. Dakle, ako se odlučite za asimetričnu kriptografiju, trebali biste iskoristiti ove biblioteke umesto da gubite vreme ponovnim izmišljanjem točka.

Uobičajeni proces koji se odvija kada osoba odluči da pošalje šifrovanu poruku drugoj osobi je sledeći:

➡ Pošiljalac i primalac generišu javne i privatne ključeve na osnovu određenih parametara.

➡ Zatim, pošiljalac traži javni ključ primaoca u direktorijumu javnih ključeva.

➡ Sa javnim ključem, pošiljalac ga koristi za šifrovanje poruke.

➡ Poruka se zatim šalje primaocu, koji je dešifruje svojim privatnim ključem.

➡ Primalac može odlučiti da odgovori na poruku, i isti proces se ponavlja (samo obrnutim redosledom).

Prednosti asimetrične enkripcije

Asimetrična enkripcija nudi brojne prednosti. Neke od njih su:

  • Provera autentičnosti poruke: Asimetrična enkripcija omogućava pouzdanu autentifikaciju poruke, čime se može verifikovati poruka i njen pošiljalac. Zbog toga su digitalni potpisi jedan od najvažnijih načina primene asimetrične kriptografije.
  • Praktičnost: Implementacija asimetrične enkripcije je praktična jer je distribucija ključeva laka i dostupna. Javni ključevi su lako dostupni, tako da pošiljaoci mogu jednostavno šifrirati poruku javnim ključem primaoca. S druge strane, primalac može dešifrovati poruku svojim privatnim ključem.
  • Otkrivanje neovlašćenih radnji: Asimetrična kriptografija takođe otkriva bilo kakav oblik neovlašćenog pristupa tokom prenosa.
  • Nemogućnost poricanja: Funkcioniše slično fizički potpisanim dokumentima, te pošiljalac ne može negirati svoj potpis.

Sada ćemo razmotriti i nedostatke asimetrične enkripcije.

Nedostaci asimetrične enkripcije

Nedostaci korišćenja asimetrične enkripcije uključuju:

  • Sporost: Asimetrična enkripcija je sporija, stoga nije idealna za prenos velikih količina podataka.
  • Javni ključevi bez autentifikacije: Nudi otvoreni model gde su javni ključevi slobodno dostupni. Međutim, ne postoji način da se proveri autentifikacija samog ključa i njegova veza sa konkretnom osobom. Time se teret provere autentičnosti prebacuje na korisnika.
  • Privatni ključ koji se ne može povratiti: Ne postoji mehanizam za povraćaj privatnog ključa. Ako se izgubi, poruke se ne mogu dešifrovati.
  • Curenje privatnog ključa ugrožava sigurnost: Ako privatni ključ bude kompromitovan, to može dovesti do curenja podataka ili poruka.

Sada ćemo istražiti neke od najčešćih načina primene asimetrične enkripcije.

Načini primene asimetrične enkripcije

#1. Digitalni potpisi

Digitalni potpisi su danas veoma zastupljeni. Oni koriste Rivest-Shamir-Adleman (RSA) algoritam. On generiše dva matematički povezana ključa: javni i privatni. Na taj način, digitalni potpis se kreira korišćenjem privatnog ključa i može se lako proveriti ili dešifrovati pomoću javnog ključa potpisnika.

#2. Šifrovana e-pošta

E-poruke se mogu bezbedno slati putem interneta. Sadržaj e-pošte se šifruje javnim ključem i dešifruje privatnim ključem.

#3. SSL/TLS

SSL/TLS je siguran protokol za komunikaciju preko mreže. Koristi simetričnu i asimetričnu enkripciju za uspostavljanje bezbedne veze između pošiljaoca i primaoca.

U većini slučajeva koristi se simetrična enkripcija. Međutim, možda će biti neophodna asimetrična kriptografija kada obe strane generišu svoje ključeve sesije, što zahteva asimetričnu enkripciju radi verifikacije identiteta izvornog servera.

#4. Kriptovalute

Jedan od najčešćih načina primene asimetrične kriptografije je u kriptovalutama. U ovom slučaju, javni i privatni ključevi se koriste za šifrovanje.

Kriptografija sa javnim ključem odlično funkcioniše u kriptovalutama, jer je javni ključ dostupan za prenos, dok privatni ključevi omogućavaju otključavanje transakcija i prijem kriptovaluta. Popularna kriptovaluta koja koristi asimetričnu enkripciju je Bitcoin.

#5. Šifrovano pretraživanje

Internet pretraživači takođe mogu koristiti asimetričnu enkripciju da bi zaštitili vaše podatke tokom prenosa. Na primer, kada otvorite pretraživač i odete na neku internet stranicu, primetićete HTTPS protokol ispred URL adrese. „s“ ovde znači „sigurno“. Da bi se uspostavila sigurna veza, pretraživač pregovara sa serverom, gde obe strane odlučuju kako će šifrovati podatke.

Pretraživači mogu koristiti i simetričnu i asimetričnu enkripciju za uspostavljanje veze. Međutim, asimetrična enkripcija olakšava stvaranje sigurne veze.

U stvarnim scenarijima, pretraživači su dovoljno pametni da koriste oba tipa enkripcije za postizanje sigurne komunikacije.

#6. Deljenje ključeva za simetričnu kriptografiju

Asimetrična enkripcija takođe funkcioniše kao način deljenja simetričnih ključeva preko veze.

Simetrična vs. Asimetrična enkripcija

Razlike između simetrične i asimetrične enkripcije su prikazane u nastavku.

Asimetrična enkripcija Simetrična enkripcija
Ključevi Za rad su potrebna dva ključa. Javni ključ šifrira poruku, dok privatni ključ dešifrira poruku. Moguće je i obrnuto. Za simetričnu enkripciju je potreban samo jedan ključ. Taj ključ šifrira i dešifrira poruku.
Veličina šifrovanog teksta Šifrovani tekst generisan asimetričnom enkripcijom je iste dužine kao i originalna poruka, ili je duži. Šifrovani tekst generisan simetričnom enkripcijom je slične dužine kao i originalna poruka, ili je kraći.
Brzina i efikasnost Proces enkripcije je sporiji u poređenju sa simetričnom enkripcijom. Zbog toga je manje efikasna za slanje velikih količina podataka. Proces enkripcije je brži od asimetrične enkripcije. To je čini efikasnijom za slanje velikih količina podataka.
Algoritmi Neki od popularnih algoritama asimetrične enkripcije su RSA, ECC, EL Gamal, Diffie-Hellman, itd. Neki od popularnih algoritama simetrične enkripcije su RC4, DES, 3DES i AES.
Veličina ključa Veličina ključa može biti 2048-bitna ili veća. Veličina ključeva je obično 128 ili 256-bitna.
Svrha Asimetrična enkripcija se koristi za šifrovanje podataka, autentifikaciju i kreiranje sigurnog kanala komunikacije. Simetrična enkripcija se uglavnom koristi za masovni prenos podataka.

Kada koristiti asimetričnu enkripciju?

Trebalo bi da koristite asimetričnu enkripciju kada:

  • Tražite sigurniju opciju za šifrovanje i slanje poruka.
  • Šaljete manje količine podataka, jer je asimetrična enkripcija sporija i neprikladna za veće količine podataka.
  • Želite da verifikujete digitalne potpise.
  • Radite sa kriptovalutama i želite da autorizujete transakcije verifikacijom identiteta.

Završne reči

Asimetrična enkripcija je osnova mnogih različitih tehnologija. Naći ćete je u mnogim primenama, bilo da je to TLS/SSL ili verifikacija digitalnih potpisa.

Pored toga, zahvaljujući već dostupnim bibliotekama kriptografije, možete brzo implementirati asimetričnu kriptografiju u odabranom alatu ili programskom jeziku. Ne morate ponovo „izmišljati točak“ i pisati asimetričnu kriptografiju od nule.

Zatim, pogledajte detaljniji članak o simetričnoj enkripciji.