RSA adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan kunci untuk melakukan dekripsi. Algoritma ini adalah algoritma pertama yang cocok dalam melakukan digital signature.
Algoritma RSA dibuat oleh tiga orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron Rivest, Adi Shamir dan Leonard Adleman. RSA adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan kunci untuk melakukan dekripsi. Kunci untuk melakukan enkripsi disebut sebagai kunci publik, sedangkan kunci untuk melakukan dekripsi disebut sebagai kunci privat. Orang yang mempunyai kunci publik dapat melakukan enkripsi tetapi yang dalam melakukan dekripsi hanyalah orang yang memiliki kunci privat. Kunci publik dapat dimiliki oleh sembarang orang, tetapi kunci privat hanya dimiliki oleh orang tertentu saja.
Besaran-besaran yang digunakan pada algoritma RSA:
- 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)
Enkripsi dan Dekripsi RSA
Langkah-langkah dalam mengenkripsi atau mengdekripsi RSA adalah sebagai berikut :
- Pilih 2 buah bilangan prima p dan q.
- Hitung nilai n = p * q , (usahakan agar setidaknya n > 255 agar dapat mewakili seluruh karakter ASCII).
- Hitung nilai m = (p-1) * (q-1).
- Cari nilai e , dimana e merupakan relatif prima dari m.
- Cari nilai d , yang memenuhi persamaan ed ≡ 1 mod m atau d = e-1 mod m.
- Kunci public (e , n) dan kunci private (d , n).
- Fungsi enkripsi → E (ta)=tae mod n ; dimana ta merupakan karakter ke-a dari message (pesan) yang akan dienkripsi.
- Fungsi dekripsi → D (ca)=cad mod n ; dimana ca merupakan karakter ke-a dari ciphertext yang akan didekripsikan.
Contoh:
Langkah-langkah dalam mengenkripsi atau mengdekripsi RSA adalah sebagai berikut :
Akan dilakukan enkripsi menggunakan algoritma RSA terhadap plaintext M = FISIKA.
Pertama-tama plaintext tersebut diubah menjadi format ASCII yaitu: 70 73 83 73 75 65
Plainteks dalam format ASCII desimal tersebut dipecah menjadi blok-blok tiga digit sebagai berikut:
m1 = 707 m3 = 737
m2 = 383 m4 = 565
Dalam membuat kunci RSA, perlu dirancang agar nilai mi masih terletak di dalam rentang antara 0 sampai n – 1. Maka ditentukan bahwa nilai n minimal adalah 909. Nilai ini diambil berdasarkan pertimbangan bahwa karakter huruf kapital dengan nilai terbesar adalah Z dengan nilai ASCII yaitu 5Ah atau 90. Kombinasi ZZ akan dapat dipecah menjadi blok 909 atau 090.
Misalkan dipilih p = 23 dan q = 43 (keduanya prima), maka dapat dihitung:
n = p x q = 989
m = (p – 1) x (q – 1) = 924
Dipilih kunci publik e = 25 (yang relatif prima dengan 924 karena pembagi bersama terbesarnya adalah 1). Bahwa 25 relatif prima terhadap 924 dapat dibuktikan dengan mencari nilai gcd (25,924) melalui algoritma Euclid.
Hasil gcd pada algoritma ini adalah hasil sisa bagi terakhir sebelum 0. Maka pada perhitungan diatas terlihat bahwa sisa bagi sebelum nol adalah 1. Maka gcd (25, 924) = 1.
Selanjutnya untuk menghitung kunci privat d algoritma Extended Euclid sebagai berikut.
P2 dan P3 dihitung melalui persamaan berikut
P2 = (Pi-2 – Pi-1(qi-2)) mod n
= (0 – 1(36)) mod 924 = 888
P3 = (1 – 888(1)) mod 924 = 37
Maka diperoleh kunci publik adalah 25 dan 989. Sedangkan kunci privat adalah 37 dan 989. Enkripsi setiap blok diperoleh meng-gunakan kunci public 25 dan 989 dengan cara sebagai berikut :
c1 = 70725 mod 989 = 313
c2 = 38325 mod 989 = 776
c3 = 73725 mod 989 = 737
c4 = 56525 mod 989 = 909
Maka ciphertext adalah C = 313 776 737 909
Untuk melakukan dekripsi (mengubah ciphertext menjadi plaintext) maka digunakan kunci privat 37 dan 989 dengan cara sebagai berikut :
m1 = 31337 mod 989 = 707
m2 = 77637 mod 989 = 383
m3 = 73737 mod 989 = 737
m4 = 90937 mod 989 = 565
Maka diperoleh plaintext m= 707 383 737 565, yang dalam sistem karakter pengkodean ASCII m = FISIKA
REFERENSI
Devha, Chandra Putra 2013. Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Bandung: UPI
Ir. Rinaldi Munir, M.T. 2004. Algoritma RSA dan ElGamal. Bandung: ITB
Riyanto, M. Zaki., & Ardhi Ardian. 2008. Kriptografi Kunci Publik: Sandi RSA.
http://sandi.math.web.id
Setiawan, Deris. 2002. Sistem Keamanan Komputer. Jakarta: PT Elex Media Komputindo.
No comments:
Post a Comment