Ilustrasi sederhana Caesar Cipher: data asli diubah menjadi sandi menggunakan kunci geser.
Enkripsi adalah proses mengubah data asli (plaintext) menjadi bentuk yang tidak dapat dibaca (ciphertext) menggunakan algoritma dan kunci tertentu. Tujuannya adalah untuk menjaga kerahasiaan informasi agar tidak dapat diakses oleh pihak yang tidak berwenang. Meskipun saat ini banyak algoritma enkripsi canggih yang digunakan, memahami konsep dasar melalui contoh sederhana dapat memberikan gambaran yang jelas. Salah satu contoh algoritma enkripsi paling awal dan paling sederhana adalah Caesar Cipher.
Caesar Cipher adalah metode enkripsi substitusi yang sangat mendasar. Dalam metode ini, setiap huruf dalam teks asli digeser sejumlah posisi tetap dalam alfabet. Jumlah pergeseran ini disebut sebagai kunci. Misalnya, jika kuncinya adalah 3, maka setiap huruf 'A' akan diganti dengan 'D', 'B' menjadi 'E', dan seterusnya. Ketika alfabet mencapai akhir, ia akan "berputar" kembali ke awal. Jadi, jika kuncinya 3, 'X' akan menjadi 'A', 'Y' menjadi 'B', dan 'Z' menjadi 'C'. Algoritma ini dinamai berdasarkan Julius Caesar, yang diyakini menggunakannya untuk melindungi pesan militernya.
Mari kita gunakan contoh kunci geser sebesar 3 untuk mengenkripsi kata "HALO". Kita akan memproses setiap huruf satu per satu:
Jadi, "HALO" terenkripsi menjadi "KDOR" dengan kunci 3.
Untuk mendekripsi pesan, kita melakukan operasi kebalikan. Jika pesan terenkripsi adalah "KDOR" dengan kunci 3, kita akan menggeser setiap huruf 3 posisi ke belakang. Misalnya:
Sehingga, "KDOR" berhasil didekripsi kembali menjadi "HALO".
Berikut adalah pseudocode sederhana yang menggambarkan logika Caesar Cipher:
FUNGSI enkripsi_caesar(teks_asli, kunci):
teks_terenkripsi = ""
UNTUK setiap karakter C dalam teks_asli:
JIKA C adalah huruf:
posisi_awal = posisi alfabet C
posisi_baru = (posisi_awal + kunci) MOD 26
karakter_baru = huruf pada posisi_baru
tambahkan karakter_baru ke teks_terenkripsi
LAIN:
tambahkan C ke teks_terenkripsi (karakter non-huruf tidak diubah)
KEMBALIKAN teks_terenkripsi
FUNGSI dekripsi_caesar(teks_terenkripsi, kunci):
teks_asli = ""
UNTUK setiap karakter C dalam teks_terenkripsi:
JIKA C adalah huruf:
posisi_awal = posisi alfabet C
// Penjumlahan untuk menghindari hasil negatif saat dekripsi
posisi_baru = (posisi_awal - kunci + 26) MOD 26
karakter_baru = huruf pada posisi_baru
tambahkan karakter_baru ke teks_asli
LAIN:
tambahkan C ke teks_asli
KEMBALIKAN teks_asli
Meskipun merupakan contoh yang bagus untuk belajar, Caesar Cipher memiliki kelemahan yang sangat signifikan. Dengan hanya 25 kemungkinan kunci yang berbeda (untuk alfabet Inggris), pesan yang dienkripsi dengan Caesar Cipher sangat rentan terhadap serangan tebakan kunci (brute-force attack). Seseorang dapat mencoba setiap kemungkinan kunci secara berurutan hingga pesan yang dapat dibaca muncul. Selain itu, analisis frekuensi huruf dapat digunakan untuk memecahkan sandi, terutama jika panjang pesan cukup besar.
Analisis frekuensi bekerja berdasarkan asumsi bahwa huruf-huruf tertentu lebih sering muncul dalam sebuah bahasa dibandingkan yang lain (misalnya, 'E' adalah huruf paling umum dalam bahasa Inggris). Dengan menghitung frekuensi kemunculan setiap huruf dalam teks terenkripsi dan membandingkannya dengan frekuensi huruf standar bahasa, kita dapat menebak kunci pergeseran yang digunakan.
Caesar Cipher adalah titik awal yang sangat baik untuk memahami konsep dasar enkripsi. Ia menunjukkan bagaimana data dapat diubah secara sistematis menggunakan aturan tertentu dan kunci. Meskipun tidak aman untuk digunakan dalam skenario keamanan modern, pemahaman tentang algoritma ini membantu mengapresiasi kompleksitas dan pentingnya algoritma enkripsi yang lebih kuat seperti AES (Advanced Encryption Standard) yang digunakan saat ini untuk mengamankan komunikasi dan data sensitif di seluruh dunia. Inti dari enkripsi, baik sederhana maupun kompleks, adalah transformasi data untuk menjaganya tetap rahasia dan utuh.