• Tidak ada hasil yang ditemukan

KRIPTOGRAFI KUNCI PUBLIK: SANDI RSA

N/A
N/A
Protected

Academic year: 2021

Membagikan "KRIPTOGRAFI KUNCI PUBLIK: SANDI RSA"

Copied!
5
0
0

Teks penuh

(1)

KRIPTOGRAFI KUNCI PUBLIK:

SANDI RSA

Oleh:

Muhamad Zaki Riyanto (zakimath@gmail.com) Ardhi Ardhian (ardhi_emre@yahoo.com)

1. Sandi RSA

Sandi RSA merupakan algoritma kriptografi kunci publik (asimetris). Ditemukan pertama kali pada tahun 1977 oleh R. Rivest, A. Shamir, dan L. Adleman. Nama RSA sendiri diambil dari ketiga penemunya tersebut.

Sebagai algoritma kunci publik, RSA mempunyai dua kunci, yaitu kunci publik dan kunci rahasia. Kunci publik boleh diketahui oleh siapa saja, dan digunakan untuk proses enkripsi. Sedangkan kunci rahasia hanya pihak-pihak tertentu saja yang boleh mengetahuinya, dan digunakan untuk proses dekripsi. Keamanan sandi RSA terletak pada sulitnya memfaktorkan bilangan yang besar. Sampai saat ini RSA masih dipercaya dan digunakan secara luas di internet.

Gambar 1. Skema algoritma kunci publik Sandi RSA terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Sebelumnya diberikan terlebih dahulu beberapa konsep perhitungan matematis yang digunakan RSA.

2. Konsep Dasar Perhitungan Matematis

2.1. Fungsi Phi-Euler

Fungsi Phi-Euler ϕ( )n merupakan fungsi terhadap bilangan bulat positif n yang menyatakan banyaknya elemen n yang mempunyai invers terhadap operasi pergandaan. Ingat bahwa ℤn belum tentu merupakan grup terhadap operai pergandaan. Dengan kata lain, ϕ( )n adalah banyaknya elemen

{

x, 0≤ <x n| gcd( , )x n =1

}

. Jika n= pq dengan p dan q adalah bilangan prima, maka

( )n (p 1)(q 1)

ϕ = − − . Jika n adalah bilangan prima, maka ( )n n 1

ϕ = − . Bukti pernyataan di atas dapat dilihat di (Fraleigh, 2000), (Buchmann, 2000), dan (Stinson, 2006).

2.2. Algoritma Euclide

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar dari dua bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut ini. Diberikan bilangan bulat r0 dan r1, dengan r0r1, kemudian dihitung menggunakan algoritma pembagian:

0 1 1 2 r =q r +r , 0< <r2 r1 1 2 2 3 r =q r +r, 0< <r3 r2 ... 2 1 1 n n n n r− =qr− +r ,0< <rn rn−1 1 n n n r− =q r

Dari pernyataan di atas, dapat ditunjukkan bahwa

0 1 1 2 1

gcd( , )r r =gcd( , )r r = =... gcd(rn, )rn =gcd( , 0)rn =rn. Bukti lihat di (Buchmann, 2000)

Contoh 1. Akan dihitung gcd(40,24). Jawab: 40 = 1.24 + 16

24 = 1.16 + 8 16 = 2.8 Jadi, gcd(40,24)=8.

2.3. Algoritma Euclide Diperluas

Algoritma ini merupakan perluasan dari algoritma Euclide (Extended Euclidean Algorithm), digunakan untuk mencari invers terhadap operasi pergandaan. Algoritma ini didasarkan pada pernyataan berikut. Diberikan bilangan bulat positif r0 dan r1, r0 >r1. Jika

(

0 1

)

gcd r r, =1, maka 1 1 mod 0 rr ada. Jika gcd

(

r r0,1

)

≠1, maka 1 1 mod 0

rr tidak ada. Gunakan rumus rekurensi berikut ini. 0 0 t = , t1=1 2 1 1 j j j j t =t qt , j≥2 ... (1) Ket: q diperoleh dari perhitungan j gcd

(

r r0, 1

)

menggunakan algoritma Euclide. Jika gcd

(

r r0,1

)

=1, berarti r1−1=tn. Sehingga rn =t rn1 atau 1=t rn1. Bukti

bisa dilihat di (Stinson, 2006).

A enkripsi dekripsi B

Plainteks cipherteks Plainteks

(2)

Contoh 2. Akan dihitung 28 mod 75−1 .

Diketahui r0=75 dan r1=28. Hitung gcd(75, 28) menggunakan algoritma Euclide, yaitu:

75 = 2.28 + 19 n = 1, r1=28, q1=2 28 = 2.19 + 9 n = 2, r2 =19, q2 =2 19 = 2.9 + 1 n = 3, r3 =9, q3 =2 9 = 9.1 n = 4, r4 =1, q4 =9

Jadi, gcd(75, 28)= 1, dengan kata lain 28 mod 75−1 ada.

Dari penyelesaian algoritma Euclide di atas diperoleh diperoleh n = 4. Selanjutnya, menggunakan rumus rekurensi (1) di atas, diperoleh: (semua perhitungan dilakukan dalam mod 75)

2 0 1 1 0 2.1 2 73 t = −t q t = − = − = 3 1 2 2 1 1.( 2) 3 t = −t q t = − − = 4 2 3 3 2 2.3 8 67 t = −t q t = − − = − = 1 4 4 1 67.28 1 67 28 r =t r = = ⇔ = −

Dari hasil terakhir di atas, diperoleh 28 mod 75−1 =67. 2.4. Metode Fast Exponentiation

Metode ini digunakan untuk menghitung operasi pemangkatan besar bilangan bulat modulo dengan cepat. Metode ini memanfaatkan ekspansi biner dari eksponennya dan didasarkan pada pernyataan berikut ini:

( )

1 2

2i 2i

g + = g .

Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation, perhatikan contoh berikut ini.

Contoh 3. Akan dihitung 6 mod100 . 73

Jawab.

6 3 0

73=1.2 +1.2 +1.2 atau 73 =

(

)

2

1001001 . (semua perhitungan dilakukan dalam mod 100)

0 2 6 =6, 621 =36, 622 =362=96, 623 =16, 4 2 2 6 =16 =56, 625 =562 =36, 26 2 6 =56 =96. Sehingga diperoleh: 3 6 73 2 2 6 =6.6 .6 =6.16.96 16= . Jadi, 6 mod100 = 16. 73

Setelah mempelajari konsep-konsep dasar perhitungan matematis, berikut ini diberikan proses-proses yang digunakan RSA.

3. Pembentukan Kunci

Berikut ini adalah proses pembentukan kunci. Proses ini dilakukan oleh pihak penerima, dalam hal ini adalah B.

(1) Pilih bilangan prima p dan q. (2) Hitung n= pq.

(3) Hitung ϕ( )n =(p−1)(q−1).

(4) Pilih sebarang bilangan b, 1< <b ϕ( )n , dengan gcd( , ( ))bϕ n =1.

(5) Hitung invers dari b, yaitu a=b−1mod ( )ϕ n .

(6) Kunci publik: (n, b) dan kunci rahasia: a. Agar mempermudah dalam memahami sandi RSA, khusus pada tulisan ini, plainteks yang digunakan hanya berupa bilangan 0 s/d 25 yang berkorespondensi dengan huruf a s/d z. Akan tetapi pada penggunaan yang sebenarnya, digunakan korespondensi khusus seperti kode ASCII, serta bilangan-bilangan yang sangat besar.

Perhatikan, dalam pemilihan p dan q harus memenuhi n= pq lebih dari atau sama dengan nilai plainteks yang mungkin. Dalam hal ini n= pq≥25.

Tabel 1. Tabel Korespondensi

a b c d e f g h i j k l m

0 1 2 3 4 5 6 7 8 9 10 11 12

n o p q r s t u v w x y z

13 14 15 16 17 18 19 20 21 22 23 24 25

Contoh 4. B memilih p=5 dan q=11, maka n=55 dan ϕ(55)= −(5 1)(11 1)− =4.10=40. Selanjutnya dapat dipilih b=13, sebab gcd(13, 40)=1. Menggunakan algoritma Euclide diperluas diperoleh bahwa

1

13 mod 40 37

a= − = . Jadi, kunci publiknya adalah ( , )n b =(55,13) dan kunci rahasianya adalah a=37. Selanjutnya B mengirimkan kunci publik kepada A.

4. Enkripsi

Berikut ini adalah proses enkripsi RSA. Dilakukan oleh pihak pengirim, dalam hal ini adalah A. Seluruh perhitungan pemangkatan bilangan modulo dilakukan menggunakan metode fast exponentiation.

(1) Ambil kunci publik (n,b).

(2) Pilih plainteks m, dengan 0≤ ≤ −m n 1. (3) Hitung c=mbmodn.

(3)

Contoh 5. A menerima kunci publik ( , )n b =(55,13) dari B. Misalkan plainteksnya adalah “kripto”, menggunakan Tabel 1 diperoleh m1=10, m2 =17, m3=8, m4=15,

5 19

m = , dan m6 =14. Selanjutnya, dihitung:

13 1 1 mod 10 mod 55 b c =m n= =10 13 2 2 mod 17 mod 55 b c =m n= =7 13 3 3 mod 8 mod 55 b c =m n= =28 13 4 4 mod 15 mod 55 b c =m n= =20 13 5 5 mod 19 mod 55 b c =m n= =39 13 6 6 mod 14 mod 55 b c =m n= =49

Jadi, cipherteksnya adalah 10-7-28-20-39-49. Selanjutnya A mengirimkan cipherteks ini kepada B.

5. Dekripsi

Berikut ini adalah proses dekripsi RSA. Dilakukan oleh pihak penerima cipherteks, yaitu B.

(1) Ambil kunci publik (n,b) dan kunci rahasia a. (2) Hitung m=camodn.

Contoh 6. Setelah B memperoleh cipherteks dari A, yaitu 10-7-28-20-39-49, maka diambil kunci rahasia

37

a= , dan dilakukan perhitungan berikut.

37 1 1 mod 10 mod 55 a m =c n= =10 37 2 2 mod 7 mod 55 a m =c n= =17 37 3 3 mod 28 mod 55 a m =c n= =8 37 4 4 mod 20 mod 55 a m =c n= =15 37 5 5 mod 39 mod 55 a m =c n= =19 37 6 6 mod 49 mod 55 a m =c n= =14

Diperoleh plainteks 10-17-8-15-19-14, jika dikorespon-densikan sesuai Tabel 1, diperoleh pesan asli yang dikirimkan oleh A, yaitu “kripto”.

6. Kesimpulan dan Saran

Algoritma kunci publik seperti sandi RSA, baik digunakan untuk mengatasi masalah distribusi kunci, dan apabila jalur komunikasi yang digunakan tidak aman.

Untuk menembus keamanan RSA, pihak penyerang cukup hanya dengan memfaktorkan nilai n menjadi p dan q yang sesuai dengan kunci publik. Untuk memperkuat tingkat keamanan, sebaiknya digunakan bilangan prima p dan q yang besar, oleh Stinson (2006) dianjutran sebesar >80 digit, sehingga pihak penyerang akan kesulitan dan membutuhkan waktu yang sangat lama untuk memfaktorkan n, tidak sepadan dengan nilai informasi yang dicari.

Daftar Pustaka

Buchmann, Johannes A., 2000, Introduction to Cryptography, Springer-Verlag New York, USA.

Fraleigh. 2000, A First Course in Abstract Algebra, Sixth Edition, Addison-Wisley, USA.

Stinson, D.R., 2006, Cryptography Theory and Practice, Third Edition, Chapman & Hall/CRC, USA.

(4)

Soal Latihan 1:

A ingin mengirimkan sebuah pesan rahasia “helo” kepada B. Karena jalur komunikasi tidak aman, maka keduanya sepakat untuk menggunakan sistem kriptografi kunci publik, dan dipilih sandi RSA. Proses pertama, B membuat pasangan kunci terlebih dahulu. B memilih bilangan prima p=3 dan q=17.

1. Pembentukan Kunci (dilakukan oleh B) a) Hitung n= pq=... b) Hitung ϕ( )n =...

c) Misalkan B akan memilih b=6 atau b=9. Nilai b manakah yang bisa digunakan sebagai kunci? Cek kedua nilai b menggunakan algoritma Euclide. Gunakan nilai b yang memenuhi gcd( ( ), )ϕ n b =1. Jawab: Untuk b = 6. ... ... ... ... ... Untuk b = 9. ... ... ... ... ... Jadi, nilai b yang digunakan adalah b = ...

d) Tentukan nilai a=b−1mod ( )ϕ n =...mod ( )ϕ n .

menggunakan Extended Euclidian Algorithm. Jawab: ... ... ... ... ... ... ... ... e) Diperoleh pasangan kunci dari B, yaitu:

Kunci publik: ( , )n b =(... , ...) Kunci rahasia: a = ...

2. Proses Enkripsi (dilakukan oleh A)

a) Ubah pesan “helo” ke dalam bilangan (Tabel 1).

“h” m = ... 1 “e” m = ... 2 “l” m = ... 3 “o” m = ... 4 b) Hitung: 1 1 mod b c =m n = ... ... ... ... ... ... ... ... ... 2 2 mod b c =m n = ... ... ... ... ... ... ... ... ... 3 3 mod b c =m n = ... ... ... ... ... ... ... ... ... 4 4 mod b c =m n = ... ... ... ... ... ... ... ... ... Diperoleh cipherteks: 1 2 3 4 c − − −c c c = ... - ... - ... - ...

(5)

3. Proses Dekripsi (dilakukan oleh B) a) Diketahui kunci rahasia a = ...

1 1 mod a m =c n = ... ... ... ... ... ... ... ... ... ... 2 2 mod a m =c n = ... ... ... ... ... ... ... ... ... ... 3 3 mod a m =c n = ... ... ... ... ... ... ... ... ... ... 4 4 mod a m =c n = ... ... ... ... ... ... ... ... ... ... b) Konversi ke dalam huruf sesuai Tabel 1.

1

m = ..., m = ..., 2 m = ..., 3 m = ... 4 Jadi, pesan yang dikirimkan A adalah ...

Soal Latihan 2:

1) Hitung nilai pembagi persekutuan terbesar berikut ini menggunakan algoritma Euclide.

a. gcd(87, 36) b. gcd(188, 72) c. gcd(435,125)

2) Tentukan nilai invers berikut ini menggunakan Extended Euclidean Algorithm.

a. 17 mod101−1

b. 23 mod151−1 c. 357 mod1234−1

3) Hitung hasil dari pemangkatan besar modulo berikut ini menggunakan metode Fast Exponentation. a. 2 mod 25 25

b. 4 mod 30 34

c. 10 mod 75 43

4) Jika dipilih bilangan prima p=23 dan q=37, apakah b=143 bisa digunakan sebagai kunci? 5) Diberikan bilangan prima p dan q seperti soal 4) di

atas, dipilih b=67. Apakah nilai p, q, dan b di atas dapat digunakan untuk proses pembentukan kunci? Jika ya, tentukan kunci publik dan kunci rahasianya. 6) Diberikan kunci publik ( , )n b =(253, 3). Tentukan

hasil enkripsi plainteks m = 165.

7) Menggunakan kunci publik soal 6) di atas dan kunci rahasia a = 147, tentukan hasil dekripsi cipherteks

78

c= . (hint. hasilnya adalah plainteks m, dimana m adalah hasil kuadrat suatu bilangan genap)

8) Buktikan bahwa plainteks m dapat diperoleh dari perhitungan camodn .

9) Hitunglah nilai fungsi Phi-Euler ϕ( )n untuk n = 9, 26, 29, dan 50.

10) Buktikan bahwa jika n adalah bilangan prima, maka ( )n n 1

Gambar

Gambar 1. Skema algoritma kunci publik

Referensi

Dokumen terkait

Pada fase pembangungan fasilitas produksi, lebih dari 500 vendor dan 300 subkontraktor terlibat, termasuk perusahaan asing, domestik dan perusahaan lokal di kawasan proyek,

Bedasarkan penelitian diatas dapat tarik se- buah proses deteksi partial discharge pada kabel yaitu men- gukur gelombang suara menggukakan sensor microphone ke- mudian

Pola penyebaran MPT dari Muara sungai yang tinggi dan terlihat relatif sama menuju perairan Bengkulu, karena arus yang terjadi mempunyai gerakan yang sama sehingga sebaran MPT

Muara Sungai Bengawan Solo berpotensi mengalami pendangkalan akibat terendapnya sedimen tersuspensi dalam kurun waktu tertentu.Pendangkalan dapat merubah garis pantai

FRINNA SHINTA 500644607 Magister Manajemen MM PENGARUH PELATIHAN, INTERAK.SI SOSIAL, DAN MOTIVASI KERJA TERHADAP KINERJA PENYULUH MELALUI KOMPETENSI Studi pada Kantor

Ketua : Kepala Bagian Tata Usaha pada Perwakilan Badan Pengawasan Keuangan dan Pembangunan Provinsi Jawa Barat.. Anggota :

a) Koloni dari media TSIA yang menciri Salmonella sp. diinokulasikan 1 ose ke dalam media TB dan inkubasikan pada temperatur 35 °C selama 24±2 jam. b) Kemudian kedalam

Kinerja merupakan bagian pendukung dalam kelancaran proses kerja dalam suatu perusahaan. Kinerja yang dimaksud adalah kinerja sistem, kinerja dapat diukur dari