Wednesday, April 17, 2013

Pengertian Algorima RC6

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

Kebahagiaan sejati bukanlah pada saat kita berhasil meraih apa yg kita perjuangkan, melainkan bagaimana kesuksesan kita itu memberi arti atau membahagiakan orang lain.