Enkripsi adalah proses menerjemahkan data teks biasa (plaintext) menjadi sesuatu yang tampaknya acak dan berarti (ciphertext). Dekripsi adalah proses mengubah ciphertext kembali ke plaintext.
Untuk mengenkripsi lebih dari sejumlah kecil data, enkripsi simetris digunakan. Sebuah kunci simetrik yang digunakan selama kedua proses enkripsi dan dekripsi. Untuk mendekripsi bagian tertentu dari ciphertext, kunci yang digunakan untuk mengenkripsi data harus digunakan.
Tujuan dari setiap algoritma enkripsi adalah untuk membuat sesulit mungkin untuk mendekripsi ciphertext yang dihasilkan tanpa menggunakan kunci. Jika algoritma enkripsi benar-benar baik digunakan, tidak ada teknik signifikan lebih baik daripada metodis mencoba setiap kemungkinan kunci. Untuk algoritma seperti itu, semakin lama kunci, semakin sulit adalah untuk mendekripsi sepotong ciphertext tanpa memiliki kunci.
Sulit untuk menentukan kualitas sebuah algoritma enkripsi. Algoritma yang terlihat menjanjikan kadang-kadang berubah menjadi sangat mudah untuk istirahat, mengingat serangan yang tepat. Ketika memilih sebuah algoritma enkripsi, itu adalah ide yang baik untuk memilih satu yang telah digunakan selama beberapa tahun dan telah berhasil menahan semua serangan.