Algoritma dan kunci sandi
Algoritma merupakan sekumpulan instruksi, sekumpulan fungsi matematis dan logika, yang disusun sedemikian rupa sehingga memiliki kekuatan kriptografis. Sebagai input dari algoritma ini adalahteks terang dan kunci sandi, yang kemudian akan menghasilkan serangkaian teks sandi. Proses tersebut disebut sebagai proses enkripsi (encryption).Untuk proses kebalikannya, yaitu proses deskripsi (decryption), digunakan algoritma lain yang memiliki korelasi dengan algoritma enkripsinya. Kunci sandi yang digunakan pada proses dekripsi ini bisa sama ataupun berbeda dengan kunci yang digunakan pada proses enkripsinya. Hal ini tergantung dari jenis algoritma yang digunakan. Proses enkripsi dilakukan oleh pihak pengirim dan proses dekripsi dilakukan oleh penerima. Faktor penentu dari kekuatan sistem sandi adalah seberapa sanggup algoritma enkripsi atau dekripsinya memproduksi rangkaian kunci yang kompleks dan panjang tidak berulang.