Back to IF4020 Kriptografi
Caesar Cipher dan ROT13
Questions/Cues
- Apa ciri kriptografi klasik dan mengapa masih dipelajari?
- Apa dua teknik dasar penyusun cipher klasik?
- Bagaimana rumus enkripsi dan dekripsi Caesar cipher?
- Bagaimana menggeneralisasi Caesar cipher untuk pergeseran dan 256 ASCII?
- Mengapa Caesar cipher mudah dipecahkan dengan exhaustive key search?
- Apa itu ROT13 dan sifat uniknya?
Reference Points
- IF4020 Kriptografi — Kriptografi Klasik Bagian 1 (Slides 2-30, 41)
Pendahuluan: Kriptografi Klasik
Kriptografi klasik (classical cryptography) sudah ada sejak ribuan tahun lalu hingga ditemukannya komputer digital. Ciri cipher klasik:
- Hanya memproses pesan dari huruf-huruf alfabet.
- Menggunakan pena dan kertas — belum ada komputer.
- Termasuk jenis kriptografi kunci-simetri.
Tiga alasan mempelajari kriptografi klasik: (1) memahami konsep dasar kriptografi; (2) sebagai dasar algoritma kriptografi modern; (3) untuk memahami kelemahan sistem cipher.
Dua Teknik Dasar
Cipher klasik disusun oleh dua teknik dasar:
- Substitusi — mengganti huruf plainteks dengan huruf cipherteks. Contoh:
MENGANTUK→CQBSIBONW.- Transposisi — mengubah susunan/posisi huruf plainteks (disebut juga scrambling, permutasi, pengacakan). Contoh:
MENGANTUK→TNEAKMNGU. Dibahas di Cipher Transposisi - Columnar dan Rail Fence.Maka dikenal dua macam cipher: cipher substitusi dan cipher transposisi. Kombinasi keduanya membentuk product cipher / super-enkripsi.
flowchart TD C["Cipher Klasik<br/>(kunci-simetri)"] C --> S["Cipher Substitusi<br/>ganti huruf"] C --> T["Cipher Transposisi<br/>acak posisi huruf"] S --> PC["Product Cipher<br/>(super-enkripsi)"] T --> PC S --> S1["Caesar, ROT13, Affine<br/>Vigenere, Playfair, Hill, Enigma"] T --> T1["Columnar, Rail Fence"]Caesar Cipher
Cipher substitusi paling terkenal. Tiap huruf digeser 3 posisi ke kanan:
Plainteks : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Cipherteks : D E F G H I J K L M N O P Q R S T U V W X Y Z A B CContoh:
temui saya di jembatan merah nanti malam→WHPXL VDBD GL MHPEDWDQ PHUDK QDQWL PDODP.Agar kriptanalisis lebih sulit, cipherteks dikelompokkan ke dalam blok -huruf (mis. 4-huruf:
WHPX LVDB DGLM ...) atau semua spasi dibuang.Rumus Matematis
Setiap huruf dikodekan ke integer – (). Caesar cipher:
Contoh enkripsi: ; . Contoh dekripsi: .
Generalisasi
Dengan pergeseran sejauh (kunci rahasia):
Untuk alfabet 256 karakter ASCII, ganti modulus menjadi 256: . Alat bantu klasik: Caesar wheel (roda dua cakram) untuk membentuk tabel substitusi.
Kriptanalisis: Exhaustive Key Search
Caesar cipher mudah dipecahkan dengan exhaustive key search (brute force) karena hanya ada 26 kemungkinan kunci. Langkah:
- Dekripsi cipherteks dengan setiap .
- Periksa hasil mana yang berupa kata/kalimat bermakna → itu dugaan kuncinya.
- Verifikasi dengan mencoba tersebut pada potongan kriptogram lain.
Contoh: kriptogram
XMZVHmenghasilkanCREAMpada . Bila dua atau lebih menghasilkan pesan bermakna (mis.HSPPW→dollspada ,wheelpada ), uji kedua kandidat pada potongan cipherteks lain untuk memastikan.ROT13
Di Unix, ROT13 adalah Caesar cipher dengan . Namanya berasal dari net.jokes (1980) dan lazim dipakai di forum online untuk menyembunyikan jawaban teka-teki atau spoiler.
Sifat unik: enkripsi dua kali mengembalikan pesan semula — sebab . Jadi dekripsi cukup dengan mengenkripsi ulang. Contoh:
ROT13(ROTATE) = EBGNGR.
Cipher klasik hanya mengolah huruf alfabet dengan pena-kertas dan bersifat simetri; dipelajari untuk memahami konsep dasar, fondasi cipher modern, dan pola kelemahan. Ia disusun dari dua teknik: substitusi (ganti huruf) dan transposisi (acak posisi), yang bila digabung menjadi product cipher. Caesar cipher menggeser tiap huruf 3 posisi: ; digeneralisasi menjadi dengan sebagai kunci (atau untuk ASCII). Karena ruang kuncinya hanya 26, ia jatuh seketika oleh exhaustive key search — coba semua , ambil yang bermakna, verifikasi pada potongan lain. ROT13 () bersifat involutif: . Kelemahan struktural yang lebih dalam (statistik bahasa) dibahas di Cipher Abjad-Tunggal dan Analisis Frekuensi.
Additional Information
Caesar Cipher dalam Kode
Inti implementasi (C++): untuk tiap karakter, jika
isalpha, ubah ke kapital, kodekanc = c - 65, geserc = (c + k) % 26, kembalikanc = c + 65. Untuk dekripsi tangani modulo negatif:if (c - k < 0) c = 26 + (c - k); else c = (c - k) % 26;. Versi Python biasanya memisahkan fungsiencrypt(text, k)dandecrypt(text, k)yang memanggil(ord(ch) - base + k) % 26 + base.Mengapa Pergeseran 3?
Julius Caesar secara historis memakai (Suetonius, Vita Divi Julii). Keponakannya Augustus memakai tanpa wrap-around (). Nilai spesifik tidak menambah keamanan — Kerckhoffs: yang rahasia hanya kunci, dan di sini kunci hanya 1 dari 26.
Additive Cipher dalam Kriptografi Modern
Operasi “tambah kunci modulo” tetap hidup: stream cipher (RC4, ChaCha20) meng-XOR plainteks dengan keystream — itu penjumlahan mod 2 per bit. Bedanya, keystream modern panjang, pseudo-acak, dan tak pernah diulang, sehingga exhaustive search atas ruang kunci menjadi mustahil.
Proyek Eksplorasi Mandiri
- Tulis pemecah Caesar otomatis: skor tiap hasil dekripsi dengan frekuensi huruf bahasa Indonesia, kembalikan dengan skor terbaik.
- Buktikan secara aljabar bahwa bersifat involutif jika dan hanya jika , lalu cari semua yang memenuhi.
Bacaan Lanjutan
- William Stallings, Cryptography and Network Security, Bab 3 (Classical Encryption Techniques).
- Demo online:
cryptii.com/pipes/caesar-cipher,101computing.net/cipher-wheel.