(MetLit) Paper 3 - Meningkatkan Keamanan Vigenere Cipher Dengan Stream Cipher

download (MetLit) Paper 3 - Meningkatkan Keamanan Vigenere Cipher Dengan Stream Cipher

of 10

description

(MetLit) Paper 3 - Meningkatkan Keamanan Vigenere Cipher Dengan Stream Cipher

Transcript of (MetLit) Paper 3 - Meningkatkan Keamanan Vigenere Cipher Dengan Stream Cipher

Meningkatkan Keamanan Vigenere Cipherdengan Stream Cipher

ABSTRAKKriptografi merupakan ilmu yang berfungsi mengubah pesan jelas (dapat dibaca) ke pesan rahasia (tidak dapat dibaca). Pesan jelas dienkripsi di sisi pengirim kemudian pesan teren-kripsi tersebut didekripsi di sisi penerima. Vigenere cipher merupakan salah satu jenis dari cipher substitusi. Vigenere cipher memiliki beberapa keterbatasan sehingga paper yang di-usulkan berfungsi untuk meningkatkan keamanan dari Vigenere cipher dengan cara meng-gabungkannya dengan cipher modern, yaitu stream cipher. Stream cipher relatif dikenal sebagai algoritma enkripsi yang tidak dapat dianalisis sandi dan menggunakan bilangan bi-ner (selain serangkaian karakter) pada plaintext, ciphertext, dan kunci rahasianya.Dengan menggabungkan suatu cipher dengan cipher lainnya, cipher gabungan yang diper-oleh memiliki tingkat keamanan yang lebih tinggi daripada cipher yang independen. Oleh karena itu, apabila hanya Vigenere cipher saja yang digunakan sebagai algoritma enkripsi pada suatu sistem, sistem tersebut tidak cukup aman. Peningkatan keamanan Vigenere ci-pher yang diusulkan menyebabkan proses analisis sandi dengan serangan frekuensi relatif huruf-huruf menjadi lebih sulit untuk dilakukan.Istilah-istilah Umum : Keamanan Informasi, Kriptografi.Kata kunci : Plaintext, Ciphertext, Kunci Rahasia, Cipher, Substitusi, Vigenere Cipher, Stream Cipher.1. PENDAHULUANKeamanan memiliki banyak aplikasi, antara lain secure commerce and payments, melin-dungi kata sandi, hingga mengamankan komunikasi yang bersifat privasi. Salah satu aspek yang paling penting dari keamanan komunikasi adalah kriptografi.Kriptografi berasal dari bahasa Yunani dan memiliki arti, yaitu tulisan rahasia. Saat ini, is-tilah kriptografi juga diartikan sebagai ilmu dan seni dalam membuat pesan menjadi aman dan tahan dari berbagai jenis serangan. Untuk menunjang keamanan dan privasi pesan, pe-san yang dikomunikasikan antar-dua entitas harus dienkripsi di sisi pengirim dan didekrip-si di sisi penerima. Dalam kriptografi, pesan yang akan diubah disebut plaintext, sedang-kan pesan yang telah diubah disebut ciphertext. Algoritma enkripsi merupakan suatu fung-si yang mengubah plaintext menjadi ciphertext dengan menggunakan kunci rahasia. Algo-ritma dekripsi merupakan suatu fungsi yang mengubah ciphertext menjadi plaintext.Algoritma enkripsi dibagi menjadi dua jenis, yaitu simetrik dan asimetrik. Dalam algorit-ma enkripsi simetrik, enkripsi dan dekripsi menggunakan kunci rahasia yang sama.Algoritma enkripsi asimetrik menggunakan kunci publik dan kunci privat yang mana kun-ci publik boleh disebar ke banyak orang dan kunci privat harus disimpan secara aman oleh pembuat (misal user A). Pengirim menggunakan kunci publik milik user A untuk meng-enkripsi plaintext lalu user A menggunakan kunci privatnya untuk mendekripsi plaintext yang terenkripsi tersebut.Dalam algoritma enkripsi simetrik klasik, terdapat dua jenis operasi yang digunakan, yaitu substitusi dan transposisi. Teknik substitusi berfungsi memetakan elemen-elemen plaintext menjadi elemen-elemen ciphertext. Terdapat dua jenis teknik substitusi, yaitu monoalpha-betic cipher dan polyalfabetic cipher. Pada polyalfabetic cipher, satu elemen plaintext di-ubah menjadi banyak elemen ciphertext.Teknik transposisi, atau disebut juga sebagai permutasi, berfungsi untuk membuat cipher-text dengan mengubah urutan dari elemen-elemen plaintext. Perlu diperhatikan di sini, ci-phertext dibuat dengan hanya mengubah urutan elemen-elemen plaintext tanpa mengubah elemen-elemen tersebut dengan elemen-elemen lain.Dalam algoritma enkripsi simetrik modern, terdapat dua jenis algoritma enkripsi yang da-pat digunakan, yaitu stream cipher dan block cipher. Kedua jenis cipher ini akan dijelas-kan di bagian selanjutnya.2. VIGENERE CIPHERVigenere cipher merupakan salah satu jenis dari polyalfabetic cipher yang sangat terkenal di masa lampau karena algoritmanya yang sederhana dan cukup tahan terhadap serangan frekuensi relatif huruf-huruf. Vigenere cipher merupakan monoalfabetic cipher yang menggunakan 26 Caesar cipher dengan nilai pergeseran dari 0 sampai dengan 25. Pada al-goritma enkripsi Caesar cipher, setiap karakter plaintext diubah menjadi karakter cipher-text dengan cara menggeser karakter plaintext tersebut. Misal, huruf plaintext B (interpre-tasi dalam bilangan bulat, yaitu 1) digeser menggunakan kunci rahasia 3 sehingga huruf ciphertext-nya adalah (1 + 3) mod 26 = 4 atau huruf E.2.1 Tabel VigenereVigenere cipher menggunakan nilai-nilai pergeseran yang berbeda. Pergeseran nilai-nilai untuk setiap huruf alfabet bahasa Inggris (A-Z) diperlihatkan pada tabel Vigenere. Tabel Vigenere merupakan matriks berukuran 26 x 26 yang mana masing-masing huruf alfabet bahasa Inggris ditulis di baris matriks yang berbeda (terdapat 26 baris). Setiap baris ini memperlihatkan 26 Caesar Cipher untuk huruf alfabet bahasa Inggris yang bersangkutan.

Gambar 1. Tabel Vigenere.Algoritma enkripsi pada Vigenere cipher dapat dilihat sebagai operasi aljabar. Apabila hu-ruf alfabet A-Z direpresentasikan dengan bilangan bulat 0-25, rumus enkripsi Vigenere ci-pher E dengan kunci rahasia K dapat ditulis sebagai berikut :Ci = E(Pi,K) = (Pi + K) mod 26 (1)dan rumus dekripsi Vigenere cipher P dengan kunci rahasia K dapat ditulis sbb :Pi = D(Ci,K) = (Ci + K) mod 26 (2)dimana Ci adalah ciphertext dari huruf alfabet A-Z dalam representasi bilangan bulat (0-25), Pi adalah plaintext dari huruf alfabet A-Z dalam representasi bilangan bulat (0-25), K adalah kunci rahasia dalam representasi bilangan bulat (0-25), E adalah fungsi enkripsi Vigenere cipher, dan D adalah fungsi dekripsi Vigenere cipher.2.2 Analisis Sandi pada Vigenere CipherDengan meningkatnya kemampuan analisis sandi, Vigenere cipher sudah tidak lagi diang-gap sebagai algoritma enkripsi yang aman sehingga Vigenere cipher tidak populer lagi un-tuk digunakan. Kelemahan utama Vigenere cipher adalah penggunaan kunci rahasia yang berulang sehingga menimbulkan pola-pola ciphertext yang berulang. Dengan menentukan ukuran kunci rahasia terlebih dahulu dari pola-pola ciphertext yang berulang ini, plaintext dapat di-recovery dari ciphertext secara langsung menggunakan serangan frekuensi relatif huruf-huruf. Serangan ini dikenal sebagai analisis sandi Kasiski.Contoh analisis sandi pada ciphertext di bawah ini akan diperlihatkan :

Gambar 2. Ciphertext Hasil Vigenere Cipher.Langkah pertama adalah mencari seluruh ciphertext yang berulang beserta perbedaan letak posisinya dan nilai faktor-faktornya. Berikut adalah hasilnya :

Gambar 3. Ciphertext 4-gram (atas) dan 3-gram (bawah).Pada Gambar 3, nilai di sebelah huruf yang berulang menunjukkan perbedaan letak posi-sinya, sedangkan kolom-kolom pada tabel menunjukkan nilai faktor-faktor dari nilai per-bedaan letak posisi tersebut. Misal, ciphertext ZFOK berulang setelah 18 huruf dan nilai faktor-faktor dari 18 adalah 2, 3, 6, 9, dan 18.Langkah kedua adalah menentukan panjang kunci rahasia menggunakan Gambar 3. Lang-kah ini dilakukan dengan cara mencari nilai-nilai faktor yang sama (FPB) yang dimiliki oleh setiap ciphertext berulang. Dengan demikian, nilai-nilai FPB yang diperoleh adalah 2, 3, dan 6. Ciphertext berulang FEN tidak memiliki faktor 2, 3, ataupun 6, tetapi hal ini ti-dak mengubah nilai-nilai FPB yang telah diperoleh karena pengaruh nilai faktor-faktor ciphertext berulang FEN dapat dianggap minoritas. Dari nilai-nilai FPB yang diperoleh, ukuran kunci rahasia yang dipilih ada nilai FPB yang terbesar, yaitu 6. Jika ukuran kunci sebenarnya adalah 3, hal yang tidak mungkin nilai faktor 6 banyak bermunculan.Langkah ketiga adalah mengelompokkan setiap huruf ciphertext ke dalam tabel baru yang memiliki kolom sebanyak ukuran kunci rahasia yang telah ditentukan. Kemudian, isi tabel tersebut dengan huruf-huruf ciphertext dari awal sampai akhir dengan ketentuan, yaitu ba-ris pertama diisi secara berurutan dari kolom 1 sampai dengan kolom 6 dan baru pindah ke baris berikutnya. Dengan demikian, banyaknya baris ditentukan oleh banyaknya huruf-hu-ruf ciphertext. Berikut cuplikasn pengisian tabel yang dimaksud :

Gambar 4. Cuplikan Pengisian Tabel dengan Huruf-huruf Ciphertext.Langkah keempat adalah menggunakan serangan frekuensi relatif huruf-huruf pada setiap kolom tabel yang telah diisi dengan huruf-huruf ciphertext. Berikut merupakan prosedur penyerangannya untuk satu kolom tabel :1) Pilih satu kolom (L1-L6) untuk dicari kunci rahasia monoaplhabetic cipher-nya. Misal, kolom yang dipilih adalah kolom L1.2) Pilih secara sembarang kunci rahasia monoalphabetic cipher-nya (A-Z). Misal, kunci rahasia yang dipilih adalah A.3) Dengan menggunakan kunci rahasia A, dekripsi semua huruf ciphertext pada kolom L1 sehingga diperoleh hasil (sebagian) dekripsi sebagai berikut (lihat di halaman selanjut-nya) :

Gambar 5. Hasil Dekripsi Kolom L1 dengan Kunci Rahasia A.Terdapat dua grafik pada Gambar 5, yaitu grafik berwarna merah dan grafik berwarna kuning. Grafik berwarna merah menunjukkan frekuensi relatif huruf-huruf yang dijadi-kan acuan, sedangkan grafik berwarna kuning menunjukkan frekuensi relatif huruf-hu-ruf dekripsi kolom L1. Karena distribusi frekuensi relatif huruf-huruf antara grafik ber-warna merah dengan grafik berwarna kuning tidak mirip (cukup berbeda jauh), kunci rahasia A bukanlah kunci rahasia yang benar. Dengan demikian, kunci rahasia perlu di-ganti menjadi B. Berikut hasil dekripsi kolom L1 dengan kunci rahasia B :

Gambar 6. Hasil Dekripsi kolom L1 dengan Kunci Rahasia B.Gambar 6 memperlihakan bahwa distribusi frekuensi relatif huruf-huruf antara grafik berwarna merah dengan grafik berwarna kuning hampir mirip. Dengan demikian, kunci rahasia B adalah kunci rahasia monoaphabetic cipher yang benar untuk kolom L1.Lakukan prosedur di atas untuk mencari kunci rahasia monoalphabetic cipher kolom L2-L6. Di sini tidak akan diperlihatkan cara mencari kunci rahasia monoalphabetic cipher ko-lom L2-L6. Namun, kunci rahasia yang digunakan untuk menghasilkan ciphertext, seperti yang ditunjukkan pada Gambar 2, yaitu brutus. Berikut merupakan hasil dekripsinya :

Gambar 7. Hasil Dekripsi Ciphertext dengan Kunci Rahasia brutus.3. ENKRIPSI MODERNTerdapat dua jenis algoritma enkripsi simetrik modern, yaitu stream cipher dan block ci-pher. Berikut merupakan penjelasan dari stream cipher dan block cipher (lihat halaman se-lanjutnya) :1) Stream cipher mengenkripsi plaintext setiap satu bit. Hal ini dilakukan dengan cara me-lakukan operasi XOR pada bit-bit plaintext dengan bit-bit key stream. Terdapat dua je-nis stream cipher, yaitu stream cipher sinkron yang mana key stream-nya hanya ber-gantung pada kunci rahasianya dan stream cipher asinkron yang mana key stream-nya juga bergantung pada ciphertext selain kunci rahasianya.2) Block cipher merupakan algoritma enkripsi simetrik yang bersifat multiguna karena ba-nya mekanisme kriptografi yang dapat dilakukan, antara lain block cipher dapat direali-sasikan dengan menggunakan skema enkripsi blok yang berbeda dan blok cipher juga dapat direalisasikan laiknya stream cipher. Bentuk-bentuk realisasi mekanisme kripto-grafi ini disebut juga sebagai mode operasi block cipher. Block cipher juga digunakan untuk membangun algoritma pseudo-random generator fungsi hash, Messsage Authen-tication Codes (MACs), atau protokol-protokol tertentu yang berfungsi untuk membuat kunci rahasia.4. ALGORITMA YANG DIUSULKANPada umumnya, algoritma enkripsi modern menggunakan kombinasi antara operasi substi-tusi dan permutasi dengan satu atau lebih transformasi yang kompleks dalam membuat ciphertext dari plaintext. Teknik yang diusulkan pada paper adalah mengombinasikan Vigenere cipher dengan stream cipher karena Vigenere cipher saja tidak cukup aman.Berikut merupakan penjelasan singkat dari algoritma yang diusulkan :Langkah 1 : Mulai.Langkah 2 : Baca plaintext P.Langkah 3 : Baca kunci rahasia untuk Vigenere cipher K.Langkah 4 : Baca serangkaian bit acak untuk stream cipher Kbin. Kbin dapat dibuat dengan menggunakan metoda key stream generator.Langkah 5 : Lakukan enkripsi Vigenere cipher dengan menggunakan Persamaan (1) atau tabel Vigenere untuk huruf-huruf plaintext yang terletak di lokasi genap (0, 2, 4, dst).Langkah 6 : Lakukan stream cipher untuk mengenkripsi huruf-huruf plaintext yang terle-tak di lokasi ganjil (1, 3, 5, dst) dengan ketentuan-ketentuan sebagai berikut :i. Ubah huruf-huruf plaintext ke format ASCII lalu ubah lagi ke format biner.ii. Enkripsi huruf-huruf plaintext dilakukan dengan cara Ci = Pi Kbin.iii. Ubah bit-bit ciphertext ke format ASCII lalu ubah lagi ke huruf-huruf ciphertext.Langkah 7 : Selesai.

Berikut contoh proses enkripsi menggunakan algoritma yang disulkan yang mana : Plaintext P : cowardsdiemanytimesbeforetheirdeath Kunci rahasia Vigenere cipher K : file Key stream Kbin : 0110010001111000011101110001

Gambar 8. Proses Enkripsi Plaintext P dengan Algoritma yang Diusulkan.Pada contoh proses enkripsi di atas, serangkaian bit acak 1001001 yang digunakan pada stream cipher berfungsi untuk menjauhkan huruf-huruf ciphertext berulang yang letaknya berdekatan. Berikut merupakan hasil ciphertext-nya :

Gambar 9. Hasil Ciphertext dari Plaintext P.5. PERBANDINGAN ANTARA ALGORITMA YANG DIUSULKAN DENGAN METODA KOMBINASI KONVENSIONALHampir seluruh jenis kombinasi algoritma enkripsi simetrik klasik dilakukan dengan cara meng-gabungkan operasi substitusi dan permutasi saja. Pada bagian ini, perbedaan antara kombinasi algoritma enkripsi simetrik klasik dengan algoritma yang diusulkan akan dije-laskan secara singkat.

Sampai saat ini, kombinasi algoritma enkripsi simetrik hanya melibatkan algoritma enkrip-si simetrik klasik saja, seperti kombinasi antara Caesar cipher dengan Rail Fence cipher. Kombinasi algoritma enkripsi simetrik klasik seperti ini tetap membuat enkripsi dan de-kripsi mudah dilakukan, tetapi masih tergolong lemah terhadap analisis sandi dengan fre-kuensi relatif huruf-huruf. Selain itu, algoritma enkripsi klasik tidak menggunakan serang-kaian bit acak sebagai kunci rahasianya, berbeda dengan algoritma yang diusulkan. Pada algoritma yang diusulkan, algoritma enkripsi simetrik klasik, yaitu Vigenere cipher, diga-bungkan dengan algoritma enkripsi simetrik modern, yaitu stream cipher, sehingga mem-buat hasil enkripsi menjadi lebih sulit untuk diserang dengan analisis sandi frekuensi rela-tif huruf-huruf. Hal ini disebabkan oleh digunakannya serangkaian bit acak sebagai salah satu kunci rahasianya. Dengan adanya kunci rahasia ini, tentu saja keamanan data menjadi lebih baik.6. KESIMPULANVigenere cipher dikenal sebagai algoritma enkripsi simetrik yang sederhana, tetapi juga sangat lemah terhadap analisis sandi frekuensi relatif huruf-huruf. Untuk mengatasi kele-mahan ini, paper yang dibuat mengusulkan untuk membuat algoritma baru yang mengga-bungkan antara Vigenere cipher dengan stream cipher. Pada algoritma yang diusulkan, ci-phertext dibuat dengan cara mengenkripsi huruf-huruf plaintext yang berlokasi genap de-ngan Vigenere cipher dan mengenkripsi huruf-huruf plaintext yang berlokasi ganjil de-ngan stream cipher. Dengan hasil ciphertext seperti ini, hubungan antara plaintext dan ci-phertext menjadi hilang sehingga analisis sandi frekuensi relatif huruf-huruf menjadi lebih sulit untuk dilakukan. Terlebih lagi, untuk huruf yang sama, huruf plaintext kapital dan huruf plaintext kecil menghasilkan huruf ciphertext yang berbeda. 7. SARANKey stream pada algoritma yang diusulkan menjadi faktor yang paling esensial. Oleh kare-na itu, algoritma yang diusulkan akan lebih aman lagi apabila ukuran key stream sama de-ngan atau lebih dari jumlah bit huruf-huruf plaintext yang terletak di lokasi genap. Hal ini disebabkan karena tidak ada huruf ciphertext yang dihasilkan dari key stream yang sama.