Langsung ke konten utama

Tahukah kamu tentang Kriptografi Sandi Caesar?

Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau Geseran Caesar adalah salah satu teknik enkripsi paling sederhana dan paling terkenal. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks terang (plaintext) digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. Misalnya, jika menggunakan geseran 3, W akan menjadi Z, I menjadi L, dan K menjadi N sehingga teks terang "wiki" akan menjadi "ZLNL" pada teks tersandi. Nama Caesar diambil dari Julius Caesar, jenderal, konsul, dan diktator Romawi yang menggunakan sandi ini untuk berkomunikasi dengan para panglimanya.

Langkah enkripsi oleh sandi Caesar sering dijadikan bagian dari penyandian yang lebih rumit, seperti sandi Vigenère, dan masih memiliki aplikasi modern pada sistem ROT13. Pada saat ini, seperti halnya sandi substitusi alfabet tunggal lainnya, sandi Caesar dapat dengan mudah dipecahkan dan praktis tidak memberikan kerahasiaan bagi pemakainya.

Contoh

Cara kerja sandi ini dapat diilustrasikan dengan membariskan dua set alfabet; alfabet sandi disusun dengan cara menggeser alfabet biasa ke kanan atau ke kiri dengan angka tertentu (angka ini disebut kunci). Misalnya sandi Caesar dengan kunci 3, adalah sebagai berikut:
Alfabet Biasa:   ABCDEFGHIJKLMNOPQRSTUVWXYZ
Alfabet Sandi:   DEFGHIJKLMNOPQRSTUVWXYZABC

Untuk menyandikan sebuah pesan, cukup mencari setiap huruf yang hendak disandikan di alfabet biasa, lalu tuliskan huruf yang sesuai pada alfabet sandi. Untuk memecahkan sandi tersebut gunakan cara sebaliknya. Contoh penyandian sebuah pesan adalah sebagai berikut.
teks terang:   kirim pasukan ke sayap kiri
teks tersandi: NLULP SDVXNDQ NH VDBDS NLUL

Proses penyandian (enkripsi) dapat secara matematis menggunakan operasi modulus dengan mengubah huruf-huruf menjadi angka, A = 0, B = 1,..., Z = 25. Sandi (E_n) dari "huruf" x dengan geseran n secara matematis dituliskan dengan,
    E_n(x) = (x + n) \mod {26}.

Sedangkan pada proses pemecahan kode (dekripsi), hasil dekripsi (D_n) adalah
    D_n(x) = (x - n) \mod {26}.

Setiap huruf yang sama digantikan oleh huruf yang sama di sepanjang pesan, sehingga sandi Caesar digolongkan kepada, substitusi monoalfabetik, yang berlawanan dengan substitusi polialfabetik.

Sejarah dan Penggunaan

Nama Sandi Caesar diambil dari Julius Caesar, yang menurut buku Suetonius Kehidupan Duabelas Caesar, menggunakan sandi ini dengan geseran tiga, untuk mengirim pesan yang mengandung rahasia atau taktik militer.
Jika ia memiliki suatu rahasia yang akan disampaikan, ia menuliskannya dalam sandi, dengan mengganti urutan abjad, sehingga tak satu kata pun dapat dimengerti. Jika ada yang ingin membaca pesan-pesan ini, ia harus mengganti huruf keempat dalam alfabet, yaitu D, untuk A, dan seterusnya untuk huruf-huruf lain. - Suetonius, Kehidupan Julius Caesar 56.

Keponakan Caesar, Augustus juga menggunakan skema sandi Caesar, namun dengan geseran satu ke kanan, dengan sedikit perbedaan.

Jika ia hendak menulis sandi, ia menuliskan B untuk A, C untuk B, dan seterusnya, serta AA untuk Z. — Suetonius, Kehidupan Augustus 88.
Juga terdapat bukti bahwa Julius Caesar juga menggunakan sistem yang lebih rumit. Penulis Aulus Gellius, merujuk pada sebuah risalah (yang sekarang hilang) dalam sandi-sandinya.
Bahkan terdapat suatu risalah yang ditulis secara cerdas oleh ahli tatabahasa Probus mengenai arti rahasia dari huruf-huruf yang menyusun surat-surat Caesar — Aulus Gellius, 17.9.1–5.

Masih belum diketahui seberapa efektif sandi Caesar pada waktu itu, namun kemungkinan besar sandi tersebut cukup aman, karena amat sedikit dari musuh Caesar yang dapat membaca, apalagi yang dapat memecahkan sandi. Tidak ada catatan mengenai ditemukannya solusi untuk memecahkan sandi Caesar pada zaman itu. Catatan tertua mengenai pemecahan sandi substitusi monoalfabetik seperti sandi Caesar adalah pada abad ke-9, oleh kebudayaan Arab Muslim yang menemukan analisis frekuensi.

Juga diketahui bahwa sejenis sandi Caesar juga pernah digunakan sebelum masa Caesar. Sandi Caesar dengan geseran satu diklaim telah ditemukan di belakang Hezuzah.



Pada abad ke-19, iklan pribadi di surat-surat kabar kadang-kadang dituliskan dengan sandi Caesar. David Kahn (1967) menuliskan beberapa pasangan kekasih berkomunikasi secara rahasia dengan sandi Caesar melalui iklan di The Times. Bahkan pada Perang Dunia I, Tentara Kekaisaran Rusia menggunakan sandi Caesar, karena banyak tentara yang tidak mampu menggunakan metode sandi yang lebih maju; akibatnya para kriptoanalis Jerman dan Austria dapat memecahkan sandi-sandi tentara Rusia dengan mudah.

Sekarang sandi Caesar tidak dapat digunakan untuk hal-hal yang penting, namun dapat digunakan untuk kepentingan sederhana seperti diari, surat cinta, menyembunyikan penghinaan, spoiler dan lain-lain yang tidak melibatkan para ahli. Sandi Caesar dengan geseran 13 disebut algoritma ROT13, digunakan pada forum-forum internet agar suatu tulisan (mis. spoiler) tidak langsung terbaca.

Pada akhir abad ke-16 ditemukan sandi Vigenère yang merupakan pengembangan lebih lanjut daripada sandi Caesar. Sandi Vigenère menggunakan sandi Caesar dengan bilangan geseran yang berbeda tiap hurufnya, sesuai dengan sebuah kata kunci. Berbeda dengan sandi Caesar yang dapat dipecahkan melalui analisis frekuensi sederhana, Sandi Vigenère pada saat itu terlihat sulit sekali dipecahkan. Sandi Vigenère dijuluki le chiffre indéchiffrable (sandi yang tak terpecahkan) hingga akhirnya dipecahkan pada abad ke-19 dengan cara analisis frekuensi lanjutan.






Pada April 2006, seorang bos mafia buronan Bernardo Provenzano tertangkap di pulau Sisilia. Keberhasilan ini tak lepas dari keberhasilan pihak berwenang memecahkan sandi yang digunakan sang buronan. Provenzano menggunakan suatu variasi dari sandi Caesar.

Memecahkan sandi Caesar

Proses membaca teks tersandi menjadi teks terang disebut dekripsi. Sandi Caesar dapat dipecahkan bahkan jika seseorang hanya memiliki teks tersandi tanpa mengetahui nilai geserannya, ataupun bahwa sandi Caesar telah digunakan.

Jika pihak pemecah sandi hanya mengetahui bahwa digunakan substitusi monoalfabetik dalam suatu sandi, sandi tersebut dipecahkan dengan cara analisis frekuensi. Setiap bahasa memiliki huruf yang sering digunakan atau jarang digunakan. Misalnya huruf a sering sekali digunakan dalam bahasa Indonesia, dan q atau x jarang sekali muncul. Setiap bahasa memiliki pola frekuensi tertentu, yang menunjukkan frekuensi relatif dari digunakannya huruf-huruf dalam bahasa tersebut. Pola frekuensi huruf dalam bahasa Inggris ditunjukkan dalam gambar.

geseran yang
digunakan
calon teks terang
0 exxegoexsrgi
1 dwwdfndwrqfh
2 cvvcemcvqpeg
3 buubdlbupodf
4 attackatonce
5 zsszbjzsnmbd
6 yrryaiyrmlac
...
23 haahjrhavujl
24 gzzgiqgzutik
25 fyyfhpfytshj


Jika pemecah kode menghitung frekuensi huruf pada teks tersandi, karakteristik khusus pada grafik disamping tentu masih ada pada teks tersandi, hanya saja posisinya telah digeser. Misalkan sang pemecah kode menemukan lonjakan di C, serta tiga batang tinggi berturut-turut diikuti enam batang rendah berturut-turut dimulai dari O, maka bisa ditebak bahwa sandi tersebut menggunakan geseran 5 ke kiri, dan dari kesimpulan ini kita dapat mendekripsi teks tersandi dengan menggeser setiap huruf sandi 2 posisi ke kanan.

Cara kedua yang lebih mudah, dapat dilakukan jika sang pemecah sandi mengetahui bahwa pengirim sandi menggunakan sandi Caesar. Sandi tersebut akan dipecahkan dengan menggunakan brute force attack, yaitu mencoba ke-26 kemungkinan geseran yang digunakan. Biasanya hanya satu dari ke-26 kemungkinan ini yang dapat dibaca. Misalkan suatu teks tersandi "EXXEGOEXSRGI". Pada tabel disamping ditunjukkan hasil percobaan yang dilakukan, dan hanya satu hasil yang dapat dibaca, yaitu attackatonce. Hal ini berarti pesan yang disandikan adalah pesan berbahasa Inggris "attack at once", yang berarti "serang sekarang juga".

Dengan kemajuan komputer dan teknologi informasi, kedua cara diatas dapat dijalankan dengan mudah dan cepat, sehingga saat ini sandi Caesar sama sekali tidak berguna untuk menyembunyikan atau menyandikan dokumen-dokumen atau perintah-perintah penting dan rahasia.

Komentar

Postingan populer dari blog ini

Daftar Instruksi Bahasa Assembly - Perintah Perpindahan Data

Dalam program bahasa assembly terdapat 2 jenis yang kita tulis dalam program: 1. Assembly Directive (yaitu merupakan kode yang menjadi arahan bagi assembler/compiler untuk menata program) 2. Instruksi (yaitu kode yang harus dieksekusi oleh CPU mikrokontroler dengan melakukan operasi tertentu sesuai dengan daftar yang sudah tertanam dalam CPU) Daftar Assembly Directive Assembly Directive Keterangan EQU Pendefinisian konstanta DB Pendefinisian data dengan ukuran satuan 1 byte DW Pendefinisian data dengan ukuran satuan 1 word DBIT Pendefinisian data dengan ukuran satuan 1 bit DS Pemesanan tempat penyimpanan data di RAM ORG Inisialisasi alamat mulai program END Penanda akhir program CSEG Penanda penempatan di code segment XSEG Penanda penempatan di e...

Memahami Fungsi-Fungsi dalam MS Exel 2003

UNTUK FILE PDF-NYA ADA DISINI Menggunakan Fungsi IF       Fungsi   IF  digunakan   untuk  mengisi   sel  dengan  syarat   tertentu.  Disini  hasilnya minimal ada 2 alternatif. Bentuk umumnya adalah:  =if(syarat,hasil1,hasil2)       Jika   syaratnya  terpenuhi,  yang   muncul   adalah   hasil1,  sebaliknya  kalau  tidak memenuhi syarat    akan muncul hasil2 Perhatikan Contoh berikut:  Untuk mengisi kolom keterangan berdasarkan nilai yang dimiliki siswa jika nilai lebih besar 50 (>50) maka akan Lulus dan jika kurang dari 50 (<50) maka Gagal. Pada kolom keterangan dituliskan rumus: =if(c2>50;”Lulus”;”Gagal) Latihan Kerjakan soal dibawah ini: Upah Lembur = jam lembur * 1500 Tunjangan   = 10% * gaji pokok Gaji Bersih = Gaji Pokok + Upah Lembu...

HTML FORMAT TEKS

OBJEKTIF: Setelah mempelajari materi ini diharapkan anda dapat memahami penggunaan element-element untuk pemformatan teks. MATERI: Element BR(line break), Element P(paragraph), Element H1,H2,H3,H4,H5,H6(header), Element B(bold), Element I(italic), Element U(underline), Element PRE(preformated text), Element CENTER, Element BASEFONT, Element FONT, Element HR(horizontal rule) ELEMENT BR (Line Break) Element BR berfungsi untuk ganti baris. Dan element BR ini tidak mempunyai tag penutup. Sintaks: <br> ELEMENT P (Paragraph) Element P berfungsi untuk ganti paragraf yang diikuti dengan baris kosong di awal dan akhir paragraf. Tag penutup </p> sifatnya optional jika suatu paragraf diikuti oleh paragraf berikutnya. Jika tag </p> diabaikan, maka paragraf itu tidak akan diikuti dengan baris kosong di akhir paragraf. Element P mempunyai attribute yaitu align yang bernilai "left" , "center" , "right" yang menspesifikasikan posisi tepi horizontal dar...