• Tulisan Sederhana

    Weblog ini memuat tulisan-tulisan sederhana dan ringkas. Sengaja saya tulis beberapa yang mungkin dapat menambah pengetahuan. Memang dari tulisan saya ini masih terdapat banyak kekurangan, untuk itu mohon dimaklumi karena saya masih belajar. Untuk semua pembaca dimohon dengan sangat untuk mengomentari tulisan yang saya buat untuk perbaikan kedepannya. Atas semua komentar (kritik, saran, dan sebagainya) saya mengucapkan banyak terima kasih. za
  • Arsip Tersimpan

  • Top Ten

  • Terbaru Nih

  • Paling Banyak Dibaca

    • None

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