Senin, 24 Oktober 2011

PEMBUATAN APLIKASI KRIPTOGRAFI ALGORITMA BASE64 MENGGUNAKAN JAVA JDK 1.6



 Kriptografi
Kriptografi adalah ilmu dan
seni untuk menjaga keamanan pesan
yang bertujuan menjaga kerahasiaan
informasi yang terkandung dalam data
sehingga informasi tersebut tidak dapat
diketahui oleh pihak yang tidak
bertanggung jawab.
Dalam menjaga kerahasiaan
data, kriptografi mentransformasikan
data jelas (plaintext) ke dalam bentuk
data sandi (ciphertext) yang tidak
dapat dikenali. Ciphertext inilah yang
kemudian dikirimkan oleh pengirim
(sender) kepada penerima (receiver).
Setelah sampai di penerima, ciphertext
tersebut ditranformasikan kembali ke
dalam bentuk plaintext agar dapat
dikenali.
 Algoritma Base64
Algoritma Base64 merupakan
algoritma yang menggunakan salah
satu konsep algoritma enkripsi modern
yaitu algoritma Block Cipher yang
yang berupa operasi pada mode bit
namun algortma Base64 ini lebih
mudah dalam pengimplementasiannya
dari algoritma-algoritma yang lainnya.
 Analisa Masalah
Base64 adalah metoda yang
untuk melakukan encoding
(penyandian) terhadap data binary
menjadi format 6-bit character. Pada
algoritma ini, rangkaian bit-bit
palainteks dibagi menjadi blok-blok bit
dengan panjang yang sama, biasanya
64 bit yang direpresentasikan dengan
karakter ASCII. Base64 menggunakan
karakter A – Z, a – z dan 0 – 9 untuk
62 nilai pertama, sedangkan 2 nilai
terakhir digunakan symbol (+ dan /).
Standar yang penulis gunakan
adalah MIME (Multipurpose Internet
Mail Extensions)/RFC 1521. RFC ini
menegaskan sebuah standar untuk
implementasi Base64 terhadap data
binary dan melampirkan sebuah
karakter padding “=” jika terdapat
kekurangan pada byte.
Dalam streaming base64, spesifikasi
mengharuskan setiap baris menjadi
paling banyak 76 basis-64 karakter.
Tabel 3.1 Index Base64
Di bawah ini merupakan
sebuah contoh mudah mengkonversi
kata “nuf” (decimal 110, 117, 102)
menjadi dasar Notasi 64.
'01101110 01110101 01100110'
Ini 8-bit string dibagi ke dalam dua set
6 bit dan 4 blok.
'011011 100111 010101 100110’
Untuk mengkonversi 6-bit angka,
maka rubah lagi ke dalam bentuk
decimal yang didapatkan 27, 39, 20,
dan 38 yang jika dilihat pada dasar
abjad-64 pada tabel diatas, maka
didapatkan alphabet “bNUm”. Namun
jika string biner tidak tepat dibagi
dalam 6-bit dan urutan biner tidak
merupakan ukuran 3 byte, maka
Base64 mengaturya dengan
menambahkan padding pada bit
terakhir. Sebagai contoh kata
“nufus”, maka akan dipisah menjadi
“nuf” dan “us+1byte”.
Dalam kasus ini, jika diberikan
contoh di mana satu byte yang tersisa,
maka perlu tambahan dua byte pad
dengan semua zeros sampai akhir
urutan biner. Kemudian satu byte
tersebut dapat diwakili dengan satu
byte dari 64 karakter dari Base64
diikuti oleh dua karakter padding.
Padding karakter yang telah ditentukan
adalah '='.
Mari mempertimbangkan
contoh string “s” dengan decimal 115
berikut :
'01110011'
Contoh pad single-byte dengan dua
byte dari angka nol.
'00000001 00000000 00000000 '
Sekarang biner tersebut di set urutan
enam byte.
'000000 ''010000''000000 ''000000'
Setelah di set, maka ditemukan
karakter berdasarkan Base64 adalah
“AQ==”. Begitu pula pada
penambahan-penambahan padding
lainnya.
Selanjutnya, contoh proses
dekripsi. Contoh “bNUm” diatas, lalu
dirubah menjadi angka Index 27, 39,
20, dan 38.
Kemudian ubah menjadi 6-bit biner.
'011011 100111 010101 100110’
Set 6-bit, diubah kedalam 8-bit string.
'01101110 01110101 01100110'
Maka akan dihasilkan angka decimal
110, 117, dan 102 dimana karakterkarakter
semulanya adalah “nuf” jika
dilihat pada abel ASCII.
Berdasarkan contoh-contoh
yang dapat dilihat, maka algoritma
umum proses encoding dari ASCII ke
Base64 adalah sebagai berikut
Gambar 3.1 Diagram alur algoritma
konversi ASCII – Base64
Algoritma kriptografi Base64
ini sebenarnya menggunakan
algoritma kunci simetris atau disebut
juga algoritma kriptografi
konvensional, yaitu algoritma yang
menggunakan kunci untuk proses
enkripsi sama dengan kunci untuk
proses dekripsi. Dibawah ini adalah
gambar proses enkripsi dan dekripsi
dari aplikasi :
Gambar 3.2 Proses Encrypt Decrypt
Aplikasi
Pada simulasi algoritma
Base64 terdiri dari dua tahap besar,
yaitu tahap enkripsi dan tahap
deskripsi. Tahap pertama adalah
pemilihan teks atau informasi
(plainteks), yang akan diubah menjadi
isi yang tidak dipahami melalui proses
enkripsi (encipher), proses tersebut
menghasilkan dua file yaitu file
enkripsi dan file kunci (yang
dinamakan enkripsi konvensional), file
kunci digunakan pada saat
memperoleh kembali informasi yang
asli (decipher).


 Metodologi Enkripsi



 Metodologi Dekripsi

v  Metodologi Dekripsi


v  Implementasi Output

Implementasi perancangan user
interface bertujuan
mengimplementasikan semua hasil
perancangan kedalam dunia nyata,
agar dapat dipergunakan oleh user.
Implementasi ini menggunakan
software Netbeans 6.0 yang berbasis
Java.
v  Bagan Struktur

 v  Flowchart Program

v  Tampilan Antarmuka Pengguna
(User Interface)
v  Pembuatan Menu Utama
Langkah pembuatan tampilan
aplikasi ini menggunakan IDE
Netbeans 6.0. langkah-langkahnya
adalah sebagai berikut :
1. Jalankan Netbeans 6.0
2. Pilih Menu File kemudian
New Project setelah itu akan
keluar Jendela New Project
3. Pada kotak Categories pilih
Java dan pada kotak
Projects pilih Java
Aplication dan klik Next.
4. Ubah nama Project Name
sesuai yang diinginkan.
Contoh : enkripsi.
5. Pilih lokasi yang diinginkan
untuk menyimpan project.
Contoh :
C:\My Document and
setting\Nufus_Cute\Desktop
\enkripsi.
6. Centang pada label Set As
Main Project dan beri nama
kelas pada Create main
class. Contoh : EnkripsiApp.
Setelah itu klik Finish.
Seperti pada gambar dibawah ini :
Application
Sampai pada tahap diatas
berarti satu project telah tercipta dan
untuk selanjutnya tinggal membuat
class atau form seperti dibawah ini.
1. Klik kanan pada node enkripsi
pilih New dan pilih JFrame
Form.
2. Pada jendela New JFrame
Form, isikan nama class untuk
Frame pada textbox class name
misalnya EnkripsiView.
3. Isi juga package yang kita
inginkan pada textbox package
misalnya enkripsi kemudian

klik finish. Seperti gambar
dibawah ini :
Form
4. Tambahkan komponenkomponen
yang dibutuhkan,
lalu atur tampilan sedemikian
gambar di bawah ini :
rupa hingga tampak pada 

Utama (Encrypter)
Encrypter File adalah tampilan
yang muncul pertama kali saat
menjalankan program dan memilih
menu Enkripsi ,juga merupakan menu
utama. Dan tampilan decrypter juga
terdapat pada menu utama setelah
memilih menu dekripsi, hasilnya
seperti gambar dibawah ini :
v  Pembuatan Tampilan About
Encryption
1. Buatlah sebuah jDialog, lalu
ubah Class Name menjadi
EnkripsiAboutBox, atur
package-nya seperti gambar
dibawah ini : 
2. Tambahkan komponenkomponen
yang dibutuhkan
lalu ubah nama form ini
menjadi About Encryption, lalu
atur tampilan sedemikian rupa.

v  Build Program
Langkah-langkah build adalah
sebagai berikut :
1. Sorot project Enkripsi
2. Klik kanan dan pilih Build.
Hasil build akan tersimpan
pada lokasi penyimpanan
poject, yaitu pada folder dist.
3. Aplikasi yang dihasilkan
bentuk file yang bertipe JAR.
Untuk menjalankan aplikasi
ini, klik 2 kali pada file JAR dalam
folder dist dan aplikasi akan dijalankan
sama seperti saat me-running program
di Netbeans.

v  Cara Menggunakan Aplikasi
Aplikasi ini dibuat hanya untuk
encrypt dan decrypt pada file text agar
pesan tersebut dapat sampai ke tangan
orang yant tepat dan dapat dpergunakn
ssesuai fungsinya. Berikut adalah cara
penggunaan aplikasi, yaitu :
1. Jalankan aplikasi yang telah dibuild
pada folder dist.
2. Setelah muncul tampilan menu
utama (Encrypt), lalu pilih
menu Enkripsi dan masukkan
file text yang akan di-encrypt
kamudian tekan tombol Proses
Enkrpsi, seperti gambar
dibawah ini :




3. Untuk men-decrypt, masih
pada tampilan menu utama lalu
pilih menu Dekripsi kemudian
masukkan file ter-encrypt
beserta kuncinya lalu tekan
tombol Proses Dekripsi seperti
pada gambar dibawah ini : 

4. Lihat hasilnya pada lokasi asal
file tersebut, akan ditemukana
file yang telah di-decrypt yang
bersi file semula.
5. KESIMPULAN
Aplikasi ini dibuat bertujuan
sebagai salah satu cara yang lebih
baik yang mempermudah bagi
siapa saja untuk dapat
mengamankan sendiri filetext
(berisi teks rahasia) dengan cara
memilih filetext yang akan diencrypt
maka secara otomatis akan
terbentuk ciphertext (text yang
sudah disandikan) besama dengan
key file yang kemudian digunakan
untuk mengembalikan ciphertext
kebentuk teks semula. Aplikasi ini
dirancang sebagai Desktop
Aplication.