Algoritma RC2 (Ron’s Code / Rivest’s Cipher)

Pada tahun 1987 di Laboratorium Rsa, Ron Rivest menemukan suatu algoritma yang diberi nama RC2. RC itu sendiri merupakan singkatan dari Ron’s Code. Karena algoritma RC2 dapat diimplementasikan secara efisien pada perangkat lunak maka menjadikan algoritma RC2 populer untuk aplikasi internet antara lain digunakan sebagai standar WEP (Wired Equivalent Privacy), WPA (Wifi Protected Acces) dan TLS (Transport Layer Protocol). RC2 juga diimplementasikan pada protokol SSL (Source Socket Layer) yaitu sebuah protokol untuk memproteksi trafik intenet.

Terdapat dua tahapan untuk membangkitkan aliran kunci algoritma RC2 yaitu Key Scheduling Algorithm (KSA) dan Pseudo-Random Generator Algorithm (PRGA). Key Scheduling Algorithm (KSA) merupakan tahapan pemberian nilai awal berdasarkan kunci enkripsi. State dari nilai awal tersebut berupa array dengan representasi permutasi 256 byte (dengan indeks 0 sampai dengan 255) dinamakan array S. Menggunakan rentang tersebut karena RC2 mengenkripsi pada mode byte (255 = 2˄8 dan 8 bit = 1 byte).
Artinya maksimal panjang kunci yang dapat tersimpan pada array U adalah 256 karakter.
Permutasi terhadap nilai array S dilakukan dengan pseudo-code berikut:

j = 0
For i = 0 to 255
S[i] = i
For i = 0 to 255
j = (j + S[i] + U[i]) mod 256 swap (S[i], S[j])
(*pertukaran nilai S[i] dan S[j]*)

Tahap selanjutnya hasil dari array S yang telah melalui KSA akan diproses kembali pada PRGA(Pseudo-Random Generator Algorithm). Pada tahap PRGA terjadi modifikasi state dan output sebuah byte dari aliran kunci, dimana array S beroperasi dengan array U yang selanjutnya akan menghasilkan keystream. Nilai S[i] dan S[j] diambil dan dijumlahkan dengan modulo 256 untuk membangkitkan aliran kunci. Hasil dari perhitungan tersebut akan menjadi indeks S[indeks] yang menjadi aliran kunci K yang kemudian digunakan untuk mengenkripsi plainteks ke-aliran kunci K yang kemudian digunakan untuk mengenkripsi plainteks ke-idx. Setiap putaran bagian keystream sebesar 1 byte (dengan nilai antara 0 sampai 255) dioutputkan oleh PGRA berdasarkan state S

I = 0
J = 0
For idx = 0 to PanjangPlainteks – 1 do
I = ( i + 1 ) mod 256
J = ( j + S[i] ) mod 256
Swap ( S[i], S[j] ) (*penukaran nilai S[i] dan S[j]*)
K = ( S[i] + S[j] ) mod 256
Endfor

Setelah keystream terbentuk, kemudian keystream tersebut dimasukkan dalam operasi XOR dengan plaintext.

 

Sumber: https://piptools.net/algoritma-rc2-rons-code-rivests-cipher/

Advertisements

4 thoughts on “Algoritma RC2 (Ron’s Code / Rivest’s Cipher)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s