Algoritme
Algoritme bisa diklasifikasikan berdasarkan jumlah waktu yang dibutuhkan untuk selesai dibandingkan dengan ukuran inputnya. Ada berbagai varietas: beberapa algoritme selesai dalam waktu linear relatif terhadap ukuran input, beberapa selesai dalam jumlah waktu yang eksponensial atau lebih buruh, dan beberapa berhenti. Sebagai tambahan, beberapa masalah bisa memiliki berbagai algoritme dengan kompleksitas yang berbeda, sementara permasalahan yang lain bisa saja tidak memiliki algoritme atau tidak diketahui algoritmanya yang efisien. Ada juga pemetaan dari beberapa algoritme terhadap permasalahan lain. Karena itu, lebih cocok untuk mengklasifikasikan permasalahan itu sendiri bukannya algoritme menjadi kelas-kelas yang sama berdasarkan kompleksitas dari kemungkinan algoritme terbaik baginya.
Kunci (kriptografi)
Dalam kriptografi, kunci adalah suatu informasi yang mengendalikan jalannya sebuah algoritme kriptografi. Dalam enkripsi, kunci memberikan cara khusus bagaimana suatu algoritme mentransformasikan teks terang ("plaintext") menjadi teks tersandi ("ciphertext"), ataupun proses sebaliknya (disebut dekripsi). Teks tersandi dapat diubah menjadi teks terang, jika sang pembaca mengetahui algoritme yang digunakan, dan memiliki kunci yang benar. Dengan kata lain, lunci bertindak sebagai suatu "password" dalam algoritme tersebut. Selain enkripsi, kunci juga digunakan pada algoritme kriptografi lainnya, seperti tanda tangan digital dan kode otentikasi pesan.