Sebagaimana yang sudah kita bahas sebelumnya pada Algoritma Kriptografi Klasik ada dua jenis metode yaitu Substitusi dan Transposisi. Kali ini kita akan membahas jenis dari algoritma substitusi yang kedua yaitu Cipher Abjad majemuk yang contohnya Vegener Cipher, Susbtitusi Homofonik, dan Substitusi Poligram.
Cipher Abjad Majemuk
Cipher Abjad Majemuk ditemukan pertama kali di tahun 1568 oleh Leon Battista Alberti. Metode ini digunakan selama perang sipil Amerika oleh tentara Amerika Serikat. Cipher Abjad Majemuk merupakan teknik pengamanan pesan dengan menggunakan kunci berganda untuk setiap huruf di dalam plainteks. Oleh karena itu panjang kunci umumnya lebih pendek daripada plianteks namun kunci tersebut diulang-ulang dari satu periode ke periode berikutnya.
Perbedaan antara Cipher Abjad Tunggal dengan CIpher Abjad Majemuk adalah, pada Cipher Abjad Tunggal satu kunci digunakan untuk semua huruf dalam plainteks, sedangkan pada Cipher Abjad Majemuk setiap huruf menggunakan kunci yang berbeda. Cipher abjad-majemuk dibuat dari sejumlah cipher abjad-tunggal, masing-masing dengan kunci yang berbeda. Kebanyakan cipher abjad-majemuk adalah cipher substitusi periodik yang didasarkan pada periode m.
Contoh :
Plainteks : This Cryptosystem is Not Secure
Kunci : CIPHER
Tukarkan semua huruf pada plainteks dan kunci dengan angka seperti pada Caisar Cipher. Kemudian jumlahkan dan hasilnya menjadi cipherteks. :
Hasilnya cipherteks : vpxzgiaxivwpubttmjpwizitwzt
Vegenere Cipher
Contoh algoritma yang menggunakan konsep Cipher Abjad Majemuk adalah Vegenere Cipher. Vegenere Cipher digambarkan pertama kali oleh Blaise de Vigenere seorang kriptografis asal Prancis pada tahun 1553 dan dipublikasikan pada tahun 1586. Meskipun sudah lama ada, namun algoritma ini baru populer 200 tahun setelahnya. Vegenere Cipher digunakan oleh tentara Konfiderasi pada perang sipil Amerika. Perang sipil terjadi setelah pesan yang dienkripsi dengan Vegenere Cipher berhasil dipecahkan. Algoritma ini berhasil dipecahkan oleh Babbage dan Kasiski pada pertengahan abad 19. Vegenere Cipher dikenal karena sangat mudah dipahami dan diimplementasikan. proses enkripsi dan dekripsi pada Vegenere Cipher menggunakan tabel bujursangkar sebagai berikut :
Enkripsi dilakukan dengan menarik garis vertikal dari huruf plainteks, lalu tarik garis mendatar dari huruf kunci. Hasilnya adalah perpotongan dari kedua garis tersebut.
contoh :
Plainteks : Indonesia
Kunci : mobilmobi (ulang sebangak plainteks)
Maka, untuk memperoleh cipherteks ambil huruf i dari arah vertikal dan m horizontal, maka di dapat huruf U. Begitu seterusnya menjadi : Cipherteks : UBEWYQGJI
Dekripsi dilakukan dengan cara menarik garis mendatar dari huruf kunci sampai ke huruf cipherteks yang dituju, lalu dari huruf cipherteks tarik garis vertikal ke atas sampai ke huruf plainteks. Pada contoh cipherteks u. Ambil huruf kunci yaitu m dari sisi mendatar, tarik garis hingga menuju huruf cipherteks yaitu u. Setelah itu tarik lagi garis ke atas menuju huruf plainteks yaitu i sampai seterusnya sehingga didapat keseluruhan plainteks.
Enkripsi dan dekripsi Vegenere Cipher dapat dirumuskan sebagai berikut :
C = (P+K) mod 26, contoh : C=(i+m)mod 26, C = (8+12)mod 26 = 20 = U
P = (C-K) mod 26, contoh : P=(u-12)mod 26, P = (20-12)mod 26 = 8 = i
Cipher Substitusi Homofonik
Cipher subtitusi homofonik merupakan teknik untuk meningkatkan kesulitan analisis frekuensi pada cipher substitusi dalam menyamarkan frekuensi huruf plainteks. Pada cipher, huruf plainteks dipetakan ke lebih dari satu simbol cipherteks. Biasanya, simbol dengan frekuensi tertinggi pada plainteks diberikan sama atau lebih dari huruf frekuensi yang lebih rendah. Setiap huruf plainteks dapat memiliki lebih dari satu kemungkinan unit chipherteks yang ada. Contoh, huruf A dapat memiliki kemungkinan cipherteks TU, BU, dan CQ (Hanya contoh, kombinasi bebas)
Cipher subtitusi homofonik pertama kali digunakan pada tahun 1401 oleh wanita bangsawan Mantua. Penggunaan cipher homofonik adalah menggunakan cipher subtitusi dimana karakter memungkinkan memiliki salah satu dari sejumlah karakter yang berbeda representasinya.
Contoh :
Sebuah teks dihitung frekuensi kemunculan huruf-huruf didalamnya, kemudian dibuat diagram frekuensi yang menggambarkan kemunculan huruf-huruf di dalam teks tersebut.
terlihat bahwa huruf “E” mempunyai frekuensi tertinggi sebesar 13% sehingga dapat dikodekan dengan 13 buah homofon. I memiliki 8% sehingga dibuat 8 buah homofon. Berikut tabel homofon yang dapat dibuat :
Plainteks : Kripto
Plainteks di atas dienkripsi dengan menggunakan cipherteks kombinasi memungkinkan yang sudah ada pada tabel di atas.
Cipherteks : DI CE AX AZ CC DX
Dalam hal ini pemilihan dipherteks yang mungkin dilakukan dengan memilih kombinasi yang mana saja tergantung keinginan kita. Contoh huruf o kita gunakan cipherteks DX walaupun masih banyak karakter yang bisa kita pakai seperti DZ.
Hasil yang di dapat dari enkripsi menggunakan metode ini yaitu pemetaan satu ke banyak( one to many) sedangkan pada proses dekripsi tidak demikian, hal ini menyebabkan jumlah cipherteksnya dua kali plainteks.
Cipher Substitusi Poligram
Teknik yang ada pada jenis substitusi Poligram adalah dengan mengenkripsi atau mendekripsi huruf yang dikelompokkan dalam beberapa kelompok huruf. Misal AZ diganti menjadi US atau IND diganti dengan IOK dan seterusnya. Jumlah kelompoh huruf dalam plainteks akan sama dengan cipherteks. Jika panjang kelompok dua huruf disebut digram dan jika tiga huruf disebut tigram dan seterusnya.
Contoh dari algoritma Cipher Substitusi Poligram adalah Playfair Cipher.
Playfair Cipher
Playfair Cipher Ditemukan oleh Sir Charles Wheatstone namun dipromosikan oleh Baron Lyon Playfair pada tahun 1854. Cipher ini mengenkripsi pasangan huruf (digram atau digraf), bukan huruf tunggal seperti pada cipher klasik lainnya. Tujuannya adalah untuk membuat analisis frekuensi menjadi sangat sulit sebab frekuensi kemunculan huruf-huruf di dalam cipherteks menjadi datar (flat).
Membuat Kunci
Kunci kriptografinya 25 buah huruf yang disusun di dalam bujursangkat 5×5 dengan menghilangkan huruf J dari abjad.
Contoh kunci : INDONESIA NEGARA KAYA DAN JAYA
- Buang huruf yang berulang dan huruf J jika ada, sehingga diperoleh: INDOESAGRKY
- Lalu tambahkan huruf-huruf yang belum ada (kecuali J), sehingga diperoleh: INDOESAGRKYBCFHLMPQTUVWXZ
- Susunan kunci di dalam bujursangkar diperluas dengan menambahkan kolom keenam dan baris keenam.
- Setelah kunci didapatkan, maka selanjutnya kita akan mengenkripsi plainteks.
Enkripsi
Pada proses enkripsi pesan yang akan dienkripsi diatur terlebih dahulu sebagai berikut:
- Ganti huruf J (bila ada) dengan I
- Tulis pesan dalam pasangan huruf (bigram).
- Jangan sampai ada pasangan huruf yang sama. Jika ada, sisipkan Z di tengahnya
- Jika jumlah huruf ganjil,tambahkan huruf Z di akhir
Contoh plainteks : GOOD BROOMS SWEEP CLEAN.
Tidak ada huruf J, maka langsung tulis pesan dalam pasangan huruf (perhatikan aturan 1-4 di atas):
GO OD BR OZ OM SZ SW EZ EP CL EA NZ
Algoritma enkripsi:
- Jika dua huruf terdapat pada baris kunci yang sama maka tiap huruf diganti dengan huruf di kanannya.
- Jika dua huruf terdapat pada kolom kunci yang sama maka tiap huruf diganti dengan huruf di bawahnya.
- Jika dua huruf tidak pada baris yang sama atau kolom yang sama, maka huruf pertama diganti dengan huruf pada perpotongan baris huruf pertama dengan kolom huruf kedua. Huruf kedua diganti dengan huruf pada titik sudut keempat dari persegi panjang yang dibentuk dari 3 huruf yang digunakan sampai sejauh ini.
Mari mengenkripsi Plainteks dengan memperhatikan ketiga aturan algoritma di atas (gunakan kunci yang sudah diperluas tadi) :
Begitu selanjutnya sehingga didapatkan seluruh cipherteks : RD EO FA EX NQ KU GU KE DT YP NK EV
Dekripsi
Untuk mendekripsikan cipherteks, digunakan kunci yang sama yaitu bujur sangkar yang sudah dibuat untuk proses enkripsi tadi. Adapun algoritma dekripsi merupakan kebalikan dari enkripsi pada poin 1 dan 2 namun sama untuk poin 3.
Algoritma dekripsi:
- Jika dua huruf terdapat pada baris kunci yang sama maka tiap huruf diganti dengan huruf di kirinya.
- Jika dua huruf terdapat pada kolom kunci yang sama maka tiap huruf diganti dengan huruf di atasnya.
- Jika dua huruf tidak pada baris yang sama atau kolom yang sama, maka huruf pertama diganti dengan huruf pada perpotongan baris huruf pertama dengan kolom huruf kedua. Huruf kedua diganti dengan huruf pada titik sudut keempat dari persegi panjang yang dibentuk dari 3 huruf yang digunakan sampai sejauh ini.
[…] Cipher Abjad Majemuk […]