Kriptografski algoritmi su nizovi procesa ili pravila koji se koriste za šifriranje i dešifriranje poruka u kriptografskom sustavu. Jednostavno rečeno, to su procesi koji štite podatke osiguravajući da im neželjeni ljudi ne mogu pristupiti. Ovi algoritmi imaju široku paletu namjena, uključujući osiguravanje sigurnih i provjerenih financijskih transakcija.
Većina kriptografskih algoritama uključuje korištenje enkripcije, koja omogućuje komunikaciju dvjema stranama dok neovlaštene treće strane sprječavaju da razumiju te komunikacije. Šifriranje pretvara ljudski čitljivi otvoreni tekst u nešto nečitljivo, također poznato kao šifrirani tekst. Šifrirani podaci se zatim dešifriraju kako bi se obnovili, čineći ih razumljivim za namjeravanu stranu. I šifriranje i dešifriranje funkcioniraju na temelju algoritama.
Postoji mnogo različitih tipova kriptografskih algoritama, iako se većina njih uklapa u jednu od dvije klasifikacije – simetrične i asimetrične. Neki sustavi, međutim, koriste hibrid obje klasifikacije. Simetrični algoritmi, također poznati kao algoritmi simetričnog ključa ili algoritmi zajedničkog ključa, rade korištenjem ključa poznatog samo dvjema ovlaštenim stranama. Iako se oni mogu implementirati u obliku blok šifri ili stream šifri, isti se ključ koristi i za šifriranje i za dešifriranje poruke. Standard enkripcije podataka (DES) i napredni standard šifriranja (AES) najpopularniji su primjeri algoritama simetrične kriptografije.
Algoritmi asimetrične kriptografije oslanjaju se na par ključeva — javni ključ i privatni ključ. Javni ključ se može otkriti, ali, radi zaštite podataka, privatni ključ mora biti skriven. Dodatno, enkripcija i dešifriranje podataka moraju se izvršiti pridruženim privatnim i javnim ključevima. Na primjer, podaci šifrirani privatnim ključem moraju se dešifrirati javnim ključem i obrnuto. RSA je jedan od najčešćih primjera ovog algoritma.
Simetrični algoritmi su obično mnogo brži od asimetričnih algoritama. To je uvelike povezano s činjenicom da je potreban samo jedan ključ. Nedostatak sustava s zajedničkim ključem je, međutim, taj što obje strane znaju tajni ključ. Dodatno, budući da je korišteni algoritam javna domena, on je zapravo ključ koji kontrolira pristup podacima. Iz tih razloga ključevi moraju biti zaštićeni i relativno često mijenjani kako bi se osigurala sigurnost.
Iako se kriptografski algoritmi koriste za pružanje sigurnosti, oni nisu 100% sigurni. Suboptimalan sustav može biti infiltriran, a osjetljive informacije mogu biti kompromitirane kao rezultat. Stoga je rigorozno testiranje algoritama, posebno u odnosu na utvrđene standarde i utvrđene slabosti, ključno za osiguranje najveće sigurnosti.