550 likes | 1.26k Views
wilfridus.bambang@eng.maranatha.edu. Algoritma RSA. Sejarah. Algoritma ini dikembangkan oleh Ron Rivest , Adi Shamir, dan Len Adleman pada tahun 1977.
E N D
wilfridus.bambang@eng.maranatha.edu Algoritma RSA
Sejarah • Algoritmainidikembangkanoleh Ron Rivest, Adi Shamir, dan Len Adlemanpadatahun 1977. • Algoritmainisekaligusmenjawabtantangandarisebuah paper yang dibuatolehDiffiedan Hellman tentangpendekatanbarumengenaialgoritmakriptografi yang dapatmemenuhikebutuhanuntukmetodekuncipublik. • AlgoritmaRivestShamirAdleman (RSA) iniadalahalgoritmametodekuncipublik yang paling banyakdipakaisampaisaatini.
Cara Kerja • RSA merupakanalgoritma yang melibatkanekspresidenganfungsieksponensial. • Plaintext dienkripsidalamblokblok, dimanasetiapbloktersebutmempunyainilaibiner yang kurangdariangkatertentu (n). • Prosesenkripsidandekripsiuntuk plaintext blokM danciphertextblok C dapatdigambarkansebagaiberikut : C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n
Besaran-besaran yang digunakanpadaalgoritma RSA 1. p dan q bilangan prima (rahasia) 2. n = p ⋅ q (tidakrahasia) 3. m = (p – 1)(q – 1) (rahasia) 4. PK (kunci enkripsi) (tidakrahasia) 5. SK (kunci dekripsi) (rahasia) 6. X (plainteks) (rahasia) 7. Y (cipherteks) (tidakrahasia)
PembuatanKunci 1. Hasilkanduabuah integer prima besar, p dan q Untukmemperolehtingkatkeamanan yang tinggipilih p dan q yang berukuranbesar, misalnya 1024 bit. 2. Hitung m = (p-1)*(q-1) 3. Hitung n = p*q 4. Pilih d yg relatively prime terhadap m e relatively prime thd m artinyafaktorpembagiterbesarkeduanya adalah 1, secaramatematisdisebutgcd(e,m) = 1. Untukmencarinya dapatdigunakanalgoritma Euclid. 5. Cari d, sehingga e*d = 1 mod (m), atau d = (1+nm)/e Untukbilanganbesar, dapatdigunakanalgoritma extended Euclid. 6. Kuncipublik : e, n Kunci private : d, n
Enkripsi & Dekripsi B mengenkripsi message M untuk A Ygharusdilakukan B : 1. Ambilkuncipublik A ygotentik (n, e) 2. Representasikan message sebagaiinteger M dalam interval [0,n-1] 3. Hitung C = M ^ e (mod n) 4. Kirim C ke A Untukmendekripsi, A melakukan : Gunakankuncipribadi d untuk M = C^(d) (mod n) Nb: jikanilaidaripesan > nilaidari mod, makaprosesdekripsitidakakanberjalandenganbaik
Contoh Pilih d yg relatively prime terhadapm gcd(e,m) = 1 gcd(e, 20 ) = 1 e = 2 => gcd(e, 20) = 2 (tidak) e = 3 => gcd(e, 20) = 1 (ya) e = 5 =>gcd(5,20) =5 (tidak) e = 7 =>gcd(7,20) =1 (ya) Asumsidipilih e =3 p = 3, q = 11 n = 3 * 11 = 33 m = (3-1) * (11-1) = 20 e = 2 => gcd(e, 20) = 2 e = 3 => gcd(e, 20) = 1 (yes) d = 0 => e = 1 / 3 d = 1 => e = 21 / 3 = 7 (yes) Public key : (3, 33) Private key : (7, 33) Carinilai d e*d mod (m) = 1 3*d mod 20 = 1 Dari hasi l perhitungan: misaldipilihd=7 21 mod 20 =1
Contoh (2) Try encryption : message “14“ C = 14 ^ 3 (mod 33) = 2744 (mod 33) = 5 Decrypt : ciphertext 5 M = 5 ^ 7 (mod 33) = 78125 (mod 33) = 14 Try encryption : message "2“ C = 2 ^ 3 (mod 33) = 8 Try to decrypt : ciphertext "8“ M = 8 ^ 7 (mod 33) = 2097152 (mod 33) = 2
Contoh (3) • Pilih 2 bilangan prima p dan q, misalnya 7 dan 17 • Cari n = pq = 7 x 17 = 119 • Hitungø(n)=(p1)(q1)= (71)(171)= 96 • Pilihe yang relatif prima terhadap ø(n) = 96 dankurangdari ø(n), dalam • halinie = 5 • Tentukand dimanaed = 1 mod ø(n) dan d < ø(n), berarti 5 x d = 1 mod 96, d = 77 karena 5 x 77 = 4 x 96 + 1 • Didapatkuncipublik {5,119 } dankuncipribadi {77,119 } • Jikakitamenggunakankuncitersebutuntukmengenkripsipesan M = 19, maka C = Me mod n = 195 mod 119 = 66 (ciphertextyang dihasilkan) • Jikakitainginmendekripsiciphertexttersebut, kitamasukkanrumusdengankuncipribadi: M = Cd mod n = 6677 mod 119 = 19
Contoh (4) • Misalkan p = 47 dan q = 71 (keduanya prima). • n= p x q = 3337 dan m= (p – 1)(q – 1) = 3220. • Pilihkuncipublik e = 79, karena 79 relatif prima dengan 3220. e dan n dapatdipublikasikankeumum. (e,n) = (79, 3337) • Selanjutnyaakandihitungkuncidekripsi d • Denganmencobanilai-nilai m = 1, 2, 3, …, diperolehnilai SK yang bulatadalah 1019. Iniadalahkuncidekripsi yang harusdirahasiakan. • (d,n) = (1019, 3337) • C=m^e (mod n) = 10^79 mod 3337 = 3269 • M=c^d (mod n) = 3269^1019 mod 3337 = 10
AktifitasCyptanalysisutkmemecahkankode RSA • Brute force : mencobasemuakemungkinankuncipribadi • Mencobamencarifaktorp dan q, sehinggadapatdihitung ø(n). Denganmengetahui ø(n), maka dapat ditentukan faktor d. • Menentukanø(n) secaralangsungtanpamenentukan p dan q. Hal inijugadapatmenemukanhasilperhitungandarifaktord. • Menentukand secaralangsung, tanpamenentukan ø(n).
Pustaka • Muhash, Algoritma RSA, 2008 • RinaldiMunir, IF5054 Kriptografi/Algoritma RSA danElGamal, IF-ITB • SetiawanAji, KunciPublik, 2005 • TediHeriyanto <tedi-h@usa.net>,PengenalanAlgoritma RSA, 2000