Anda di halaman 1dari 6

Nama : Derik Deriansyah

NPM : 432007006170094
Kelas : B / Tingkat 4

TUGAS KRIPTOGRAFI : ALGORITMA RC 4

Mode 4 Bit
Plainteks : ERIK
Plainteks dalam biner : 01000101 01010010 01001001 01001011
Kunci : abc
Kunci dalam ASCII : 97 98 99

Inisialisasi S-BOX dan array kunci

Array S
Indeks 0 1 2 3

S 0 1 2 3

Array K

Indeks 0 1 2 3

K 97 98 99 97

Permutasi Array S
Karena 4 byte maka prosesnya yaitu : j =
0 for i = 0 to 3 j = (j +
s(i) + k(i) mod 4

Tukar isi S[i] dengan S[j]


Dengan algoritma tersebut maka nilai i = j = 0 sampai i = 3 didapatkan array s berikut :
1. Iterasi pertama untuk i = 0 j
= (j + s(i) + k(i)) mod 4 j =
(0 + s(0) + k(0)) mod 4 j =
(0 + 0 + 97) mod 4 j = 97
mod 4
j=1
Isi array awal
Indexs 0 1 2 3

S 0 1 2 3

Maka penukaran isi array S(0) dan S(1) sehingga array S berbentuk

Indexs 0 1 2 3

S 1 0 2 3

2. Iterasi kedua untuk i = 1 dan j = 1 ( nilai j = hasil iterasi pertama).


j = (j + s(i) + k(i)) mod 4 j
= (1 + s(1) + k(1)) mod 4
j = (1 + 0 + 98) mod 4 j =
99 mod 4 j = 3

Isi array awal

Indexs 0 1 2 3

S 1 0 2 3

Maka penukaran isi array S(1) dan S(3) sehingga array S berbentuk

Indexs 0 1 2 3

S 1 3 2 0
3. Iterasi ketiga untuk i = 2 dan j = 3 ( nilai j = hasil iterasi kedua).
j = (j + s(i) + k(i)) mod 4 j
= (3 + s(2) + k(2)) mod 4
j = (3 + 2 + 99) mod 4
j = 104 mod 4 j
=0
Isi array awal

Indexs 0 1 2 3
S 1 3 2 0

Maka penukaran isi array S(2) dan S(0) sehingga array S berbentuk

Indexs 0 1 2 3

S 2 3 1 0

4. Iterasi keempat untuk i = 3 dan j = 0 ( nilai j = hasil iterasi ketiga).


j = (j + s(i) + k(i)) mod 4 j
= (0 + s(3) + k(3)) mod 4 j
= (0 + 0 + 97) mod 4 j =
97 mod 4 j = 1

Isi array awal

Indexs 0 1 2 3

S 2 3 1 0

Maka penukaran isi array S(3) dan S(1) sehingga array S berbentuk

Indexs 0 1 2 3

S 2 0 1 3

Keystream K
Karena plainteks mempunyai panjang 4 byte untuk mendapatkan cipherteks terlebih dahulu
bangkitkan keystream sebanyak 4 byte karena sesuai persoalan.
1. Iterasi pertama untuk nilai i = j = 0 maka
i = (i + 1) mod 4 i = (0 + 1)mod 4 = 1
(S[1]) j = (j + S[i]) mod 4
j = (0 + S[1]) mod 4 j = (0 + 0) mod 4 = 0
(S[0])
Isi array awal
Indexs 0 1 2 3

S 2 0 1 3

jadi tukar S[1] dan S[0] sehingga array S berbentuk

Indexs 0 1 2 3

S 0 2 1 3

t = (S[1]+S[0]) mod 4 t = ( 2 + 0 ) mod 4


= 2 K = S[t] = S[2] = 1 jadi kunci pertama
untuk enkripsi yaitu 1

2. Iterasi kedua untuk nilai i = 1 dan j = 0 (dari iterasi pertama) i


= (i + 1) mod 4 i = (1 + 1)mod 4 = 2 (S[2])
j = (j + S[i]) mod 4 j = (0 +
S[2]) mod 4 j = (0 + 1) mod
4 = 1 (S[1])

Isi array awal

Indexs 0 1 2 3

S 0 2 1 3

jadi tukar S[2] dan S[1] sehingga array S berbentuk

Indexs 0 1 2 3

S 0 1 2 3

t = (S[2]+S[1]) mod 4 t = ( 2 + 1 )
mod 4 = 3 K = S[t] = S[3] = 3 jadi
kunci kedua untuk enkripsi yaitu 3
3. Iterasi ketiga untuk nilai i = 2 dan j = 1 (dari iterasi kedua) i
= (i + 1) mod 4 i = (2 + 1)mod 4 = 3 (S[3]) j = (j + S[i]) mod 4
j = (1 + S[3]) mod 4 j = (1 + 3) mod 4 = 0 (S[0]) Isi array
awal

Indexs 0 1 2 3

S 0 1 2 3

jadi tukar S[3] dan S[0] sehingga array S berbentuk

Indexs 0 1 2 3

S 3 1 2 0

rasi ketiga)

4. Iterasi keempat untuk nilai i = 3 dan j = 0 (dari ite i


= (i + 1) mod 4 i = (3 + 1)mod 4 = 0 (S[0])
j = (j + S[i]) mod 4 j = (0 +
S[0]) mod 4 j = (0 + 3) mod
4 = 3 (S[3])

Isi array awal

Indexs 0 1 2 3

S 3 1 2 0

jadi tukar S[0] dan S[3] sehingga array S berbentuk

Indexs 0 1 2 3

S 0 1 2 3

t = (S[0]+S[3]) mod 4 t = ( 0 + 3 ) mod 4


= 3 K = S[t] = S[3] = 3 jadi kunci
keempat untuk enkripsi yaitu 3 Jadi
kuncinya yaitu 1 3 0 3

Kunci ke-1 : 1 = 00000001


Kunci ke-2 : 3 = 00000011
Kunci ke-3 : 0 = 00000000 Kunci
ke-4 : 3 = 00000011

Enkripsi
01000100 01000101 01000001 01001110
Plaintext 01000101 01010010 01001001 01001011

Kunci 00000001 00000011 00000000 00000011

Ciphertext 01000100 01010001 01001001 01001100

D Q I L
*Untuk mendapatkan ciphertext (proses enkripsi) yaitu dengan cara membandingkan antara plaintext dengan kunci
menggunakan logika xor.

Deskripsi
Ciphertext 01000100 01010001 01001001 01001100

Kunci 00000001 00000011 00000000 00000011

Plaintext 01000101 01010010 01001001 01001001

E R I K
*Untuk mendapatkan plaintext(proses deskripsi) yaitu dengan cara membandingkan antara ciphertext dengan kunci
menggunakan logika xor.

Anda mungkin juga menyukai