Sunday, May 26, 2013

Security : Algoritma RSA

RSA adalah salah satu algoritma kriptografi asimetris, artinya kunci yang digunakan untuk proses enkripsi berbeda dengan kunci yang digunakan untuk proses deskripsi. Algoritma asimetris dikenal juga dengan algoritma kunci public. Keamanan algoritma terletak pada sulitnya untuk memfaktorkan modulus n yang sangat besar, hal ini juga mengakibatkan lambatnya operasi algoritma RSA ini jika dibandingkan dengan algoritma enkripsi simetris semisal DES.

RSA dikembangkan pada tahun 1978 oleh tiga orang peneliti asal Massachusetts Istitute of Teknology, ketiga peneliti tersebuat adalah Ron Rivest, Adi Shamir dan Leonard Adleman. ketiga peneliti tersebut membuat algoritma penomoran pada sebuah kunci public. nama RSA sendiri merupakan inisial dari ketiga nama peneliti tersebut. (Rovest, Shamir, Adleman).

Operasi RSA
Algoritma RSA memiliki beberapa besaran berikut ini :
  1. p dan q bilangan prima (rahasia)  
  2. n = p . q (tidak rahasia)  
  3. φ(n) = (p-1)(q-1) (rahasia)  
  4. e (kunci enkripsi) (tidak rahasia)  
  5. d (kunci dekripsi) (rahasia)  
  6. m (plainteks) (rahasia)  
  7. c  (cipherteks) (tidak rahasia) 

cara membangkitkan kunci RSA
  1. Pilih  dua  bilangan  prima  sembarang (p dan q)
  2. Hitung n =  pq (usahakan  p  tidak  sama dengan q, jika p sama dengan q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n)   
  3. Hitung  φ(n) = (p - 1)(q – 1).   
  4. Pilihlah  kunci  privat,  d,  yang  relatif prima terhadap  φ(n). yang dimaksud relatif prima  adalah  bilangan  terbesar  yang dapat  membagi  d  dan    φ(n)  untuk menghasilkan  nilai  1. gcd (d,φ(n))=1.
  5. Bangkitkan  kunci  publik  dengan menggunakan  persamaan  ed  ≡ 1 (mod φ(n)).  Perhatikan  bahwa  ed  ≡  1  (mod φ(n)) ekivalen dengan ed  ≡ 1 + kφ(n), sehingga  secara  sederhana  d  dapat dihitung dengan e = (1 + kφ(n)) / d. 
dari langkah di atas didapatlah kunci public dan private nya yaitu :
  • kunci public (e,n) [proses enkripsi]
  • kunci private (d,n) [proses deskripsi]

proses enkripsi
untuk melakukan proses enkripsi maka digunakan kunci public dari hasil pembangkitan di atas. yaitu 
  • c = m^e mod n

proses deskripsi
proses deskripsi dapat dilakukan dengan menggunakan kunci private di atas. dengan cara :
  • m = c^d mod N 


Contoh perhitungan RSA

p=3; q=11 [ usahakan p dan q tidak sama ]
n = p * q = 33
φ(n) = (p-1)*(q-1) = 20

mencari nilai d dengan syarat  [ gcd (d,φ(n))=1 ]
misal d =2 maka gcd (2,20) !=1;
misal d =3 maka gcd (3,20) =1; maka dipilih d = 3;

mencari nilai e dengan syarat [ ed  ≡ 1 + kφ(n) ] atau [ e = (1 + kφ(n)) / d ]
misal d =0 maka 3*0 mod (20) !=1
misal d =7 maka 3*7 mod (20) =1;

maka diproleh :
kunci public (3,20) [proses enkripsi]
kunci private (7,20) [proses deskripsi]

Ok. kita coba untuk melakukan enkripsi deskripsi 

=> misal message adalah 14

Proses enkripsi 
c = m ^ e mod n
c = 14^3 mod 33
c = 2744 mode 33
c = 5.

Proses deskripsi 

m = c ^ d mod n
m = 5 ^ 7 mod n
m = 78125 mod 33
m = 14 (sukses).

Semoga Bermanfaat
Ach Khozaimi #Kuliah

No comments:

Post a Comment