Šifrirne algoritme lahko razdelimo na dve spodaj opisani možnosti.
Simetrični algoritmi ali algoritmi s tajnimi ključi. Ti algoritmi uporabljajo isti šifrirni ključ pri šifriranju in dešifriranju. Varnost zagotavlja tajnost šifrirnega ključa. Zato ga imenujemo tudi zasebni ključ. Primer takega algoritma je AES (Advanced Encryption Standard), ki ga pogosto uporabljajo v klasični kriptografiji.
Asimetrično šifriranje ali algoritem z javnim ključem. Za ta algoritem se uporablja par ključev: javni ključ, s katerim šifriramo podatke in pripadajoči zasebni ključ, s katerim jih dešifriramo. Čeprav sta šifrirna ključa iz istega para matematično povezana, je to povezavo računsko izredno težko odkriti.
Pri uporabi tega šifriranja uporabnik javno objavi javni ključ, zasebnega pa pozna le on. Vsakdo, ki ima javni ključ, lahko šifrira čistopis. Brez zasebnega ključa pa tajnopisa ne more dešifrirati. Informacijo lahko dešifrira le tisti, ki pozna odgovarjajoči zasebni ključ.
Glavna prednost asimetričnega šifriranja je, da omogoča varno izmenjavo sporočil za vse, ki nimajo predhodnega dogovora o simetričnem šifriranju. Pri asimetričnem šifriranju si pošiljatelji in prejemniki ne delijo (preko varnih kanalov) zasebnih ključev. Pri komunikaciji uporabljajo le javne ključe.