PEMBUATAN APLIKASI KRIPTOGRAFI ALGORITMA BASE64 MENGGUNAKAN JAVA JDK 1.6
HAYATUN NUFUS Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma
[email protected] 06 September 2009
ABSTRAKSI Keamanan data merupakan hal yang sangat penting dalam menjaga kerahasiaan informasi terutama yang berisi informasi sensitif yang hanya boleh diketahui isinya oleh pihak yang berhak saja, apalagi jika pengirimannya dilakukan melalui jaringan publik, apabila data tersebut tidak diamankan terlebih dahulu, akan sangat mudah disadap dan diketahui isi informasinya oleh pihak-pihak yang tidak memiliki wewenang. Salah satu cara yang digunakan untuk pengamanan data adalah menggunakan sistem kriptografi yaitu dengan menyediakan isi informasi (plaintext) tersebut menjadi isi yang tidak dipahami melalui proses enkripsi (encipher), dan untuk memperoleh kembali informasi yang asli, dilakukan proses deskripsi (decipher), disertai dengan menggunakan kunci yang benar. Untuk membangun aplikasi yang terkomputerisasi ini, saya selaku penulis menggunakan Java JDK 1.6 dan NetBeans IDE 6.0 sebagai aplikasi pendukungnya. Aplikasi ini dibuat dalam Platform Windows sehingga memudahkan pemakai untuk menggunakannya. Dalam pembuatan desain implementasi teknik kriptografi untuk pengaman file teks dengan menggunakan algoritma kriptografi Standard RFC 1521 Base 64 Alphabet yang digunakan untuk implementasi enkripsi dan deskripsi file teks sebagai komunikasi yang aman. Kata Kunci : Kriptografi, Algoritma Base64 1
1. PENDAHULUAN
Oleh
1.1 Latar Belakang
karena
penulis
ingin
menanggapi masalah keamanan data
Ada cara yang lebih baik
dan sebagai bahan dalam penyusunan
untuk mengamankan filetext agar sulit
skripsi,
diketahui oleh pihak-pihak yang tidak
mngembangkan aplikasi kriptografi
diinginkan
yang menggunakan gabungan dari
yaitu
dengan
cara
maka
mengenkripsi (encrypt) pesan (file)
teknik
tersebut
beroperasi
menjadi
karakter-karakter
penulis
kriptografi pada
mencoba
klasik mode
namun
bit,
yaitu
acak yang tidak dimengerti sehingga
Algoritma base64 yang lebih mudah
hanya bagi seseorang yang memiliki
dalam
kunci
Aplikasi
(key)
mengembalikan
yang pesan
dapat kebentuk
pengimplementasiaanya. ini
dibuat
dengan
menggunakan bahasa pemrograman
semula.
Java JDK 1.6.
Saat ini, banyak algoritmaalgoritma
kriptografi
2. LANDASAN TEORI
bermunculan
2.1 Java -
sebagai teknik untuk mengamankan
Java adalah sebuah bahasa
data. Algoritma ini pada dasarnya
pemrograman
dibagi menjadi algoritma klasik dan
berbasiskan
modern. Algoritma klasik beroperasi
Oriented
dalam
(
mode
karakter,
sedangkan
komputer kepada
pemrograman
Object
Programming berbasiskan
algoritma modern beroperasi dalam
objek ) yang sederhana dan
mode bit.
tidak tergantung pada platform 2
yang digunakan. Bahasa ini
provider juga sudah tersedia
dikembangkan Microsystem
oleh
Sun
secara
Corp.
dan
didalam java.security, security
memiliki banyak keunggulan,
-
dan
portable
2.2 Graphical User Interface (GUI)
(dapat
GUI merupakan suatu metode
dipindah-pindahkan di antara
untuk antar muka komputer berbasis
bermacam platform dan sistem
grafis.
operasi).
pembuatan program aplikasi dengan
JavaTM Cryptography Extension
mempertimbangkan dua aspek yaitu
(JCE) adalah sarana frame
keindahan tampilan dan kemudahan
kerja yang diimplementasikan
dalam penggunaan program.
dalam
2.3 IDE NetBeans 6.0
pembuatan
algoritma
-
kriptografi dalam encryption,
-
GUI
digunakan
Netbeans
dalam
sebagai
IDE
key generation, and decryption
(Interface
Didukung
Environtment) ditujukan untuk
dengan
untuk kunci
enkripsi simetrik,
Development
memudahkan
asimetrik, blok, dan cipher
pemrograman
interface -
aliran. -
diregistrasi
properties.
seperti sederhana, ukurannya kecil,
otomatis
Memiliki fiture lebih baik dari
JCE sudah tersedia didalam
software
sepertinya
yaitu
optional package (Extension)
Module
Matisse
GUI
pada JavaTM 2 SDK. SunJCE
(Graphical
User
3
Interface)
Builder
-
-
-
-
-
yang
bersifat
Kriptografi adalah ilmu dan
ligtweight untuk memudahkan
seni untuk menjaga keamanan pesan
perancangan layout
yang bertujuan menjaga kerahasiaan
Pemrograman
informasi yang terkandung dalam data
dilakukan
dengan knsep free-design
sehingga informasi tersebut tidak dapat
Memudahkan untuk membuat
diketahui
aplikasi
bertanggung jawab.
desktop
dengan
oleh
pihak
yang
tidak
fasilitas yang dapat langsung
Dalam menjaga kerahasiaan
digunakan di berbagai paltform
data, kriptografi mentransformasikan
tanpa
data jelas (plaintext) ke dalam bentuk
harus
menginstal
software pendukungnya
data sandi (ciphertext) yang tidak
Memiliki fiture debugger untuk
dapat dikenali. Ciphertext inilah yang
mengetahui
kemudian dikirimkan oleh pengirim
dimana
terjadi
error
(sender) kepada penerima (receiver).
Memiliki fiture tooltip dimana
Setelah sampai di penerima, ciphertext
dapat diketahui cara perbaikan
tersebut ditranformasikan kembali ke
untuk error
dalam bentuk plaintext agar dapat
Berlisensikan
Sun
dikenali.
Public
2.5 Algoritma Base64
License atau open source
Algoritma Base64 merupakan
2.4 Kriptografi
algoritma yang menggunakan salah satu konsep algoritma enkripsi modern 4
yaitu algoritma Block Cipher yang
Mail Extensions)/RFC 1521. RFC ini
yang berupa operasi pada mode bit
menegaskan sebuah standar untuk
namun algortma Base64 ini lebih
implementasi Base64 terhadap data
mudah dalam pengimplementasiannya
binary
dari algoritma-algoritma yang lainnya.
karakter padding “=” jika terdapat
3. ANALISA DAN PEMBAHASAN
kekurangan
MASALAH
Dalam streaming base64, spesifikasi
3.1 Analisa Masalah
mengharuskan setiap baris menjadi
Base64 adalah metoda yang untuk
melakukan
dan
melampirkan
sebuah
pada
byte.
paling banyak 76 basis-64 karakter.
encoding
Tabel 3.1 Index Base64
(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 Di
karakter A – Z, a – z dan 0 – 9 untuk
bawah
ini
merupakan
sebuah contoh mudah mengkonversi
62 nilai pertama, sedangkan 2 nilai
kata “nuf” (decimal 110, 117, 102)
terakhir digunakan symbol (+ dan /).
menjadi dasar Notasi 64.
Standar yang penulis gunakan
'01101110 01110101 01100110'
adalah MIME (Multipurpose Internet 5
Ini 8-bit string dibagi ke dalam dua set
tersebut dapat diwakili dengan satu
6 bit dan 4 blok.
byte dari 64 karakter dari Base64
'011011 100111 010101 100110’
diikuti oleh dua karakter padding.
Untuk mengkonversi 6-bit angka,
Padding karakter yang telah ditentukan
maka rubah lagi ke dalam bentuk
adalah '='.
decimal yang didapatkan 27, 39, 20,
Mari mempertimbangkan
dan 38 yang jika dilihat pada dasar
contoh string “s” dengan decimal 115
abjad-64 pada tabel diatas, maka
berikut :
didapatkan alphabet “bNUm”. Namun
'01110011'
jika string biner tidak tepat dibagi
Contoh pad single-byte dengan dua
dalam 6-bit dan urutan biner tidak
byte dari angka nol.
merupakan ukuran 3 byte, maka
'00000001 00000000 00000000 '
Base64
Sekarang biner tersebut di set urutan
mengaturya
menambahkan terakhir.
padding
Sebagai
dengan pada
contoh
bit
enam byte.
kata
'000000 ''010000''000000 ''000000'
“nufus”, maka akan dipisah menjadi
Setelah di set, maka ditemukan
“nuf” dan “us+1byte”.
karakter berdasarkan Base64 adalah
Dalam kasus ini, jika diberikan
“AQ==”. Begitu pula pada
contoh di mana satu byte yang tersisa,
penambahan-penambahan padding
maka perlu tambahan dua byte pad
lainnya.
dengan semua zeros sampai akhir urutan biner.
Selanjutnya, contoh proses
Kemudian satu byte
dekripsi. Contoh “bNUm” diatas, lalu 6
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 7
enkripsi sama dengan kunci untuk
deskripsi.
Tahap
pertama
proses dekripsi. Dibawah ini adalah
pemilihan
teks
gambar proses enkripsi dan dekripsi
(plainteks), yang akan diubah menjadi
dari aplikasi :
isi yang tidak dipahami melalui proses
atau
adalah
informasi
enkripsi (encipher), proses tersebut menghasilkan enkripsi Gambar 3.2 Proses Encrypt Decrypt
simulasi
kunci algoritma
tahap
enkripsi
dan
file
yaitu
kunci
file (yang
digunakan
pada
saat
memperoleh kembali informasi yang
Base64 terdiri dari dua tahap besar, yaitu
dan
file
dinamakan enkripsi konvensional), file
Aplikasi Pada
dua
asli (decipher).
tahap
3.2 Metodologi Enkripsi
3.3 Metodologi Dekripsi
Gambar 3.4 Flowchart Dekripsi 4. Implementasi 4.1 Implementasi Output
Gambar 3.3 Flowchart Enkripsi
8
Implementasi perancangan user interface
4.3 Flowchart Program
bertujuan
mengimplementasikan
semua
hasil
perancangan kedalam dunia nyata, agar dapat dipergunakan oleh user. Implementasi
ini
menggunakan
software Netbeans 6.0 yang berbasis Java. 4.2 Bagan Struktur
Gambar 4.2 flowchart Program 4.4 Tampilan Antarmuka Pengguna (User Interface) 4.4.1 Pembuatan Menu Utama Langkah aplikasi Netbeans
ini 6.0.
pembuatan
tampilan
menggunakan
langkah-langkahnya
adalah sebagai berikut : 1. Jalankan Netbeans 6.0
Gambar 4.1 Struktur Navigas 9
IDE
2. Pilih Menu File kemudian
Seperti
New Project setelah itu akan
pada
gambar
dibawah ini :
keluar Jendela New Project 3. Pada kotak Categories pilih Java
dan
Projects
pada pilih
kotak Java Gambar 4.3 Kotak Dialog New Java
Aplication dan klik Next.
Application
4. Ubah nama Project Name sesuai
yang
Sampai
diinginkan.
class atau form seperti dibawah ini.
untuk menyimpan project.
1. Klik kanan pada node enkripsi
Contoh : Document
pilih New dan pilih JFrame
and
Form.
setting\Nufus_Cute\Desktop
2. Pada
\enkripsi.
klik
JFrame
misalnya EnkripsiView.
main
3. Isi juga package yang kita
class. Contoh : EnkripsiApp. itu
New
Frame pada textbox class name
Main Project dan beri nama pada Create
jendela
Form, isikan nama class untuk
6. Centang pada label Set As
Setelah
diatas
untuk selanjutnya tinggal membuat
5. Pilih lokasi yang diinginkan
kelas
tahap
berarti satu project telah tercipta dan
Contoh : enkripsi.
C:\My
pada
inginkan pada textbox package
Finish.
misalnya
10
enkripsi kemudian
klik finish. Seperti gambar
menjalankan
program dan memilih
dibawah ini :
menu Enkripsi ,juga merupakan menu utama. Dan tampilan decrypter juga terdapat pada menu utama setelah memilih
menu
dekripsi,
hasilnya
seperti gambar dibawah ini : Gambar 4.4 Kotak Dialog New JFrame Form 4. Tambahkan
komponen-
komponen yang dibutuhkan, lalu atur tampilan sedemikian rupa
hingga
tampak
pada
Gambar 4.6 Tampilan Decrypter
gambar di bawah ini :
4.4.2
Pembuatan Tampilan About Encryption
1. Buatlah sebuah jDialog, lalu ubah
Class
Name
EnkripsiAboutBox,
menjadi atur
package-nya seperti gambar Gambar 4.5 Tampilan Menu dibawah ini : Utama (Encrypter) Encrypter File adalah tampilan yang
muncul
pertama
kali
saat 11
sebagai berikut : 1. Sorot project Enkripsi 2. Klik kanan dan pilih Build. Hasil build akan tersimpan Gambar 4.7 Kotak Dialog New
pada
JDialog Form 2. Tambahkan yang
lalu
nama
ubah
3. Aplikasi
dibutuhkan form
penyimpanan
poject, yaitu pada folder dist.
komponen-
komponen
lokasi
yang
dihasilkan
bentuk file yang bertipe JAR.
ini Untuk
menjadi About Encryption, lalu
menjalankan
aplikasi
ini, klik 2 kali pada file JAR dalam
atur tampilan sedemikian rupa
folder dist dan aplikasi akan dijalankan
hingga tampak pada gambar di
sama seperti saat me-running program
bawah ini :
di Netbeans. 4.4 Cara Menggunakan Aplikasi Aplikasi ini dibuat hanya untuk encrypt dan decrypt pada file text agar pesan tersebut dapat sampai ke tangan Gambar 4.8 Tampilan About orang yant tepat dan dapat dpergunakn Encryption ssesuai fungsinya. Berikut adalah cara 4.4.3 Build Program
penggunaan aplikasi, yaitu :
Langkah-langkah build adalah
12
1. Jalankan aplikasi yang telah di-
3. Untuk men-decrypt, masih
build pada folder dist.
pada tampilan menu utama lalu
2. Setelah muncul tampilan menu
pilih menu Dekripsi kemudian
utama (Encrypt), lalu pilih
masukkan file ter-encrypt
menu Enkripsi dan masukkan
beserta kuncinya lalu tekan
file text yang akan di-encrypt
tombol Proses Dekripsi seperti
kamudian tekan tombol Proses
pada gambar dibawah ini :
Enkrpsi, seperti gambar dibawah ini :
Gambar 4.12 Dekripsi File Text Gambar 4.9 Enkripsi File Text
4. Lihat hasilnya pada lokasi asal
Maka akan dihasilkan file text
file tersebut, akan ditemukana
yang telah terenkripi beserta
file yang telah di-decrypt yang
file kuncinya.
bersi file semula. 5. KESIMPULAN Aplikasi ini dibuat bertujuan
Gambar 4.10 Encrypt File
sebagai salah satu cara yang lebih baik yang mempermudah bagi Gambar 4.11 Key File
siapa
13
saja
untuk
dapat
mengamankan
sendiri
filetext
http://www.di-
(berisi teks rahasia) dengan cara
mgt.com.au/encode_encrypt.html,
memilih filetext yang akan di-
15 Juni 2009, 15:00.
encrypt maka secara otomatis akan
[4] “Tutorial Base64”
terbentuk ciphertext (text yang
http://www.source-code.biz,
sudah disandikan) besama dengan
Juni 2009, 13.30.
23
key file yang kemudian digunakan
[5] “Pemanfaatan MIME Base64.pdf”
untuk mengembalikan ciphertext
http://www.kbcafe.com/artikel/
kebentuk teks semula. Aplikasi ini
23 Juni 2009, 20.30.
dirancang
sebagai
Desktop
[6]
Aplication.
Kadir,
Abdul,
,
Dasar
Pemrograman
6. REFERENSI
Java 2, Yogyakarta, Andi, 2003
[1] Hartati, A. Sri, Pemrograman GUI
[7] Munir, Rinaldi, Kriptografi,
Swing Java dengan Netbeans 5,
Bandung. Informatika, 2006
Yogyakarta, Andi, 2006
[8] Supandi, Ir. Yuniar, Belajar Semua
[2]“How to Encode a String to Base64
Edisi Java 2 untuk Segala Tingkat,
WithJava”
Jakarta, P.T Elex Media
http://www.dimgt.com.au/decode_d
komputindo, 2009
ecrypt.html, 2 April 2009, 10:55. [3] ”Base64 Encoder/Decoder in Java”
14