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, B, dan C. Proses kerjanya dapat dilihat pada gambar 3.7:
Universitas Sumatera Utara
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 variabel numerik pnP dan pnA. Proses kerjanya dapat dilihat pada gambar 3.8:
Universitas Sumatera Utara
Start pnC = pnP - 1
nTemp = 0
IF pnC mod 2nTemp = 0 AND 2nTemp pnP
nTemp = nTemp +1 Ya
Tidak pnB = nTemp -1
pnM = pnC 2 pnB pnJ = 0
pnZ = fungsi FFastExppnA, 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 FFastExppnZ, 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.
Proses kerjanya dapat dilihat pada gambar 3.9:
Universitas Sumatera Utara
Start
nP = nRandom
c80 = FTest80PnP
IF c80.Prima Ya
bSuccess = FIsRabinMillernP, 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
kerjanya dapat dilihat pada gambar 3.10. :
Universitas Sumatera Utara
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
3.5. Perancangan Program
Adapun perancangan program yang penulis buat, guna memberikan gambaran tentang system yang dibangun adalah sebagai berikut :
a. Tampilan Utama Menu Program Pada saat program aplikasi dijalankan, maka terlebih dahulu akan tampil menu pilihan
yang berfungsi untuk menentukkan pilihan menu apa yang pengguna inginkan. Adapun isi dari menu dapat digunakan antara lain :
1. Menu file berfungsi untuk melakukan proses membuka file, menyimpan file dan keluar dari program.
2. Menu proses berfungsi untuk melakukan proses enkripsi, dekripsi, input kunci, membatalkan proses yang berjalan dan melihat tampilan cipher.
3. Menu Options yang terdiri dari Pengaturan seperti setting penyimpanan file, Tampilan laporan dan pemilihan metode seperti metode Rabin dan RSA.
4. Menu help terdiri dari pilihan berupa informasi pemberitahuan mengenai cara mengenkripsi dan mendekripsi, mengetahui informasi tentang sipenulis.
Universitas Sumatera Utara