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