Analisis Jurnal Dengan Judul : Enkripsi Menggunakan Algoritma RSA Tugas Kelompok 2 Mata Kuliah : Sistem Operasi Disusun Oleh : 1.Ahmad Syaifuddin 2.Mardiana Wahyunigsih 3.Wiwin Nurul Islami
Analisis Jurnal
Dengan Judul : Enkripsi Menggunakan Algoritma RSA
Tugas Kelompok 2Mata Kuliah : Sistem Operasi
Disusun Oleh :1.Ahmad Syaifuddin
2.Mardiana Wahyunigsih
3.Wiwin Nurul Islami
RSA
ALGORITMA ASIMETRI
RSA
Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman.
Termasuk algritma asimetri karena mempunyai dua kunci, yaitu kunci publik dan kunci privat.
Algoritma kunci-publik yang paling terkenal dan paling banyak aplikasinya.
Ditemukan oleh tiga peneliti dari MIT (Massachussets Institute of Technology), yaitu Ron Rivest, Adi Shamir, dan Len Adleman, pada tahun 1976.
Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima.
RSA
Pembangkitan pasangan kunci1. p dan q bilangan prima (rahasia)
2. n = p q (tidak rahasia)⋅3. m = (p – 1)(q – 1) (rahasia)
4. PK (kunci enkripsi) (tidakrahasia)
5. SK (kunci dekripsi) (rahasia)
6. X (plainteks) (rahasia)
7. Y (cipherteks) (tidak rahasia)
Hasil dari algoritma di atas:- Kunci publik adalah pasangan (e, n) - Kunci privat adalah pasangan (d, n)
Catatan: n tidak bersifat rahasia, namun ia diperlukan pada perhitungan enkripsi/dekripsi
RSA
Kunci Publik Misalkan a = 47 dan b = 71 (keduanya prima), maka dapat dihitung:
n = a b = 3337 (n) = (a – 1)(b – 1) = 46 x 70 = 3220.
Pilih kunci publik e = 79 (yang relatif prima dengan 3220 karena pembagi bersama terbesarnya adalah 1).
Hapus a dan b dan kunci publiknya adalah n=3337 dan e=79Kunci Privat Selanjutnya akan dihitung kunci privat d dengan kekongruenan:
e d 1 (mod m) = =>
Dengan mencoba nilai-nilai k = 1, 2, 3, …, diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci privat (untuk dekripsi).
79
)3220(1
kd
Cara Kerja
RSA merupakan algoritma yang melibatkan ekspresi dengan fungsi eksponensial.
Plaintext dienkripsi dalam blokblok, dimana setiap blok tersebut mempunyai nilai biner yang kurang dari angka tertentu (n).
Proses enkripsi dan dekripsi untuk plaintext blok M dan ciphertext blok C dapat digambarkan sebagai berikut :
C = Me mod nM = Cd mod n = (Me)d mod n = Med mod n
Bilangan Prima 2-256
Contoh
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)
Pilih d yg relatively prime terhadap mgcd(e,m) = 1gcd(e, 20 ) = 1e = 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)Asumsi dipilih e =3
Cari nilai de*d mod (m) = 13*d mod 20 = 1Dari hasi l perhitungan: misal dipilih d=7
21 mod 20 =1
Contoh (2)
Try encryption : message "2“
C = 2 ^ 3 (mod 33) = 8 Try to decrypt : ciphertext
"8“ M = 8 ^ 7 (mod 33) = 2097152 (mod 33) = 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
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 Pilih e yang relatif prima terhadap ø(n) = 96 dan kurang dari ø(n), dalam hal ini e = 5 Tentukan d dimana ed = 1 mod ø(n) dan d < ø(n), berarti 5 x d = 1 mod 96, d =
77 karena 5 x 77 = 4 x 96 + 1 Didapat kunci publik {5,119 } dan kunci pribadi {77,119 }
Jika kita menggunakan kunci tersebut untuk mengenkripsi pesan M = 19, maka
C = Me mod n = 195 mod 119 = 66 (ciphertext yang dihasilkan)
Jika kita ingin mendekripsi ciphertext tersebut, kita masukkan rumus dengan kunci pribadi : 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. Pilih kunci publik e = 79, karena 79 relatif prima dengan 3220. e dan
n dapat dipublikasikan ke umum. (e,n) = (79, 3337) Selanjutnya akan dihitung kunci dekripsi d Dengan mencoba nilai-nilai m = 1, 2, 3, …, diperoleh nilai SK yang
bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan. (d,n) = (1019, 3337)
C=m^e (mod n) = 10^79 mod 3337 = 3269 M=c^d (mod n) = 3269^1019 mod 3337 = 10
RSA
Misalkan plainteks M = HARI INI atau dalam ASCII: 7265827332737873
Pecah M menjadi blok yang lebih kecil (misal 3 digit):
m1 = 726 m4 = 273
m2 = 582 m5 = 787
m3 = 733 m6 = 003
(Perhatikan, mi masih terletak di dalam antara 0 sampai n – 1)
RSA
Enkripsi setiap blok:c1 = 72679 mod 3337 = 215 c2 = 58279 mod 3337 = 776, dstChiperteks C = 215 776 1743 933 1731 158.
Dekripsi (menggunakan kunci privat d = 1019) m1 = 2151019 mod 3337 = 726
m2 = 7761019 mod 3337 = 582 dst untuk sisi blok lainnyaPlainteks M = 7265827332737873 yang dalam ASCII karakternya adalah HARI INI.
Aktifitas Cyptanalysis utk memecahkan kode RSA
Brute force : mencoba semua kemungkinan kunci pribadi
Mencoba mencari faktor p dan q, sehingga dapat dihitung ø(n). Dengan mengetahui ø(n), maka dapat ditentukan faktor d.
Menentukan ø(n) secara langsung tanpa menentukan p dan q. Hal ini juga dapat menemukan hasil perhitungan dari faktor d.
Menentukan d secara langsung, tanpa menentukan ø(n).
RSA
Kekuatan dan Keamanan RSA– Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam
memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = a b.
– Sekali n berhasil difaktorkan menjadi a dan b, maka (n) = (a – 1)(b – 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan ed 1 (mod n).
– Penemu algoritma RSA menyarankan nilai a dan b panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = a b akan berukuran lebih dari 200 digit.
– Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
Terima Kasih