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. Celoten koncept je enak, lahko šifrirajo podatke, vendar delujejo na različnih principih in imajo različne 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.
Lastnosti algoritmov simetričnega šifriranja
Kot je navedeno zgoraj, je ključna značilnost algoritma za simetrično šifriranje dejstvo, da uporabljate en sam ključ za šifriranje in dešifriranje podatkov. To ne pomeni, da obstaja samo en možni šifrirni ključ, samo če nekaj šifrirate z enim ključem, morate uporabiti isti ključ za dešifriranje. Včasih se imenuje šifriranje s skupnim ključem. To je zato, ker mora vsak udeleženec poznati isti ključ, zato ga morate deliti.
Ta lastnost uporabe istega ključa za šifriranje in dešifriranje je lahko nekoliko težavna. Če želite uporabljati simetrični šifrirni algoritem, morate biti sposobni varno komunicirati. Vendar tega ne morete storiti, ne da bi že imeli varno sredstvo za komunikacijo. Na srečo je to težavo mogoče rešiti z asimetričnim šifriranjem, vendar je vredno razumeti.
Ključi za algoritme simetričnega šifriranja so precej majhni, vsaj v primerjavi z asimetričnim šifriranjem. Zaradi tega jih je razmeroma enostavno prenašati tudi prek počasne omrežne povezave in so manj ranljive za napake v nezanesljivem omrežju. Simetrični šifrirni algoritmi so tudi hitri v primerjavi z asimetričnimi algoritmi.
Zaradi vseh teh lastnosti so algoritmi simetričnega šifriranja še posebej uporabni za masovno šifriranje podatkov. To še posebej velja, ko je hitrost problem.
Pretočne šifre in blokovne šifre
AES je verjetno najbolj znan algoritem simetričnega šifriranja. Uporablja se v skoraj vsem, kar šifrira veliko podatkov, in je standardni del šifrirnih paketov, ki se uporabljajo v HTTPS. AES je bločna šifra s 128-bitnimi bloki. Bločna šifra deluje tako, da šifrira bloke podatkov hkrati. Vsak blok mora biti enake velikosti. To je v redu, ko so preostali podatki večji od velikosti bloka, vendar pomeni, da je treba za dokončanje bloka uporabiti neko obliko oblazinjenja.
Pretočna šifra deluje tako, da šifrira veliko manjše količine podatkov hkrati, običajno en bajt naenkrat. Različica tega koncepta je nadomestna šifra, ki deluje na črke. Nadomestne šifre so ranljive za frekvenčno analizo, zato so običajno nezanesljive in neuporabljene. Vendar pretočne šifre nimajo te težave.
Simetrični algoritmi so ponavadi ranljivi za napade z znanim golim besedilom, napade z izbranim čistim besedilom, diferencialno kriptoanalizo in linearno kriptoanalizo. Sodobni algoritmi pa so bili skrbno zasnovani s tem v mislih, zato te težave niso problem.
Zaključek
Simetrično šifriranje je oblika šifriranja, ki uporablja isti ključ za šifriranje in dešifriranje podatkov. V nekaterih primerih je sam algoritem enak za šifriranje in dešifriranje, čeprav to ni nujno tako. Šifrirni ključi so običajno razmeroma kratki in enostavni za prenos. Ključ pa je treba prenesti po varnem kanalu, saj ga je treba sporočiti med vsemi vpletenimi stranmi. Simetrični algoritmi šifriranja so veliko hitrejši od algoritmov asimetričnega šifriranja.