Implementasi Halaman Dekripsi Implementasi Antarmuka

32 Berikut listing program beberapa proses yang terdapat pada tombol - tombol di Form Tampilan : 1. Tombol Generate Key Berikut baris – baris perintah untuk menampilkan kunci secara acak, dimana kelas Mersenne Twister sudah ada : 2. Proses Enkripsi Berikut baris – baris perintah untuk proses enkripsi : 3. Proses Enkripsi Berikut baris – baris perintah untuk proses dekripsi : public static String genKeyint length { MersenneTwisterFast rand = new MersenneTwisterFast; char[] key = new char[length]; for int i = 0; i length; i++ { key[i] = char rand.nextInt132; if int key[i] 97 { key[i] = char key[i] + 72; } if int key[i] 122 { key[i] = char key[i] - 72; } } return new Stringkey; } public static String encryptString message, String key { if message.length = key.length { errorLengths must be equal; } int[] im = charArrayToIntmessage.toCharArray; int[] ik = charArrayToIntkey.toCharArray; int[] data = new int[message.length]; for int i = 0; i message.length; i++ { data[i] = im[i] + ik[i]256; } return new StringintArrayToChardata; } 33

4.2 Hasil Pengujian

Berikut ini adalah kandidat plaintext berformat .txt yang akan dienkripsi : Tabel 4.1 Kandidat Plaintext berformat .txt No Plaintext 1 Engkau selalu hadir dalam setiap langkah ku 2 I want him to be the only man that I’ll love for the rest of my life 3 Fidelis Asterina 4 File_output_stream = new FileOutputstreamf 5 key[i] = char key[i] - 72; 6 private static final int MATRIX_A = 0x9908b0df; 7 Tujuan penelitian ini adalah untuk mengimplementasikan algoritma One Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen .txt,.doc dan Mersenne Twister sebagai pembangkit kunci. 8 MersenneTwisterFast other = MersenneTwisterFast o; 9 for int x = 0; x mt.length; x++ { 10 Batasan masalah dalam penelitian ini adalah: public static String decryptString message, String key { if message.length = key.length { errorLengths must be equal; } int[] im = charArrayToIntmessage.toCharArray; int[] ik = charArrayToIntkey.toCharArray; int[] data = new int[message.length]; for int i = 0; i message.length; i++ { data[i] = im[i] - ik[i]256; } return new StringintArrayToChardata; } 34 Berikut ini adalah kandidat kunci untuk plaintetx berformat .txt yang mana panjang kunci sama dengan panjang plaintext : Tabel 4.2 Kandidat Kunci untuk Plaintext berformat .txt No Kunci 1 ofnPZo[\MG6qV[Pf;h_FbieiOySyMHeKgUfEi\6l 2 TybGYUiKDJcmjV[slqcJo]rR`oZ;78oQo:Ooc8oabrer8T`_buhQ599QM DY\ie8z=L 3 ]_IU8Ug6VnX7d7W 4 5i85KP=z;SprP]ETktbFm8SMqhecZOOIW_9ccOTfr5 5 P[dig7`[aZQQWAUM]`Xr3;kW4v34 6 9X4LH\yyrKG[XZW]Qf[NgX3hvc6eZkwzex\rvrYcRM93 7 rW[YVsX:6]uY5s[VtxaxmcSWuOtj`[bvNsmAJjlPGHVsCaZe]KiUjq FP8JYaKEhEMbiP\=P8zmN7kXiM3aPwhS[HsWWr:sHxN6Fm[6tJQI 3m3Y78VeL`pbfpD6Pj:n_xsmMAu_r_z_y9CzSzmGktszJZ`i5VT_PiD YdE[UsxfmwGO8oHOF;W5 8 RdQYwh\e[z9?xxtm`X_XZ:wsriiZ6xjkxi4ty;sTpn_;_R\dzkg 9 emTlsZv4Mgvuy_XSrgOq[TE7sdN:xbvK:R 10 bKHR7vqqXy]e4`4p89c4IzmwfVORSxr5jbW;KZ;8goNQ Berikut ini adalah kandidat plaintext berformat .doc yang akan dienkripsi : Tabel 4.3 Kandidat Plaintext berformat .doc No Plaintext 1 Give him the best of me till the day that i die 2 JOptionPane.showMessageDialogthis, Penyimpanan Hasil Dekripsi Telah Berhasil Disimpan di + filename; 3 Allah Bapa sungguh besar kasih Mu,, Engkau selalu hadir dalam setiap langkah ku,, 4 Universitas Sanata Dharma 35 5 for ;k=0; k--{ 6 Algoritma penyandian 7 Algoritma 8 FileWriter outFile = new FileWriterf; PrintWriter out = new PrintWriteroutFile, true; 9 THIS PLAINTEXT 10 TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI Berikut ini adalah kandidat kunci untuk plaintetx berformat .doc yang mana panjang kunci sama dengan panjang plaintext : Tabel 4.4 Kandidat Kunci untuk Plaintext berformat .doc No Kunci 1 wrV5l5AvrRIybaR;iR]vFnOBlYC;_sdgy\t7QC:3ivhKurYkx7dzP 2 6zSZekSUwRpDA6Fqdxp`k\e5gpyZUN;t_fZ54tZ\TTU3[:IPGOx[UL w8BbS``TxV:K_Vy_b4d`SJqIqt`NdMLs3fKyYgUJW?kY`POHrYv:=Bd 3 ZyHIoUlQc4rVIIE3Z`ruP7Huo\LgURJ_KH]gV6i6mPN\7`[OhJgLbW7A vWCVy\:HCd_VJO9WZIlMX\3Y 4 NlFWeBv6P]b4O6dMH3Y\x_TYWgU 5 5TQEk]hNLM5kGrAv]UioOa 6 V8?oqOBVdZLasvsuCOqv`bvWIHp 7 9_m\7W8abn9Fk4Ev 8 znsze6nZW\f?mPwTvkbKxh?]an9dBy4B[WZnriLsWFKLoPR:KHIT T;8M:QRK8Zf4TkmqvLUNbCuvXnZwtvzjvy_vVT 9 :XPi9s4b:VuVbv`:rQ 10 sAWYiStfmTq?3T9d=arbr;XwxXDVU4LJsI_8o9fu4QZl 36 Berikut ini adalah hasil dari proses enkripsi dari plaintext berformat .txt : Tabel 4.5 Ciphertext Proses Enkripsi berformat .txt No Ciphertext 1 ´ÔÕ»»ä{ϲ³ÝË{¸Ê¤ÚªÃÕÆÖoì£Ç⮸· ÈÃͰʨ|¡á 2 Ù¨Çɳ-©j×ܸÀàÙÈjÞËÞËÜ»©W¬×²ãZϤÍÑèÊÃÒÖÝÍq§¬Åm³¢yÉâ¤ã£± 3 £È-º¤¾ÚVáÌÖ ÅÓ 4 Ò¤ª¿²î«ÈäÑÃÑ·¹ÌᦡÊm·ÑÑÈ©ÄùÌÓ°ÕȰÁØ 5 »ÀÝÄÐy{½¹²ÉjuuÈÅ׳Û[wk¨\o 6 ©°Áª-¼Áìæ¬»Ä»z½Æ¿ÇÇnÐÆ§Ã¤·£¶Ê¸¢ê¯ «´} 7 ÆÌÅηáxªËÚÅçÄ·âÊæÖ´»Ö»ÕÒÐÐêÃÞ®¯ ØÓ¹´¸ÂØ°Æ®ÎÆÐ´Ô¶Ø~Ò²·§ ¼ÂÕ¸¦»Ç¤ÅªµXÊβWàÆÝ½¥åϸɳåÀÇ壬ټV³ÒÉٵò£àyÈÐ-ÓÆÕÛ ¹£µØZìëáyoÙÎÕÃÚÌYßÅíÒµÙÙ²ñ³ÍÔΧvÇIJʫºÍe˺àÚÇÛÞ²¸¬³Ä´ÀnU 8 ÉÃÌÜÖÊʯ ñ¢²ìÝæ³ÁËÓxɮߨä¦z ÅÏÝë΢âÞ²ÜÇäÓÑÀÅÐÚ¢ 9 ËÜÆÇÈêTÅ`¤¥´Ðs®ËÃǹ³çÌZð¡tZÍ 10 ¤¬¼³ª×ßÅÚÐÆ Á϶ÝÜÔ»»»ÇáÓ£ËŤk»Óж Berikut ini adalah hasil dari proses enkripsi dari plaintext berformat .doc : Tabel 4.6 Ciphertext Proses Enkripsi berformat .doc No Ciphertext 1 ¾ÛÌªãÆ±Þ÷®ÝrÌÜfÛ´b௠§çÌÌÀÕ°q·¢ÝÑkÙÛ¾xDnZ 2 ÉÃÎÎ-ª»´ÃÜ㬰-Ö×ëÑÇÐ ÎÓßàɶ¤ç|âÓÅÁĶ¡¼¨i¨ÂáÇuÜ£´ËÃÓÉtÌ»¦¬ Çv»ÄÔÅÓ¼¶ÚçɻԮºT¯ âyuuw¥ÔÅž°µ×±GGOn 3 å´ª×u®²Óɾ·¬ÏÈ×µª©çÇ-Ú¾ºj¬Àt¤Ð¡ÎÅnÏ̼»ÝjÏ-ÆÀ©aÚ¸¯ ·©ÑÃУ ©³Ë¡Ä±º¿z´áyefc 4 £Ú¯ ´¼×µßª±Ð°¤ÅÁ©SÄÙÑÁºdqbJ 5 ÃÃe¹lnU¬£~Ù|YnJ 6 ¤¦Þ㸶ÃÅz¼ÆáïÔ㧸ÒäodSUz 7 zËÔË©À¬ÎÃFPxR 8 ÀתØÑײÓÌwËÛ³³¹ã¹¨¹Ýß_£ÊÚ»´â¨§ÍÀ-vVÃÐÀ´¿£á¹Æ½h¸ÉÈ~xX»ÈrªÃ Ô¨«ÝÖåÛ¾}½×·»ßÄÓèèïÏ´lc 37 9 ¼Yã¤ÉºÊmD[ 10 Ç¢§²~µ¿¡²~t¥¶¾¶³x¸Á¦vujǪ¾--¾A[gv 4.3 Pembahasan 4.3.1 Enkripsi Pada proses enkripsi ini, plaintext yang berupa huruf atau simbol akan diubah menjadi bilangan desimal yang kemudian dijumlahkan dengan kunci acak yang juga diubah menjadi bilangan desimal setelah itu dimodulo 256. Kemudian hasil penjumlahan tersebut diubah ke huruf atau simbol. Pengubahan dari huruf atau simbol menjadi bilangan desimal atau sebaliknya ini menggunakan tabel ASCII lampiran. Contoh : Plaintext : Universitas Sanata Dharma Kunci : 8NajlJRkMa3b`7[xi8_VqoU Berikut proses plaintext dan kunci diubah menjadi bilangan desimal berdasarkan tabel ASCII. Untuk mengubah huruf U pada plaintext dapat dilihat di tabel ASCII dimana bilangan desimal untuk huruf U adalah 85. Kemudian untuk huruf n bilangan desimalnya adalah 110. Proses untuk semua plaintext dilakukan seperti itu berdasarkan tabel ASCII. Untuk proses kunci yang diubah menjadi bilangan desimal dilakukan sama seperti untuk proses plaintext sehingga didapatkan hasil berupa bilangan desimal yang kemudian dijumlahkan lalu dimodulo 256 seperti tabel di bawah ini : Tabel 4.7 Proses Enkripsi Penjumlahan pi + ki mod 256 Hasil Penjumlahan Huruf Simbol 85 + 56 mod 256 141 no symbol