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