Što je asimetrična enkripcija?

Postoji mnogo različitih dijelova kriptografije. Međutim, ako želite šifrirati neke podatke, postoje dvije vrste algoritama koje možete koristiti: algoritmi simetrične enkripcije i algoritmi asimetrične enkripcije. Koncept je isti: mogu šifrirati podatke, ali rade na drugačijim principima i imaju druge slučajeve upotrebe.

Titularna razlika, međutim, opisuje ključeve šifriranja. Simetrični algoritam šifriranja koristi jedan zajednički ključ za šifriranje i dešifriranje podataka. Asimetrični algoritam šifriranja koristi dva povezana ključa, jedan za dešifriranje i jedan za dešifriranje.

Terminologija

Asimetrični algoritmi šifriranja oslanjaju se na upotrebu dva različita ključa. Jedan ključ se može koristiti za šifriranje podataka, a drugi za dešifriranje. Dva ključa za šifriranje nisu samo dvije stare vrijednosti. Oni su intrinzično povezani i treba ih generirati algoritam za generiranje ključeva.

Alternativni naziv za asimetričnu enkripciju je enkripcija javnim ključem. To je zato što je predviđeno da jedan od dva ključa bude javan. Tradicionalni koncept je da se ključ za šifriranje javno dijeli, a ključ za dešifriranje strogo privatan. Iz tog razloga, ključ za šifriranje se naziva javni ključ, a ključ za dešifriranje je privatni ključ.

Ova konfiguracija omogućuje svakome da šifrira poruku tako da je samo vlasnik privatnog ključa može dešifrirati. To je korisno jer svatko može sigurno komunicirati s željenim primateljem pomoću jednog objavljenog ključa za šifriranje. Za sigurnu uzvratnu komunikaciju, primatelj bi trebao koristiti javni ključ izvornog pošiljatelja.

Teoretski, nema razloga zašto ne biste mogli zamijeniti ključeve i podijeliti ključ za dešifriranje, a da ključ za šifriranje ostane privatan. Ovo bi se moglo koristiti za provjeru autentičnosti izvora, ako ne pruža bilo kakvu značajnu sigurnost. Međutim, to se u praksi ne radi jer postoje drugi mehanizmi za postizanje istog ishoda.

Svojstva algoritama simetričnog šifriranja

Asimetrični algoritmi šifriranja zahtijevaju upotrebu puno većih ključeva od simetričnih algoritama šifriranja kada pružaju istu razinu sigurnosti. Općenito, simetrični algoritam šifriranja sa 128-bitnim ključem za šifriranje smatra se sigurnim, iako se preferiraju 256-bitni ključevi. U asimetričnom algoritmu šifriranja, 2048-bitni ključevi smatraju se sigurnima.

Primjer 2048-bitnog ključa odnosi se na RSA, koji je dugo bio standard za asimetričnu enkripciju. Međutim, kriptografija eliptične krivulje je noviji koncept koji je također asimetričan, ali koristi znatno manje ključeve. 2048-bitni RSA ključ nudi jednaku sigurnost kao 224-bitni ključ eliptične krivulje.

Savjet: Gore navedene vrijednosti smatraju se sigurnima za komercijalnu upotrebu, ali NSA zahtijeva jače ključeve za top-secret enkripciju. Potrebni su RSA ključevi od najmanje 3072 bita, dok su neophodni 384-bitni ključevi eliptične krivulje. Vrijedno je napomenuti da je 3072-bitni RSA ključ slabiji od 384-bitnog ključa eliptične krivulje.

Algoritmi asimetrične enkripcije obično su relativno spori u usporedbi s algoritmima simetrične enkripcije. Sigurna komunikacija može se izvesti preko nesigurnog kanala ako obje strane generiraju asimetrični par ključeva i zatim razmijene javne ključeve. Na taj način obje strane mogu slati poruke koje samo druga može dešifrirati.

U praksi, barem jedna od strana mora potvrditi integritet svog javnog ključa. To se radi putem PKI-ja ili infrastrukture javnih ključeva. To ima oblik tijela za izdavanje certifikata koja potpisuju ključeve drugih kako bi pokazala da je njihov identitet provjeren. U ovom sustavu, svim certifikacijskim tijelima se mora vjerovati; bez toga će se sustav raspasti.

Upotreba u praksi

Algoritmi asimetrične enkripcije obično se ne koriste za skupnu enkripciju, osobito kada je vrijeme ili izvedba problem. Mogu se koristiti za šifriranje jednokratnih poruka kao što je sadržaj e-pošte. Međutim, njihova sposobnost da osiguraju nesiguran kanal čini ih izvrsnim izborom za protokol za razmjenu ključeva koji prenosi simetrične ključeve koji se zatim mogu koristiti za učinkovitiju masovnu enkripciju.

Ovo je slučaj upotrebe u TLS-u, koji pruža sigurnost u HTTPS-u. Korisnik se spaja na web poslužitelj; zatim razmjenjuju javne ključeve kako bi međusobno šifrirali male poruke. Poslužitelj zatim generira simetrični ključ, šifrira ga s korisnikovim javnim ključem i šalje korisniku. Korisnik dekriptira ključ i zatim može koristiti simetrični ključ za učinkovito šifriranje budućih komunikacija s poslužiteljem.

Izdavač certifikata u gornjem postupku provjerava javni ključ poslužitelja. To omogućuje korisniku da bude siguran da komunicira s onim s kim pokušava komunicirati. U većini slučajeva korisnik generira ključ za jednokratnu upotrebu jer poslužitelj ne treba provjeravati s kojim korisnikom komunicira.

Zaključak

Asimetrični algoritmi šifriranja koriste dva različita ključa. Jedan ključ se koristi za šifriranje, a drugi za dešifriranje. Ključevi su matematički povezani i moraju se generirati algoritmom za generiranje ključeva; slučajne vrijednosti ne rade. Obično se ključ za šifriranje dijeli javno, što svakome omogućuje šifriranje poruke namijenjene vlasniku para ključeva.

Sve dok je ključ za dešifriranje privatan, samo vlasnik ključa može dešifrirati poruke šifrirane javnim ključem. Kao takva, asimetrična enkripcija često se naziva i kriptografija s javnim ključem.