Encryptie is het proces van het vertalen van platte tekst data (plaintext) in iets dat lijkt op willekeurige en betekenisloos (ciphertext) zijn. Decodering het omzetten cijfertekst naar platte tekst.
Meer dan een kleine hoeveelheid data te coderen, wordt symmetrische versleuteling gebruikt. Een symmetrische sleutel wordt gebruikt tijdens zowel de encryptie en decryptie processen. Om een bepaald stuk cijfertekst te decoderen moet de sleutel die werd gebruikt om de gegevens te coderen worden gebruikt.
Het doel van elke encryptie-algoritme is om het zo moeilijk mogelijk om de gegenereerde versleutelde tekst ontcijferen zonder gebruik van de sleutel. Als een echt goede encryptie-algoritme wordt gebruikt, is er geen techniek beduidend beter dan methodisch proberen elke mogelijke sleutel. Voor een dergelijk algoritme, hoe langer de sleutel hoe moeilijker het is om een stuk cijfertekst te decoderen zonder over de sleutel.
Het is moeilijk om de kwaliteit van een encryptie-algoritme te bepalen. Algoritmen die veelbelovende soms blijken zeer makkelijk te breken om te kijken, gezien de juiste aanval. Bij het selecteren van een encryptie-algoritme, is het een goed idee om een die in gebruik is geweest voor meerdere jaren en heeft met succes verzet tegen alle aanvallen te kiezen.