Perumusan Algoritma Kunci Publik RSA Membangkitkan Bilangan Acak Dengan Linear Congruential Generator

BAB III METODOLOGI PENELITIAN

3.1. Perumusan Algoritma Kunci Publik RSA

RSA melibatkan kunci publik dan kunci privat Kunci publik dapat diketahui semua orang dan digunakan untuk mengenkripsi pesan. Pesan dienkripsi dengan kunci publik hanya dapat didekripsi menggunakan kunci privat. Kunci untuk algoritma RSA yang dihasilkan dengan cara berikut: 1. Pilih dua yang berbeda perdana nomor p dan q. Untuk tujuan keamanan, bilangan bulat p dan q harus dipilih secara acak dengan menggunakan metode LCG dan menggunakan tes primality dengan metode The Sieve Of Eratosthenes. 2. Hitung n = pq. n digunakan sebagai modulus untuk kunci publik dan privat. 3. Hitunglah Φn = p - 1 q - 1, di mana Φ adalah fungsi totient Euler . 4. Pilih e bilangan bulat sedemikian sehingga 1 e Φ n dan FPB e, Φ n = 1, e dan Φ yaitu n adalah relatif prima coprime . 5. Tentukan d = e mod Φ -1 invers perkalian n; yaitu d adalah dari mod Φe n. dengan rumus berikut Mollin, 2007 : ……………………………………3.1 d adalah eksponen disimpan sebagai kunci pribadi. Kunci publik terdiri dari modulus n dan e atau enkripsi eksponen publik. Kunci privat terdiri dari modulus n dan atau dekripsi swasta eksponen d yang harus dirahasiakan. Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut : d = e 1 + k mod Φn Universitas Sumatera Utara Gambar 3.1 Main Flowchart Universitas Sumatera Utara 3.2. Enkripsi dan Dekripsi RSA Kunci Publik 3.2.1 Enkripsi Bob mengirimkan kunci publik nya n, e untuk Alice dan menjaga rahasia kunci pribadi. Alice mengirim pesan “POT” ke Bob. Dia pertama kali merubah pesan “POT” kedalam bentuk ASCII, sehingga pesan yang disampaikan menjadi plainchar yang sudah dikonversi kedalam ASCII. Hal ini dapat dilakukan dengan cepat menggunakan metode exponentiation dengan mengkuadratkan yaitu dengan rumus Mollin, 2007 : C = p e mod n …………………………………………………… 3.2 Alice kemudian mengirimkan hasil c kepada Bob. Misalkan, Plaintext yang dikirim adalah “ POT“ kemudian dikonversi ke ASCII maka : plainchar 1 = “P” → P1 = 80 ………………. P 1 plainchar 2 = “O” → P2 = 79………………. P 2 plainchar 3 = “T” → P3 = 84 ……………….P 3 Bob mengirimkan kunci publik nya setelah dikonversi ke ASCII yaitu : 80, 79, 84 . Hasil inilah yang di enkripsi Alice dengan persamaan 3.2 kemudian dikirim kepada Bob. n, e untuk alice dan menjaga rahasia kunci pribadi Bob, maka keinginan untuk mengirim pesan T plainchar ke Bob, Alice pertama kali merubah menjadi T bilangan bulat, sedemikian sehingga 0 m n dengan menggunakan protokol yang disepakati reversibel dikenal sebagai skema bantalan Alice kemudian menghitung ciphertext c sesuai dengan rumus 3.2. Universitas Sumatera Utara Hal ini dapat dilakukan dengan cepat menggunakan metode exponentiation dengan mengkuadratkan . Alice kemudian mengirimkan T kepada Bob. Perancangan aplikasinya dapat dilihat pada flowchart berikut : Gambar 3.2 Flowchart Proses Enkripsi Universitas Sumatera Utara

3.2.2 Dekripsi

Bob dapat memulihkan P plaintext dari C chipertext dengan menggunakan kunci pribadinya d eksponen melalui komputasi 3.1 Kunci pribadi Bob adalah d , n . Untuk melakukan enkripsi RSA, teks asli disusun menajdi blok x1, x2, ….. sedemikian sehingga setiap blok mempresentasikan nilai di dalam rentang 0 sampai r-1. Setiap blok x1 di enkripsi menjadi blok y1 dengan rumus Mollin, 2007 : P = c d mod n. ……………………………………………………... 3.3 Perancangan aplikasinya dapat dilihat pada flowchart berikut : Gambar 3.3 Flowchart Proses Dekripsi Universitas Sumatera Utara Contoh: Setelah dilakukan kombinasi pembangkitan bilangan acak dengan metode LCG dan The Sieve of Eratosthenes, maka bilangan yang akan muncul akan acak pula. Misalkan bilangan yang muncul adalah : p = 13 q = 5 9. Hitung n = p.q memberikan n = 13 · 5 n = 65 10. Hitunglah totient dari produk sebagai Φn = p - 1 q - 1 memberikan Φn = 13-1 5-1 Φn = 48 11. Ambil bilangan bulat e dengan syarat 1 e Φn, relatif prima dengan 48. Yang memiliki FPB = 1 dengan 48. Misalkan e = 17. Kunci publik adalah n = 65, e = 17 12. encode pesan ke ASCII misalkan plaintext yang dikirim adalah “ POT“ plainchar 1 = “P” → P1 = 80 ………………. P 1 plainchar 2 = “O” → P2 = 79………………. P 2 plainchar 3 = “T” → P3 = 84 ……………….P 3 13. Enkripsi pesan dengan rumus 3.2 maka : 80 17 mod 65 = 45 ……………….C 1 79 17 mod 65 = 14 ……………….C 2 84 17 mod 65 = 54 ……………….C 3 14. Hitunglah kunci privat d, dengan rumus 3.1. Untuk mencari nilai k Dapat dicari dengan menggunakan Microsoft Excel. Dengan syarat k dan d adalah bilangan bulat positif. Menghasilkan d = 113. Kunci Privat adalah n = 65, d = 113 Universitas Sumatera Utara 15. Deskripsikan pesan terenkripsi dengan rumus 3.3 maka : P 1 = 45 113 mod 65 = 80 P 2 = 14 113 mod 65 = 79 P 1 = 54 113

16. Hasil Dekripsi adalah “80”, “79”, “84” = “POT’’

mod 65 = 84

3.3. Membangkitkan Bilangan Acak Dengan Linear Congruential Generator

Bilangan acak adalah bilangan yang tidak dapat diprediksi kemunculannya. Tidak ada komputasi yang benar – benar menghasilkan deret bilangan acak secara sempurna. Banyak algoritma atau metode yang dapat digunakan untuk membangkitkan bilangan acak salah satunya adalah pembangkit bilangan acak Linear Congruential Generator LCG. Dapat dilihat pada tabel 2.2 terjadi pengulangan pada periode tertentu atau setelah sekian kali pembangkitan. LCG mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus periodenya kurang dari itu. LCG mempunyai periode penuh m – 1 jika memenuhi syarat sebagai berikut : 1. b relatif prima terhadap m 2. a-1 dapat dibagi dengan semua faktor prima dari m 3. a-1 adalah kelipatan 4 jika m adalah kelipatan 4 4. m maks a, b, x 5. a 0, b 0 Dari beberapa syarat tersebut Schneier, 1996 merekomendasikan beberapa nilai konstanta a, b, dan m yang bagus untuk LCG dapat dilihat pada tabel berikut : Universitas Sumatera Utara Tabel 3.1 Konstanta yang bagus untuk LCG a B m 106 1283 6075 211 1663 7875 421 1663 7875 430 2351 11979 936 1399 6655 1366 1283 6075 171 11213 53125 859 2531 11979 419 6173 29282 967 3041 14406 141 28411 134456 625 6571 31104 1541 2957 14000 1741 2731 12960 1291 4621 21870 205 29573 139968 421 17117 81000 1255 6173 29282 281 28411 134456 Untuk membuktikannya dapat mengambil salah satu konstanta sebagai contoh. Misalkan : a = 106 b = 1283 m = 6075 Maka akan dihasilkan : Universitas Sumatera Utara Tabel 3.2 Hasil pembuktian contoh salah satu konstanta n xn 1 1283 2 3631 3 3444 4 1847 5 2665 6 4323 7 3896 8 1159 9 2637 10 1355 11 5188 12 4461 13 299 14 2602 15 3720 16 728 17 5551 18 414 19 2642 20 1885 21 618 22 6041 23 3754 Universitas Sumatera Utara 24 4332 25 4850 26 5083 27 5481 28 5144 29 5872 30 4065 31 848 32 46 33 84 34 4112 35 5830 36 5688 37 2786 38 4999 39 2652 40 2945 41 3628 42 3126 43 4589 44 1717 45 1035 46 1643 47 5341 48 2454 49 182 50 2350 Universitas Sumatera Utara 51 1308 52 206 53 4894 54 3672 55 1715 56 823 57 3471 58 4709 59 2287 60 705 61 3113 62 3211 63 1449 64 3002 65 3595 66 5703 67 4376 68 3439 69 1317 70 1160 71 2743 72 441 73 5504 74 1507 75 3075 76 5258 77 5806 Universitas Sumatera Utara 78 3144 79 422 80 3490 81 648 82 3146 83 634 84 1662 85 1280 Dari tabel tersebut dapat dilihat bahwa tidak ada perulangan angka pada periode 85 , dan angka yang dihasilkan cukup besar. Mengingat pada penelitian ini penulis membatasi bilangan acak yang digunakan adalah 1 sd 100 untuk menghindari kesalahan perhitungan pada aplikasi. Dan mengacu pada tujuan penelitian adalah mencari dan memunculkan bilangan yang cukup acak sehingga tidak dapat diprediksi, ada beberapa cara yang dilakukan yaitu : 1. Pada syarat b relatif prima terhadap m, penulis menggunakan bilangan prima pada konstanta b, karena suatu bilangan bulat sudah pasti relatif prima dengan bilangan prima. 2. Konstanta a adalah memiliki faktor pembagi yang sama dengan m yaitu kelipatan 4. 3. Konstanta m adalah fungsi waktu yaitu dalam detik, maksud waktu disini adalah pada detik keberapakah saat melakukan pengambilan bilangan untuk m. misalkan saat pengambilan bilangan detik menunjukkan ke-12, maka m = 12. Universitas Sumatera Utara Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut : Gambar 3.4 Flowchart LCG Universitas Sumatera Utara

3.4. Pengujian Bilangan Prima Dengan The Sieve of Eratosthenes