Sistem cipher substitusi adalah sebuah algoritma enkripsi dan dekripsi yang mensubstitusi unit-unit sebuah text dengan unit-unit lain berdasarkan aturan tertentu. Unit-unit ini bisa saja sebuah huruf, sepasang huruf, sebuah kata, dan sebagainya. Contoh sederhana cipher ini dapat dilihat pada gambar 1.
Gambar 1. Cipher Substitusi |
Pada gambar 1 di atas, plaintext di enkripsi dengan mensubstitusi tiap huruf dengan huruf setelahnya pada alphabet latin. Ini adalah salah satu contoh cipher substitusi jenis monoalfabetik.
Cipher subtitusi ini memiliki beberapa jenis, di antaranya adalah sebagai berikut:
- Monoalfabetik
- Polialfabetik
Monoalfabetik
Sistem cipher substitusi monoalfabetik memetakan tiap huruf satu per satu seperti pada contoh gambar 1 di atas, dimana tiap huruf alfabet dipetakan ke huruf setelahnya. Untuk melakukan dekripsi dari ciphertext, sebuah substitusi kebalikannya dilakukan, misalnya bila enkripsinya adalah mengganti huruf plaintext dengan huruf alfabet setelahnya, maka algoritma dekripsinya adalah mengganti huruf pada ciphertext dengan huruf alfabet sebelumnya.
Kriptografi Julius Caesar termasuk ke dalam cipher jenis ini, dimana pada kriptografinya, tiap huruf dipetakan ke tiga huruf setelahnya, A menjadi D, B menjadi E, dan seterusnya. Cipher semacam ini sering disebut dengan Caesar Cipher, dimana enkripsi dilakukan dengan menggeser huruf pada alphabet sebanyak jumlah kunci yang diberikan. Contoh lain dari cipher jenis ini adalah cipher Atbash yang sering dipakai untuk alphabet Hebrew, dimana enkripsi dilakukan dengan mengganti huruf pertama dengan huruf terakhir, huruf kedua dengan huruf kedua terakhir, dan seterusnya.
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
Sandi Caesar mengganti setiap huruf di teks terang (plaintext) dengan huruf yang berselisih angka tertentu dalam alfabet. Contoh ini menggunakan geseran tiga, sehingga huruf B di plaintext menjadi E di teks tersandi (ciphertex) |
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 (En) dari "huruf" x dengan geseran n secara matematis dituliskan dengan,
Sedangkan pada proses pemecahan kode (dekripsi), hasil dekripsi (Dn) adalah
Setiap huruf yang sama digantikan oleh huruf yang sama di sepanjang pesan, sehingga sandi Caesar digolongkan kepada, substitusi monoalfabetik, yang berlawanan dengan substitusi polialfabetik.
Polialfabetik
Cipher polialfabetik pertama kali dijelaskan oleh Leone Battista Alberti pada tahun 1467 sementara tableau – sebuah tabel alfabet yang dapat digunakan untuk membantu enkripsi dan dekripsi cipher polialfabetik – diperkenalkan oleh Johannes Trithemius dalam bukunya Steganographia. Pada cipher ini, beberapa alfabet cipher digunakan sekaligus yang kemudian ditulis di sebuah tabel.
Cipher dengan jenis polialfabetik yang paling terkenal adalah cipher Vigenère yang ditulis oleh Blaise de Vigenère pada abad ke-16. Cipher ini memanfaatkan tabel alfabet 26 X 26 – atau lebih dikenal dengan nama Tabula Recta – dan menggunakan kunci dan plaintext sebagai penanda posisi pada Tabula Recta untuk mendapatkan ciphertext-nya. Untuk melakukan dekripsi, kunci dan ciphertext digunakan sebagai penanda posisi untuk mendapatkan plaintext.
Gambar 2. Tabula Recta |
Untuk melakukan enkripsi dengan cipher Vigenère, sebuah kata kunci diperlukan. Kata kunci ini akan diulang sampai panjangnya sama dengan panjang plaintext dan kemudian digunakan untuk mencari huruf pengganti pada tabula recta.
Kata Kunci: BEG
Plaintext: J I D A D
Kunci: B E G B E
Dengan kunci dan plaintext tersebut, enkripsi Vigenère dapat dilakukan dengan bantuan tabula recta. Untuk mendapat huruf pertama ciphertext, kita masukkan kunci sebagai baris dan plaintext sebagai kolom. Jadi, huruf pertama ciphertext adalah K, huruf yang terdapat pada baris B dan kolom J.
Gambar 3. Enkripsi Huruf Pertama dengan Cipher Vigenère |
Ulangi untuk huruf ciphertext berikutnya, yaitu huruf pada baris E dan kolom I, didapatkan huruf M sebagai huruf ciphertext kedua. Langkah-langkah tersebut diulangi sampai plaintext sudah habis dienkripsi dan ciphertext yang didapat adalah KMJBH.
Gambar 4. Enkripsi Huruf Kedua dengan Cipher Vigenère |
Keistimewaan cipher ini adalah kemudahanya dalam implementasi dan kekuatannya dalam menghadapi serangan. Meskipun dapat dipakai dengan sederhana, cipher ini tergolong amat kuat untuk masanya, bahkan disebut-sebut sebagai cipher yang tidak dapat dipecahkan sampai pada abad ke-20.
Sumber :
http://id.wikipedia.org/wiki/Sandi_Caesar
http://webmail.informatika.org/~rinaldi/Matdis/2009-2010/Makalah0910/MakalahStrukdis0910-054.pdf
Sumber :
http://id.wikipedia.org/wiki/Sandi_Caesar
http://webmail.informatika.org/~rinaldi/Matdis/2009-2010/Makalah0910/MakalahStrukdis0910-054.pdf
Tidak ada komentar:
Posting Komentar