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 :
- p dan q bilangan prima (rahasia)
- n = p . q (tidak rahasia)
- φ(n) = (p-1)(q-1) (rahasia)
- e (kunci enkripsi) (tidak rahasia)
- d (kunci dekripsi) (rahasia)
- m (plainteks) (rahasia)
- c (cipherteks) (tidak rahasia)
cara membangkitkan kunci RSA
- Pilih dua bilangan prima sembarang (p dan q)
- 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)
- Hitung φ(n) = (p - 1)(q – 1).
- 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.
- 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