• Tidak ada hasil yang ditemukan

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

Dokumen terkait