Translate

Saturday, September 10, 2016

Algoritma Enkripsi Rivest Code 5 (RC-5)



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
    1. 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