Secara teori maka algoritma kriptografi dapat dibedakan menjadi dua jenis: 1) Algoritma Simetris dan 2) Algoritma Assimetris.
1) Symmetric Algorithms
Algoritma kriptografi simetris atau disebut juga algoritma kriptografi konvensional. Algoritma ini menggunakan kunci yang sama untuk proses enkripsi dan proses dekripsi. Algoritma kriptografi simetris dibagi menjadi 2 kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma blok (Block Ciphers). Pada algoritma aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok). Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption Standard).
Gambar Prosedur kerja algoritma simetris
2) Asymmetric Algorithms
Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut juga algoritma kunci umum (publik key algorithm) karena kunci untuk enkripsi dibuat umum (publik key) atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key). Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA dan ECC.
Syarat – syarat yang harus dipenuhi oleh suatu algoritma publik-key yaitu (Stalling, 1995):
- Mudah secara komputasi bagi suatu pihak B untuk mengkonstruksi sepasang kunci asimetris (kunci publik KU, kunci pribadi KR).
- Mudah secara komputasi bagi pengirim A, dengan memiliki kunci publik B dan pesan yang ingin dienkripsi, M, untuk menghasilkan ciphertext (C).
- Mudah secara komputasi bagi penerima B untuk mendekripsi ciphertext yang dihasilkan dengan menggunakan kunci pribadinya untuk mengembalikan pesan aslinya.
- Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi KRb hanya dengan mengetahui kunci publik KUb.
- Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci publik KUb dan ciphertext C.
- Walaupun bukanlah suatu keharusan bagi semua aplikasi publik-key, namun persyaratan keenam bisa ditambahkan
- Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang dibalik.
Kegunaan dari persyaratan keenam adalah untuk penerapan tanda tangan digital (digital signature) yang digunakan memecahkan isu otentikasi (authentication) dalam masalah keamanan data.
Gambar Prosedur Kerja Algoritma Assymetris
Menurut Stalling (Stalling, 1995), proses enkripsi publik-key sederhana melibatkan empat tahap berikut:
- Setiap user di dalam jaringan membuat sepasang kunci untuk digunakan sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima.
- User kemudian mempublikasikan kunci enkripsinya dengan menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya.
- Jika user A ingin mengirimkan sebuah pesan ke user B, ia akan mengenkripsi pesan tersebut dengan menggunakan kunci publik user B.
- Pada saat user B ingin mendeskripsikan pesan dari user A, ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain yang bisa mendekripsi pesan itu karena hanya B sendiri yang mengetahui kunci pribadi B.