Algoritma RC6
Algoritma yang mulai diperkenalkan sekitar tahun
1998 ini adalah hasil pengembangan dari algoritma RC5. Algoritma ini, sama
seperti RC1 sampai RC5, dikembangkan oleh Laboratorium RSA di San Mateo, USA.
Algoritma ini lebih dispesifikasikan dengan sebutan RC6-w/r/b dengan w
adalah panjang ukuran kata dalam bit, r adalah jumlah putaran (rounds)
dari proses enkripsi dengan r tidak negatif, dan b adalah panjang
kunci enkripsi dalam bytes. Putaran yang dimaksudkan disini adalah sama
dengan pada DES. Satu kali putaran sama dengan satu kali jaringan Feistel.
Agar sesuai dengan persyaratan dari AES, maka RC6 menggunakan ukuran w =
32 dan r = 20 dengan panjang kunci mulai dari 16, 24, sampai 32 byte.
RC6 beroperasi pada empat unit kata dengan
masingmasing sepanjang w bit. Operasi yang dilakukanantara lain sebagai
berikut:
a +
b Penambahan modulo 2w
a –
b Pengurangan modulo 2w
a
b Exclusive-or untuk w bit kata
a ×
b Multiplikasi modulo 2w
a ‹«
b Rotasi untuk kata a ke kiri sebanyak jumlah yang diberikan least
significant log w bits dari b
a ›»
b Rotasi untuk kata a ke kanan sebanyak jumlah yang diberikan least
significant log w bits dari b
Dengan
operasi logaritma berbasis dua.
Key Scheduling pada RC6
RC6 juga melakukan proses enkripsi dengan
menggunakan kunci yang berbeda pada setiap putarannya. Pembentukan kunci pada
RC6 tidak terlalu berbeda dengan pembentukan kunci pada RC5. Secara garis
besar, pembentukan kunci dilakukan dengan mengambil dari b bytes kunci
yang dimasukkan oleh user dimana 0 ≤ b ≤ 255. Sejumlah byte nol
ditambahkan secukupnya untuk panjang kunci sama dengan jumlah bulat kata yang
tidak nol. Kunci ini kemudian dimasukkan ke dalam array sepanjang c dimana
tiap array diisi dengan satu byte dari kunci. Dari kunci ini, diambil
sejumlah 2r + 4 kata dengan panjang w bits tiap kata dan disimpan
dalam array S[0,...,2r + 3].
Operasi enkripsi dan dekripsi pada RC6
RC6 beroperasi menggunakan empat register A, B,
C, D sepanjang w bit yang berisi masukan awal dari plain
text dan bisa juga hasil akhir cipher text pada akhir proses
enkripsi. Byte pertama dari plain text dimasukkan ke dalam least
significant byte A dan byte terakhir dari plain text dimasukkan
ke dalam most significant byte D. Proses berikutnya adalah hasil
enkripsi atau dekripsi dengan menggunakan operasi pada jaringan Feistel.
Gambar
5 Proses Enkripsi RC6
Fleksibilitas RC6
Kode RC6 yang sangat pendek merupakan sebuah
kemampuan tersendiri dari algoritma ini, dan membuat algoritma ini sangat sepadan
bila diimplementasikan ke dalam lingkungan smart card. Ditambah lagi
karena RC6 tidak melakukan proses pembuat sub key atau yang kita sebut key
scheduling pada saat proses enkripsi. Namun untuk platform yang
lain, RC6 tidak terlalu banyak memberikan hasil yang sebaik platform
pentium. Bahkan, RC6 berjalan lebih lambat hingga 3 kali lipat pada platform
pentium pro.
Keamanan RC6
Serangan paling sederhana dan dapat menghasilkan
pada RC6 diperkirakan adalah exhaustive search untuk kunci RC6. Serangan
ini dapat digunakan pada block cipher apapun. Dengan RC6, operasi yang
dibutuhkan untuk mencari key atau expanded key array adalah
antara 28 hingga 21408 operasi. Namun dapat digunakan meet in the middle
attack sehingga dibutuhkan 2704 komputasi. Untuk ukuran panjang kunci yang
bersesuaian dengan AES, serangan ini jelas tidak mungkin.
No comments:
Post a Comment