RC4 yang juga dikenal dengan ARCFOUR (Alleged RC4) adalah algoritma stream cipher yang paling banyak digunakan. RC4 juga digunakan dalam protokol yang populer seperti SSL (Secure Sockets Layer) yang digunakanuntuk melindungi lalu lintas internet dan WEP yang digunakan untuk mengamankan jaringan wireless.

Sejarah RC4

sunting

RC4 didesain oleh Ron Rivest yang berasal dari RSASecurity pada tahun 1987. RC sendiri mempunyaisingkatan resmi yaitu "Rivest Chiper", namun jugadikenal sebagai “Ron’s Code” RC4 sebenarnyadirahasiakan dan tidak dipublikasikan kepada khalayakramai, namun ternyata ada orang yang tidak dikenalmenyebarkan RC4 ke mailing list "Cypherpunks"' .Kemudian berita ini dengan cepat diposkan ke sci.crypt

newsgroup, dan dari newsgroup ini kemudian menyebarluas di internet. Kode yang dibocorkan tersebut dipastikankeasliannya karena output yang dikeluarkansama dengansoftware-software yang menggunakan RC4 yangberlisensi. Nama RC4 sudah dipatenkan, sehingga RC4sering disebut juga ARCFOUR atau ARC4 (Alleged RC4)untuk menghindari masalah pematenan. RSA Securitytidak pernah secara resmi merilis algoritma tersebut,

namun Rivest secara pribadilah yang merilisnya tersebutdengan menhubunkan Wikipedia Inggris ke catatan-catatan yang ia punya. RC4 telah menjadi bagian dariprotokol enkripsi yang standard dan sering digunakan,termasuk WEP dan WPA untuk wireless card, serta TLS.Faktor utama yang menjadi kesuksesan dari RC4 adalahkecepatannya dan kesederhanaannya dalam menanganibanyak applikasi, sehingga mudah untuk mengembangkanimplementasi yang effisien ke software dan hardware.

Implementasi dari Algoritma RC4

sunting

Banyak stream cipher dibuat berdasarkan LinearFeedback Shift Registers (LFSRs) yang efisien diperangkat keras namun kurang efisien dalam perangkatlunak. Desain dari RC4 menghindari penggunaan LFSRs,dan algoritma ini ideal untuk implementasi perangkatlunak karena hanya menggunakan manipulasi byte.Algoritma ini menggunakan 256 byte memori untukkunci, yaitu key[0] sampai key[k-1], dan variabel integer i, j, dan y. Reduksi modular dari beberapa nilai modulo256 dapat dilakukan dengan sebuah bitwise AND dengan 255 (yang ekuivalen untuk mengambil byte dengan orderendah dari nilai di pertanyaan).Berikut ini adalah implementasinya dalam bahasa C.

unsignedcharS[256]; unsignedinti,j; voidswap(unsignedchar*s,unsignedinti,unsignedintj){

   unsignedchartemp =s[i];
   s[i]=s[j];
   s[j]=temp;}

/* KSA */ voidrc4_init(unsignedchar*key, unsignedintkey_length){

for(i =0;i <256;i++)
S[i]=i; for(i =j =0;i <256;i++){
j =(j +key[i %key_length]+S[i])&255; 

swap(S,i,j); } i =j =0;}

/* PRGA */ unsignedcharrc4_output(){

i =(i +1)&255;
j =(j +S[i])&255; 
swap(S,i,j); 
returnS[(S[i]+S[j])&255];

}

  1. include <stdio.h>

intmain(){

intk,output_length;
unsignedcharkey[]="Secret";

// key hardcoded to "Secret"

output_length =10; // number of bytes of output desired

rc4_init(key,6); // length of key is 6 in this case k =0;

while(k <output_length){ printf("%c",rc4_output()); 
k++;
}}

Keamanan

sunting

Tidak seperti stream cipher modern, RC4 tidakmengambil nonce yang terpisah bersamaan dengan kunci.Hal ini berarti jika kunci single long-term digunakanuntuk mengenkripsi beberapa stream, kriptosistemnyaharus menentukan bagaimana cara mengombinasikan nonce tersebut dan kunci long-term untuk menghasilkankunci stream untuk RC4. Sebuah pendekatan untukmenangani hal tersebut adalah dengan membuat sebuahkunci RC4 dengan menggunakan fungsi hash. Enkripsidengan menggunakan RC4 dapat diterobos dan rentanterhadap bit-flipping attack. Untuk menanggulangi hal ini,skema enkripsi harus dikombinasikan dengan messageauthentication code yangkuat.

Pada tahun 2001 Fluhrer, Martin, dan Shamirmembuat suatu penemuan yang mengejutkan. Dari semuakemungkinan kunci RC4, statistik untuk beberapa byteyang pertama dari keluaran keystream sangat tidakrandom, dan membocorkan informasi untuk kunci ini. Jikakunci long-term dikonkat dengan nonce untukmenghasilkan kunci RC4, kunci long-term ini dapat ditemukan dengan menganalisis sejumlah besar pesanyang dienkripsi dengan kunci ini. Efek ini dugunakanuntuk menerobos enkripsi WEP dengan jaringan wireless802.11. Hal ini menyebabkan perebutan untuk penggantistandard WEP.

Pada tahun 2005, Andreas Klein mempresentasikansebuah analisis terhadap RC4 stream cipher yangmenunjukan lebih banyak korelasi antara keystream RC4dan kunci tersebut. Erik Tews, Ralf-Philip Weinmann, danAndrei Pychkine menggunakan analisis ini untukmembuat aircrack-ptw, yaitu sebuah perangkat untukmemecahkan 104-bit RC4 yang digunakan di 128-bitWEP dalam waktu 1 menit.

Referensi

sunting

[1]docsdrive.com/pdfs/ansinet/itj/2005/307-325.pdf,11 Desember2010.

[2]http://en.wiki-indonesia.club/wiki/RC411 Desember 2010.

[3]http://en.wiki-indonesia.club/wiki/Cryptography11 Desember 2010.

[4]Munir,Rinaldi, “Matematika Diskret Edisi Keempat”, InstitutTeknologi Bandung, 2006.

[5]http://wiki-indonesia.club/wiki/Kriptografi11 Desember 2010.

[6]http://kriptologi.wordpress.com/14 Desember 2010