• Tidak ada hasil yang ditemukan

BAB III METODE PENELITIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III METODE PENELITIAN"

Copied!
17
0
0

Teks penuh

(1)

BAB III

METODE PENELITIAN

3.1 Analisa Masalah

Tujuan utama algoritma Hybrid RSA EL-GAMAL adalah untuk memperkuat tingkat keamanan yang secara detail sudah dijelaskan pada subbab 2.5. Performa algortima RSA dapat dilihat melalui waktu yang diperlukan untuk melakukan pembangkitan kunci, enkripsi dan juga dekripsi. Pengujian perfoma antara algoritma RSA, EL-GAMAL dan Hybrid dilakukan untuk menganalisis perbandingan perfoma antar ketiga algoritma tersebut.

Algoritma RSA memiliki banyak celah keamanan yang memungkinkan terjadinya berbagai jenis metode penyerangan. Metode serangan ini sudah dipaparkan pada subbab 2.3.2, begitu juga dengan algoritma EL-GAMAL yang memiliki celah kemanan. Metode penyerangan algoritma EL-GAMAL juga sudah dijelaskan pada subbab 2.4.2. Algortima Hybrid diharapkan mampu menutupi celah keamanan algoritma RSA dengan menggunakan algoritma EL- GAMAL. Untuk memastikan hal ini, pengujian keamanan dilakukan. Pengujian kemanan antara algoritma RSA, EL-GAMAL dan Hybrid digunakan untuk membandingkan kemaanan ketiga algoritma tersebut. Metode keamanan yang digunakan adalah fermat factorization dan baby step-giant step. Hasil pengujian performa dan pengujian kemanan diharapkan dapat menjadi bahan evaluasi untuk mengukur kualitas hasil ketiga algoritma tersebut dari segi performa mauun keamanan.

3.2 Rancangan Algoritma RSA

Rancangan algoritma RSA ini sesuai dengan algoritma RSA asli pada subbab 2.3. Rancangan ini nantinya diimplementasikan pada program komputer yang ditulis dengan bahasa pemrograman java. Algoritma ini terbagi menjadi tiga mekanisme yang berbeda yang dilakukan secara berurutan.

(2)

3.2.1 Pembangkitan Kunci algoritma RSA

Pembangkitan kunci pada algoritma RSA standar diawali dengan membangkitkan dua bilangan prima (p dan q). Jika dua bilangan prima (p dan q) sudah terpilih dilanjutkan menghitung nilai N dengan rumus (2.1) dan menghitung Ф(N) dengan rumus (2.2). Langkah selanjutnya adalah memilih bilangan bulat e secara acak dengan ketentuan faktor persekutuan terbesar (FPB) atau great common divisor (gcd) antara e dan Ф(N) sama dengan satu (lihat rumus (2.3)). Jika nilai e sudah terpilih dilanjutkan dengan perhitungan nilai d.

Hubungan nilai e dan d dituliskan seperti pada rumus (2.4). Pasangan nilai e dan N menjadi kunci publik yang selanjutnya didistribusikan untuk melakukan enkripsi sedangkan pasangan nilai d dan N menjadi kunci privat yang dirahasiakan untuk melakukan dekripsi. Pseudo code proses pembangkitan kunci algoritma RSA standar adalah sebagai berikut:

Gambar 3.1pseudo code pembangkitan kunci algoritma RSA

Proses pembangkitan kunci algoritma RSA membutuhkan input panjang bit bilangan prima dan panjang bit eksponen enkripsi. Input tersebut ditentukan oleh user sesuai dengan pilihan yang sudah disediakan. Panjang bit bilangan prima yang digunakan pada penelitian ini adalah 64 bit, 128 bit dan 256 bit, sedangkan panjang bit eksponen enkripsi yang digunakan pada penelitian ini antara lain berukuran sama dengan bilangan prima (default). Alur proses pembangkitan kunci algoritma RSA standar adalah sebagai berikut:

Input: panjang bit bilangan prima (α), panjang bit eksponen enkripsi (β)

Output: Kpublik, Kprivat

1. Bangkitkan dua bilangan prima berukuran α bit (p dan q)

2. N = p × q

3. Ф(N) = (p - 1) × (q - 1)

4. Pilih bilangan bulat e berukuran β bit dengan gcd(e, Ф(N)) = 1, 1 < e < Ф(N)

5. d = e-1 mod Ф(N)

6. Kpublik = (e, N), Kprivat = (d, N)

(3)

Gambar 3.2 alur pembangkitan kunci Algoritma RSA 3.2.2 Enkripsi Algortima RSA

Enkripsi dipergunakan untuk menyandikan pesan sebelum pesan tersebut dikirim melalui saluran jaringan. Sebelum pesan dienkripsi, masing-masing karakter pada pesan diubah menjadi nilai ASCII desimal. Tiap-tiap nilai ASCII ini kemudian diubah menjadi nilai cipher text (C) dengan rumus (2.5) dan digabungkan menjadi satu membentuk pesan terenkripsi. Pseudo code proses enkripsi algoritma RSA standar adalah sebagai berikut:

Gambar 3.3 pseudocode enkripsi algoritma RSA Input: Kpublik = (e, N), plain text (M) Output: cipher text (C)

1. for i ← 0 to PanjangPlaintext - 1 do 2. Konversi Mi ke nilai desimal

3. Ci ← (Mi)e mod N 4. end for

5. Return C

(4)

Proses enkripsi memerlukan input kunci publik dari user target penerima pesan dan pesan asli atau plain text (M). User menginput sebuah pesan singkat dan memilih user target penerima pesan. Setiap user memiliki kunci publik yang disebarluaskan melalui saluran jaringan. Nama user beserta kunci publiknya disimpan dalam daftar user online. Daftar user online dimiliki oleh setiap user.

Ketika user memilih user target penerima pesan maka system otomatis menginput kunci publik user tersebut untuk proses enkripsi. Alur proses enkripsi algoritma RSA adalah sebagai berikut:

Gambar 3.4 alur enkripsi algoritma RSA

(5)

3.2.3 Dekripsi Algoritma RSA

Dekripsi digunakan untuk mengubah pesan terenkripsi (cipher text atau C) menjadi sebuah pesan asli (plain text atau M). Nilai M dihitung dengan rumus (2.6) untuk tiap nilai C yang ada pada pesan terenkripsi. Nilai M hasil dekripsi berupa nilai desimal yang kemudian diubah menjadi karakter. Penelitian ini Jika pada proses enkripsi nilai desimal karakter diperoleh dari nilai ASCII desimal maka pada dekripsi pengubahan nilai M ke karakter juga dilakukan berdasarkan nilai ASCII. Tiap karakter hasil pengubahan tersebut disatukan kembali sehingga membentuk pesan asli. Pseudo code dekripsi algoritma RSA adalah sebagai berikut:

Gambar 3.5 pseudocode dekripsi algoritma RSA

Proses dekripsi algoritma RSA memerlukan input kunci privat (N,d) dan pesan terenkripsi (C). Setiap user memiliki satu kunci privat yang diperoleh setelah melakukan pembangkitan kunci. Kunci privat tersebut tersimpan secara rahasia dan tidak didistribusikan kepada siapapun. Proses dekripsi dilakukan setiap kali user menerima pesan baru dari user lain. Sistem menginputkan pesan terenkripsi dan kunci privat secara otomatis untuk melakukan dekripsi. Pesan ter enkripsi yang diterima akan direpresentasikan kembali kedalam karakter yang sebelumnya dalam proses enkripsi telah dilakukan konversi kedalam nilai ASCII.

Setelah karakter dari konversi nilai ASCII tersebut akan kembali di susun sebelum di tampilkan kepada socket TCP penerima. Alur proses dekripsi algoritma RSA adalah sebagai berikut:

Input: Kprivat = (d, N), cipher text (C) Output: plain text (M)

1. for i 0 to PanjangCiphertext - 1 do 2. Mi (Ci)d mod N

3. Konversi nilai Mi ke karakter 4. end for

5. Return M

(6)

Gambar 3.6 Alur dekripsi algoritma RSA 3.3 Rancangan Algoritma EL-GAMAL

Rancangan algoritma EL-GAMAL ini sesuai dengan algoritma EL- GAMAL pada subbab 2.4. Rancangan ini nantinya diimplementasikan pada program komputer yang ditulis dengan bahasa pemrograman java. Algoritma ini terbagi menjadi tiga mekanisme yang berbeda yang dilakukan secara berurutan.

3.3.1 Pembangkitan Kunci Algoritma EL-GAMAL

Pembangkitan kunci pada algoritma EL-GAMAL diawali dengan pembangkitan bilangan prima EL-GAMAL pEL dan dua bilangan acak g dan x.

Langkah selanjutnya adalah menghitung nilai y dengan rumus (2.7), hubungan nilai d dan x dituliskan pada rumus (2.7). Pasangan nilai pEL, g dan y menjadi

(7)

kunci publik yang selanjutnya didistribusikan untuk proses enkripsi sedangkan nilai x dan pEL menjadii kunci privat yang dirahasiakan untuk proses dekripsi.

Gambar 3.7 pseudo code pebangkitan kunci EL-GAMAL

Proses pembangkitan kunci algoritma EL-GAMAL membutuhkan input panjang bit bilangan prima dan dua bilangan acak yang mempunyai ketentuan panjang bit bilangan prima dikurangi dua. Input tersebut ditentukan oleh user sesuai dengan pilihan yang sudah disediahkan. Panjang bit bilangan prima yang digunakan pada penelitian ini adalah 64 bit, 128 bit dan 256 bit. Alur proses pembangkitan kunci algoritma EL-GAMAL adalah sebagai berikut:

Gambar 3.8 Alur pembangkitan kunci algoritma EL-GAMAL Input: panjang bit bilangan prima EL-GAMAL (α) Output: Kpublik, Kprivat

1. Bangkitkan sebuah bilangan prima berukuran α bit (pEL)

2. Bangkitkan dua bilangan acak g dan x 3. y = gx mod pEL

4. Kpublik = (y, g, pEL), Kprivat = (x, pEL)

(8)

3.3.2 Enkripsi Algoritma EL-GAMAL

Enkripsi dipergunakan untuk menyandikan pesan sebelum pesan tersebut dikirim melalui saluran jaringan. Sebelum pesan dienkripsi, masing-masing karakter pada pesan diubah menjadi blok-blok m1, m2,…. Sehingga mempunyai nilai dalam interval 0 sampai nilai bilangan prima EL-GAMAL. Setiap nilai tersebut akan dilakukan enkripsi manjadi dua bagian dalam satu blok pesan sesuai dengan rumus (2.8). Pseudo code proses enkripsi algoritma EL-GAMAL adalah sebagai berikut:

Gambar 3.9 pseudocode enkripsi algoritma EL-GAMAL

Proses enkripsi memerlukan input kunci publik dari user target penerima pesan dan pesan asli atau plain text (M). User menginput sebuah pesan singkat dan memilih user target penerima pesan. Setiap user memiliki kunci publik yang disebarluaskan melalui saluran jaringan. Nama user beserta kunci publiknya disimpan dalam daftar user online. Daftar user online dimiliki oleh setiap user.

Ketika user memilih user target penerima pesan maka system otomatis menginput kunci publik user tersebut untuk proses enkripsi. Pesan asli yang diterima akan di konversi kedalam bilangan ASCII untuk dilakukan proses enkripsi yang berupa blok-blok pesan asli yang sudah dikonversi kedalam nilai ASCII. Alur proses enkripsi algoritma EL-GAMAL adalah sebagai berikut:

Input: Kpublik = (pEL, y, g), plain text (M) Output: cipher text (C)

1. Konversi M ke blok-blok mi

2. Bangkitkan nilai acak k dengan 0≤ k ≤ pEl-1 3. for i ← 0 to PanjangPlaintext - 1 do

4. ai ← gk mod pEL

5. bi ← yk * mi mod pEL 6. Return Ci ← (ai, bi) 7. end for

(9)

Gambar 3.10 Alur enkripsi algoritma EL-GAMAL 3.3.3 Dekripsi Algoritma EL-GAMAL

Dekripsi digunakan untuk mengubah pesan terenkripsi (cipher text atau C) menjadi sebuah pesan asli (plain text atau M). Nilai M dihitung dengan rumus (2.9) untuk tiap nilai Ci yang terdiri dari a dan b pada pesan terenkripsi. Nilai M hasil dekripsi berupa nilai desimal yang kemudian diubah menjadi karakter. Jika pada enkripsi nilai C didapat dari kombinasi nilai a dan b maka pada dekripsi pengubahan nilai M ke karakter juga dilakukan berdasarkan nilai a dan b. Tiap karakter hasil pengubahan tersebut disatukan kembali sehingga membentuk pesan asli. Pseudo code dekripsi algoritma EL-GAMAL adalah sebagai berikut:

Gambar 3.11 pseudocode dekripsi algoritma EL-GAMAL Input: Kprivat = (x, pEL), cipher text (C) Output: plain text (M)

1. for i ← 0 to PanjangCiphertext - 1 do 2. Mi ← bi*ai pEl-1-x mod pEL

3. Konversi nilai Mi ke karakter 4. end for

5. Return M

(10)

Proses dekripsi algoritma EL-GAMAL memerlukan input kunci privat (x,pEL) dan pesan terenkripsi (C). Setiap user memiliki satu kunci privat yang diperoleh setelah melakukan pembangkitan kunci. Kunci privat tersebut tersimpan secara rahasia dan tidak didistribusikan kepada siapapun. Proses dekripsi dilakukan setiap kali user menerima pesan baru dari user lain. Sistem menginputkan pesan terenkripsi dan kunci privat secara otomatis untuk melakukan dekripsi. Alur proses dekripsi algoritma EL-GAMAL adalah sebagai berikut:

Gambar 3.12 Alur dekripsi algoritma EL-GAMAL

(11)

3.4 Rancangan Algoritma Hybrid

Rancangan algoritma Hybrid ini sesuai dengan algoritma Hybrid pada subbab 2.5. Rancangan ini nantinya diimplementasikan pada program komputer yang ditulis dengan bahasa pemrograman java. Algoritma ini terbagi menjadi tiga mekanisme yang berbeda yang dilakukan secara berurutan.

3.4.1 Pembangkitan Kunci Algoritma Hybrid

Pembangkitan kunci pada algoritma Hybrid diawali dengan pembangkitan bilangan prima Hybrid p dan q dan bilangan bulat e. Langkah selanjutnya adalah menghitung nilai d dengan rumus (2.12), hubungan nilai e dan d dituliskan pada rumus (2.12). Bangkitkan bilangan prima pEL dan hitung nilai y dengan rumus (2.13). Pasangan nilai N, e, pEL, g dan y menjadi kunci publik yang selanjutnya didistribusikan untuk proses enkripsi sedangkan nilai d dan x menjadii kunci privat yang dirahasiakan untuk proses dekripsi.

Gambar 3.13 pseudo code pembangkitan kunci Hybrid

Proses pembangkitan kunci algoritma Hybrid membutuhkan input panjang bit bilangan prima, bilangan bulat dan dua bilangan acak yang mempunyai ketentuan panjang bit bilangan prima dikurangi dua. Input tersebut ditentukan oleh user sesuai dengan pilihan yang sudah disediahkan. Panjang bit bilangan prima yang digunakan pada penelitian ini adalah 64 bit, 128 bit dan 256 bit. Alur proses pembangkitan kunci algoritma Hybrid adalah sebagai berikut:

Input: panjang bit bilangan prima Hybrid (α) Output: Kpublik, Kprivat

1. Bangkitkan dua bilangan prima berukuran α bit (p dan q)

2. Bangkitkan bilangan bulat e dengan gcd(e, Ф(N)) = 1

3. Hitung nilai d sehingga e*d ≡ 1 mod Ф(N) 4. Bangkitkan bilangan prima berukuran α bit

(pEL) dengan pEL ≠ e > 0

5. Bangkitkan dua bilangan acak (x dan g) 6. y = gx mod pEL

7. Kpublik = (N, e, y, g, pEL), Kprivat = (d, x, N, pEL)

(12)

Gambar 3.14 Alur pembangkitan kunci algoritma Hybrid 3.4.2 Enkripsi Algoritma Hybrid

Enkripsi dipergunakan untuk menyandikan pesan sebelum pesan tersebut dikirim melalui saluran jaringan. Sebelum pesan dienkripsi, masing-masing karakter pada pesan diubah menjadi blok-blok m1, m2,…. Sehingga mempunyai nilai dalam interval 0 sampai nilai bilangan prima pEL. Setiap nilai tersebut akan dilakukan enkripsi manjadi dua bagian dalam satu blok pesan sesuai dengan rumus (2.15), sebelumnya dilakukan perubahan nilai a dengan rumus (2.14).

pesan yang sudah diubah kedalam blok-blok akan dikonversi kedalam bilai ASCII untuk dilakukan proses enkripsi, karena proses komputasi membutuhkan nilai untuk dilakukan proses. Pseudo code proses enkripsi algoritma Hybrid adalah sebagai berikut:

(13)

Gambar 3.15 pseudocode enkripsi algoritma Hybrid

Proses enkripsi memerlukan input kunci publik dari user target penerima pesan dan pesan asli atau plain text (M). User menginput sebuah pesan singkat dan memilih user target penerima pesan. Setiap user memiliki kunci publik yang disebarluaskan melalui saluran jaringan. Nama user beserta kunci publiknya disimpan dalam daftar user online. Daftar user online dimiliki oleh setiap user.

Ketika user memilih user target penerima pesan maka system otomatis menginput kunci publik user tersebut untuk proses enkripsi. Alur proses enkripsi algoritma Hybrid adalah sebagai berikut:

Gambar 3. 16 Alur enkripsi algoritma Hybrid

Input: Kpublik = (N, e, pEL, y, g), plain text (M)

Output: cipher text (C)

1. Konversi M ke blok-blok mi

2. Bangkitkan nilai acak k dengan 0≤ k ≤ pEl-1 3. for i ← 0 to PanjangPlaintext - 1 do

4. ai ← gk mod pEL

5. bi ← yk * mi mod pEL 6. cai ← aie mod N

7. Return Ci ← (cai, bi) 8. end for

(14)

3.4.3 Dekripsi Algoritma Hybrid

Dekripsi digunakan untuk mengubah pesan terenkripsi (cipher text atau C) menjadi sebuah pesan asli (plain text atau M). Nilai M dihitung dengan rumus (2.9) untuk tiap nilai Ci yang terdiri dari a dan b pada pesan terenkripsi. Nilai M hasil dekripsi berupa nilai desimal yang kemudian diubah menjadi karakter. Jika pada enkripsi nilai C didapat dari kombinasi nilai ca dan b maka pada dekripsi pengubahan nilai M ke karakter juga dilakukan berdasarkan nilai a dan b. Tiap karakter hasil pengubahan tersebut disatukan kembali sehingga membentuk pesan asli. Pseudo code dekripsi algoritma EL-GAMAL adalah sebagai berikut:

Gambar 3.17 pseudocode dekripsi algoritma Hybrid

Proses dekripsi algoritma Hybrid memerlukan input kunci privat (d,x,N,pEL) dan pesan terenkripsi (C). Setiap user memiliki satu kunci privat yang diperoleh setelah melakukan pembangkitan kunci. Kunci privat tersebut tersimpan secara rahasia dan tidak didistribusikan kepada siapapun. Proses dekripsi dilakukan setiap kali user menerima pesan baru dari user lain. Sistem menginputkan pesan terenkripsi dan kunci privat secara otomatis untuk melakukan dekripsi. Hasil dekripsi akan dikonversi kedalam karakter yang sebelumnya masih berupa nilai ASCII, sebelum ditampilkan kepada socket TCP penerima. Alur proses dekripsi algoritma Hybrid adalah sebagai berikut:

Input: Kprivat = (d, x, N, pEL), cipher text (C) Output: plain text (M)

1. for i ← 0 to PanjangCiphertext - 1 do 2. ai ← caid mod N

3. ai-1 ← ai pEL-1-x mod pEL 4. Mi ← bi*ai-1 mod pEL

5. Konversi nilai Mi ke karakter 6. end for

7. Return M

(15)

Gambar 3.18 Alur dekripsi algoritma Hybrid 3.5 Rancangan Uji Keamanan

Algoritma RSA dan EL-GAMAL memiliki kerentanan yang dapat dipergunakan untuk melumpuhkan keamanannya. Informasi yang didapatkan dari hasil metode penyerangan ketika berhasil diantaranya adalah menemukan nilai eksponen dekripsi pada kunci privat untuk mendekripsi cipher text (C).

Rancangan uji keamanan ini dipergunakan untuk menganalisis perbandingan keamanan antara algoritma RSA, Algoritma EL-GAMAL dan Algoritma Hybrid.

3.5.1 Fermat Factorization

Fermat Factorization termasuk metode penyerangan yang digunakan menemukan plain text (M) dari cipher text (C) tanpa menggunakan nilai eksponen dekripsi. Fermat Factorization ini sudah dibahas pada subbab 2.3.2.1.

Alur proses Fermat Factorization adalah sebagai berikut:

(16)

Gambar 3. 19 Alur Fermat Factorization

Proses fermat factorization diawali dengan menginputkan kunci public.

Proses selanjutnya adalah mencari nilai k dari hasil yang mendekati dari akar dari N, dengan ketentuan k2 > N dan k2-N = h2 jika tidak memenuhi maka nilai k terus dinaikan sampai kondisi tersebut dipenuhi. Nilai p dan q dapat ditentukan jika kondisi diatas terpenuhi, nilai d dapat dihitung dengan rumus d=e-1 modФ(N).

Sistem akan menampilkan bilangan prima (p dan q) dan kunci privat (d)

(17)

berdasarkan kunci public (N, e), hasil dari system itu yang akan digunakan untuk mencari plainteks/ pesan (M) dari chiperteks (C) dari Algortima RSA.

3.5.2 Baby step-Giant step

Baby step - Giant step termasuk metode penyerangan yang digunakan menemukan plain text (M) dari cipher text (C) tanpa menggunakan nilai eksponen dekripsi. Baby step - Giant step ini sudah dibahas pada subbab 2.4.2.1.

Alur proses Baby step - Giant step adalah sebagai berikut:

Gambar 3. 20 Alur Baby step-Giant step

Proses baby step-giant step diawali dengan menginputkan kunci publik.

Proses selanjutnya adalah mencari nilai N dari hasil akar prima EL-GAMAL dikurangi 1 ditambah 1 dengan ketentuan nilai N2 lebih besar samadengan nilai prima EL-GAMAL. Berdasarkan nilai N tersebut maka dilakukan proses baby step – giant step, bs= gj mod pEL dan gs= y*g-N*j mod pEL untuk 0 ≤ k ≤ N yang dimana g- = g invers. Selama iterasi itu berjalan nilai bs dan gs melakukan pengondisian dimana jika nilai gs dan bs sama maka index iterasi jadi acuan untuk menentukan nilai dari kunci privat (x), jika belum ada nilai yang sama dari bs dan gs maka proses iterasi akan dilakukan ulang dengan penambahan nilai N++.

Referensi

Dokumen terkait

Pesan yang disisipkan di dalam citra digital akan dikonversi kedalam biner, selanjutnya akan dilakukan proses pra-steganografi dengan metode blok permutasi, sehingga pesan

Jika nilai signifikan kurang dari sama dengan 0,05 maka H 0 ditolak. Jika nilai signifikan lebih dari 0,05 maka H 0

relatif prima dengan ϕ (p). Dengan nilai kunci enkripsi ini makan selanjutnya dapat dilakukan proses enkripsi. Proses enkripsi merupakan proses dimana pesan yang sebelumnya berupa

No.. 0,5905 menurut Tabel 3.3 mengenai interpretasi reliabilitas bahwa nilai tersebut termasuk kedalam kategori cukup, yang dapat diartikan sebagai soal yang telah

Variabel merupakan suatukonstruk yang dapat dipelajari dan mempunyai suatu nilai yang bervariasi. Variabel merupakan simbol atau lambang yang terdapat nilai atau bilangan. Upaya

Data kuantitatif adalah jenis data yang dapat diukur atau dihitung secara langsung, yang berupa informasi atau penjelasan yang dinyatakan dengan bilangan atau

kedalam kelompok yang berbeda. Dasar pengelompokan tersebut adalah nilai Ulangan Semester I. Pada kegiatan elaborasi terdiri dari langkah sebagai berikut: 1). Tiap

Menghitung jumlah kookurensi antara citra asli dengan area kerja matrik Nilai piksel referensi dan Nilai piksel tetangga, kemudian mengisikannya pada jumlah