Algoritma RC4

RC4 adalah penyandian stream cipher yang dibuat oleh Ron Riverst pada tahun 1987 untuk pengamanan RSA. Algoritmanya didasarkan pada permutasi acak.

Kunci dengan panjang variable 1 – 256 bytes digunakan untuk inisialisasi sebuah state. Vector S dengan panjang 256 byte, dengan elemen S[0], S[1],…,S[255]. S terdiri dari permutasi semua bilangan 8 bit dari 0 – 255 untuk enkripsi atau deskripsi, sebuah byte K dibangkitkan dari S dengan memilih 1 dari 255 entri dengan cara sistematis. Setiap kali k dibangkitkan, entri-entri pada S sekali lagi dipermutasikan.

^ inisialisasi S

Entri – entri S di set dari 0 – 255 dengan urutan naik; S[0] = 0, S[1] = 1,….,S[255] = 255. vektor sementara T juga dibuat. Jika panjang kunci dari K =256 byte, lalu K di transper ke T. Jika tidak, untuk setiap kunci dengan panjang keylen byte, elemen keylen pertama T dicopykan dari K. Dan K diulang beberapa kali untuk mengisi T.

/* inisialisasi */

for i = 0 to 255

do S[i] = i;

T[i] = K [i % keylen];

lalu kita menggunakan T untuk menginisialisasi permutasi S. Dimulai dengan S[0] hingga S[255] dan untuk setiap S[i], tukar S[i] dengan byte lainnya pada S berdasarkan skema.

/* inisial permutasi */

j = 0;

for i = 0 to 255

do j = (j + S[i] + T[i] % 256 );

swap ( s[i], S[j] );

karena operasi pada S hanya pertukaran maka hanya terjadi permutasi dengan S tetap semua bilangan antara 0 – 255.

^ Pembangkitan Stream

Setelah S diinisialisasi, key input tidak lagi dipakai. Pembangkitan stream dimulai dengan S[0] – S[255] dan untuk setiap S[i], menukar S[i] dengan byte lainnyadalam S berdasarkan skema berikut. Setelah S[255] dicapai proses berlanjut, dimulai kembali dari S[0].

/* stream generation */

i,j = 0;

While (true)

i = ( i+1 ) % 256;

j = ( j + S[i]) % 256;

swap ( S[i], S[j] );

t = ( S[i], S[j] )% 256;

k= S[t];

untuk enkripsi, XOR nilai K dengan byte selanjutnnya pada plainteks. Untuk dekripsi, XOR nilai K denganbyte selanjutnya pada cipherteks.

diagram RC4

RC 4

6 Responses

  1. ehm…setau saya RC5 adalah pengembangan dari RC4
    bagian mana yang dikembangkan? dan bagaimana perbandingan tingkat kekuatan dari RC4 dengan RC5?

  2. RC6 merupakan finalis AES. perbedaan apa yang mendasar pada keduanya??? (maksudnya RC4 dan RC6, sehingga RC4 dibuat varian yang baru yaitu RC 5 dan RC 6)

  3. RC4 termasuk Cipher Aliran, sedangkan RC5 dan RC6 termasuk Cipher Blok,
    Cara kerjanya berbeda antara Cipher Aliran dan Cipher Blok..
    kedua algoritma itu punya kelebihan dan kelemahan…

  4. ada yang punya decodernya gag??

  5. yuuuuuuu

  6. not bad lahhhh….

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.