JURNAL KEAMANAN KOMPUTER APLIKASI ENKRIP
JURNAL KEAMANAN KOMPUTER
APLIKASI ENKRIPSI - DEKRIPSI TEKS DENGAN
ALGORITMA RC4 MENGGUNAKAN PHP MY ADMIN
DISUSUN OLEH :
TRI ANGGI SETIAWAN (1412120243)
2012 B PAGI
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PGRI RONGGOLAWE TUBAN
2016
BAB I
PENDAHULUAN
1.1 LatarBelakang
Kerahasiaan dan keamanan saat melakukan pertukaran data adalah hal yang
sangat penting dalam komunikasi data, baik untuk tujuan keamanan bersama,
maupun untuk privasi individu. Mereka yang menginginkan agar datanya tidak
diketahui oleh pihak-pihak yang tidak berkepentingan selalu berusaha menyiasati
cara mengamankan informasi yang akan dikomunikasikannya. Perlindungan
terhadap kerahasiaan datapun meningkat, salah satu caranya dengan penyandian
data atau enkripsi.
Metode yang umumnya digunakan dalam pengamanan situs dari akses klien
yang tidak terotentikasi adalah dengan sistem password, yaitu suatu cara dimana
klien yang ingin mengakses halaman sebuah situs diminta memasukkan username
dan password yang sah atau sudah disetujui oleh server. Sistem ini sudah
dianggap cukup aman sehingga banyak diterapkan di berbagai situs. Namun,
dalam sistem ini terdapat suatu celah yang bisa disusupi serangan oleh pihak
ketiga, yaitu ketika user mengirimkan username dan password miliknya ke
server dengan method POST yang digunakan. Hal ini bisa dimanfaatkan oleh
pihak ketiga tersebut dengan melakukan eavesdropping (penyadapan) terhadap
username dan password yang dikirimkan. Contoh situs yang menggunakan sistem
ini antara lain situs-situs surat elektronik seperti Yahoo!, Gmail atau situs surat
elektronik lainnya.
Seperti disebutkan sebelumnya, penggunaan enkripsi bisa mencegah pencurian
data oleh pihak luar. Algoritma enkripsi sendiri terdiri dari cipher blok dan
cipher aliran. Cipher aliran memiliki keuntungan dibanding cipher blok dilihat
dari sisi kompleksitas dan kecepatan komputasinya karena hanya bergantung dari
algoritma yang digunakan. Selain itu, cipher aliran memiliki perambatan
kesalahan yang kecil. Berdasarkan kunci yang digunakan, algoritma enkripsi
terbagi menjadi algoritma kunci simetri dan kunci asimetri yang juga dikenal
sebagai kunci publik. Salah satu algoritma kunci simetri yang dikenal adalah RC4.
Algoritma ini merupakan salah satu algoritma cipher aliran. RC4 terkenal dengan
kecepatan prosesnya.
Menurut hasil pengetesan kecepatan algoritma kriptografi RC4
adalah
5380,035 Kbytes/detik pada Pentium133 memori 16 MB pada Windows 95.
Hasil pengetesan didapat dengan enkripsi 256 byte per blok sebanyak 20480
kali, atau
setara dengan kurang lebih 5 MB data. Sebagai perbandingan, hasil
pengetesan dengan algoritma Blowfish pada jenis komputer yang sama yaitu
2300 KByte/detik pada 8 byte per blok.
1.2 RumusanMasalah
Dari latar belakang yang telah diuraikan maka dapat dirumuskan permasalahan
pada makalah ini, yaitu bagaimana mengimplementasikan algoritma RC4 pada
sebuah file web khususnya php.
1.3 Tujuan Penulisan
Dari permasalahan yang ada pada rumusan masalah maka makalah ini bertujuan:
1. Mengenalkan algoritma kriptografi RC4.
2. Mempelajari cara untuk melakukan penggunaan algoritma kriptografi RC4.
1.4 Batasan Masalah
Makalah ini menetapkan batasan masalah, yaitu source code ini hanya
melakukan
enkripsi
dan
dekripsi
terhadap
data.
BAB II
LANDASAN TEORI
2.1 Deskripsi Algoritma RC4
Algoritma kriptografi Rivest Code 4 (RC4) merupakan salah satu algoritma kunci
simetris dibuat oleh RSA Data Security Inc (RSADSI) yang berbentuk stream
chipper. Algoritma ini ditemukan pada tahun 1987 oleh Ronald Rivest dan
menjadi simbol keamanan RSA(merupakan singkatan dari tiga nama penemu:
Rivest Shamir Adleman). RC4 menggunakan panjang kunci dari 1 sampai 256
byte yang digunakan untuk menginisialisasikan tabel sepanjang 256 byte. Tabel
ini digunakan untuk generasi yang berikut dari pseudo random yang
menggunakan XOR dengan plainteks untuk menghasilkan cipherteks. Masingmasing
elemen
dalam
tabel
saling
ditukarkan
minimal
sekali.
RC4 merupakan merupakan salah satu jenis stream cipher, yaitu memproses unit
atau input data pada satu saat. Dengan cara ini enkripsi atau dekripsi dapat
dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu
sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan
untuk mengenkrip. Metode enkripsi RC4 sangat cepat kurang lebih 10 kali lebih
cepat
dari
DES.
RC4 menggunakan panjang variabel kunci dari 1 s.d 256 byte untuk
menginisialisasi
state
tabel.
State
table
digunakan
untuk
pengurutan
menghasilkan byte pseudo-random yang kemudian menjadi stream pseudorandom. Setelah di-XOR dengan plaintext sehingga didapatkan ciphertext. Tiap
elemen pada state table di swap sedikitnya sekali. Kunci RC4 sering dibatasi
sampai 40 bit, tetapi dimungkinkan untuk mengunakan kunci 128 bit. RC4
memiliki kemampuan penggunaan kunci antara 1 sampai 2048 bit. Panjang kunci
merupakan faktor utama dalam sekuritas data. RC4 dapat memiliki kunci sampai
dengan 128 bit. Protokol keamanan SSL (Secure Socket Layer) pada Netscape
Navigator menggunakan algoritma RC4 40-bit untuk enkripsi simetrisnya.
Algoritma RC4 memiliki dua fase, setup kunci dan pengenkripsian. Setup untuk
kunci adalah fase pertama dan yang paling sulit dalam algoritma ini. Dalam setup
S-bit kunci (S merupakan panjang dari kunci), kunci enkripsi digunakan untuk
menghasilkan variabel enkripsi yang menggunakan dua buah array, state dan
kunci, dan sejumlah-S hasil dari operasi penggabungan. Operasi penggabungan
ini terdiri dari pemindahan (swapping) byte, operasi modulo, dan rumus lain.
Operasi modulo merupakan proses yang menghasilkan nilai sisa dari satu
pembagian. Sebagai contoh, 11 dibagi 4 adalah 2 dengan sisa pembagian 3,
begitu juga jika tujuh modulo empat maka akan dihasilkan nilai tiga. Variabel
enkripsi dihasikan dari setup kunci dimana kunci akan di XOR-kan dengan plain
text untuk menghasilkan teks yang sudah terenkripsi. XOR merupakan operasi
logik yang membandingkan dua bit biner. Jika bernilai beda maka akan dihasilkan
nilai 1. Jika kedua bit sama maka hasilnya adalah 0. Kemudian penerima pesan
akan mendekripnya dngan meng XOR-kan kembali dengan kunci yang sama agar
dihasilkan pesan dari plain text tersebut. Untuk menunjukan cara kerja dari
algoritma RC4, berikut dapat dilihat pada blok di bawah :
RC4 menggunakan dua buah kotak substitusi (S-Box) array 256 byte yang berisi
permutasi dari bilangan 0 sampai 255 dan S-Box kedua yang berisi permutasi
fungsi
dari
kunci
dengan
panjang
yang
variabel.
Cara kerja algoritma RC4 yaitu inisialisasi Sbox 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. Kenudian
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 r = 0 to 255 S[r] = r
Proses inisialisasi S-Box(Array K)
Array Kunci // panjang kunci”length”.
for i = 0 to 255
K[i] = Kunci[i mod length]
Kemudian lakukan langkah pengacakan S-Box dengan langkah sebagai berikut :
j =0
For i = 0 to 255
j = (j + S[i] + K[i]) mod 256
isi S[i] dan isi S[j] ditukar
BAB III
IMPLEMENTASI DAN PENGUJIAN
3.1 Proses Enkripsi dengan Algoritma RC4
a. Buat proses enkripsi php dengan nama file : enkripsirc4.php
function setupkey(){ /*proses pengacakan kunci SBox*/
echo "
";
$kce = $_POST["katakunci"];
$key=array();
for($i=0;$i {
$key[$i]=ord($kce[$i]); /*rubah ASCII ke desimal*/
}
global $m;
$m=array();
/*buat encrypt*/
for($i=0;$i
3.2.Proses Dekripsi dengan Algoritma RC4
a. Buat file untuk melakukan proses dekripsi, beri nama file : dekripsi.php
function setupkey(){
$kcd = $_POST["katakunci2"];
//echo "
";
for($i=0;$i $key[$i]=ord($kcd[$i]); /*rubah ASCII ke desimal*/
}
global $mm;
$mm=array();
/*buat decrypt*/
for($i=0;$i
Pesan hasil dekripsi :
3.3. Tampilan hasil penginputan
Gambar 1.1 : inputan awal
Gambar 1.2 : hasil enkripsi
Gambar 1.3: hasil dekripsi
BAB IV
KESIMPULAN
Proses enkripsi maupun dekripsi pada pengujian berhasil dilakukan. Sampai saat
ini tidak ada yang dapat memecahkan RC4 sehinggat dapat dikatakan sangat kuat.
Terdapat laporan versi kunci 40 bit dapat dipecahkan secara brute force.
Kelemahan: Padding dapat menyebabkan kemungkinan nilai-nilai di dalam larik S
ada yang sama. RC4 juga mudah diserang dengan known-plaintext attack, dengan
cara meng-XOR-kan dua set byte cipherteks (kelemahan umum pada cipheraliran)
DAFTAR PUSTAKA
http://elib.unikom.ac.id/files/disk1/304/jbptunikompp-gdl-agusyogain-15189-315.bab-i.pdf
http://www.informatika.org/~rinaldi/TA/Makalah_TA%20Yudi%20Haribowo.pdf
http://www.informatika.org/~rinaldi/TA/Makalah_TA%20Firda%20Fauzan.pdf
http://www.rimbaraya.net/ebook/view.php?
file=Jaringan/NetworkSecurity/Prakt+Modul+9+Sym+Kriptografi.pdf
APLIKASI ENKRIPSI - DEKRIPSI TEKS DENGAN
ALGORITMA RC4 MENGGUNAKAN PHP MY ADMIN
DISUSUN OLEH :
TRI ANGGI SETIAWAN (1412120243)
2012 B PAGI
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PGRI RONGGOLAWE TUBAN
2016
BAB I
PENDAHULUAN
1.1 LatarBelakang
Kerahasiaan dan keamanan saat melakukan pertukaran data adalah hal yang
sangat penting dalam komunikasi data, baik untuk tujuan keamanan bersama,
maupun untuk privasi individu. Mereka yang menginginkan agar datanya tidak
diketahui oleh pihak-pihak yang tidak berkepentingan selalu berusaha menyiasati
cara mengamankan informasi yang akan dikomunikasikannya. Perlindungan
terhadap kerahasiaan datapun meningkat, salah satu caranya dengan penyandian
data atau enkripsi.
Metode yang umumnya digunakan dalam pengamanan situs dari akses klien
yang tidak terotentikasi adalah dengan sistem password, yaitu suatu cara dimana
klien yang ingin mengakses halaman sebuah situs diminta memasukkan username
dan password yang sah atau sudah disetujui oleh server. Sistem ini sudah
dianggap cukup aman sehingga banyak diterapkan di berbagai situs. Namun,
dalam sistem ini terdapat suatu celah yang bisa disusupi serangan oleh pihak
ketiga, yaitu ketika user mengirimkan username dan password miliknya ke
server dengan method POST yang digunakan. Hal ini bisa dimanfaatkan oleh
pihak ketiga tersebut dengan melakukan eavesdropping (penyadapan) terhadap
username dan password yang dikirimkan. Contoh situs yang menggunakan sistem
ini antara lain situs-situs surat elektronik seperti Yahoo!, Gmail atau situs surat
elektronik lainnya.
Seperti disebutkan sebelumnya, penggunaan enkripsi bisa mencegah pencurian
data oleh pihak luar. Algoritma enkripsi sendiri terdiri dari cipher blok dan
cipher aliran. Cipher aliran memiliki keuntungan dibanding cipher blok dilihat
dari sisi kompleksitas dan kecepatan komputasinya karena hanya bergantung dari
algoritma yang digunakan. Selain itu, cipher aliran memiliki perambatan
kesalahan yang kecil. Berdasarkan kunci yang digunakan, algoritma enkripsi
terbagi menjadi algoritma kunci simetri dan kunci asimetri yang juga dikenal
sebagai kunci publik. Salah satu algoritma kunci simetri yang dikenal adalah RC4.
Algoritma ini merupakan salah satu algoritma cipher aliran. RC4 terkenal dengan
kecepatan prosesnya.
Menurut hasil pengetesan kecepatan algoritma kriptografi RC4
adalah
5380,035 Kbytes/detik pada Pentium133 memori 16 MB pada Windows 95.
Hasil pengetesan didapat dengan enkripsi 256 byte per blok sebanyak 20480
kali, atau
setara dengan kurang lebih 5 MB data. Sebagai perbandingan, hasil
pengetesan dengan algoritma Blowfish pada jenis komputer yang sama yaitu
2300 KByte/detik pada 8 byte per blok.
1.2 RumusanMasalah
Dari latar belakang yang telah diuraikan maka dapat dirumuskan permasalahan
pada makalah ini, yaitu bagaimana mengimplementasikan algoritma RC4 pada
sebuah file web khususnya php.
1.3 Tujuan Penulisan
Dari permasalahan yang ada pada rumusan masalah maka makalah ini bertujuan:
1. Mengenalkan algoritma kriptografi RC4.
2. Mempelajari cara untuk melakukan penggunaan algoritma kriptografi RC4.
1.4 Batasan Masalah
Makalah ini menetapkan batasan masalah, yaitu source code ini hanya
melakukan
enkripsi
dan
dekripsi
terhadap
data.
BAB II
LANDASAN TEORI
2.1 Deskripsi Algoritma RC4
Algoritma kriptografi Rivest Code 4 (RC4) merupakan salah satu algoritma kunci
simetris dibuat oleh RSA Data Security Inc (RSADSI) yang berbentuk stream
chipper. Algoritma ini ditemukan pada tahun 1987 oleh Ronald Rivest dan
menjadi simbol keamanan RSA(merupakan singkatan dari tiga nama penemu:
Rivest Shamir Adleman). RC4 menggunakan panjang kunci dari 1 sampai 256
byte yang digunakan untuk menginisialisasikan tabel sepanjang 256 byte. Tabel
ini digunakan untuk generasi yang berikut dari pseudo random yang
menggunakan XOR dengan plainteks untuk menghasilkan cipherteks. Masingmasing
elemen
dalam
tabel
saling
ditukarkan
minimal
sekali.
RC4 merupakan merupakan salah satu jenis stream cipher, yaitu memproses unit
atau input data pada satu saat. Dengan cara ini enkripsi atau dekripsi dapat
dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu
sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan
untuk mengenkrip. Metode enkripsi RC4 sangat cepat kurang lebih 10 kali lebih
cepat
dari
DES.
RC4 menggunakan panjang variabel kunci dari 1 s.d 256 byte untuk
menginisialisasi
state
tabel.
State
table
digunakan
untuk
pengurutan
menghasilkan byte pseudo-random yang kemudian menjadi stream pseudorandom. Setelah di-XOR dengan plaintext sehingga didapatkan ciphertext. Tiap
elemen pada state table di swap sedikitnya sekali. Kunci RC4 sering dibatasi
sampai 40 bit, tetapi dimungkinkan untuk mengunakan kunci 128 bit. RC4
memiliki kemampuan penggunaan kunci antara 1 sampai 2048 bit. Panjang kunci
merupakan faktor utama dalam sekuritas data. RC4 dapat memiliki kunci sampai
dengan 128 bit. Protokol keamanan SSL (Secure Socket Layer) pada Netscape
Navigator menggunakan algoritma RC4 40-bit untuk enkripsi simetrisnya.
Algoritma RC4 memiliki dua fase, setup kunci dan pengenkripsian. Setup untuk
kunci adalah fase pertama dan yang paling sulit dalam algoritma ini. Dalam setup
S-bit kunci (S merupakan panjang dari kunci), kunci enkripsi digunakan untuk
menghasilkan variabel enkripsi yang menggunakan dua buah array, state dan
kunci, dan sejumlah-S hasil dari operasi penggabungan. Operasi penggabungan
ini terdiri dari pemindahan (swapping) byte, operasi modulo, dan rumus lain.
Operasi modulo merupakan proses yang menghasilkan nilai sisa dari satu
pembagian. Sebagai contoh, 11 dibagi 4 adalah 2 dengan sisa pembagian 3,
begitu juga jika tujuh modulo empat maka akan dihasilkan nilai tiga. Variabel
enkripsi dihasikan dari setup kunci dimana kunci akan di XOR-kan dengan plain
text untuk menghasilkan teks yang sudah terenkripsi. XOR merupakan operasi
logik yang membandingkan dua bit biner. Jika bernilai beda maka akan dihasilkan
nilai 1. Jika kedua bit sama maka hasilnya adalah 0. Kemudian penerima pesan
akan mendekripnya dngan meng XOR-kan kembali dengan kunci yang sama agar
dihasilkan pesan dari plain text tersebut. Untuk menunjukan cara kerja dari
algoritma RC4, berikut dapat dilihat pada blok di bawah :
RC4 menggunakan dua buah kotak substitusi (S-Box) array 256 byte yang berisi
permutasi dari bilangan 0 sampai 255 dan S-Box kedua yang berisi permutasi
fungsi
dari
kunci
dengan
panjang
yang
variabel.
Cara kerja algoritma RC4 yaitu inisialisasi Sbox 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. Kenudian
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 r = 0 to 255 S[r] = r
Proses inisialisasi S-Box(Array K)
Array Kunci // panjang kunci”length”.
for i = 0 to 255
K[i] = Kunci[i mod length]
Kemudian lakukan langkah pengacakan S-Box dengan langkah sebagai berikut :
j =0
For i = 0 to 255
j = (j + S[i] + K[i]) mod 256
isi S[i] dan isi S[j] ditukar
BAB III
IMPLEMENTASI DAN PENGUJIAN
3.1 Proses Enkripsi dengan Algoritma RC4
a. Buat proses enkripsi php dengan nama file : enkripsirc4.php
function setupkey(){ /*proses pengacakan kunci SBox*/
echo "
";
$kce = $_POST["katakunci"];
$key=array();
for($i=0;$i {
$key[$i]=ord($kce[$i]); /*rubah ASCII ke desimal*/
}
global $m;
$m=array();
/*buat encrypt*/
for($i=0;$i
3.2.Proses Dekripsi dengan Algoritma RC4
a. Buat file untuk melakukan proses dekripsi, beri nama file : dekripsi.php
function setupkey(){
$kcd = $_POST["katakunci2"];
//echo "
";
for($i=0;$i $key[$i]=ord($kcd[$i]); /*rubah ASCII ke desimal*/
}
global $mm;
$mm=array();
/*buat decrypt*/
for($i=0;$i
Pesan hasil dekripsi :
3.3. Tampilan hasil penginputan
Gambar 1.1 : inputan awal
Gambar 1.2 : hasil enkripsi
Gambar 1.3: hasil dekripsi
BAB IV
KESIMPULAN
Proses enkripsi maupun dekripsi pada pengujian berhasil dilakukan. Sampai saat
ini tidak ada yang dapat memecahkan RC4 sehinggat dapat dikatakan sangat kuat.
Terdapat laporan versi kunci 40 bit dapat dipecahkan secara brute force.
Kelemahan: Padding dapat menyebabkan kemungkinan nilai-nilai di dalam larik S
ada yang sama. RC4 juga mudah diserang dengan known-plaintext attack, dengan
cara meng-XOR-kan dua set byte cipherteks (kelemahan umum pada cipheraliran)
DAFTAR PUSTAKA
http://elib.unikom.ac.id/files/disk1/304/jbptunikompp-gdl-agusyogain-15189-315.bab-i.pdf
http://www.informatika.org/~rinaldi/TA/Makalah_TA%20Yudi%20Haribowo.pdf
http://www.informatika.org/~rinaldi/TA/Makalah_TA%20Firda%20Fauzan.pdf
http://www.rimbaraya.net/ebook/view.php?
file=Jaringan/NetworkSecurity/Prakt+Modul+9+Sym+Kriptografi.pdf