Proses Enkripsi dan Dekripsi

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