Šifravimas yra verčiant paprasto teksto duomenis (paprastojo) į kažką, kad atrodo, kad atsitiktinai ir beprasmis (ciphertext) procesas. Iššifravimas yra konvertuoti ciphertext atgal į paprastojo procesas.
Užšifruoti daugiau nei nedideliu kiekiu duomenimis, simetriškai šifravimo yra naudojamas. Simetriškai raktas yra naudojamas per abu šifravimo ir dešifravimo procesus. Iššifruoti ypač gabalas ciphertext, turi būti naudojamas raktas, kuris buvo naudojamas šifruoti duomenis.
Kiekvieno šifravimo algoritmo tikslas yra padaryti tai taip sunku, kaip įmanoma iššifruoti sukurtas ciphertext nenaudojant rakto. Jei tikrai geras šifravimo algoritmas yra naudojamas, nėra techniką žymiai geriau nei metodiškai bando visas įmanomas klavišą. Dėl tokio algoritmo, tuo ilgiau raktas, tuo sunkiau tai iššifruoti iš ciphertext gabalas neturint rakto.
Sunku nustatyti šifravimo algoritmas kokybę. Algoritmai, kurie atrodo perspektyvus kartais pasirodyti esąs labai lengva nutraukti, atsižvelgiant į tinkamą priepuolis. Renkantis šifravimo algoritmą, tai yra gera idėja pasirinkti vieną, kuri buvo naudojama jau keletą metų ir sėkmingai priešinosi visas atakas.