BAB III METODOLOGI PENELITIAN
3.4 Teknik Pengembangan
Sistem yang akan penulis rancang terdiri dari dua buah metode yaitu metode dengan algoritma Rabin dan metode dengan algoritma Rivest Shamir Adleman ( RSA ), dimana pada kedua metode tersebut memiliki tahap – tahap seperti tahap pembangkitan kunci untuk mendapatkan kunci privat dan kunci public, tahap enkripsi dan tahap dekripsi.
3.4.1 Metode Algoritma Rabin 3.4.1.1.Tahap Pembentukan Kunci
Proses pembentukan kunci dari metode algoritma Rabin ini memerlukan dua buah bilangan prima, yaitu nilai p dan q. Output dari tahapan pembentukan kunci ini adalah:
1. Kunci privat, yaitu nilai p dan q. 2. Kunci publik, yaitu nilai n.
Adapun flowchart dari proses pembentukkan kunci algoritma Rabin dapat dilihat pada gambar 3.1.berikut :
Start
Input Manual
Ya
Tidak
Validasi Input Tidak
valid
Valid
Input bilangan
p dan q
Hitung nilai
n = p * q
Kunci Privat
Kunci Publik
End
Bangkitkan bilangan prima yaitu
p dan q, dengan menggunakan metode
Rabin Miller
Gambar 3.1. Flowchart Pembentukkan Kunci Algoritma Rabin
3.4.1.2 Proses Enkripsi algoritma Rabin
Proses enkripsi dari algoritma Rabin memerlukan beberapa input yaitu: 1. Pesan berupa deretan string.
2. Kunci publik, yaitu nilai n.
Sedangkan, output dari tahap enkripsi pada algroitma Rabin adalah kumpulan nilai cipher Ci. Adapun flowchart dari proses enkripsi algoritma Rabin dapat dilihat pada gambar 3.2.berikut :
Start
Konversi pesan ke bentuk ASCII Code biner
Bagi bit-bit biner menjadi blok dengan ukuran b, dimana b dapat dihitung
dengan 2b <= n. Input Pesan
Konversikan tiap blok (blok-1 .. blok-z) menjadi bilangan desimal (M1 .. Mz)
Untuk i = 1 sampai z
Ci = Mi2 mod n
Kumpulan nilai Ci
End
Sisipkan bit pengenal berupa bit ‘1111’ di
depan setiap subblok
Gambar 3.2. Flowchart proses enkripsi pada algoritma Rabin
3.4.1.3 Tahap Dekripsi Pada Algoritma Rabin
Proses dekripsi dari algoritma Rabin memerlukan beberapa input yaitu: 1. Kumpulan nilai cipher Ci.
2. Kunci privat, yaitu nilai p dan q.
Sedangkan, output dari tahap dekripsi pada algroitma Rabin adalah pesan semula. Adapun flowchart dari proses dekripsi algoritma Ralbin dapat dilihat pada gambar 3.3.berikut :
Start
Input Kumpulan Nilai Ci
Untuk i = 1 sampai [jumlah nilai Ci]
Hitung 4 kemungkinan nilai Mi
Pesan
End
Konversikan semua block ke bentuk karakter
Konversikan masing-masing Mi ke bilangan biner yang akan menghasilkan block of b
Gabungkan semua bit dan bagi kembali menjadi block of 8
Pilih kemungkinan nilai Mi yang memiliki
bit pengenal ‘1111’ di awalnya
Gambar 3.3. Flowchart Proses Dekripsi Pada Algoritma Rabin
3.4.2 Metode Algoritma Rivest Shamir Adleman ( RSA )
3.4.2.1Tahap Pembentukkan Kunci Pada Algoritma Rivest Shamir Adleman ( RSA )
Proses pembentukan kunci dari metode algoritma RSA ini memerlukan dua buah bilangan prima, yaitu nilai p dan q beserta sebuah bilangan acak d. Output dari tahapan pembentukan kunci ini adalah:
1. Kunci privat, yaitu nilai p, q, d dan n. 2. Kunci publik, yaitu nilai e dan n.
Adapun flowchart dari proses pembentukkan kunci algoritma RSA dapat dilihat pada gambar 3.4.berikut :
Start
Input Manual
Ya Tidak
Validasi Input Tidakvalid
Valid Input bilangan p dan q Hitung nilai n = p * q Input Manual Ya Tidak
Validasi Input Tidakvalid Valid Input nilai d
Hitung nilai invers modulo e = d-1 (mod Ø(n))
Kunci Privat Kunci Publik
End Bangkitkan bilangan prima yaitu
p dan q, dengan menggunakan metode Rabin Miller
Ambil nilai d secara acak
Hitung nilai Ø(n) = (p - 1) * (q - 1)
Gambar 3.4. Proses Pembentukan Kunci Pada Rivest Shamir adleman ( RSA )
3.4.2.2Tahap Enkripsi Pada Algoritma Rivest Shamir Adleman ( RSA )
Proses enkripsi dari algoritma RSA memerlukan beberapa input yaitu: 1. Pesan berupa deretan string.
2. Kunci publik, yaitu nilai e dan n.
Sedangkan, output dari tahap enkripsi pada algroitma RSA adalah kumpulan nilai cipher Ci. Adapun flowchart dari proses enkripsi algoritma RSA dapat dilihat pada gambar 3.5.berikut :
Start
Input Manual
Ya Tidak
Validasi Input Tidakvalid
Valid Input bilangan p dan q Hitung nilai n = p * q Input Manual Ya Tidak
Validasi Input Tidakvalid
Valid Input nilai d
Hitung nilai invers modulo e = d-1 (mod Ø(n))
Kunci Privat Kunci Publik
End Bangkitkan bilangan prima yaitu
p dan q, dengan menggunakan metode Rabin Miller
Ambil nilai d secara acak
Hitung nilai Ø(n) = (p - 1) * (q - 1)
Gambar 3.5. Enkripsi Pada Algoritma Rivest Shamir Adleman ( RSA )
3.4.2.3Tahap Dekripsi Pada Algoritma Rivest Shamir Adleman ( RSA )
Proses dekripsi dari algoritma RSA memerlukan beberapa input yaitu: 1. Kumpulan nilai cipher Ci.
2. Kunci privat, yaitu nilai d dan n.
Sedangkan, output dari tahap dekripsi pada algroitma RSA adalah pesan semula. Adapun flowchart dari proses dekripsi algoritma RSA dapat dilihat pada gambar 3.6.berikut :
Start
Input Manual
Ya Tidak
Validasi Input Tidak valid Valid Input bilangan p dan q Hitung nilai n = p * q Input Manual Ya Tidak
Validasi Input Tidak valid Valid
Input nilai d
Hitung nilai invers modulo e = d-1 (mod Ø(n))
Kunci Privat Kunci Publik
End Bangkitkan bilangan prima yaitu
p dan q, dengan menggunakan metode Rabin Miller
Ambil nilai d secara acak
Hitung nilai Ø(n) = (p - 1) * (q - 1)
Gambar 3.6. Dekripsi Pada Algoritma Rivest Shamir Adleman ( RSA )
3.4.3. Proses Kerja Fungsi Pendukung
Proses kerja dari fungsi-fungsi pendukung yang digunakan dapat dijabarkan sebagai berikut:
1. Fungsi Fast Exponentiation, dengan parameter input berupa variabel numerik A,
Start A1 = A B1 = B Product = 1 IF B1 <> 0 IF B1 mod 2 = 0 B1 = B1 \ 2 A1 = (A1 * A1) mod C
B1 = B1 - 1
Product = (Product * A1) mod C Ya Tidak Ya Tidak End FFastExp = Product
Gambar 3.7 Proses Kerja dari Fungsi Fast Exponentiation
2. Fungsi Pengujian Bilangan Prima Rabin Miller, dengan parameter input berupa
Start pnC = pnP - 1 nTemp = 0 IF pnC mod (2^nTemp) = 0 AND (2^nTemp) < pnP nTemp = nTemp +1 Ya Tidak pnB = nTemp -1 pnM = pnC / (2 ^pnB) pnJ = 0 pnZ = fungsi FFastExp(pnA, pnM, pnP) IF pnZ = 1 OR pnZ = (pnP - 1) pnP merupakan bilangan prima IF pnJ > 0 AND pnZ = 1 pnP bukan bilangan prima IF pnJ < pnB AND pnZ <> pnP - 1 pnJ = pnJ + 1 pnZ = fungsi FFastExp(pnZ, 2, pnP) Ya Ya Tidak Tidak Ya IF pnZ = pnP - 1 IF pnJ = pnB AND pnZ <> pnP - 1 pnP merupakan bilangan prima pnP bukan bilangan prima Ya Ya Tidak Tidak End
Gambar 3.8 Proses Kerja dari Fungsi Pengujian Bilangan Prima Rabin Miller
3. Fungsi Pembangkitan Bilangan Prima dengan Rabin Miller, tanpa parameter input.
Start
nP = nRandom
c80 = FTest80P(nP)
IF c80.Prima
Ya
bSuccess = FIsRabinMiller(nP, nA)
IF bSuccess
Ya
Lanjutkan Tes untuk nilai nA yang lain ? Tidak
Tidak
Ya nA = Bangkitkan bilangan acak
End Tidak nP bukan bilangan prima nP merupakan bilangan prima
Gambar 3.9. Proses Kerja dari Fungsi Pembangkitan Bilangan Prima Rabin Miller
4. Fungsi GCD, dengan parameter input berupa variabel numerik A dan B. Proses
Start P = A Q = B IF Q <> 0 R = P mod Q P = Q Q = R GCD = P End Ya Tidak
Gambar 3.10. Proses Kerja dari Fungsi GCD