Perancangan Sistem Perancangan Add On Keamanan Email Mozillathunderbird Dengan Algoritma Kriptografi Xor Dan Three Pass Protocol Serta Kompresi Lempel Ziv Welch

Tahap akhir pada prinsipnya sama dengan tahap ketiga, hanya saja bit-bit hasil decoding base64 dan dekripsi XOR tidak di-encode seperti tahap sebelumnya. Hal ini dilakukan karena data tidak perlu dikirimkan lagi. Yang di perlukan pada tahap akhir adalah data kembali ke bentuk semula bentuk sebelum dienkripsi oleh pengirim. Untuk itu hasil dekripsi harus di dekompresi untuk mendapatkan bentuk semula. Algoritma dekompresi dituliskan sebagai pseudo code berikut. Tabel 3.15 Pseudocode dan Kompleksitas AlgoritmaDekompresi LZW Step Pseudo code 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: dictionary  null for i = 0 to 255 do dictionary[i]  convertToASCIICharsi dictionaryBitLength  ¬lengthOfconvertToBinarylengthOfdictionary endfor prev  getStreamFromDictionaryinputStream0 uncompressed  prev for i = 1 to lengthOfinputStream temp  getStreamFromDictionaryinputStreami if temp = ‘’ then entry temp else entry prev + firstCharOfprev endif uncompressed entry addTodictionaryprev + firstCharOfentry prev entry endfor 1 255 1255 1255 1 1 n 1n 1n 1n 1n 1n 1n 1n 1n Kompleksitas Big-O On

3.2 Perancangan Sistem

Berdasarkan hasil analisis proses yang berlangsung dalam sistem diperoleh gambaran fungsionalitas yang nantinya diterapkan pada sistem. Berdasarkan gambaran ini dibangun suatu model rancangan yang diwujudkan dalam bentuk class diagram, rancangan struktur direktori pada berkas .xpi dan rancangan antarmuka pengguna, dimana rancangan ini nantinya akan diimplementasikan menggunakan bahasa pemrograman. Universitas Sumatera Utara

3.2.1 Class Diagram

Berdasarkan informasi yang yang diperoleh dari hasil analisis dan pemodelan sistem dibuatlah rancang bangun berupa class diagram yang berisikan informasi kelas-kelas yang nantinya diimplementasi dengan bahasa pemrograman. Untuk memenuhi kebutuhan pesyaratan sistem dirancang 4 buah kelas yang terdiri dari kelas cryptography , lzwCompression, encoDecoding dan ioFileAccessing. Masing-masing kelas dan atributnya dinyatakan dalam tabel dibawan ini. Tabel 3.16Kelas dan Atributnya Nama Kelas Daftar Atribut Deskripsi cryptography 1. key : String 2. plainText : String 3. cipherText : String 4. inputText : String 5. getBodyText 6. lcgKeyGeneratorlengthOfKey : String 7. writeOnComposetextToWritten 8. encryptionTPPControlProces 9. decryptionTPPControlProcess 10. xorOperationopr1,opr2: String 11. encryptbinPlain 12. decryptbinCipher Kelas yang berguna untuk menerapkan enkripsi dan dekripsi, pembangkit kunci LCG dan kontrol proses yang harus dilakukan pada setiap tahapan Three Pass Protocol . Universitas Sumatera Utara Tabel 3.16Kelas dan Atributnya Lanjutan Nama Kelas Daftar Atribut Deskripsi lzwCompression 1. dictionary: String 2. dictionaryBitLength: Integer 3. setDictionary 4. getIndexFromDictionary lookChars: Integer 5. getStreamFromDictionary indexOfDictionary: String 6. addToDictionaryaddedStream 7. compress inputStream: ArrayOfInteger 8. decompress inputStream: String 9. binarizeCompressed inputDecimal: String 10. decCompressedinputBin: ArrayOfInteger Kelas yang menyediakan sumber daya melakukan kompresi dan dekompresi dengan algoritma LZW. EncoDecoding 1. base64CharSet: String 2. paddingSign: String 3. base64Encoded: String 4. base64Decoded: String 5. getDecimalbinStream: Integer 6. getBinerdec: String 7. base64EncodeunencodedBits 8. base64Decodeencoded Kelas yang berperan dalam proses base64encoding – decoding , konversi deretan karakter menjadi deretan bit-bit atau sebaliknya dari deretan bit-bit menjadi deretan karakter tanpa non- printableASCII characters FileIO 1. openpath 2. readfile 3. writefile,data 4. getDirectorytype: String Kelas yang berguna untuk mengakses direktori dan berkas teks yang menyimpan kunci enkripsi dan dekripsi Universitas Sumatera Utara Untuk setiap kelas di atas didefenisikan sebuah class diagram sebagai berikut, 1 0.. +encryptionTPPControlProcess +decryptionTPPControlProcess +getBodyText +lcgKeyGeneratorin lengthOfKey : int : string +writeOnComposein textToWritten : string +xorOperationin opr1 : string, in opr2 : string : string +encryptin binPlain : string +decryptin binCipher : string -key : string -plainText : string -cipherText : string -inputText : string cryptography +setDictionary +getIndexFromDictionaryin lookChars : string : int +getStreamFromDictionaryin indexOfDictionary : int : string +addToDictionaryin addedStream : string +compressin inputStream : string : int +decompressin inputStream : int : string +binarizeCompressedin inputDecimal : int : string +decCompressedin inputBin : string : int -dictionary : string -dictionaryBitLength : int lzwCompression +getDecimalin binStream : string : int +getBinerin dec : int : string +base64Encodein unencodedBits +bade64Decodein encoded -base64CharSet : string -paddingSign : string -base64Encoded : string -base64Decoded encoDecoding +openin path : string +readin file +writein file, in data : string +getDirectoryin type : string : string fileIO 1 1 0..1 1 1 End1 End2 1 1 Gambar 3.15 Class Diagram untuk Sistem yang Dikembangkan Class diagram tersebut menunjukkan kelas-kelas dan relasinya, terlihat bahwa kelas cryptography memiliki multiplikasi 1  0...1 dengan kelas lzwCompression. Hubungan multiplikasi ini menunjukkan bahwa kelas kriptografi mengakses kelas lzwCompression sebanyak nol tidak mengakses hingga satu kali ketika proses Three Pass Protocol diterapkan. Kelas lzwCompression diakses pada Tahap pertama dan tahap terakhir Three Pass Protocol sedangkan pada tahap kedua dan ketiga kelas cryptography tidak mengakses kelas lzwCompression. Antara kelas cryptography dengan kelas fileIO relasinya dihubungkan oleh multiplikasi 1  1. Hal ini menunjukkan bahwa kelas cryptography mengakses sebanyak satu kali kelas fileIO ketika diterapkan menggunakan Three Pass Protocol. Setiap tahapan kriptografi selalu melibatkan pengaksesan berkas kunci baik untuk keperluan penyimpanan kunci maupun untuk keperluan pengambilan kembali kunci yang telah disimpan sebelumnya. Sedangkan hubungan multiplikasi antara kelas kelas cryptography dengan kelas encoDecoding adalah 1  menunjukkan multiplikasi satu ke banyak, yang berarti kelas kriptografi mengakses setidaknya satu atau lebih dari satu kali kelas encoDecoding ketika akan mengenkripsi maupun mendekripsi pesan pada implementasi Three Pass Protocol. Universitas Sumatera Utara

3.2.2 Perancangan Antarmuka

Add On yang dirancangan nantinya akan diwakilkan sebagai dua buah icon yang ditempatkan pada tool bar jendela Write New Message pada aplikasi Mozilla Thunderbird. Berikut gambaran sederhana letak icon add on yang dirancang pada tool bar Mozilla Thunderbird. Gambar 3.16 Letak Icon Add On pada Toolbar Mozilla Thunderbird Tabel 3.17Komponen pada Toolbar No. Nama Komponen Keterangan 1 Toolbar Mozilla Thunderbird Merupakan sebuah control bar pada Mozilla Thunderbird, didalamnya terdapat icon-icon. 2 Icon enkripsi Icon yang mewakili fungsi kontrol untuk proses kompresi, enkripsi dan base64 encoding- decoding yang diperlukan pada Penerapan Three Pass Protocol . 3 Icon dekripsi Icon yang mewakili fungsi kontrol untuk proses dekompresi, enkripsi dan base64 encoding- decoding yang diperlukan pada Penerapan Three Pass Protocol . Universitas Sumatera Utara

3.2.3 Perancangan Struktur Direktori Add On

Perancangan sebuah aplikasi add on Mozilla Thunderbird mengharuskan penggunaan struktur direktori khusus yang nantinya direktori ini di-archive dengan extensi dokumen “.xpi”. Struktur direktori untuk add on yang dirancang adalah sebagai berikut. Gambar 3.17 Struktur Direktori untuk Add On yang Dikembangkan Struktur direktori tersebut terdiri atas sebuah direktori yang diberi nama add on yang sedang dirancang dan sebuah sub-direktori yang diberi nama “chrome” selain itu direktori utama juga berisikan dua berkas masing-masing “chrome.manifest” dan “install.rdf”. Ini merupakan standar umum untuk struktur direktori aplikasi add on pada Mozilla Thunderbird. Di dalam sub direktori terdapat beberapa dokumen yang terdiri atas dokumen berekstensi “.xul” yaitu dokumen overlay yang menjelaskan bahwa add on akan melakukan fungsinya pada jendela tertentu dalam Mozilla Thunderbird. Sedangkan dokumen berekstensi “.css” berguna untuk mengatur posisi dan ukuran icon pada jendela Mozilla Thunderbird. Berkas yang menjelaskan addonenkripsikompresiilmukomputer.usu.ac.id.xpi chrome.manifest install.rdf chrome button.css scriptForAddOn.js icon.png button.xul buttondekripsi.png buttonenkripsi.png Universitas Sumatera Utara behavior fungsionalitas add on adalah berkas berekstensi “.js”, berkas ini berisikan program yang ditulis dengan bahasa pemrograman javascript. Secara lengkap dokumen-dokumen ini dapat ditemukan pada bagian lampiran skripsi ini. Universitas Sumatera Utara BAB IV IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem