a. Telah tertanam
interprenter
java, yaitu KVM
Kilobyte Virtual Machine
. b.
Mendukung
java
MIDP 2.0.
4.2 Proses Enkripsi dan Dekripsi
Teknologi SMS
Security
mengadopsi standar enkripsi
Private Key
untuk
chipering
. RC4 menggunakan variabel yang panjang kuncinya dari 1 sampai 256 bit yang digunakan untuk menginisialisasi tabel sepanjang 256 bit. Tabel ini
digunakan untuk generalisasi yang berikut dari
pseudo random
bit dan kemudian untuk menggeneralisasi aliran
pseudo random
yang menggunakan XOR dengan
plaintext
untuk menghasilkan
chipertext.
Masing-masing elemen dalam tabel saling ditukarkan minimal sekali.
Gambar 4.1 Proses Pertukaran Kunci
RC4 merupakan algoritma kunci simetrik artinya untuk melakukan proses enkripsi dan dekripsi diperlukan kunci yang sama. Pertukaran kunci enkrisi dapat
dilakukan dengan cara bertemu secara langsung. Hal ini lebih aman daripada melewatkan kunci dengan melalui SMS yang belum terproteksi. Algoritma RC4
bekerja dalam dua fase yaitu
key setup
dan
chiphering.
Selama
key setup
N bit N menjadi panjang kunci, kunci enkripsi digunakan untuk menghasilkan variabel
enkripsi dengan menggunakan dua bagian variabel dan kunci serta jumlah N dari operasi pencampuran. Pencampuram ini terdiri dari penukaran bit, operasi modulo
Plain teks Algoritma
Enkripsi RC4
Chipper teks
Algoritma Dekripsi
RC4 Plain teks
User A User B
Kuncikey
dan rumus yang lain. Operasi modulo adalah hasil sisa dari proses pembagian. Contoh 114=2 sisa 3. Oleh karena itu 11 mod 4 sama dengan 3.
Proses enkrisi yang terjadi adalah sebelumnya teks yang akan dienkripsi kita masukkan kedalam sebuah variable yang telah disiapkan. Minta user untuk
memasukkan kunci enkripi. Kunci yang dimasukkan oleh user kemudian kita enkripsi terlebih dahulu dengan menggunakan MD5. Enkripsi kunci ditangani
oleh sebuah
class
yaitu MD5digest.java untuk menghasilkan enkripsi MD5.
Class
MD5digest.java dipanggil dan diinstansiasi kemudian panggil method calculate pada class md5digest.java dan masukkan kunci yang akan dienkrip. Hasil dari
enkripsi kunci tadi selanjutnya akan dipakai untuk enkripsi teks SMS dengan menggunakan RC4.
Setelah variabel enkripsi dihasilkan dari
key setup
, langkah selanjutnya adalah masuk ke fase
chipering
dimana dalam proses ini hasilnya akan diXOR dengan pesan
plaintext.
Pada aplikasi ini proses
key setup
ditangani oleh
class
KeyParameter.java sedangkan untuk proses
chipering
ditangani oleh
class
EncRC4EEngine.java. XOR adalah operasi logika dari perbandingan dua bit
biner. Jika bitnya berbeda hasilnya 1, jika bitnya sama hasilnya sama dengan 0 nol. Output dari proses
chipering
akan mengasilkan bilangan heksa desimal. Jumlah dari
chipertext
yang dihasilkan adalah dua kali lipat dari jumlah
plaintext
yang dimasukkan.
Gambar 4.2 Penerapan Enkripsi dan Dekripsi
Pada gambar diatas terlihat hasil dari enkripsi dengan menggunakan sebuah kunci. Hasil dari enkripsi tersebut berupa bilangan heksa desimal. Proses
pembetukan
chipertext
dengan menggunakan RC4 adalah Untuk dapat
mendekripsikan teks tersebut menjadi
plaintext
harus dengan menggunakan kunci yang sama dengan kunci yang digunakan untuk mengenkripsi pesan. Sebelum
pesan didekripsikan pesan harus dikonversi terlebih dahulu dengan mengubah bilangan heksa kedalam bentuk byte. Proses ini ditangani oleh
class
HexCodex.java.
Gambar 4.3 Hasil Dekripsi Dengan Kunci Berbeda
Ketika
user
mencoba mendekripsikan pesan dengan mengunakan kunci yang berbeda dengan kunci yang digunakan untuk proses enkripsi hasilnya adalah
berupa kumpulan karakter yang tidak bisa diterjemahkan. Hal tersebut membuktikan bahwa pesan yang dienkrip menggunakan RC4 aman dari
pembacaan orang yang tidak memiliki otoritas. Untuk dapat pesan yang telah dienkrip tersebut
user
harus mengetahui kunci yang digunakan proses untuk enkripsinya.
Salah satu kelemahan dari RC4 adalah adalah terlalu tingginya kemungkinan terjadi tabel S-box yang sama, hal ini terjadi karena kunci user diulang-ulang
untuk mengisi 256 bytes, sehingga aaaa dan aaaaa akan menghasilkan perubahan urutan permutasi yang sama. Untuk menghindari masalah diatas
maka digunakan MD5 untuk mengenkripsi kunci. MD5 akan mengacak bilangan yang dimasukkan dengan output yang berbeda meskipun menggunakan karakter
diulang. MD5 merupakan jenis enkripsi satu arah artinya setelah dienkripsi pesan tidak dapat dideskripsikan kembali. Jumlah digits output dari MD5 akan selalu
tetap yaitu 32 digits berapapun jumlah karakter yang dimasukkan sebagai inputannya.
Gambar 4.4 Menggunakan Kunci Dengan Karakter Berulang
Gambar 4.5 Penggunaan MD5
4.3 Tampilan Aplikasi