Tuesday 31 January 2012

Enkripsi RC4,Algoritma RC4

RC4 merupakan stream cipher yang didesain oleh Rivest untuk RSA Data Security
(sekarang RSA Security) pada 1987. RC4 menggunakan panjang variabel kunci dari
1 s.d 256 byte untuk menginisialisasi state table. State table digunakan untuk
pengurutan menghasilkan byte pseudo-random yang kemudian menjadi stream pseudo-random. 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.
Tahun 1995,Damien Doligez menjebolnya menggunakan 120 komputer Unix yang terhubung pada jaringan dalam waktu 8 hari. Dengan cara seperti ini (Brute Force Attack),dijamin bahwa dalam 15 hari kunci itu pasti ditemukan.
Algoritma RC4 memiliki dua fase,setup kunci dan pengenkripsian. Setup untuk
kunci adalah fase pertama dan yang paling sulit dalam algoritma ini. Dalam setup
N-bit kunci (N merupakan panjang dari kunci),kunci enkripsi digunakan untuk
menghasilkan variabel enkripsi yang menggunakan dua buah array,state dan kunci,
dan sejumlah-N 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.
Dahulu,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 akan dijelaskan dengan
menggunakan empat-bit kunci,agar terlihat sederhana.
Buat array state Si berukuran 4 byte,yang memiliki nilai 0 sampai dengan 3
Si =0123
S0S1S2S3
Buat array kunci Ki berukuran 4 byte,yang memiliki nilai pengulangan dari
kunci untuk memuat keseluruhan isi array. (sebagai contoh 1 dan 7)
Ki =1717
 K0K1K2K3
Untuk operasi penggabungan akan digunakan variabel i dan f untuk meng-index
array Si dan Ki . Pertama inisialisasikan i dan f dengan nilai 0. operasi penggabungan
merupakan iterasi dari formula ( f + Si + Ki ) mod 4 diikuti penggantian(swap)
nilai Si dan Sf.
Iterasi pertama
for i = 0( 0+ 0+ 1) mod 4 = 1 = f
 fS0K0 
Swap S0 dengan S1
Si =1023
 S0S1S2S3
Iterasi kedua
for i = 1( 1+ 0+ 7) mod 4 = 0 = f
 fS1K1 

Swap S1 dengan S0

Si =0123
 S0S1S2S3
Iterasi ketiga
for i = 2( 0+ 2+ 1) mod 4 = 3 = f
 fS2K2 
Swap S2 dengan S3
Si =0132
 S0S1S2S3
Iterasi keempat
for i = 3( 3+ 0+ 7) mod 4 = 2= f
 fS3K3 
Swap S3 dengan S2
Si =0123
 S0S1S2S3
Tentukan nilai byte acak untuk enkripsi. Inisialisasi ulang i dan f menjadi
0,set i menjadi (i + 1) mod 4 dan set f menjadi (f + Si) mod 4. Lalu swap Si
dan Sf.
Set t menjadi (Si + Sf) mod 4,nilai acak untuk enkripsi adalah St
( 0+ 1) mod 4 = 1 = i
i 
( 0+ 2) mod 4 = 2 = f
fSi
Swap S1 dengan S2
Si =1023
 S0S1S2S3
t = 3( 0+ 2) mod 4 = 2= f
 S1S2 
S2 = 2
Dua (nilai biner = 00000010),variabel enkripsi ini lalu di XOR-kan dengan
plain text untuk menghasilkan ciphertext. Sebagai contoh akan digunakan pesan
“HI”.
 HI
 0 1 0 0 1 0 0 00 1 0 0 1 0 0 1
XOR0 0 0 0 0 0 1 00 0 0 0 0 0 1 0
 0 1 0 0 1 0 1 00 1 0 0 1 0 1 1

1 comment:

  1. kalau cara menonaktifkan situs yang suda terenkripsi bagaimana kk ?
    tks atas infonya dan mohon di tanggapi.

    ReplyDelete