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

Tabel 2.6 Proses Dekompresi LZW untuk Menemukan String “BUKAN BUKA” Dengan demikian diperoleh output “BUKAN BUKA”. Pada kasus ini indeks selalu ditemukan dalam dictionary. Bila kondisi tertentu menyebabkan indeks tidak ditemukan dalam dictionary ditunjukkan dengan temp yang berisi null, maka output yg dihasilkan adalah karakter sebelumnya ditambahkan dengan karakter pertama dari karakter tersebut. Misalnya bila karakter sebelumnya “A”, maka outputnya adalah “AA”. Dan ke dalam kamus ditambahkan “AA”.

2.5 Base64Encoding

Pada dasarnya internet mail didesain untuk mentransfer data plain ASCII text saja[5]. Karakter-karakter yang non-printable pada ASCII maupun standar lainnya akan mengalami kendala ketika dikirimkan melalui media email. Umumnya karakter- karakter tersebut akan berubah menjadi simbol-simbol lain yang respresentasinya berbeda. Untuk mencegah hal seperti ini salah satu cara yang dapat dilakukan adalah menerapkan base64encoding. Base64encoding akan merubah deretan data ke bentuk lain yang merupakan karakter-karakter universal printable. Dengan merubah data ke bentuk printable, diharapkan tidak terjadi perubahan maupun kehilangan data ketika dikirimkan melalui media telekomunikasi. Deretan karakter pertama sekali didefenisikan dalam bentuk biner. Kemudian untuk menerapkan encode bit-bit ini kemudian masing-masing dikelompokkan 6 bit, prev Temp Temp = ‘’ ? Entry Output Tambahan dalam Dictionary B - - - B - B U Tidak U U BU-256 U K Tidak K K UK-257 K A Tidak A A KA-258 A N Tidak N N AN-259 N Sp Tidak Sp Sp NSp-260 Sp BU Tidak BU BU SpB-261 BU KA Tidak KA KA BUK-262 Universitas Sumatera Utara dan kemudian dikonversi ke bilangan desimal. Setelah diperoleh bentuk desimal data kemudian disubstitusi dengan karakter yang indeksnya bilangan desimal tersebut pada sebuah himpunan karakter yang berisikan 64 buah karakter printable pada ASCII. Himpunan karakter tersebut adalah sebagai berikut. Tabel 2.7Himpunan Karakter yang Digunakan pada Base64 Encoding Indeks Karakter Indeks Karakter Indeks Karakter Indeks Karakter A 16 Q 32 g 48 w 1 B 17 R 33 h 49 x 2 C 18 S 34 i 50 y 3 D 19 T 35 j 51 z 4 E 20 U 36 k 52 5 F 21 V 37 l 53 1 6 G 22 W 38 m 54 2 7 H 23 X 39 n 55 3 8 I 24 Y 40 o 56 4 9 J 25 Z 41 p 57 5 10 K 26 a 42 q 58 6 11 L 27 b 43 r 59 7 12 M 28 c 44 s 60 8 13 N 29 d 45 t 61 9 14 O 30 e 46 u 62 + 15 P 31 f 47 v 63 Padding masing-masin 2 bit = Prinsip kerja algoritma pada base64encoding dapat digambarkan sebagai berikut. Gambar 2.4Proses Base64 Encoding Karena jumlah bit input tidak habis dibagi 6, diperlukan padding sebanyak 4 bit, sehingga output hasil encoding adalah rkqljD==. Deretan Input Biner 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 Pengelompokan 6 Bit 101011 100100 101010 100101 100011 padding- Deretan output r k q l j D== Universitas Sumatera Utara Untuk mengembalikan data ke deretan bit semula diperlukan infomasi mengenai panjang bit sebelum di-encoding. Dengan informasi ini deretan bit hasil konversi karakter ke bentuk biner dikelompokkan dengan panjang masing-masing sama dengan panjang bit data sebelum di-encode. Sebelum proses konversi dilakukan akan dicek terlebih dahulu padding yang disimbolkan dengan karakter ’=’. Bila terdapat padding maka karakter terakhir di-decode sepanjang selisih 6 dengan panjang bitpadding . Himpunan karakter yang digunakan pada proses decoding sama dengan himpunan karakter yang digunkan pada proses encoding. Untuk data pada contoh akhir input ditemukan simbol ‘=’ sebanyak 2 karakter, hal ini menunjukkan bahwa terdapat padding sepanjang 4 bit. Dengan demikian karakter terakhir hanya dikonversi sepanjang 2 bit. Bila panjang bit tiap karakter sebelum di-encode adalah 8 bit, maka diperoleh output sebagai berikut. Gambar 2.5Proses Base64 Decoding

2.6 Mozilla Thunderbird dan Add On pada Mozilla Thunderbird