Kaj je asimetrično šifriranje?

Obstaja veliko različnih delov kriptografije. Če pa želite šifrirati nekatere podatke, lahko uporabite dve vrsti algoritmov: algoritme simetričnega šifriranja in algoritme asimetričnega šifriranja. Koncept je enak: lahko šifrirajo podatke, vendar delujejo na različnih principih in imajo druge primere uporabe.

Naslovna razlika pa opisuje šifrirne ključe. Simetrični algoritem šifriranja uporablja en sam skupni ključ za šifriranje in dešifriranje podatkov. Asimetrični šifrirni algoritem uporablja dva povezana ključa, enega za dešifriranje in enega za dešifriranje.

Terminologija

Algoritmi asimetričnega šifriranja temeljijo na uporabi dveh različnih ključev. En ključ lahko uporabite za šifriranje podatkov, drugega pa za dešifriranje. Dva šifrirna ključa nista samo dve stari vrednosti. So neločljivo povezani in jih je treba ustvariti z algoritmom za generiranje ključev.

Alternativno ime za asimetrično šifriranje je šifriranje z javnim ključem. To je zato, ker je predvideno, da je eden od dveh ključev javen. Tradicionalni koncept je, da je šifrirni ključ javno deljen, ključ za dešifriranje pa je strogo zaseben. Zaradi tega se šifrirni ključ imenuje javni ključ, ključ za dešifriranje pa zasebni ključ.

Ta konfiguracija omogoča vsakomur šifriranje sporočila, tako da ga lahko dešifrira samo lastnik zasebnega ključa. To je uporabno, ker lahko vsakdo varno komunicira s predvidenim prejemnikom z enim samim objavljenim šifrirnim ključem. Za varno povratno komunikacijo bi moral prejemnik uporabiti javni ključ prvotnega pošiljatelja.

Teoretično ni razloga, da ne bi mogli zamenjati ključev in deliti ključa za dešifriranje, medtem ko šifrirni ključ ostane zaseben. To bi se lahko uporabilo za preverjanje pristnosti vira, če ne bi zagotovilo pomembne varnosti. Vendar se to v praksi ne izvaja, saj obstajajo drugi mehanizmi za doseganje enakega rezultata.

Lastnosti algoritmov simetričnega šifriranja

Asimetrični šifrirni algoritmi zahtevajo uporabo veliko večjih ključev kot simetrični šifrirni algoritmi, ko zagotavljajo enako raven varnosti. Na splošno velja, da je simetrični algoritem šifriranja s 128-bitnim šifrirnim ključem varen, čeprav so prednostni 256-bitni ključi. V asimetričnem šifrirnem algoritmu velja, da so 2048-bitni ključi varni.

Primer 2048-bitnega ključa velja za RSA, ki je že dolgo standard za asimetrično šifriranje. Kriptografija z eliptično krivuljo pa je novejši koncept, ki je prav tako asimetričen, vendar uporablja bistveno manjše ključe. 2048-bitni ključ RSA ponuja enakovredno varnost kot 224-bitni ključ eliptične krivulje.

Nasvet: Zgornje vrednosti veljajo za varne za komercialno uporabo, vendar NSA zahteva močnejše ključe za strogo zaupno šifriranje. Potrebni so najmanj 3072-bitni ključi RSA, potrebni pa so 384-bitni ključi eliptične krivulje. Omeniti velja, da je 3072-bitni ključ RSA šibkejši od 384-bitnega ključa eliptične krivulje.

Asimetrični šifrirni algoritmi so običajno razmeroma počasni v primerjavi s simetričnimi šifrirnimi algoritmi. Varna komunikacija se lahko izvede prek nevarnega kanala, če obe strani ustvarita asimetrični par ključev in nato zamenjata javna ključa. Na ta način lahko obe strani pošljeta sporočila, ki jih lahko dešifrira le druga.

V praksi mora vsaj ena od strank preveriti celovitost svojega javnega ključa. To se izvede prek PKI ali infrastrukture javnih ključev. To je v obliki organov za potrdila, ki podpišejo ključe drugih, da pokažejo, da je bila njihova identiteta preverjena. V tem sistemu je treba zaupati vsem organom potrdil; brez tega bo sistem razpadel.

Uporaba v praksi

Algoritmi asimetričnega šifriranja se običajno ne uporabljajo za šifriranje v velikem obsegu, zlasti kadar sta čas ali zmogljivost težava. Uporabljajo se lahko za šifriranje enkratnih sporočil, kot je vsebina e-pošte. Vendar pa so zaradi njihove zmožnosti, da zavarujejo nevaren kanal, odlična izbira za protokol za izmenjavo ključev, ki prenaša simetrične ključe, ki jih je nato mogoče uporabiti za učinkovitejše masovno šifriranje.

To je primer uporabe v TLS, ki zagotavlja varnost v HTTPS. Uporabnik se poveže s spletnim strežnikom; nato si izmenjata javne ključe za šifriranje majhnih sporočil drug drugemu. Strežnik nato generira simetrični ključ, ga šifrira z javnim ključem uporabnika in mu ga pošlje. Uporabnik dešifrira ključ in lahko nato uporabi simetrični ključ za učinkovito šifriranje prihodnje komunikacije s strežnikom.

Overitelj potrdil v zgornjem postopku preveri javni ključ strežnika. To omogoča uporabniku, da je prepričan, da komunicira s tistim, s katerim poskuša komunicirati. V večini primerov uporabnik ustvari ključ za enkratno uporabo, saj strežniku ni treba preveriti, s katerim uporabnikom komunicira.

Zaključek

Algoritmi asimetričnega šifriranja uporabljajo dva različna ključa. En ključ se uporablja za šifriranje, drugi pa za dešifriranje. Ključi so matematično povezani in jih je treba generirati z algoritmom za generiranje ključev; naključne vrednosti ne delujejo. Običajno se šifrirni ključ deli javno, kar omogoča vsakomur, da šifrira sporočilo, namenjeno lastniku para ključev.

Dokler ključ za dešifriranje ostane zaseben, lahko le lastnik ključa dešifrira sporočila, šifrirana z javnim ključem. Kot tako se asimetrično šifriranje pogosto imenuje tudi kriptografija z javnim ključem.