Seminar Nasional Inovasi dan Teknologi Informasi 2015 (SNITI) Tuktuk Siadong, 5-6 September 2015
PENGUJIAN KRIPTOGRAFI KLASIK CAESAR CHIPPER MENGGUNAKAN MATLAB Tonni Limbong Dosen Tetap Program Studi S1-Teknik Informatika STMIK Budi Darma Medan Jl. Sisingamangaraja No. 338 Simpang Limun Medan Email :
[email protected]
Abstrak Kriptografi adalah sebuah ilmu untuk menyamarkan / merubah bentuk pesan yang asli menjadi sebuah pesan yang tidak bisa diketahui atau dimengerti oleh yang bukan berhak. Caesar chiper adalah sebuah metode yang klasik dan sangat dasar dalam ilmu penyandian pesan. Metode ini memiliki kelemahan seperti tidak dapat mengenkrip spasi karena rumusnya menggunakan mod 26, dan juga jika setelah proses penghitungan sisa hasil baginya 0 juga maka hasil ini tidak akan memiliki hasil enkrip. Tetapi teknik dasar ini adalah hal yang sangat penting untuk mempelajari teknik kriptografi modern, maka untuk itu diperlukan sebuah pengujian untuk pembuktian proses dari plaintext menjadi chipertext (enkripsi) dan juga chipertext menjadi plaintext (dekripsi) dengan menggunakan software penguji yaitu Matlab R2010a dengan tujuan adalah agar dapat lebih mudah mengetahui proses logika dari kriptografi tersebut. Kata Kunci : Kriptografi, Caesar Chiper, Matlab PENDAHULUAN Kriptografi (cryptography) berasal dari bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writting” (tulisan rahasia). Ada beberapa defenisi kriptografi yang telah dikemukakan didalam berbagai literatur [1]. Kriptografi adalah ilmu dan seni untuk menjaga kerahasian pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Caesar Chipper adalah sebuah algoritma yang digunakan termasuk ke dalam sistem kriptografi simetri dan digunakan jauh sebelum sistem kriptografi kunci publik ditemukan, kriptografi klasik yang ada dan beberapa bentuk algoritma klasik tersebut sudah tidak trend (dianggap tidak optimal) karena mudah dipecahkan. Tetapi dalam belajar dasar kriptografi, metode klasik adalah dasar yang sangat bagus untuk melanjutkan ke dalam pengembangan kriptografi modern khususnya dalam pembinaan penalaran logika berpikir. Beberapa alasan mengapa penting mempelajari algoritma kriptografi klasik antara lain 1) Untuk memberikan pemahaman konsep dasar kriptografi; 2) Dasar pengembangan algoritma kriptografi modern; 3) Dapat memahami potensi-potensi kelemahan sistem chiper. Ilmu kriptografi terletak pada proses logika saat untuk proses enkripsi dan dekripsi dimana proses tersebut sebaiknya dibuktikan bukan hanya sekedar teoritis saja yang nanti para pengguna dapat mengembangkan proses dasar dari caesar chiper ini menjadi sebuah kriptografi modern.untuk menguji sebuah proses logika diperlukan sebuah software penguji. Kelemahan dari caesar chipper ini adalah tidak dapat mengenkrip ataupun mendekrip pesan yang terdiri dari beberapa kata atau kalimat, dan juga dengan
rumus yang disediakan yaitu posisi huruf ditambah angka round (kunci) dibagi 26 dan sisa baginya adalah posisi huruf pesan yang disandikan (pesan baru) dimana dapat dijelas dilihat posisi huruf awal adalah angka 1 (satu) sedangkan 26 Mod 26 sisanya adalah 0 (nol) maka pesan yang akan disandikan tidak akan pernah ditemukan dan perlu juga dipahami bahwa pesan itu tidak pernah terdiri dari satu kata sehingga spasi tidak bisa dimasukkan. Dalam penulisan ini dibuat sebuah aturan tambahan untuk mengatasi kelemahan dalam penulisan jarak dari kata ke kata (‘spasi’) dengan mengubah hasil mod dari 26 menjadi 27, dan untuk mengatasi index 0 (nol) maka dibuat sebuah kondisi jika hasil mod adalah 0 maka posisi pesan yang disandikan adalah posisi huruf ditambah round (kunci). Proses ini akan diuji dengan menggunakan Matlab R2010a dengan memberikan contoh visualisasi grafiknya menggunakan fasilitas figure yang disediakan oleh aplikasi matlab tersebut. Dengan penulisan ini para peneliti yang senang untuk membahas kriptografi khususnya para pelajar dan mahasiswa, artikel ini dapat menunjukkan masalah yang ada pada caesar chipper dan teknik mengatasi masalahnya, sehingga menciptakan pola pikir untuk mencari dan mengatasi sebuah kelemahan dari metode dan algoritma dari kriptografi yang lain baik itu untuk kriptografi modern. METODE PENELITIAN 2.1. Chiper Substitusi Chiper Substitusi adalah algoritma kriptografi yang mula-mula digunakan oleh kaisar Romawi, Julius Caesar (sehingga dinamakan juga caesar chiper), untuk menyandikan pesan yang ia kirim kepada para gubernurnya [2].
77
Seminar Nasional Inovasi dan Teknologi Informasi 2015 (SNITI) Tuktuk Siadong, 5-6 September 2015
Proses penyandian pesan ini adalah dengan mengganti (mensubstitusi) setiap karakter dengan karakter lain dalam susunan abjad (alfabet). Misalnya, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan abjad. Dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu k = 3). Tabel substitusi: pi : A B C D E F G H I J K L M N O P Q R S T U VWXYZ ci : D E F G H I J K L M N O P Q R S T U V W XYZABC Keterangan : Pi = Abjad Alpabet Ci = Chiper Alpabet (Substitusi 3) Contoh : Pesan : TONNILIMBONG Dienskripsi menjadi Chiper : WRQQLOLPERQJ Penerima pesan men-dekripsi chiperteks dengan menggunakan tabel substitusi, sehingga chiperteks . WRQQLOLPERQJ dapat dikembalikan menjadi plainteks semula: TONNILIMBONG Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25, maka secara matematis caesar chiper menyandikan plainteks pi menjadi ci dengan aturan: ci = E(pi) = (pi + 3) mod 26 dan dekripsi chiperteks ci menjadi pi dengan aturan: pi = D(ci) = (ci – 3) mod 26 Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin dilakukan adalah dari 0 sampai 25. Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah kunci enkripsi dan deksripsi), fungsi enkripsi adalah ci = E(pi) = (pi + k) mod 26
2.2. Kriptanalisis Terhadap Caesar Chiper Caesar chiper mudah dipecahkan dengan metode exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci) [2]. Contoh : Misalkan kriptanalis menemukan potongan chiperteks (disebut juga cryptogram) WRQQL. Diandaikan kriptanalis mengetahui bahwa plainteks disusun adalah nama orang dan algoritma kriptografi yang digunakan adalah caesar chiper. Untuk memperoleh plainteks, lakukan dekripsi mulai dari kunci yang terbesar, 25, sampai kunci yang terkecil, 1. Periksa apakah dekripsi menghasilkan pesan yang mempunyai makna (lihat Tabel 1). Prosesnya : Pi = WRQQL K=24 (Y) 1 + 24 pi : A B C D E F G H I J K L M N O P Q R S T U VWXYZ ci : Y Z A B C D E F G H I J K L M N O P Q R STUVWX hasil : YTSSN K=19 (T) 1 + 19 pi : A B C D E F G H I J K L M N O P Q R S T U VWXYZ ci : T U V W X Y Z A B C D E F G H I J K L M NOPQRS hasil : DYXXM K=9 (J) 1 + 9 pi : A B C D E F G H I J K L M N O P Q R S T U VWXYZ ci : J K L M N O P Q R S T U V W X Y Z A B C DEFGHI hasil : NIHHC
K=3 (D) pi : A B C D E F G H I J K L M N O P Q R S T U VWXYZ ci : D E F G H I J K L M N O P Q R S T U V W dan fungsi dekripsi adalah XYZABC pi = D(ci) = (ci – k) mod 26 hasil : TONNI demikian seterusnya , lalu susun kedalam tabel setiap proses diatas seperti berikut ini Tabel 1. Contoh exhaustive key search terhadap chiperteks WRQQL Kunci (k) ‘Pesan’ hasil Kunci (k) ‘Pesan’ hasil Kunci (k) ‘Pesan’ hasil Chipering dekripsi Chipering dekripsi chipering dekripsi 8 17 0 WRQQL 7 YTSSN 16 25 6 15 24 5 14 23 4 13 22 TONNI 3 21 12 2 20 11 DYXXM 1 NIHHC 19 10 18 9
78
Seminar Nasional Inovasi dan Teknologi Informasi 2015 (SNITI) Tuktuk Siadong, 5-6 September 2015
Dari Tabel 1, kata dalam Nama Orang yang potensial menjadi plainteks adalah TONNI dengan menggunakan k = 3. Kunci ini digunakan untuk mendekripsikan chiperteks lainnya. HASIL DAN PEMBAHASAN Dalam sebuah proses yang sedang berlangsung, agar lebih mudah dan optimal dalam pembuktian perlu diselesaikan dengan memanfaatkan tools atau software yang tersedia. Pengujian dan pembuktian ini diperlukan agar para pembaca dapat lebih mudah mengerti dan memahami bagaimana sebuah metode itu diterapkan dan bekerja menyelesaikan masalah. Demikian juga dengan kriptografi klasik ini yakni dengan Sistem Caesar, dengan langkah-langkah logikanya sebagai berikut : 1. Pergeseran 0 sama dengan pergeseran 27 (susunan huruf tidak berubah) 2. Pergeseran lain untuk k > 25 dapat juga dilakukan namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 27. Misalnya k = 37 kongruen dengan 11 dalam modulo 26, atau 37 ≡ 11 (mod 27). 3. Karena ada operasi penjumlahan dalam persamaan, maka caesar chiper kadang-kadang dinamakan juga additive chiper. Jadi untuk keperluan masalah diatas, dapat disimpulkan : 1. Jumlah index yang ada pada huruf alfabet (26) perlu ditambahkan satu (1) character “spasi kosong” di awal atau ditengah susunan Alfabet, karena dalam logikanya sebuah kalimat terdiri dari beberapa kata yang masing-masing kata dipisahkan dengan spasi kosong. 2. Rumus untuk plaintext dapat diubah dari Ci = E(pi) = (pi + 3) mod 26 menjadi ci = E(pi) = (pi + 3) mod 27 3. Rumus untuk chipertext dapat diubah dari Pi = D(pi) = (pi - 3) mod 26 menjadi Pi = D(pi) = (pi 3) mod 27 3.1. Pengujian Ekripsi dengan Matlab R2010a Untuk menguji enkripsi caesar ini yang perlu untuk diperhatikan adalah : a. Jumlah Constanta untuk index huruf yang sebenarnya yang sudah ditambahkan dengan “spasi kosong” b. Jumlah looping perulangan yang muncul adalah sebanyak panjang pesan teks yang di inputkan. c. Hasil Enkripsi ditentukan dengan cara : Ci = E(pi) = (pi + 3) mod 27 Adapun bentuk sourcecode untuk enkripsi adalah sebagai berikut : asli=['ABCDEF GHIJKLMNOPQRSTUVWXYZ']; kata=upper(input('Masukkan Teks : ','s')); putar=input('Kunci : '); ce=[ ];
m=[ ]; de=[ ]; pj=size(kata,2); x=0; for i=1:pj; m=[m kata(i)]; ce=[ce find(asli(:,:)==kata(i))]; de=[ce find(asli(:,:)==kata(i))]; x=mod((ce+putar),27); s=ce; st=asli(:,x); end awal=s ciper=x chiperText=st plot(x) grid on 3.2. Pengujian Dekripsi dengan Matlab R2010a Untuk menguji enkripsi caesar ini yang perlu untuk diperhatikan adalah : a. Tentukan Constanta untuk index huruf yang sebenarnya yang sudah ditambahkan dengan “spasi kosong” b. Jumlah looping perulangan yang muncul adalah sebanyak panjang pesan teks yang di inputkan. c. Hasil Dekripsi ditentukan dengan cara : Pi = D(pi) = (pi - 3) mod 27 Adapun bentuk sourcecode untuk enkripsi adalah sebagai berikut : asli=['ABCDEF GHIJKLMNOPQRSTUVWXYZ']; kata=upper(input('Masukkan Teks : ','s')); putar=input('Kunci : '); ce=[ ]; m=[ ]; de=[ ]; pj=size(kata,2); x=0; for i=1:pj; m=[m kata(i)]; ce=[ce find(asli(:,:)==kata(i))]; de=[ce find(asli(:,:)==kata(i))]; x=mod((ce-putar),27); s=ce; st=asli(:,x); end awal=s ciper=x PlainText=st plot(x) grid on simpan dengan nama CaesarD dalam bentuk M-File. Adapun bentuk dari pada proses pengujian dapat dilihat dalam bentuk gambar 1 dibawah ini.
79
Seminar Nasional Inovasi dan Teknologi Informasi 2015 (SNITI) Tuktuk Siadong, 5-6 September 2015
Gambar 4 . Tampilan Hasil Pengujian Dekripsi
(a) Diagram Enkrisi (b) Diagram Enkrisi Gambar 1. Diagram Kriptografi
Gambar 5 . Tampilan Visualisasi Index Huruf Dekripsi
Bentuk tampilan hasil pengujiannya adalah sebagai berikut :
Gambar 6 . Tampilan Form Kriptografi Caesar Chiper Gambar 2 . Tampilan Hasil Pengujian Enkripsi
Gambar 3. Tampilan Visualisasi Index Huruf Enkripsi
KESIMPULAN Dari penulisan dan pengujian ini dapat disimpulkan bahwa : 1. Kriptografi Caesar tidak begitu optimal dipergunakan untuk melindungi pesan karena memiliki sedikit kunci pencacah yakni hanya 26 kunci. 2. Agar dapat menampung kalimat yang yang didalamnya terdapat “spasi kosong” perlu ditambahkan dalam index sehingga jumlah character tidak lagi 26 tetapi menjadi 27, sehingga proses modulo juga berubah menjadi MOD 27. 3. Kriptografi klasik ini masih sangat penting diketahui untuk dasar mempelajari dan membuat sebuah kriptografi modern. DAFTAR PUSTAKA [1] Rinaldi Munir. 2006. “Kriptografi”. Bandung : Informatika Bandung. [2] Dony Ariyus. 2008. “Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi”, Andi OFFSET, Yogyakarta [3] Gunaidi, A. 2006. “Matlab Programing” . Informatika. Bandung
80