APLIKASI ENKRIPSI ASIACHAT BERBASIS JQUERY MENGGUNAKAN METODE STREAM CIPHER RC4
PROPOSAL JUDUL
Diajukan Untuk Menempuh Tugas Khusus
Oleh
Irnawati Mochtar 11201217
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER ASIA MALANG
1. LATAR BELAKANG
Chatting adalah suatu program dalam internet untuk berkomunikasi
langsung sesama pemakai internet yang sedang online (yang sedang menggunakan internet). Komunikasi bisa berupa teks atau suara kepada
orang lain yang sedang online, kemudian orang yang dituju membalas pesan anda dengan teks atau suara, demikian seterusnya.
Chatting tidak hanya populer dikalangan remaja saja namun sekarang ini, sudah merambah kalangan dewasa bahkan orang tua
sekalipun. Asia chat adalah suatu feature atau program berbasis web membentuk komunitas yang tidak hanya dikalangan mahasiswa Asia tetapi juga berlaku untuk umum para siswa SMK/SMA.
Chatting Asia ini dibuat untuk menjembatani komunikasi internal antar-mahasiswa asia dan juga umum pada anak-anak SMK/SMA.
Dikalangan mahasiswa dapat digunakan sebagai tempat pertukaran informasi, tugas dan lain-lain, dan untuk kalangan umum dapat digunakan
tempat untuk mencari informasi dari teman-teman komunitas.
Akan tetapi jaringan terbuka dapat terbaca sniffer. Oleh karena
dengan menggunakan stream chiper RC4 dapat enkripsi dan dekripsi untuk dapat menjaga pesan rahasia dari siapapun kecuali otoritas atau kunci
rahasia untuk membuka informasi yang telah disandi, integritas data untuk mendeteksi manipulasi data oleh pihak yang tidak behak dan autentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
a. Bagaimana cara membuat Applikasi/software komunikasi antar PC menggunakan text dan enkripsi yang cepat komputasi
dengan stream cipher.
b. Bagaimana cara mengenkripsi dan dekripsi client dan server di sisi PHP dan JQuery.
c. Bagaimana cara untuk penyebaran expance key pada tabel berbeda pada pasangan.
3. BATASAN MASALAH
a. Karakter dalam penggunaan pada chat sebatas ASCII, tidak sampai pada Unicode, bigendian dst.
b. Bahasa pemrograman yang digunakan adalah berbasis web PHP dan JQuery dan hanya digunakan di PC tidak dimobile. 4. TUJUAN DAN MANFAAT PENULISAN
Tujuan
a. Membuat wadah komunikasi yang aman antar mahasiswa asia dan juga eksternal umum SMK/SMA.
Manfaat Bagi Penulis
a. Menambah waswasan koding cara mengenkripsi dan dekripsi mengunakan PHP dan JQuery.
b. Belajar menganalisa keamanan informasi dengan
menggunakan metode stream cipher RC4. Manfaat Bagi Pembaca
a. Menjadi bahan belajar dan kajian yang dapat dikembangkan dikemudian hari.
b. Memberikan wawasan tentang keamanan jaringan dengan cara mengenkripsi dan dekripsi pada aplikasi berbasis web.
5. METODOLOGI PENELITIAN
Untuk mendukung penyelesaian penelitian ini digunakan beberapa metodologi, yaitu:
a. Studi Pustaka (Library Research)
Studi Pustaka dilakukan dengan cara mempelajari teori-teori literature dan buku-buku yang berhubungan dengan objek kajian sebagai dasar dalam penelitian ini, dengan tujuan
memperoleh dasar teoritis gambaran dari apa yang dilakukan. Teori yang dipelajari yaitu: teori stream cipher RC4, teori
b. Analisa Data
Selanjutnya akan dilakukan analisa data yang akan
dilakukan kerja sama dengan sekolah SMK untuk uji coba aplikasi, agar data lebih akurat. Analisa data bertujuan untuk
mengetahui variable-variabel apa yang dibutuhkan dalam aplikasi ASIAchat kedalam metode stream cipher RC4.
c. Perancangan
Berdasarkan anilisa data yang telah dilakukan dalam
selanjutnya dilakukan pemodelan data ke dalam algoritma RC4, teori stream cipher enkripsi dan dekripsi RC4. Perancangan
algoritma RC4 menggunakan flowchart. d. Implementasi
Hasil perancangan selanjutnya diimplementasikan dalam bentuk kode program.pada penelitian ini akan digunakan
bahasa pemrograman web menggunakan PHP dan JQuery. e. Pengujian
Akan dilakukan pengujian data untuk mengukur
keakuratan yang dihasilkan dari program yang telah dibuat. 6. LANDASAN TEORI
a. RC4 (Ron’s Code #4)
Scheiner [15], menyatakan bahwa RC4 adalah suatu variable kunci stream cipher yang dikembangakan pada tahun 1987
oleh Ron Rivest untuk RSA Data Security, Inc. selama tujuh tahun algoritma itu dirahasiakan karena adanya suatu perjanjian untuk menjaga kerahasiaanya. Pada bulan September 1994 seseorang telah
internet melalui situs-situs ftp di seluruh dunia. Kemudian RSA Data Security, Inc. mencoba menarik source code tersebut dengan
mengklaim source code tersebut masih merupakan rahasia dagang merekameskipun itu telah tersebar ke publik, tetapi itu sudah terlambat. Sejak itulah algoritma RC4 dibahas dan dibedah di usenet,
didistribusikan di konfersi dan diajarkan dikursus kriptografi. Dan RSA Data Security dan baru di publikasikan untuk umum pada tahun 1997.
Menurut Stallings[17], RC4 telah digunakan dalam untuk proteksi query dan hasil query berdasarkan pada beberapa hal,
yaitu:
1. Pengamanan transmisi database memerlukan suatu proses yang cepat, maka algoritma kriptografi simetris adalah solusi yang tepat. 2. RC4 merupakan algoritma stream cipher yang paling tepat
RC4 memiliki proses enkripsi yang cukup sederhana dan hanya melibatkan beberapa saja per byte-nya.
Menurut hasil pengujian, kecepatan algoritma kriptografi RC4 adalah 5380,035 Kbytes/detik pada pentiuml 33 memori 16 MB
pada windows 95. Kecepatan dalam testing ini adalah kecepatan enkripsi dimemori. Hasil testing didapat dengan enkripsi 256 byte per blok sebanyak 20480 kali, atau setara dengan kurang lebih 5 MB data.
Cara kerja algoritma RC4 yaitu inisialisasi S-Box pertama,
S[0],S[1],...,S[255], dengan bilangan 0 sampai 255. Pertama isi secara berurutan S [0] = 0, S[1] = 1,..., S[255] = 255. Kemudian inisialisasi array lain (S-Box lain), misal array K dengan panjang 256. Isi array K
dengan kunci yang diulangi sampai seluruh array K[0], K[1],...,K[255] terisi seluruhnya. Proses inisialisasi S-Box (Array S) for i = 0 to 255 S[i]
}
Setelah itu, buat pseudo random byte dengan langkah sebagai berikut:
i = ( i + 1 ) mod 256 j = ( j + S[i] ) mod 256 swap S[i] dan S[j]
t = (S[i] + S[j]) mod 256 K = S[t]
Gambar 1. Skema Kunci Asimetris Enkripsi Dekripsi
Plainteks
Plainteks Plainteks
c. Algoritma RC4
Algoritma RC4 adalah algoritma yang sangat sederhana
dan cukup mudah untuk menjelaskan, sebuah variable kunci yang panjangnya 1 sampai dengan 256 byte (8 sampai dengan 2.048 bit)
digunakan untuk menginisialisasi 256 byte larik S, dengan elemen S[0], S[1], …, S[255]. Setiap larik S berisi permutasi dari semua angka 8-bit mulai dari 0 sampai 255 untuk enkripsi dan dekripsi, sebuah byte
k dihasilkan dari larik S dengan memilih salah satu byte dari 255 byte secara sistematis. Karena setiap nilai k dihasilkan dari nilai larik S
yang dipermutasi.
Algoritma RC4 merupakan algoritma enkripsi stream
chipher dan symmetric key, dimana algoritma ini melakukan proses enkripsi dan dekripsi one byte at a time dan menggunakan kunci yang
key
key stream plaintext
chipertext
Gambar 2. Blok Diagram Algoritma RC4 1. Key Scheduling Algorithm (KSA)
2. Pseudo Random Generation Algorithm (PRGA)
Table sbox hasil key stream yang akan di XOR kan dengan plaintext untuk menghasilkan chiphertext. Proses untuk
menghasilkan key stream dilakukan proses permutasi pada tabel sbox berdasarkan nilai iterasi yang diambil secara random.
chrteks = substr9plaintext,n-1,1); ordchr = ord(chrteks);
d. RSA
RSA merupakan algoritma kriptografi asimetris. Ditemukan
pertama kali pada tahun 1977 oleh Ron Rivest, Adi Shamir, dan Leornad Adleman. Nama RSA sendiri dari inisial nama depan ketiga
penemunya tersebut. Sebagai algoritma kunci public, RSA mempunyai dua kunci, yaitu kunci public dan kunci pribadi. Kunci publik boleh diketahui siapa saja, dan digunakan untuk proses enkripsi. Sedangkan
kunci pribadi hanya pihak – pihak tertentu saja yang boleh pada saat ini seperti yang diuraikan M. Zaki Riyanto dan Ardhi Ardhian:
Keamanan sandi RSA terletak pada sulitnya memfaktorkan bilangan yang besar. Samapai saat ini RSA masih dipercaya dan
digunakan secara luas di internet (Kriptografi Kunci Publik: Sandi RSA, 2008).
sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n).
3. Hitung a = (p – 1) × (q – 1).
4. Pilih kunci e dengan 1< e < a dan e relatif prima terhadap a (gcd(e, a) = 1).
A Plainteks enkripsi Hasil dari algoritma di atas adalah:
1. Kunci publik adalah pasangan (e, n).
2. Kunci privat adalah pasangan (d, n).
Algoritma enkripsi dan dekripsi RSA adalah sebagai berikut: 1. Enkripsi:
a. Ambil kunci publik (e, n).
b. Nyatakan plaintext m menjadi blok – blok �1, �2, … , sedemikian
sehingga setiap blok merepresentasikan nilai di dalam selang [0, n –
1].
c. Setiap blok ��, dienkripsi menjadi blok �� dengan �� = �� � mod n.
Gambar 3. Skema Kunci Asimetris f. Algoritma RSA
Skema algoritma kunci publik Sandi RSA terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses
dekripsi. Sebelumnya diberikan terlebih dahulu beberapa konsep perhitungan matematis yang digunakan RSA (RSA and Public Key Criptography, 2003, hlm 61).
1. Tentukan p dan q bernilai dua bilangan Prima besar, acak dan dirahasiakan. p ≠ q, p dan q memiliki ukuran sama.
2. Hitung n = pq
Dan hitung ı(n) = (p-1)(q-1).
Bilangan integer n disebut (RSA) modulus.
3. Tentukan e bilangan Prima acak, yang memiliki syarat: 1 < e < ı(n)
GCD(e, ı(n)) = 1, disebut e relatif prima terhadap ı(n), Bilangan integer e disebut (RSA) enciphering exponent.
4. Memakai algoritma Euclid yang diperluas (Extended Eucledian
Algorithm). Menghitung bilangan khusus d, syarat 1 < d < ı(n) d ≡ e-1 mod ı(n)
ed ≡ 1 (mod ı(n))
ed ≡ 1 + k.ı(n) untuk nilai k integer.
Bilangan integer d disebut (RSA) deciphering exponent.
5. Nilai (n,e) adalah nilai yang boleh dipublikasi, nilai d, p, q, ı(n) adalah nilai yang harus dirahasiakan. Pasangan (n,e) merupakan kunci publik.
Pasangan (n,d) merupakan kunci rahasia. g. JQUERY
JQuery adalah library Javascript yang dibuat untuk
JQuery adalah javascript library yang cepat dan ringan untuk menangani dokumen HTML, menangani event, membuat animasi dan
interakasi ajax. JQuery diluncurkan pada tanggal 26 Januari 2006 di Barcamp NYC oleh John Resig dan berlisensi ganda di bawah MIT dan GPL.
Sekarang JQuery dikembangkan oleh team developer yang dipimpin oleh Dave Metvin. Dipakai oleh lebih dari 55% dari
10.000 website yang paling sering dikunjungi. Beberapa Fitur yang ada di JQuery :
1. Dalam Pemakaian menggunakan seleksi element DOM, sehingga
website lebih dinamis dan interaktif.
2. JQuery bisa memanipulasi Class pada CSS dan Support CSS 3.
3. Event.
4. AJAX.
5. Efek-efek dan animasi.
6. Ekstensi dan Plug-ins.
7. Kompatibilitas dengan hampir semua Browser modern.
8. Keperluan lain seperti : User Agent, Feature detection dan lainnya.
10.Kompatibilitas dengan hampir semua Browser modern.
11.Keperluan lain seperti : User Agent, Feature detection dan lainnya.
Sintaks JQuery biasanya dibuat untuk memilih elemen-elemen HTML
dan melakukan aksi terhadap elemen yang dipilih.Sintaks : $(selector).action()
Tanda dollar, untuk mendefinisikan JQuery
(selector), untuk menunjukkan elemen yang dipilih atau dituju
action(), adalah JQuery action yang akan dilakukan terhadap elemen
yang dipilih. Contoh :
$(this).hide() – menyembunyikan elemen saat ini
$("p").hide() – menyembunyikan semua paragraf atau konten dari tag <p>
$(".test").hide() – menyembunyikan elemen yang mempunya class="test"
$("#test").show() – menampilkan elemen yang mempunyai id="test"
JQuery mirip CSS dalam hal memilih elemen HTML. $("p") memilih semua elemen <p>
JQuery Attribute Selectors
JQuery mirip XPath dalam hal memilih elemen berdasarkan atribut yang ada. $("[href]") memilih semua elemen dengan atribut href. $
("[href='#']") memilih semua elemen dengan atribut href bernilai="#". $ ("[href!='#']") memilih semua elemen dengan atribut href dengan nilai bukan sama dengan "#". $("[href$='.jpg']") memilih semua elemen
dengan atribut href yang mengandung ".jpg".
7. ANALISIS DATA
Dalam penerapan algoritma RC4 ini dibutuhkan pengetahuan pengeriman teks JQuery mengenai stream cipher dan symmetric key untuk mengenkripsi dan dekripsi pada aplikasi chat Asia, sekaligus mengamankan
8. PEMBAHASAN
Pada dasarnya aplikasi ini memiliki fungsi utama untuk melakukan
enkripsi dan dekripsi data yang dikirimkan antara aplikasi client dan server, database dan juga sebaliknya. Enkripsi dilakukan untuk query dan hasil
query saja, dan algoritma yang digunakan adalah RC4. Software ini menerima inputan data berupa string dari user, kemudian dienkripsi oleh fungsi JQuery yang terdapat pada aplikasi client setelah terenkripsi kemudian
dikirimkan ke server database. Dan data yang ada di server database didekripsi oleh function procedure yang berada pada PHP. Hasil query akan
Gambar 5. Flowchart decrypt RC4
Dari hasil perancangan dan pembuatan program enkripsi database
pada aplikasi menggunakan algoritma RC4 Stream Chiper ini maka dapat disimpulkan:
1. Enkripsi RC4 Stream Chiper ini dapat diimplementasikan pada aplikasi dengan menggunakan bahasa pemrograman web PHP dan JQuery
dan database MySql.
3. Data yang diinput akan disimpan pada database dalam keadaan terenkripsi sehingga keamanan dan rahasia data dapat terjaga.
a. Gambaran rancangan aplikasi AsiaChat secara umum
Gambar 6. Bagan Aplikasi Secara Umum Serve
r PHP
Dat aba se
Client JQuer y
b. Flowchart (alur) AsiaChat
c. Desain aplikasi AsiaChat dibuat untuk sederhana dan semenarik mungkin untuk menarik pemakaian untuk digunakan
Gambar 8. Desain umum aplikasi AsiaChat 9. DAFTAR PUSTAKA
A.Mooduto, Hanriyawan dan Albar. Enkripsi Data Menggunakan Algoritma RC4. Jurnal Ilmiah R & B Volume 4. Padang. 2004.
Hendarsyah, Decky dan Retantyo Wardoyo. Implementasi Protokol Diffie-Hellman Dan Algoritma RC4 Untuk Keamanan Pesan SMS.
IJJCCS, Vol. 5.Januari. Yogyakarta.2011.
Ariyanto, Yuri. Algoritma RC4 Dalam Proteksi Transmisi Dan Hasil Query
Untuk ORDBMS Postgresql. Jurnal Informatika Vol. 10. Surabaya. 2009.
Haji, Hari Wahyu dan Slamet Mulyono. Implementasi RC4 Stream Chipher Untuk Keamanan Basis Data. Seminar Nasional Aplikasi Teknologi
Gunawan, Ingga Michael. Penggunaan Algoritma Diffie-Hellman Dalam Melakukan Pertukaran Kunci. Makalah IF2091 Struktur Diskrit.