Krüpteerimine on teadus, mille eesmärk on muuta tekst loetamatuks, et edastada see turvaliselt ja salaja soovitud adressaadile, kes kasutab sõnumi dekrüpteerimiseks võtit. Krüpteerimisalgoritm on andmete krüpteerimiseks määratletud sammude jada. Algteksti nimetatakse tavatekstiks ja pärast krüpteerimisalgoritmi rakendamist nimetatakse seda salatekstiks. Krüpteerimisalgoritmi võib nimetada šifriks ja sellele antakse sageli nimi. Näiteks on olemas üks krüpteerimisalgoritm nimega Blowfish ja teine, mille nimi on AES (Advanced Encryption Standard).
Krüpteerimisalgoritm võib sõltuda asendusest, nagu asendusšifris, või transpositsioonist, nagu transpositsioonišifris. Tuntud varajaste šifrite näited põhinesid lihtsatel krüpteerimisalgoritmidel. Näiteks kasutas Julius Caesar šifrit, mis hõlmas asendust, mille käigus ta nihutas tähestiku tähti nii, et A-d tähistas D, B-d tähistas E jne. Kuna tähestikus on 26 tähte, saab seda tüüpi šifreid luua 25 – 26. asemel oleks A, mis pole eriti salajane. Selle šifri võtmeks võib pidada kohtade arvu nihkumist.
Siiski ei ole krüpteerimisalgoritmi jaoks tähti vaja kasutada. See võib tähtede asendajana kasutada numbreid ja muid sümboleid. Novellis “The Gold Bug” kasutas Edgar Allen Poe asendusšifrit, milles krüpteerimisalgoritm hõlmab seda tüüpi asendamist, kasutades sümboleid.
53##+305))6*;4826)4#.)4#);806*;48+8¶60))85;;]8*;:#*8+83(88)5*+;46(;88*96*?;8)*#(;485);5*+2:*#(;4956*2(5*-4)8¶8*;4069285);)6+8)4##;1(#9;48081;8:8#1;48+85;4)485+528806*81(#9;48;(88;4(#?34;48)4#;161;:188;#?;
Kui see šifr peaks lahendama, näeks, et Poe ei määranud tähtedele sümboleid korrapäraselt, kui A = 1, B = 2 jne. Sel viisil on krüpteerimisalgoritm pisut keerulisem kui tähestiku nihutamise algoritm. Kui mõistate tähestiku nihkes välja ühe tähe, saate need kõik hõlpsasti tuletada. Poe algoritmi puhul ei ütle aga teadmine, et A = 5, midagi B või mõne muu tähe kohta.
Kaasaegsetes rakendustes (nt krediitkaarditehingute turvamine Internetis) kasutatavad krüpteerimisalgoritmid on palju keerukamad. Klahvid võivad olla kuni 256 bitti või pikemad. Kui neid lahti murda, siis ainult arvutite abil. Kui aga peaks hankima šifrivõtme, saaks šifriteksti kohe lugeda.