Você está na página 1de 24

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

2014

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.
2. RUMUSAN MASALAH

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.
b. Membantu dan mempermudah mahasiswa, umum dan
memberi informasi secara cepat dari sesama.

dalam

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 teoriteori 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
mengenkripsi dan dekripsi, teori PHP dan JQuery, dan
sebagainya.

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 (Rons 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
mengirimkan source code RC4 ke milis Cypherpunks. Dengan source
code tersebut menyebar ke newgroup usenet yaitu sci.crypt dan

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
SSL/TLS (Secure Socket Layer/Transport Layer Security) yang
merupakan standar yang telah ditetapkan untuk komunikasi antara
web browser dan server. RC4 juga digunakan dalam protocol WEP
(wired Equivalent Privacy) dan yang lebih baru yaitu pada protocol
WiFi Protected Access (WPA).
b. KRIPTOGRAFI RC4
Algoritma kriptografi Rivest Code 4 (RC4) merupakan
salah saru algoritma kunci simetris yang dibuat oleh RSA Data
Security Inc (RSADSI). Dipilihnya RC4 sebagai metode kriptogragfi
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
dibandingkan dengan algoritma stream cipher yang lain untuk
masalah transmisi query database seperti ini. Hal ini dikarenakan

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]
= I Proses inisialisasi S-Box (Array K) Array Kunci // Array dengan
panjang kunci length. for i = 0 to 255 K[i] = Kunci[i mod length]
Kemudian lakukan langkah pengacakan S-Box dengan langkah
sebagai berikut:
i=0;j=0
for i = 0 to 255
{
j = (j + S[i] + K[i]) mod 256
swap S[i] dan S[j]

}
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]
Kunci

Plainteks

Kunci

Plainteks

Plainteks
Enkripsi

Dekripsi

Gambar 1. Skema Kunci Asimetris

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
sama. Algoritma RC4 terdiri atas 2 bagian yaitu Key Scheduling
Algorithm (KSA) dan Pseudo Random Generation Algorithm (PRGA).

key
KSA (K)
key stream
plaintext

PRGA (K)

chipertext
Gambar 2. Blok Diagram Algoritma RC4
xor
1. Key Scheduling Algorithm (KSA)
Proses KSA melakukan pemberian nilai inisialisasi pada
tabel sbox, key dan selanjutnya melakukan proses permutasi
sebanyak 256 iterasi
//Inisialisasi sbox dan key
Len_key = length(key_str)
For(i=0;i<=255;++){
Key_chr*=substr(key_str,(I mod len_key),1)
Key[i] = ord(key_chr)
Sbox[i] = i
}
//permutasi sbox
j=0
for(i=0;i<=255;i++){
j=(j+sbox[i]+key[i] mod 256
swap(sbox[i],sbox[i])
}
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.
i=0;j=0;
for(n=1;n<=streln(plaintext);n++){
i=(i+1) mod 256;
j=(j+sbox[i] mod 256;
swap(sbox[i],sbox[j])
keystream = sbox(sbox[i]+sbox[j])
mod 256]

chrteks = substr9plaintext,n-1,1);
ordchr = ord(chrteks);
cipher = ordchr xor keystream;
}

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).
e. KRIPTOGRAFI RSA
Algoritma kriptografi RSA terdiri dari algoritma enkripsi
RSA dan algoritma dekripsi RSA. Algoritma RSA adalah sebagai
berikut (Munir, 2006:181):
1. Pilih dua bilangan prima sembarang, p dan q.
2. Hitung n = p q (sebaiknya p q, karena jika p = q maka n = 2
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).
5. Bangkitkan kunci privat dengan menggunakan persamaan e d 1
(mod n).

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.

Kunci Publik

Kunci Rahasia

Kunci Asimetris
Plainteks Gambar 3. Skema
cipherteks
dekripsi
f.A Algoritma RSA enkripsi

Plainteks
B

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).
Algoritma Pembentukan Kunci:

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
memudahkan pembuatan website dengan HTML yang berjalan di sisi
Client, JQuery dirancang untuk memperingkas kode-kode javascript.

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.
9. Ekstensi dan Plug-ins.

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>
$("p.intro") memilih semua elemen <p> yang mempunyai class="intro".
$("p#demo") memilih elemen <p> yang mempunyai id="demo".

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
informasi pada aplikasi tersebut.

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
dibaca

oleh

aplikasi

client

dengan

cara

Query,

kemudian

setelah

mendapatkan didekrip oleh JQuery client pasangannya kemudian ditampilkan


ke user.

Gambar 4. Flowchart encrypt RC4

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.
2. Jumlah karakter asli (plaintext) yang berhasil dienkripsi sama dengan
jumlah karakter hasil enkripsi (chipertext).

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

XML terenkrip
Serve
r
PHP

Client
JQuer
y

Dat
aba
se

PC

Gambar 6. Bagan Aplikasi Secara Umum

b. Flowchart (alur) AsiaChat

Gambar 7. Flowchart (alur) AsiaChat

c. Desain aplikasi AsiaChat dibuat untuk sederhana dan semenarik


mungkin untuk menarik pemakaian untuk digunakan
WWW.ASIACHAT.COM

Menampilkan teks chattingan


yang dikirim

Menampilk
an namanama yang
sedang
online

Penginputan teks untuk dikirim


SEND

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 DiffieHellman 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
Informasi. Yogyakarta. 2012.

Gunawan, Ingga Michael. Penggunaan Algoritma Diffie-Hellman Dalam


Melakukan Pertukaran Kunci. Makalah IF2091 Struktur Diskrit.
Bandung. 2013.

Você também pode gostar