Analisis Sistem Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada Simulasi Three-Pass Protocol

BAB 3 ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Analisis sistem bertujuan untuk memecah sistem ke dalam komponen-komponen subsitem yang lebih kecil untuk mengetahui hubungan setiap komponen tersebut dalam mencapai tujuan Whitten Bentley 2007 Pada penjelasan Dennis et al.2012 menyebutkan bahwa terdapat beberapa tahap yang dilakukan pada proses analisis sistem, yaitu : 1. Understand, yaitu memahami kinerja sistem yang telah ada. 2. Indentify, yaitu mengidentifikasi masalah. 3. Analyze, yaitu menganalisa kebutuhan dari sistem yang akan dibangun. Tahap understand adalah tahap yang dapat dilewatkan dalam proses analisis sistem jika sistem yang akan dirancang belum pernah dibuat sebelumnya atau sistem yang ada sebelumnya sudah tidak relevan lagi dengan sistem yang dibangun Sujiono, 2016. Dijelaskan sujiono, 2016 bahwa tahap kedua yang merupakan identifikasi masalah bertujuan untuk mengidentifikasi dan mendeskripsikan penyebab masalah yang akan diselesaikan oleh sitem. Tahap ketiga yaitu tahap analisa kebutuhan sistem. Dalam hal ini, akan dihasilkan daftar kebutuhan sistem yang bersifat fungsional dan non fungsional yang akan digunakan pada proses perancangan sistem Sujiono, 2016. 3.1.1. Understand Understand berkaitan dengan sistem yang telah ada sebelumnya. Tahap ini dikerjakan oleh sytem analyst jika sistem yang akan dibangun merupakan pengembangan dari sistem sebelumnya. Jika sistem yang dibangun adalah sistem yang baru atau sistem sebelumnya sudah tidak relevan dengan sistem yang akan dibangun, maka tahap ini dapat dilewatkan Dennis, et al. 2016. Universitas Sumatera Utara Pada penelitian ini, sistem yang akan dibangun merupakan sistem yang belum pernah dibuat sebelumnya sehingga tidak akan dibahas lebih lanjut. Tahap understand tidak akan dibahas lebih dalam dalam penelitian kali ini yang berjudul Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada simulasi Three-Pass Protocol. 3.1.2. Identify Pada tahap identifikasi masalah identify akan dihasilkan deskripsi penyebab dari masalah yang akan diselesaikan oleh sistem. Masalah-masalah yang diperoleh tersebut kemudian digambarkan dalam sebuah diagram yang dikenal dengan sebutan Diagram Ishikawa atau disebut juga Fishbone Diagram. Diagram ini merupakan diagram yang telah banyak digunakan oleh para analis sistem untuk mengidentifikasi, menganalisadan memecahkan masalahWhitten Bentley, 2007. Diagram Ishikawa berbentuk seperti ikan yang strukturnya terdiri dari kepala ikan fish’s head dan tulang-tulang ikan fish’s bones. Nama atau judul dari masalah yang diidentifikasi terletak pada bagian kepala ikan. Sedangkan tulang-tulang ikan menggambarkan penyebab-penyebab masalah tersebut Whitten Bentley, 2007. Berikut ini perancangan Diagram Ishikawa untuk masalah pada penelitian ini : Gambar 3.1 Diagram Ishikawa Masalah penelitian. Jalur pengiriman pesan dan kunci yang mungkin dimasuki oleh penyusup Kemungkinan terjadinya kedala pengiriman pesan diakibatkan data yang besar Pengirim dan penerima ingin pertukaran informasi yang efisien dan aman Perlu keamanan informasi dan efisiensi dalam pengiriman informasi Bagaimana mengamankan pesan dan sekaligus mengefesiensikan pesan dalam pertukaran informasi. Ada pihak ketiga yang menginginkan informasi System Method Material Belum adanya aplikasi desktop yang mengombinasikan algoritma kriptografi dan algoritma kompresi yang dipilih Algoritma kriptografi asimetris lebih aman namun menghasilkan data yang besar Memanfaatkan algoritma kriptografi dan algoritma kompresi User Universitas Sumatera Utara Pada gambar 3.1 dihalaman sebelumnya dapat dilihat bahwa terdapat empat kategori pada penelitian ini. Berkaitan dengan pengguna users, mediaalat yang terlibat materials, metode yang digunakanmethods dan sistem system. Setiap detail penyebab masalah tersebut digambarkan dengan tanda panah yang mengarah ke masing – masing kategori. Gambar 3.1 dapat dilihat bahwa akar permasalhan yang terjadi adalah adanya pihak ketiga yang ingin melakukan pencurian informasi dan berkaitan dengan besarnya data dalam pengiriman informasi tersebut. Solusi yang ditawarkan adalah dengan memanfaatkan algoritma kriptografi asimetris dengan kombinasi algoritma kompresi untuk mengefisiensikan transfer data. 3.1.3. Analyze Tahap analyze adalah tahap yang dilakukan setelah tahap identifikasi masalah. Tahap ini bertujuan untuk mengumpulkan kebutuhan sistem yang disebut dengan requirement. Daftar requirement berdasarkan kebutuhan yang harus dipenuhi sebuah sistem dapat dibagi menjadi dua jenis, yaitu functional requirement kebutuhan fungsional dan Non- functional requirement kebutuhan nonfungsional Dennis et al., 2012. 3.1.3.1.Functional Requirement Kebutuhan fungsional sistem mendeskripsikan fungsi-fungsi yang harus dilakukan oleh sebuah sistem untuk mencapai tujuan Whitten Bentley 2007.Functional Requirement kebutuhan fungsional dari sebuah sistem sebagai “kemampuan dari sebuah produk atau hal-hal yang mampu dilakukan oeh sistem untuk memenuhi kebutuhan pengguna” Sujiono,2016. Pada penelitian ini kebutuhan sistem yang diperlukan untuk mengimplementasikan algoritma Massey-Omura dan algoritma Elias Gamma pada simulasi Three-Pass Protocol terlihat pada tabel 3.1 dibawah ini. Tabel 3.1 Tabel Kebutuhan Fungsional Sistem No. Kebutuhan Fungsional Deskripsi 1. Menerima input plaintext Sistem mencari dan membaca file teks yang berekstensi .doc yang tersimpan pada perangkat Universitas Sumatera Utara yang digunakan atau sistem menerima input plaintext dari pengguna secara manual. 2. Fungsi pembangkit kunci Kunci dibangkitkan oleh sistem dengan melakukan acak bilangan prima. 3. Mengenkripsi pesan Plaintext yang dienkripsi berupa karakter text dengan menggunakan kunci yang telah dibangkitkan. Sistem melakukan enkripsi menggunakan algoritma Massey-Omura. 4. Mendekripsi pesan Ciphertext yang didekripsi berupa karakter text yang telah diterima. Sistem melakukan dekripsi menggunakan algoritma Massey-Omura. 5. Mengkompresi pesan Sistem melakukan kompresi pesan dengan menggunakan algoritma Elias-Gamma. Sistem melakukan kompresi sebelum data dikrimkan kepada penerima. 6. Mendekompresi pesan Sistem melakukan dekompresi pesan dengan menggunakan algoritma Elias-Gamma. Sistem melakukan kompresi setelah data diterima. 3.1.3.2.Nonfunctional Requirement Kebutuhan non fungsional mendeskripsikan fitur lain seperti karakteristik, batasan sistem, performa, dokumentasi dan yang lain agar sistem berjalan sukses Whitten Bentley 2007. Pada tabel 3.2 dibawah ini akan dipaparkan kebutuhan nonfungsional sistem pada penelitian. Tabel 3.2 Tabel kebutuhan Nonfungsional Sistem No. Kebutuhan Nonfungsional Deskripsi 1. User Friendly Sistem menggunakan desain yang mudah dimengerti dan dipelajari. Universitas Sumatera Utara 2. Dokumentasi Sistem yang akan dibangun memiliki panduan penggunaan. 3. Performa Sistem dapat menyimpan hasil dari fungsi kriptografi 4. Kontrol Sistem yang akan dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai. 5. Hemat Biaya Sistem dibangun dengan memanfaatkan perangkat lunak freeware yang dapat digunakan dan disebarluaskan dengan bebas. 3.1.3.3.Analisis Kerja Algoritma Pada penelitian ini, analisis kerja algortima program meliputi perancangan sistem secara umum dan perancangan algoritma. Disajikan melalui flowchart algoritma dan pseudocode. 3.1.3.3.1. Diagram Alir Sistem Pada diagram alir sistem menunjukan alur kerja sistem secara sistematis ditampilkan pada gambar 3.2. Pada sistem yang dibangun, secara umum memiliki 4 halaman utama yaitu halaman beranda, halaman teori singkat, simulasi, dan tentang aplikasi seperti pada seperti terlihat pada gambar 3.2 pada halaman 29 dibawah ini : Universitas Sumatera Utara Gambar 3.2. Diagram Alir Sistem. Universitas Sumatera Utara 3.1.3.3.2. Diagram Alir Massey-Omura Pada gambar 3.3. dibawah ini menunjukkan diagram alir algorima Massey-Omura. Gambar 3.3. Diagram alir algoritma Massey-Omura. Terlihat pada gambar 3.3. diatas merupakan proses enkripsi dan dekripsi algoritma Massey-Omura. Pada gambar menunjukkan proses enkripsi Massey-Omura. Pada Universitas Sumatera Utara gmabar terlihat bahwa proses enkripsi diawali dengan input plaintext yang dilakukan pengirim pesan. Kemudian, dilakukan pembangkitan kunci dan setelah itu dilakukan enkripsi sehingga terbentuk Ciphertxt. Proses dekripsi diawali dengan melakukan input ciphertext C2 oleh pengirim pesan. Kemudian dilakukan dekripsi dengan menggunakan kunci yang telah dibangkitkan sehingga menghasilkan ciphertext C3 untuk kemudian dikirimkan ke penerima pesan. Setelah itu, penerima pesan melakukan dekripsi kembali untuk mendapatkan plaintext.. 3.1.3.3.3. Pseudocode Massey-Omura Pada algoritma Massey-Omura terdiri dari dua fungsi, yaitu fungsi enkripsi dan fungsi dekripsi. Pseudocode untuk fungsi enkripsi seperti terlihat dibawah ini : eA = Kunci Enkripsi prime = bilangan prima arrayint [] = ascii tiap karakter dari plain text for i = 0; i = arrayint.lenght -1; i++ n = ModPow arrayint [i], Key, prime arrayint [i] = n return arrayint Proses enkripsi dilakukan setelah terdapat Paintext, bilangan prima p, kunci enkripsi eA. Proses enkripsi dilakukan melalui perhitungan C = M eA mod p dimana m merupakan nilai ascii pada karakter plaintext yang telah di enkripsi. Hasil perhitungan akan kembali dimasukkan kedalam array. dA = Kunci dekripsi prime = bilangan prima enkripted [] = ciphertext dalam bentuk array for i = 0; i = enkripted.lenght -1; i++ n = ModPow enkripted [i], Key, prime arrayint [i] = n return arrayint Proses dekripsi dilakukan dengan melakukan perhitungan M = C dA mod p dimana M adalah nilai ASCII pada karakter di plaintext. Hasil perhitungan dimasukkan ke dalam array. Universitas Sumatera Utara 3.1.3.3.4. Diagram Alir Elias Gamma Gambar 3.4 dibawah ini merupakan diagram alir algoritma Elias Gamma. Gambar 3.4 Diagram alir algoritma Elias Gamma Pada gambar 3.4 diatas memperlihatkan proses kompresi dan dekompresi algoritma Elias Gamma. Proses kompresi diawali dengan melakukan input bilangan positif n. Kemudian, melakukan konfersi bilangan n kedalam bentuk biner untuk selanjutnya Universitas Sumatera Utara dilakukan penghitungan panjang digit pada bilangan biner. Setelah itu, dihitung unary dan dilakukan penggabungan kode unary dengan biner. Sehingga dihasilkan output kode Elias Gamma. Setelah itu proses dekompresi. Pada proses ini diawali dengan melakukan input kode Elias Gamma. Kemudian proses dekompresi dilakukan dengan mengambil jumlah digit 0 sebelum digit 1 pertama sebagai N dan setelah digit 1 pertama sebagai bilangan bulat L. Langkah selanjutnya mengghitung n = 2 N +L sehingga didapatkan karakter n. 3.1.3.3.5. Pseudocode Elias Gamma Pada penelitian ini menggunakan algoritma Elias Gamma. dibawah ini ditunjukkan pseudocode kompresi. Elias_gamma s Freq = CountFreq s charSet = GetCharset s t = CharSet.Length for n to t lakukan : b = DecToBin n M = b.Length Code = code.Substring1,code.Length-1 For k = 0 to M-1 Lakukan : Unary = unary + “0” Unary = unary + “0” For j = 0 to M Lakukan : String = “Unary” + “code” TabelCode.Addstring Pada algoritma Elias Gamma, pertama akan membuat sebuah tabel yang menjadi kamus data. Pada tabel tersebut akan disusun karakter menurut banyak kemunculannya. Karakter dengan frekuensi kemunculan paling banyak akan diletakkan pada urutan pertama dan begitu seterusnya. Selanjutnya dilakukan operasi dan proses kompresi sehingga didapatkan kode Elias Gamma. Kemudian karakter yang telah diterjemahkan menjadi kode baru akan dikirmkan. Universitas Sumatera Utara 3.1.3.3.6. Diagram Alir Bangkitkan Prima Pada gambar 3.5 dibawah ini di perlihatkan diagram alir bangkitkan bilangan prima Gambar 3.5 Diagram Alir Bangkitkan Prima Pada gambar 3.5 diatas ditrangkan bahwa proses generate bilangan prima diawali dengan mengambil sebuah bilangan acak a. Langkah selanjutnya mengecek apakh bilangan a adalah bilangan prima dengan menggunakan algoritma Lehmann. Jika pada fungsi Lehmann menghasilkan True terhadap bilangan a , maka a adalah prima. Universitas Sumatera Utara 3.1.3.3.7. Pseudocode Bangkitkan Prima Berikut ini ditampilkan pseudocode untuk melakukan generate bilangan prima. Generate_prima : a = random bilangan a = a mod 2 == 1 ? a : a + 1 while lehmanna goto Generate_prima return a 3.1.3.3.8. Diagram Alir Lehmann Pada penelitian ini, algoritma lehman digunakan untuk melakukan pengecekan bilangan yang diacak adalah benar – benar bilangan prima. Pada gambar 3.6 berikut ini ditampilkan diagram alir algoritma Lehmann. Gambar 3.6 Diagram Alir Algoritma Lehmann Pada gambar 3.6 diatas diterangkan bahwa proses algoritma Lehmann diawali dengan menginputkan bilangan prima p. Kemudian mengacak bilangan antara 2 sampai Universitas Sumatera Utara bilangan p sebagai a. Menghitung L = a p-12 mod p. Jika L = 1 atau L = -1, maka p adalah prima. 3.1.3.3.9. Pseudocode Lehmann Dibawah ini diperlihatkan pseudocode algoritma Lehmann Bool lehmann p Nilai = random for i = 0 ; i 5; i++ lakukan : n = nilai.next2,p-1 L = ModPown,p-12,p Jika L = 1 dan L = -1 Return False Return True 3.1.3.3.10. Bangkitkan Kunci Massey-Omura Pada penggunaan algoritma Massey-Omura memerlukan pembangkitan kunci yang digunakan untuk perhitungan enkripsi dan dekripsi pesan. Pada gambar 3.7 dibawah ini dideskripsikan dalam diagram alir generate kunci Gambar 3.7 Diagram Alir Bangkitkan Kunci Enkripsi-Dekripsi. Pada gambar 3.7 diatas memperilhatkan proses generate kunci enkripsi e dan kunci dekripsi d. Diawali dengan menginputkan bilangan prima p, kemudian melakukan Universitas Sumatera Utara acak bilangan e dimana e lebih besar dari 2 dan lebih kecil dari p-1. Kemudian menghitung GCD antara e dengan p-1. Hasil GCD harus sama dengan satu, agar bilangan p-1 dan e adalah relatif prima. 3.1.3.3.11. Pseudocode Bangkitkan Kunci Pada generate kunci Massey-Omura terdapat proses untuk melakukan generate kunci enkripsi dan dekripsi. Telah digambarkan sebelumnya pada gambar 3.11 diagram alir pada generate kunci. Berikut ini ditunjukkan pseudocode generate kunci enkripsi dan dekripsi. Pseudocode Kunci Enkripsi : p = bilangan prima Lakukan e = bilangan acak antara 2 dan p-1 N = GCD p-1,e Jika N == 1 Return e Pseudocode Kunci Dekripsi : Invers_modulare,p -1 x1,y1,x2,y2, q ,temp, modulo = b If a b X1 = y2 = 1 X2 = y1 = 0 Else x1 = y2 = 0 x2 = y1 = 1 While b =0 q = a b temp = b b = a – q b a = temp temp = x2 x2 = x1 x1 = temp temp = y2 y2 = y1 – q y2 y1 = temp return y1 = y1 0 ? y1 : y1 + modulo Universitas Sumatera Utara 3.1.3.4.Implementasi Diagram UML UML atau Unified Modelling Language adalah pendekatan analisis dan desain sistem berorientasi objek. Pendekatan ini memandang sistem sebagai kumpulan-kumpulan objek, dimana objek tersebut dapat berupa data maupun proses. Terdapat beberapa diagram pada UML, yaitu use case diagram, class diagram dan sequence diagram Dennis, et al. 2012. 3.1.3.4.1. Use Case Diagram Diagram use case digunakan untuk menggambarkan hubungan atau interaksi antara sistem dengan pengguna. Diagram ini menggambarkan sebagian besar kebutuhan yang telah dipaparkan sebelumnya. Pada gambar 3.8 berikut dirincikan kebutuhan fungsional pada tabel 3.1 Gambar 3.8 Diagram Use Case Kebutuhan Fungsional Pada gambar 3.8 diatas mendeskripsikan diagram use case kebutuhan fungsional sistem pada tabel 3.1 sebelumnya. Gambar diatas menunjukkan bahwa setiap use case Universitas Sumatera Utara saling berhubungan satu sama lain. Jalanya sistem diawali dengan input plaintext, kemudian membangkitkan kunci algoritma, selanjutnya sistem melakukan proses enkripsi, kompresi, dekompresi dan dekripsi secara berurutan sehingga diperoleh plaintext kembali. 3.1.3.4.2. Sequence Diagram Whitten dalam Sebayang, 2014 menyebutkan bahwa sequence diagram adalah suatu diagram yang menggambarkan interaksi antar objek pada sistem dalam sebuah urutan waktu atau rangkaian waktu, seperti pada gambar 3.9 dibawah ini : Gambar 3.9 Sequence Diagram sistem. Pada gambar 3.9 diatas menunjukkan aksi dan reaksi antara penguna dengan sistem. Pada gambar terlihat bahwa aksi yang diberikan oleh pengguna kepada sistem Universitas Sumatera Utara diwakilkan dengan tanda anak panah sedangkan respon sistem kepada pengguna diwakilkan dengan simbol anak panah putus-putus. 3.1.3.4.3. Activity Diagram Activity Diagram digunakan untuk menggambarkan reaksi antara user dengan sistem. Pada gambar 3.10 dibawah ini merupakan Activity Diagram pada sistem Gambar 3.10 Activity Diagram Sistem Universitas Sumatera Utara

3.2. Perancangan Sistem