IMPLEMENTASI ALGORITMA KRIPTOGRAFI RC4 PADA APLIKASI SMS BERBASIS JAVA
NASKAH PUBLIKASI
diajukan oleh
Muhammad Usman Rosyidi
10.11.4489
kepada JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA
YOGYAKARTA 2014
ii
iii
IMPLEMENTATION CRYPTOGRAPHIC ALGORITHM RC4 SMS BASED APPLICATIONS IN JAVA
IMPLEMENTASI ALGORITMA KRIPTOGRAFI RC4
PADA APLIKASI SMS BERBASIS JAVA
Muhammad Usman Rosyidi Ema Utami
Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT
Short Message Service (SMS) is a service provided by telephone cellular to it’s
user to communicate via short messages. The cost of each SMS is cheap to operate, the message being sent by the user can be received quickly and well so that SMS is very popular in mobile phone users. However, SMS technology is not point to point, SMS messages can be sent not directly received by the recipient, but via the SMS network provided by a mobile phone network operator. In the SMS network messaging security is threatened to be read by those who are not responsible. The device is built to improve the security of SMS.
To resolve these problems required a study transform examines the security SMS that can be used by all parties. The study starts from the analysis phase (Analysis of system weaknesses, the need for enhanced analysis, and feasibility analysis system), perncangan phase system using UML (Unfied Modeling Language), which is the (Use Case Diagrams, Class Diagrams, Activity diagrams, Sequence Diagrams) and the latter is implementation and test phase of the program, system testing (Black Box Testing And White Box Testing).
From the analysis and design of the application system can be created J2ME based mobile application that can be used by everyone. SMS Application RC4 algorithm is designed with a simple design and user friendly to facilitate its use. In addition, as an application to maintain the confidentiality of information. Keywords: Cryptography, Encryption, Decryption, RC4 algorithm, SMS Crypto
1
1. PENDAHULUAN
1.1. Latar Belakang
Dunia teknologi inforamsi semakin berkembang secara pesatnya dan cepat, bahakan
ilmu pengetahuan tentang ilmu pengetahuan teknologi informasi mulai bermunculan. Hal ini
membuat antara laju teknologi inforamsi serta ilmu pengetahuan berimbang. Banyak
inforamsi yang bermunculan, antara inforamsi yang layak disebarluaskan maupun yang
dikonsumsi pribadi dengan kata lain dirahasiakan. Namun kenyatannya dalam banyak kasus
permasalahan data yang sangat rahasia sekalipun bisa dibobol oleh pihak yang tidak
bertanggung jawab. Contohnya data di bank, organisasi, data pribadi, dan strategi perusahan
atau bahkan yang lebih besar dan bersekala internasional yang menyangkut banyak hajat
hidup suatu negara. Ilmu pengetahun yang digunakan untuk mengamankan data yang
sangat penting sekalipun adalah ilmu Kriptografi.
Oleh karena itu penulis mencoba merancang sebuah aplikasi kriptografi untuk
telepon seluler berbasis Java2 Micro Editon (J2ME) dengan algortima kriptogarafi RC4 yang
berfungsi untuk meng-enkripsi untuk menyandikan sebuah informasi sebelum dikirimkan
kepiihak yang dituju dan meng-diskripsi inforamsi yang telah diterima oleh pihak yang dituju.
Aplikasi yang akan dirancang oleh penulis adalah Aplikasi SMS Algoritma RC4.
2. LANDASAN TEORI
2.1. Pengertian Aplikasi
Aplikasi berasal dari kata application yang artinya penerapan; lamaran; penggunaan.
Secara istilah aplikasi adalah program siap pakai yang direka untuk melaksanakan sesuatu
fungsi bagi pengguna atau aplikasi yang lain dan dapat digunakan oleh sasasran yang dituju.
2.2. Kriptografi
2.2.1. Pengertian Kriptografi
Kriptografi (Cryptography) dapat diartikan sebagai suatu ilmu atau seni untuk
mengamankan pesean agar aman. Metode ini digunakan oleh bangsa Mesir sejak
4000 tahun lalu. Menurut bahasa kriptografi terdiri dari dua kata, yaitu crypto dan
2
graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan), yang
mempunyai arti “tulisan rahasia”1.
2.2.2. Tujuan Kriptografi
Ada 4 (empat) tujuan mendasar dari ilmu kriptografi yang juga merupkan
aspek keamanan informasi2 :
1. Kerahasian (confidentiality).
2. Intergritas data (data intergrity
3. Otentikasi (authentication
4. Nirpenyangkal (non – repudiation).3
2.3. Algoritma Kriptografi
2.3.1. Pengertian Algoritma Kriptografi
Kata algoritma berasal dari kata algorism yang berasal dari kamus Webster
yang muncul smpai akhir tahun 1957. kata algorism mempunyai arti proses
perhitungan dalam bahasa arab. Algortima berasal dari nama penulis buku arab yang
terkenal, yaitu Abu Ja’far Muhammad Ibnu Musa Al – Khuwarizmi (al – khuwarizmi
dibaca oleh orang bangsa barat sebagai algorism). Kata algorism lambat laun
berubah menjadi algorithm.
2.3.2. Macam – Macam Algoritma Kriptografi
2.3.2.1. Algoritma Simetri
Algorima ini sering deisebut algoritma klasik karena memakai kunci
yang sama untuk kegiatan enkripsi dan dekripsinya.
2.3.2. Algoritma Asimetri
1 Dony Aiyus, Pengantar Ilmu Kriptografi Teori Analisis dan Implementasi, (Yogyakarta: Andi Offset,
2008), hal 13. 2 Yusuf Kurniawan, Kriptografi: Keamanan Internet dan Jaringan Komunikasi, (Bandung: Informatika,
2004), hal 2. 3 Yusuf Kurniawan, Kriptografi: Keamanan Internet dan Jaringan Komunikasi, (Bandung: Informatika,
2004), hal 2.
3
Algoritma asimetri sering disebut dengan algoritma kunci public,
dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan
dekripsi berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian,
yaitu:
1. Kunci umum (public key)
2. Kunci rahasia (private key)
2.3.3. Fungsi Hash
Fungsi hash sering disebut juga dengan fungsi hash satu arah (one –
way function), message digest, fingerprint, fungsi komparasi dan message
authentications code(MAC).
2.4. Algoritma RC4
2.4.1. Sejarah Algoritma RC4
RC4 didesain oleh Ron Rivest yang berasak dari RSA Security pada tahun
1987. RC sendiri mempunyai singkatan resmi yaitu “Rivest Chiper”4.
2.4.2. Teori dan Konsep RC4
RC4 termasuk ke dalam cipher aliran (stream cipher) dengan kunci privat /
kunci simetri (kunci yang sama digunakan untuk proses enkripsi dan dekripsi).
Seperti halnya dengan Vernam Cipher, inti dari enkripsi RC4 adalah pembangkitan
kunci aliran (keystream) yang bersifat acak semu (pseudo random).
2.4.3. Algortima RC4 Secara Umum
1. Instalasi larik state sepanjang 256 byte.
2. Memilih kunci rahasia yang ingin digunakan (panjang kunci 1 byte
sampai 256 byte , semakin panjang semakin baik).
3. Menjelankan algoritma KSA (Key – Scheduling Algorithm) dan PGRA
(Pseudo – Random Generation Algorithm)
4 Dony Aiyus, Pengantar Ilmu Kriptografi Teori Analisis dan Implementasi, (Yogyakarta: Andi Offset,
2008), hal 250
4
4. Key stream yang dihasilkan dioperasikan dengan operasi logika XOR
dengan plainteks.
5. Proses tersebut menghasilkan chiperteks dan plainteks.
2.5 Algoritma CS25
1. Instalasi larik state sepanjang 256 byte(sama dengan RC4).
2. Inisialisasi Vector
3. Menjelankan algoritma KSA (Key – Scheduling Algorithm) KSA diulang
sebanyak N kali (>= 20). dan PGRA (Pseudo – Random Generation
Algorithm)
4. Key stream yang dihasilkan dioperasikan dengan operasi logika XOR
dengan plainteks.
5. Proses tersebut menghasilkan chiperteks dan plainteks.
2.6. UML (Unfied Modelling Language)
2.6.1. Pengenalan UML
UML (Unfied Modelling Language) adalah sebuah bahasa untuk menentkan,
visualisasi, konstruksi, dan mendokumentasikan artifacts dari system software untuk
memodelkan bisnis dan system software lainnya.
2.7. JAVA
2.7.1. Pengertian Java
Java menurut definisi dari sun adalah nama untuk sekumpulan teknologi
untuk membuat dan menjalankan perangkat lunak pada computer standalone atau
pada lingkungan jaringan.
2.7.1.1. Java 2ME
Java Mobile Edition (Java ME) adalah sebuah set API (Applications
Programing Interface) yang difokuskan untuk pengembangan perangkat mobile.
2.8. J2ME Wireless Toolkit
J2ME Wireless Toolkit adalah kakas yang menyediakan lingkungan emulator,
dokumentasi berserta contoh – contoh aplikasi Java untuk perangkat kecil (small device).
5 Arnold Reinhold, ChiperSaber Home Page
5
2.9. NetBeans Enviroment
Netbeans adalah salah satu IDE (Intergreted Development Enviroment), yaitu
sebuah lingkungan kerja yang digunakan untuk mengembangkan aplikasi dengan berbagai
bahasa pemorgraman khususnya Java.
3. ANALISIS DAN PERANCANGAN
3.1. Gambaran Aplikasi
Aplikasi SMS Algoritma RC4 berbasis Java ini merupakan sebuah aplikasi yang
dapat berfungsi mengenkripsikan dan sebaliknya.
3.1.1. Model Sistem Aplikasi Yang Lama
1. Hanya dapat diakses menggunakan komputer belum dapat diinstal di ponsel
berbasis java.
2. Pengoperasiannya aplikasi membutuhkan jaringan internet.
3. Proses yang kurang efisien jika ingin megirimkan pesan harus menyalin
(copy) dan menempel (paste) kan di ponsel.
3.1.2. Model Sistem Aplikasi Yang Baru
Sederhana dan mudah digunakan tanpa harus terhubung dengan internet
untuk pengoperasianya.
3.2. Analisis Kebutuhan
3.2.1. Kebutuhan Fungsional
1. Pengguna dapat mengenkripsikan yaitu merubah teks biasa (plaintext)
menjadi teks yang sudah disandikan (chipertext).
2. Pengguna dapat mendekripsikan yaitu merubah yang sudah disandikan
(chipertext) menjadi teks biasa (plaintext).
3. Pengguna dapat langsung mengirim pesan melalui aplikasi ini.
4. Proses pengiriman pesan sandi dan kunci.
5. Proses melakukan persandian dan menterjemahkan pesan.
3.2.2. Kebutuhan Non Fungsional
A. Operasional
6
Kebutuhan perangkat keras (Hardware).
Kebutuhan perangkat keras yang digunkan untuk memuat program
aplikasi ini sebagai berikut :
a. Procesor : AMD Athlon Dual Core QL-66 2,2 GHz
b.Memory (RAM) : 1 GB
c.Harddisk : 250 GB
d.VGA : VGA ATI Radeon HD 3200 dedicated 256
MB
Kebutuhan perangkat lunak (Software)
Kebutuhan perangkat lunak yang digunakan untuk membuat
program tersebut adalah sebagai berikut :
a. Sistem Operasi : Microsoft Windows 7 Ultimate 64 bit.
b. IDE : Net Beans 6.2
c. Micrisoft Office 2007
B. Kinerja
Apalikasi ini dirancang dan dibuat agar mempunyai keakuratan hasil
yang baik dalam proses enkripsi dan dekripsi pesan SMS yang akan
disampaikan.
3.3. Kelayakan Sistem
3.3.1. Kelayakan Teknis
Kelayakan teknis adalah merupakan ketersedian teknologi yang
dibutuhkan dalam merancang dan membuat aplikasi.
3.3.2. Kelayakan Opearsi
Dalam pengopraiannya aplikasi ini sangatlah mudah ini bias dilihat dari
spesifikasi teknis.
3.4. Perancangan
3.4.1. Perancangan Algoritma
3.4.2. Perancangan Sistem
7
3.4.2.1. Use Case Diagram
Diagram use case mendeskripsikan sebuah interaksi antara satu
atau lebih actor dengan sistem informasi yang akan dibuat.
3.4.2.2. Flowchart
Flowchart menggambarkan alur sebuah aplikasi.
3.4.2.3. Class Diagram
Diagram kelas atau class diagram menggambarkan struktur sistem
dari segi pendefinisian kelas – kelas yang akan dibuat untuk membangun
sistem.
3.4.2.4. Activity Diagram
Diagram aktivitas atau activity diagram menggambarkan workflow
(aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis.
3.4.2.5. Sequence Diagram
Sequence diagram menggambarkan kelakuan objek pada use
case dengan mendeskripsikan waktu hidup objek dan message yang
dikirimkan dan diterima antar objek.
3.4.3. Perancangan Interface
3.4.3.1. Tampilan Menu Utama.
Pada tampilan awal aplikasi terdapat dua buah pilihan yaitu “Kirim
Pesan” dan “Pesan Masuk”.
3.4.3.2. Tampilan Kirim Pesan
Pada saat setelah menekan tombol kirim pesan maka tampilan
selanjutnya adalah “ Menulis Pesan”.
3.4.3.3. Tampilan Pesan Masuk
8
Setelah menekan tombol “Pesan Masuk” selanjutnya kita masuk
ke tampilan pesan.
3.4.3.4. Tampilan Bantuan
Setelah menekan tombol “ Bantuan ” yang terdapat di tampilan
menu pertama, selanjutnya masuk ke tampilan bantuan yang berisi
tentang intruksi penggunaan aplikasi ini.
3.4.3.5. Tampilan About
Setelah menekan tombol “ About “ pada menu utama selanjutnya
langsung masuk ke tampilan about yang berisi tentang nama aplikasi,
tahun pembuatan, dan nama pembuat.
4. IMPLEMENTASI DAN PEMBAHASAN
4.1. Implementsi
Implementasi adalah terapan hasil rancangan yang telah dibuat beberapa kode
program menjadi sebuah aplikasi.
4.1.1. Implementasi Algoritma
4.1.1.1. Key-scheduling algorithm (KSA)
public void KSA(String keyText) {
for (int i = 0; i <= 255; i++) {
S[i] = i;
K[i]=Integer.parseInt(String.valueOf(keyText.charAt(
i % keyText.length())));
}
int j = 0;
9
for (int i = 0; i <= 255; i++) {
j = (j + S[i] + K[j]) % 256;
int temp = S[i];
S[i] = S[j];
S[j] = temp;
}
}
10
4.1.1.2. Pseudo-random generation algorithm (PRGA)
public String PRGA(String plainTeksnya) {
String cTeks = "";
String cKey = "";
String cKey2 = "";
int i = 0, j = 0, k, t;
for (int counter = 0; counter <
plainTeksnya.length(); counter++) {
i = (i + 1) % 256;
j = (j + S[i]) % 256;
int temp = S[i];
S[i] = S[j];
S[j] = temp;
t = (S[i] + S[j]) % 256;
k = S[t];
cKey += (char) k;
cKey2 += k;
K[counter] = k;
char karakter = plainTeksnya.charAt(counter);
int ascii = (int) karakter;
int xor = k ^ ascii;
char asciiChar = (char) xor;
cTeks += String.valueOf(asciiChar);
11
}
return cTeks;
}
4.1.2. Implementasi Interfaces
Implementasi interfaces adalah tampilan yang dilihat dari sisi pengguna
aplikasi. Pada bagian ini merupakan implementasi dari perancangan pada bab
sebelumnya.
1. Halaman Menu Utama
.
Gambar 4.1. Halaman Menu Utama
2. Halaman Tulis Pesan
12
Gamabar 4.2. Halaman Tulis Pesan
3. Halaman Masukan Kunci
Gambar 4.3. Halaman Kunci
13
4. Halaman Input Nomor Telphone
Gambar 4.4. Halaman Input Nomor Telephone
5. Halaman Pesan Masuk
14
Gamabar 4.6. Halaman Pesan Masuk
9. Halaman Bantuan
Halaman bantuan adalah tampilan untuk mengetahui intruksi .
Gambar 4.10. Halaman Bantuan
10. Halaman About
Gamabr 4.11. Halaman About
15
4.2. Pembahasan
4.2.1. Kode Program
4.2.1.1. Kode Untuk Membuka Koneksi Agar Dapat Menerima SMS
Kode ini untuk membuka koneksi SMS.
4.2.1.2. Kode Untuk Menerima SMS
Kode ini sebagai kode untuk menerima pesan
4.2.1.3. Kode Untuk Menutup Koneksi SMS
Kode untuk menutup koneksi
4.2.1.4. Kode Untuk Mengirim SMS
Kode untuk port pengiriman pesan
4.2.2. Pengujian Program
4.2.2.1. Pengujian Blackbox Testing
Pengujian aplikasi ini menggunakan metode blackbok.
Pengujian ini akan melakukan kirim pesan samapai pesan terdekripsi.
4.2.2.2. Whitebox Testing
Dalam testing ini pengujian dilakukan pada code program
yang ditulis dan modul-modul yang ada pada program apakah ada
kesalahan atau tidak. Berikut adalah contoh kesalahan dari program.
1. Runtime error
Runtime error adalah kesalahan yang terjadi ketika program
dijalankan akan tetapi tidak ada error di dalam kode
programnya.
16
4.3. Evaluasi Algoritma Kriptografi RC4
4.3.1. Perbandingan RC4 dan CS2.
Algoritma CS2 memiliki waktu yang lebih lama dari pada waktu yang dibutuhkan oleh
RC4. Sebab, algoritma CS2 harus melakukan proses pencampuran kunci dan IV
(initialization vector). Sehingga algoritma RC4 lebih cepat daripada algortima CipherSaber –
2 bahakan melebihi kecepatan enkripsi algoritma DES dan Tripel DES.
5. PENUTUP
5.1. Kesimpulan
1. Pengimplementasian algoritma kriptografi RC 4 dalam aplikasi SMS untuk
enkripsi dan dekripsi SMS telah berhasil dibuat.
2. Aplikasi “Aplikasi SMS Algoritma RC4” berbasis Java.
3. Mengevaluasi kinerja algortima kriptografi RC4 ini algoritmanya sederhana dan
cepat untuk melakukan proses enkripsi.
5.2. Saran
1. Saat ini aplikasi hanya dapat menampilkan saja namaun tidak dapat menyimpan
dikarenakan database.
2. Fitur- fitur yang disediakan lebih untuk mengembangkan aplikasi ini.
3. Aplikasi saat ini belum memiliki GPS .
4. Aplikasi ini belum terintergrasi langsung dengan operator.
5. Aplikasi ini belum memiliki fitur – fitur yang lengkap.
6. Diharapkan pengaembang selanjutnya dapat disesuaikan dengan standar
CDMA.
17
DAFTAR PUSTAKA
Ariyus, Doni. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi. Yogyakarta:
Andi Offset.
Ariyus, Doni. 2006. Pengantar Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu.
Fatta, Hanif Al. 2007. Analisis dan Perancangan Sistem Informasi untuk Keunggulan
Bersaing Perusahaan dn Organisasi Modern. Yogyakarta: Andi Offset.
Sadikin, Rifki. 2012. Kriptografi Untuk Keamanan Jaringan. Yogyakarta: Andi Offset.
Irawan. 2008. Java Mobile Untuk Orang Awam. Palembang: Maxikom.
Komputer, Wahana. 2012, Java For Mobile Pemorgraman. Yogyakarta: Andi Offset.
Kurniawan, Yusuf. 2004. Kriptografi : Kemamanan Internet dan Jaringan Komunikasi.
Bandung: Informatika.
Munawar. 2005 Pemodelan Visual Dengan Menggunakan UML. Yogyakarta: Graha Ilmu.
Munir, Rinaldi.2003. Matematika Diskrit. Bandung: Informatika.
Munir, Rinaldi. 2005. Bahan Kuliah Kriptografi “Algoritma Kriptografi Modern”, Bandung: ITB.
Raharjo Budi, Heryanto Imam, dan Haryono Arif. 2007. Tuntunan Pemorgraman Java Untuk
HandPhone. Bandung: Penerbit Informatika.
Sahendra dan Harimas. 2002. Visual Marketing Menggunakan UML dan Rational Rose.
Bandung: Penerbit Informatika.
Shalahudin. M dan A.S. Rosa. 2008. Pemorgraman J2ME Belajar Cepat Pemorgraman
Perangkat Telekomunikasi Mobie. Bandung: Penerbit Informatika.