• 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: M. Zaki Riyanto

Program Studi Matematika, Fak. Sains dan Teknologi UIN Sunan Kalijaga Yogyakarta

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 perkalian modulo n. Ingat bahwa n belum tentu merupakan grup terhadap operai perkalian modulo n. Dengan kata lain, ( )n adalah banyaknya elemen

xn| gcd( , ) 1x n

. Jika npq dengan p dan q adalah bilangan prima yang berbeda, 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 rq rr , 0 r2 r1 1 2 2 3 rq rr , 0 r3 r2 ... 2 1 1 n n n n rqrr ,0rnrn1 1 n n n rq r

Dari pernyataan di atas, dapat ditunjukkan bahwa

0 1 1 2 1

gcd( , )r r gcd( , )r r  ... gcd(rn, )rn gcd( , 0)rnrn. 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 yang Diperluas

Algoritma ini merupakan perluasan dari algoritma Euclide (Extended Euclidean Algorithm), digunakan untuk mencari invers terhadap operasi perkaliann. Algoritma ini didasarkan pada pernyataan berikut. Diberikan bilangan bulat positif r0 dan r1, r0r1. 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 tt q t , j2 ... (1) A enkripsi dekripsi B

Plainteks cipherteks Plainteks Kunci Publik Kunci Rahasia

(2)

Keterangan: qj diperoleh dari perhitungan gcd

r r0,1

menggunakan algoritma Euclide. Jika gcd

r r0, 1

1, berarti 1

1 n

r t . Sehingga rnt rn1 atau 1t rn1. Bukti bisa dilihat di (Stinson, 2006).

Contoh 2. Akan dihitung 1

28 mod 75 .

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 1

28 mod 75 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 rt r      Dari hasil terakhir di atas, diperoleh 1

28 mod 75 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 mod10073 . 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, 25 2 6 56 36, 26 2 6 56 96. Sehingga diperoleh: 3 6 73 2 2 6 6.6 .6 6.16.96 16 . Jadi, 6 mod10073 = 16.

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 npq.

(3) Hitung ( ) n (p1)(q1).

(4) Pilih sebarang bilangan b, 1 b ( )n , dengan gcd( , ( ))bn 1.

(5) Hitung invers dari b, yaitu ab1mod ( )n .

(6) Kunci publik: (n, b) dan kunci rahasia: a.

Agar mempermudah dalam memahami sandi RSA, pada tulisan ini diberikan contoh yang sangat sederhana, 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 npq lebih dari atau sama dengan nilai plainteks yang mungkin. Dalam hal ini npq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. Alice akan mengirimkan pesan rahasia kepada Bob menggunakan RSA, maka Bob harus melakukan proses pembentukan kunci. Bob memilih p5 dan

11

q , sehigga diperoleh 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 Bob mengirimkan kunci publik kepada Alice.

(3)

4. Enkripsi

Berikut ini adalah proses enkripsi RSA. Dilakukan oleh pihak pengirim, dalam hal ini adalah Alice. 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 cmbmodn.

(4) Diperoleh cipherteks c, dan kirimkan kepada Bob.

Contoh 5. Alice menerima kunci publik ( , )n b (55,13) dari Bob. Misalkan plainteksnya adalah “kripto”, menggunakan Tabel 1 diperoleh m110, m2 17,

3 8 m  , m4 15, m519, dan m6 14. Selanjutnya, dihitung: 13 1 1 mod 10 mod 55 b cm n 10 13 2 2 mod 17 mod 55 b cm n 7 13 3 3 mod 8 mod 55 b cm n 28 13 4 4 mod 15 mod 55 b cm n 20 13 5 5 mod 19 mod 55 b cm n 39 13 6 6 mod 14 mod 55 b cm n 49

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

5. Dekripsi

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

(1) Ambil kunci publik (n,b) dan kunci rahasia a. (2) Hitung mcamodn.

Contoh 6. Setelah Bob memperoleh cipherteks dari Alice, yaitu 10-7-28-20-39-49, maka diambil kunci rahasia a37, dan dilakukan perhitungan berikut.

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

Diperoleh plainteks 10-17-8-15-19-14, jika dikorespon-densikan sesuai Tabel 1, diperoleh pesan asli yang dikirimkan oleh Alice, 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) dianjurkan sebesar >80 digit atau berukuran minimal 2048 bit, 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:

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

1. Pembentukan Kunci (dilakukan oleh B) a) Hitung npq... b) Hitung ( ) n ...

c) Misalkan Bob 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 ab1mod ( )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 Alice)

a) Ubah pesan “helo” ke dalam bilangan (Tabel 1). “h” m1= ... “e” m2= ... “l” m3= ... “o” m4= ... b) Hitung: 1 1 mod b cm n = ... ... ... ... ... ... ... ... ... 2 2 mod b cm n = ... ... ... ... ... ... ... ... ... 3 3 mod b cm n = ... ... ... ... ... ... ... ... ... 4 4 mod b cm n = ... ... ... ... ... ... ... ... ... Diperoleh cipherteks: 1 2 3 4 c   c c c = ... - ... - ... - ...

(5)

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

1 1 mod a mc n = ... ... ... ... ... ... ... ... ... ... 2 2 mod a mc n = ... ... ... ... ... ... ... ... ... ... 3 3 mod a mc n = ... ... ... ... ... ... ... ... ... ... 4 4 mod a mc n = ... ... ... ... ... ... ... ... ... ...

b) Konversi ke dalam huruf sesuai Tabel 1.

1

m = ..., m2 = ..., m3 = ..., m4 = ... 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. 1

17 mod101 b. 23 mod1511

c. 1

357 mod1234

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

b. 34

4 mod 30 c. 43

10 mod 75

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
Tabel 1. Tabel Korespondensi

Referensi

Dokumen terkait

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

Tidak lupa juga kepada para responden yang terlibat dalam kajian ini iaitu pihak industri perhotelan di Malaysia, para pensyarah dan pelajar semester akhir Diploma Hotel dan

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

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

Pengkayaan hayati tanah dapat dilakukan dengan menambah jenis dan populasi organisme tanah melalui aplikasi biofertilizer yang merupakan jenis pupuk dengan kandungan

a) Adanya penerimaan profit margin dari penjualan di masa depan dan konsumen yang loyal, hal ini sangat berlawanan dengan versi paradigma mikro ekonomi yang mengatakan

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