Algoritma
Enkripsi Rivest Code 5 (RC-5)
l RC-5 (Rivest Code-5) merupakan
enkripsi stream simetrik yang dibuat oleh RSA Data Security, Inc (RSADSI)
l Metode enkripsi ini pada awalnya dirancang
untuk enkripsi yang menggunakan mikroprosesor (perangkat keras), tetapi pada
tahap pengembangannya algoritma ini cocok diterapkan dengan menggunakan
perangkat keras maupun perangkat lunak.
l RC-5 memiliki kelebihan dalam menentukan
jumlah kata kunci yang digunakan, hal ini berarti akan memilih tingkat keamanan
yang digunakan sesuai dengan aplikasinya
Konsep Dasar
RC-5(1)
l Operasi dasar proses enkripsi
1. Data yang akan dienkripsi dikembangkan
menjadi 2 bagian bagian kiri dan bagian kanan dan dilakukan penjumlahan dengan key
word yang yang telah diekspansi sebelumnya. Pemjulahan ditunjukan dengan
tanda ``+``, dan disimpan di dua register A dan register B.
2. Kemudian dilakukan operasi EX-OR, yang
ditandai dengan tanda ``Ã…``.
3. Melakukan rotasi kekiri (shift left)
sepanjang y terhadap x word yang ditandai dengan x<<<
y. y merupakan
interpretasi modulo w atau jumlah kata w dibagi 2. Dengan lg[w]
ditentukan jumlah putaran yang dilakukan.
4. Tahap akhir dilakukan penggabungan untuk
mendapatkan data yang telah dienkripsi.
l Operasi dasar proses Dekripsi
1. Data yang telah dienkripsi dikembangkan
kembali menjadi 2 bagian dan disimpan di dua register A dan register B.
2. Kemudian dilakukan rotasi ke kanan
sejumlah r .
3. Selanjutnya dilakukan operasi EX-OR yang
ditandai dengan ``Ã…``.
4. Tahap akhir dilakukan pengurangan terhadap
masing-masing register dengan key word yang ditunjukan dengan tanda
``-``, untuk mendapatkan plaintext.
l Algoritma enkripsi
Algoritma
untuk mengubah pesan(plaintext) menjadi pesan yang tersembunyi(chipertext)
l Algoritma dekripsi
Algoritma
untuk mengubah pesan yang tersembunyi(chipertext) menjadi sebuah pesan
aslinya(plaintext)
l Algoritma key expansion
l Algoritma enkripsi dalam pseudo-code
- Input
berada dalam register A dan B
- Array
S merupakan ekspansi dari keyword
A=A+S[0];
B=B+S[1];
for i=1 to r do
A=((A Ã… B) <<< B) + S[2 * i];
B=((BÃ… A) <<< A) + S[2 * I + 1];
l A merupakan plaintext yang diproses disebelah kiri setelah ditambahkan
dengan dengan hasil key ekspansi
l B merupakan bagian plaintext yang diproses disebelah kanan yang juga
ditambahkan dengan hasil key ekspansi
l Dilakukan proses EX-OR terhadap
masing-masing plantext dan dilakukan rotasi (putaran) sebanyak r
kali
l data-data ini digabungkan kembali membentuk ciphertext
l Algoritma dekripsi dalam pseudo-code
for i= r downto 1 do
B=((B – S [2 * i
+ 1]) >>> A) Ã… A;
A=((A – S [2 *
i]) >>> B) Ã… B;
B= B- S[1];
A= A – S[0];
l Data-data dari ciphertext dikembangkan
menjadi dua bagian A dan B
l di lakukan pengurangan dengan hasil key
ekspansi dan dirotasi sebanyak r sambil dilakukan operasi EX-OR terhadap
data tersebut
l melakukan proses pengurangan ke
masing-masing bagian dengan hasil key ekspansi
l Data-data ini kemudian digabungkan kembali
membentuk plaintext
l Rutin key expansion memperluas kunci
rahasia user K untuk mengisi array key yang diperluas S, sehingga S menyerupai
suatu array t = 2(r + 1) word biner random yang ditentukan oleh K
l Algoritma key expansion menggunakan dua
“magic constants”, dan terdiri dari tiga bagian algoritmik sederhana.
l Definisi dari Magic Constants
Algoritma key-expansion menggunakan dua
konstanta biner berukuran word Pw dan Qw. Konstanta biner tersebut
didefinisikan untuk sembarang w sebagai berikut :
l Odd(x) (bilangan ganjil (x))adalah integer
ganjil (odd) terdekat terhadap x (dibulatkan keatas jika x adalah integer
genap, meskipun hal ini tidak terjadi disini)
Langkah-Langkah Algoritma Expansion
- Merubah Kunci Dari Bit Ke Word
Langkah algoritmik pertama dari key
expansion adalah untuk meng-copy kunci rahasia K[0…b – 1] ke array L[0…e –
1] dari word c = [b/u], dimana u = w/8 adalah jumlah byte/word. Operasi ini dilakukan dalam cara yang
alami, menggunakan kunci byte konsekutif (berulang) u dari K untuk memenuhi
setiap word dalam L, byte low order sampai byte high order. Posisi byte
yang tidak terisi dari L dibuat 0. pada kasus ini b = c = 0 kita me-reset c ke
1 dan me-set L[0] menjadi 0
Pseudo-code Merubah
Kunci Dari Bit Ke Word
C=[max(b,1)/u]
for i=b-1 downto 0
do
L[i/u]=(L[i/u]
<<<8) +K[i];
Langkah-Langkah Algoritma Expansion
2. Menginisialisasi Array S
Langkah algoritmik kedua dari key expansion adalah untuk menginisialisasi array S menjadi pola bit
pseudo-random tertentu yang tetap (key- independent),
menggunakan deret aritmetika modulo 2w
ditentukan oleh “magic constant” Pw dan Qw.
Karena Qw ganjil, deret aritmetik
memiliki periode 2w.
Pseudo-code Inisialisasi Array S
S[0] = Pw;
for i=1 to t-1 do
S[i] = S[i-1]+Qw;
Dari algoritma diatas terlihat bahwa pada
kondisi 0 S[0] berisi Pw dan pada itersi i=1 dan seterusnya, S[i]
akan berisi S[i-1] + Qw.
l Penggabungan Kunci
Langkah algoritmik ketiga dari key
expansion adalah untuk menggabungkan kunci rahasia user dalam tiga cara
pada array S dan L. Lebih tepatnya,
dikarenakan ukuran yang berbeda secara potensial pada S dan L, array yang lebih
besar akan diproses tiga kali, dan yang lainnya dapat ditangani lebih dari tiga
kali
Pseudo-Code Penggabungan Kunci
i=j=0;
A=B=0;
do 3 * max(t,c) times
A=S[i]=(S[i]+A+B)
<< 3;
B=L[j]=(L[j]+A+B)
<< (A+B);
i=(i+1) mod (t);
j=(j+1) mod(c);
Kekurangan dan Kelebihan Algoritma
RC-5(1)
l Kelebihan
l Kesulitan mengetahui sebuah nilai dalam
table pengembangan key karena prose pengembangan key dilakukan secara random.
l Algoritma enkripsi ini dapat
diimplementasikan dalam bentuk hard ware, karena pada dasarnya algoritm
in menggunakan operasi yang dapat dilakukan oleh perangkat keras seperti
prosesor.
Tingkat keamanan dari enkripsi yang dilakukan dapat dipilih dengan
menggunakan jumlah kata kunci yang digunakan, hal ini terlihat bahwa jumlah
kata kunci akan menentukan jumlah pembagian plaintext yang akan
dienkripsi
l Kekurangan
l Algoritma RC-5 dapat diserang dengan
menggunakan analisa dari bagian table pengembangan kunci rahasia.
l Salah satu kelemahan umum dari metode
enkripsi simetrik adalah masalah manajemen kunci.
No comments:
Post a Comment
silahkan membaca dan berkomentar