Dva najvažnija cilja kriptografije su pružanje povjerljivosti i autentičnosti, odnosno integriteta poruka koje se šalju putem nesigurnog komunikacijskog kanala. Povjerljivost osigurava da je poruka čitljiva samo osobama kojima je namijenjena, dok za ostale treba biti neupotrebljiva. Osiguravanje povjerljivost se postiže metodama enkripcije pomoću kojih se izvorni tekst pretvara u šifrirani tekst, te se takav šalje komunikacijskim kanalom. Integritet podataka je svojstvo koje osigurava da podaci nisu izmijenjeni ili krivotvoreni od strane neovlaštenih entiteta. Integritet se najčešće postiže pomoću kodova za autentifikaciju poruka, tzv. MAC-ova. MAC je algoritam za generiranje kratkog niza podataka koji se dodaje na originalnu poruku kako bi...