RS5 ver 0.1
RC5 adalah blok cipher yang dikenal dengan kesederhanannya. RC5 didisain oleh Ronald Rivest pada tahun 1994. RC merupakan kepanjangan dari “Rivest Cipher”. Tidak seperti skema lainnya, RC5 memiliki ukuran blok (simbol w, dalam bit) yang bervariasi (16, 32 atau 64-bit), panjang kunci eksternal K (simbol b, dalam byte) yang bervariasi(0 sampai 255) dan rotasi (simbol r) yang bervariasi (0 sampai 255). Pembuatnya menyarankan menggunkan ukuran blok 64-bit 128-bit kunci dan 12 kali rotasi.
Terdapat tiga operasi yaitu XOR, penambahan (addition) dan perputaran (rotation). Rotasi (perputaran) merupakan operasi yang waktunya konstan untuk kebanyakan prosesor dan variabel rotasi merupakan fungsi yang non-linier. Rotasi ini bergantung pada kunci dan data. Ada dua macam rotasi yaitu x <<< y (berarti menggeser bit-bit di dalam x sejauh y bit ke kiri secara silkuler) dan x>>>y (berarti menggeser bit-bit di dalam x sejauh y bit ke kanan secara silkuler). Struktur umum algoritma menggunakan jaringan feistel.
Pembentukan Kunci Internal
Kunci internal ada sebanyak 2r+2 buah yang maig-masing disimpan di dalam elemen-elemen larik yang dilabeli sebagai S[1],S[1],…,S[t-1] dengan t = 2r+2. Setiap elemen larik panjangnya satu word (1 word = w bit ). Pembentukan kunci internal lebih rumit. Mula-mula, semua byte dari kunci eksternal, K[0...b-1], disalin ke dalam larik Lc word, L[0...b-1] lalu padding dengan sejumlah 0 jika perlu (padding terjadi jika b bukan kelipatan w). Kemudian inisialisasi larik S sebagai berikut: yang berukuran
S[0]<-Pw
for i <- 1 to t – 1 do
S[i] <- S[i - 1] + Qw
endfor
yang dalam hal ini Pw dan Qw (dalam hexadesimal) berbeda-beda tergantung w sebagai berikut:
|
w Pw Qw |
16 B7E1 9E37 |
32 B7E15163 9E3779B9 |
64 B7E151628AED2A6B 9E3779B97F4A7C15 |
Konstanta Pw dan Qw diasarkan pada representasi bilangan alan e dan φ dalam biner,
Pw = Odd [(e - 2) 2 ]
Qw = Odd [(φ - 2) 2 w]
Akhirnya campurkan L dan S sebagai berikut:
i <- 0
j <- 0
X <- 0
Y <- 0
n <- 3 * max (r,c)
for k <- 1 to n do
S[i] <- (S[i] + X+ Y) <<< 3
X <- S[i]
i <- (1 + 1) mod (t)
L[j] <- (L[j] + X+ Y) <<< (X+ Y)
Y <- L[i]
j <- (j +1) mod (c)
endfor
Enkripsi
Misalkan yang ditinjau RC5 denganukuran blok 64-bit dan jumlah rotasi r. Enkripsi menggunakan kunci internal S 32 ) dengan S0 dan S1:
A <- A + S[0]
B <- B + S[1]
Seanjutnya untuk setiap rotasi dari 1 sampai r dilakukanoprasi XOR, penggeseran ke kiri secara silkulern dan penjumlahan dalam modulo 232 dengan kunci internal sebagai berikut:
for i <- to r do A
A <- ((A XOR B)<<< B) + S [2i]
B <- ((B XOR A)<<< A) + S [2i + 1]
endfor
Cipherteks pada rotasi terakhir disimpan di dalam A dan B. Gabungan keduanya adalah blok palin teks yang berukuran 64-bit. Proses enkripsi satu rotasi dipelihatkan pada gambar di bawah ini.
Dekripsi
Dekripsi berkebalikan dengan enkripsi. Mula-mula bagi blok cipherteks menjadi dua bagian, A dan B, yang masing-masing panjangnya 32-bit. Selanjutnya untuk setiap putaran dari 1 sampai r dilakukan operasi pengurangan dalam modulo 232 dengan kunci internal, penggeseran ke kanan secar silkuler (rotasi) dan operasi XOR sebagi berikut:
for i <- to r do
B <- ((B – S [2i + 1]) >>> A) XOR A
A <- ((A – S [2i]) >>> B) XOR B
endfor
B <- B + S [1]
A <- A + S[0]
2 be continued……..
sumber:
Applied Cryptography (Bruce Schneier)
Kriptografi (Rinaldi Munir)
Wikipedia
aduuhhh…
RC5 yang kamu bwt ini ngebantu saya bgt dlm pengerjaan tugas saya
thx ya
klo bisa penulisan tentang RC5 ini dilanjutkan sampai finish yah..
skali lg trima kasih byk
NISA
December 15, 2007