Secara garis besar algoritma dari metode RC4 Stream Cipher ini terbagi menjadi dua bagian, yaitu Key Setup atau Key Schedulling Algorithm (KSA) dan Stream Generation atau Pseudo Random Generation Algorithm (PRGA) dan proses XOR dengan stream data.
Berikut ini proses bagian dari metode RC4 menurut Piansyah (2008).
1. Key Setup atau Key Schedulling Algorithm (KSA)
Pada bagian ini terdapat tiga tahapan proses di dalamnya yaitu:
a. Inisialisasi S-Box
Pada tahapan ini S-Box akan diisi dengan nilai sesuai indeksnya untuk mendapatkan S-Box awal. Algoritmanya adalah sebagai berikut :
- untuk i = 0 hingga i = 255 lakukan,
- isikan s dengan nilai i,
- tambahkan i dengan 1, kembali ke langkah 2. Dari algoritma tersebut akan didapat urutan nilai S-Box yang direpresentasikan dalam Gambar berikut
5 Contoh Hasil inisialisasi SBox dengan memasukkan data
urut pada setiap blok (Piansyah, 2008)
b. Menyimpan kunci dalam Key Byte Array
Pada tahapan ini, kunci (key) yang akan digunakan untuk mengenkripsi atau
dekripsi akan dimasukkan ke dalam array berukuran 256 secara berulang
sampai seluruh array terisi. Algoritmanya adalah sebagai berikut:
-isi j dengan 1,
- untuk i = 0 hingga i = 255 lakukan,
- jika j > panjang kunci maka,
- j diisi dengan nilai 1,
- akhir jika,
- isi k ke i dengan nilai ascii karakter kunci ke j,
- nilai j dinaikkan 1,
- tambahkan i dengan 1, kembali ke 2.
Dari algoritma tersebut akan didapatkan urutan array key misalkan sebagai
berikut untuk kunci dengan panjang 8 karakter dengan urutan karakter dalam
ASCII “109 97 104 98 98 97 104”.
Contoh Hasil penyimpanan kunci pada key byte array
(Piansyah, 2008)
c. Permutasi pada S-Box
Pada tahapan ini akan dibangkitkan sebuah nilai yang akan dijadikan aturan
untuk permutasi pada S-Box.
2. Stream Generation / Pseudo Random Generation Algorithm (PRGA)
Pada tahapan ini akan dihasilkan nilai pesuodorandom yang akan dikenakan
operasi XOR untuk menghasilkan ciphertext ataupun sebaliknya yaitu untuk
menghasilkan plaintext. Algoritmanya adalah sebagai berikut:
- isi indeks i dan j dengan nilai 0,
- untuk i=0 hingga i=panjang plaintext,
- isi nilai i dengan hasil operasi (i+1) mod 256,
- isi nilai j dengan hasil operasi (j+s(i)) mod 256,
- tukar nilai s(i) dan s(j),
- isi nilai t dengan hasil operasi (s(i)+(s(j) mod 256) )mod 256,
- isi nilai y dengan nilai s(t),
- nilai y dikenakan operasi XOR terhadap plaintext,
- tambahkan i dengan 1, kembali ke 2.
Dengan demikian akan dihasilkan ciphertext dengan hasil XOR antar sream
key dari S-Box dan plaintext secara berurutan.
demikian tulisan saya, semoga bermamfaat.
0 komentar:
Posting Komentar