BAB III
BAB III METODE PENELITIAN
Sesuai dengan tujuan penelitian yaitu membangun model perangkat lunak algoritma Pohlig-Hellman multiple-key berdasarkan algoritma RSA multiple-key, maka pada bab ini dimulai dengan pembahasan tentang gambaran studi kasus algoritma yang akan dibahas berupa analisis algoritma (untuk algoritma PohligHellman, algoritma RSA, algoritma RSA Multiple-key, teorema Fermat dan konsep algoritma Pohlig-Hellman multiple-key), analisis sistem, perancangan sistem, kamus data dan perancangan antarmuka.
3.1. Bahan-bahan Penelitian ini akan menggunakan bahasa pemrograman Bloodshed Dev-Pascal versi 1.9.2 (FreePascal) untuk perancangan program algoritma Pohlig-Hellman multiple-key dan beberapa perlengkapan lainnya juga akan digunakan sebagai alat pendukung dalam perancangan algoritma. 3.2. Analisis Algoritma Untuk membuat rancangan Algoritma Pohlig-Hellman multiple-key maka perlu terlebih dahulu menganalisis algoritma Pohlig-Hellman, algoritma RSA, algoritma RSA Multiple-key dan Teorema Fermat.
3.2.1. Analisis Algoritma Pohlig-Hellman Dalam tesis ini algoritma Pohlig-Hellman menjadi dasar untuk dikembangkan kemudian menggunakan konsep multiple-key. Konsep dasar algoritma PohligHellman adalah:
Universitas Sumatera Utara
1.
Pembangkitan Bilangan Prima Bilangan Prima p diambil secara acak dan diuji dengan Teorema Fermat. Dalam hal ini nilai p disarankan agar diambil dengan jumlah yang besar.
2.
3.
Perhitungan nilai totient Nilai totient π didapat dari π (π) = π β1 Perhitungan nilai kunci enkripsi e
Nilai kunci enkripsi e dapat dihitung dengan syarat nilai 1 < π < π (π). Dan
nilai e tersebut adalah relatif prima dengan π (π) dihitung berdasarkan GCD 4.
5.
(e, π (π)) = 1
Perhitungan nilai kunci dekripsi d Nilai d sebagai invers dari e modulo (π) , dinotasikan π π mod π (π) = 1 Enkripsi
Enkripsi merupakan proses pengubahan plaintext menjadi ciphertext. Untuk melakukan enkripsi dapat dilakukan dengan rumus πΆ = ππ πππ π
6. Dekripsi
Dekripsi merupakan proses pengubahan ciphertext menjadi plaintext. Untuk melakukan dekripsi dapat dilakukan dengan rumus π = πΆ π πππ π
Terdapat beberapa variabel yang menjadi dasar pada algoritma seperti bilangan prima p, nilai totient π, nilai kunci enkripsi e, nilai kunci dekripsi d. Setelah semua kunci ini dipenuhi maka selanjutnya dapat dilakukan proses enkripsi dan dekripsi. Setiap nilai-nilai yang didapati bersifat rahasia yang hanya boleh diketahui oleh pengirim dan penerima pesan. Cara yang aman dalam pembangkitan nilai sebaiknya dilakukan secara acak sehingga dapat mempersulit pihak lain untuk melakukan penyadapan.
3.2.2. Analisis Algoritma RSA Algoritma kriptografi Pohlig-Hellman, algoritma RSA pada dasarnya melakukan cara yang sama dalam enkripsi dan dekripsi. Kebutuhan-kebutuhan yang menjadi dasar dalam analisis algoritma RSA adalah : 1.
Pembangkitan Bilangan Prima
Universitas Sumatera Utara
Menentukan 2 bilangan prima p dan q secara acak dimana π β π. Dalam rancangan ini digunakan teorema Fermat untuk pengujian bilangan prima dan dipilih secara acak. 2.
Perhitungan nilai n Nilai n didapat dari perkalian p dan q.
3.
Perhitungan nilai totient Nilai totient (π) = (π β 1)(π β 1). Hasil π(π) digunakan untuk menentukan nilai kunci enkripsi e yang digunakan untuk melakukan enkripsi.
4.
5.
6.
Perhitungan nilai kunci enkripsi e Nilai kunci enkripsi e diambil berdasarkan GCD(π(π), π)=1 ; 1 < π < π(n)
Perhitungan nilai kunci dekripsi d.
Nilai kunci dekripsi d dihitung dengan rumus π = π β1 πππ π(π) Enkripsi
Enkripsi merupakan proses pengubahan plaintext menjadi ciphertext. Untuk melakukan enkripsi dapat dilakukan dengan rumus πΆ = ππ πππ π dimana
pada plaintext m < n 7.
Dekripsi Dekripsi merupakan kebalikan dari enkripsi. Masukannya adalah ciphertext dan keluarannya adalah plaintext. Untuk melakukan dekripsi dapat dilakukan dengan rumus π = πΆ π πππ π
Dalam algoritma RSA terdapat beberapa variabel yang menjadi dasar pada algoritma seperti dua bilangan prima p dan q, nilai n, nilai totient π, nilai kunci
enkripsi e, nilai kunci dekripsi d. Setelah semua kunci ini dipenuhi maka selanjutnya dapat dilakukan proses enkripsi dan dekripsi.
Universitas Sumatera Utara
3.2.3. Analisis Algoritma RSA Multiple-key Algoritma RSA Multiple-key merupakan pengembangan dari algoritma RSA yang sudah ada sebelumnya. Namun dengan penambahan kunci-kunci (multiple key) dapat lebih meningkatkan keamanan informasi dan lebih mempersulit pihak lain untuk mengakses informasi yang bersifat rahasia. Penambahan kunci dapat dilakukan sampai sebanyak -n kunci. Kebutuhan-kebutuhan yang menjadi dasar dalam analisis algoritma RSA Multiple-key adalah : 1.
Pembangkitan Bilangan Prima Menentukan 2 bilangan prima p dan q secara acak dimana π β π. Untuk pembangkitannya menggunakan teorema Fermat.
2.
Perhitungan nilai n. Nilai n didapat dari perkalian p dan q.
3.
4.
Perhitungan nilai totient. Nilai totient π(π) = (π β 1)(π β 1)
Penentuan kunci tambahan enkripsi (Multiple-key) Menentukan berapa banyak kunci tambahan sebanyak βx (K e1, K e2, K e3 β¦ K ex ). Setelah itu menentukan nilai setiap K e dengan syarat bahwa nilai : K e1 K e2 .
bilangan ganjil dan GCD(K e1 , π(n)) = 1
bilangan ganjil dan GCD (K e1 β K e2 , π(n)) = 1
. K ex 5.
bilangan ganjil dan GCD (K e1 β K e2 β β¦ β¦ β K ex , π(n)) = 1
Perhitungan nilai e
Setelah semua nilai kunci tambahan K e , maka dapat dilakukan perhitungan
6.
untuk penentuan kunci enkripsi dengan rumus π = (K π1 β K π2 . .β K ππ₯ ) Enkripsi
Enkripsi merupakan proses pengubahan plaintext menjadi ciphertext. Untuk melakukan enkripsi dapat dilakukan dengan rumus πΆ = ππ πππ π dimana
pada plaintext dihitung dengan nilai m < n
Universitas Sumatera Utara
7.
Penentuan kunci tambahan dekripsi (Multiple-key) Menentukan berapa banyak kunci dekripsi sebanyak βx (K d1, K d2, K d3 β¦ K dx ). Setelah itu menentukan nilai setiap K d dengan syarat bahwa nilai : bilangan ganjil dan GCD(K π1 , π(n)) = 1
K d1
bilangan ganjil dan GCD (K π1 β K π2 , π(n)) = 1
K d2 . . K dx 8.
bilangan ganjil dan GCD (K π1 β K π2 β β¦ β¦ β K πx , π(n)) = 1
Perhitungan nilai kunci dekripsi
Setelah nilai K d didapat, maka dapat dilakukan perhitungan untuk kunci
9.
dekripsi d, dihitung nilai π = (K π1 β K π2 β¦ .β K ππ₯ , ) Dekripsi
Dekripsi merupakan kebalikan dari enkripsi. Masukannya adalah ciphertext dan keluarannya adalah plaintext. Untuk melakukan dekripsi dapat dilakukan dengan rumus π = πΆ π πππ π 3.2.4. Analisis Teorema Fermat Dalam pembangkitan bilangan prima menggunakan Teorema Fermat. Teorema Fermat menyatakan bahwa jika suatu bilangan p bilangan prima, maka dapat dipastikan bilangan tersebut adalah prima atau tidak dengan rumus: ππβ1 πππ π = 1
(3.2.4)
Maka bilangan p dapat dinyatakan prima, dengan syarat bahwa nilai 1 β€ π < π. Misalkan kita menguji bilangan 3 apakah prima atau tidak, maka dapat diuji dengan Teorema Fermat: p=3 1β€π<3
1β€π<3
= =
π=1 π=2
maka maka
13β1 πππ 3 = 1 23β1 πππ 3 = 1
Maka dapat disimpulkan bahwa bilangan 3 adalah bilangan prima sesuai dengan teorema Fermat.
Universitas Sumatera Utara
3.2.5. Model Algoritma Pohlig-Hellman Multiple-key Setelah membandingkan konsep Multiple-key pada algoritma RSA maka dapat disesuaikan
dengan
rancangan
algoritma
Pohlig-Hellman
Multiple-key.
Penambahan kunci-kunci sama dengan yang ada pada algoritma RSA Multiplekey yaitu diinput setelah mendapatkan nilai totient dan sebelum proses enkripsi dan dekripsi dilakukan. Hal ini bertujuan karena dalam penentuan nilai e (kunci enkripsi) yang didapat nantinya melalui perhitungan kunci-kunci baru yang diinput sesuai dengan syarat-syarat yang ditentukan. Berikut ini merupakan konsep Algoritma Pohlig-Hellman Multiple-key: 1.
Pembangkitan Bilangan Prima Bilangan Prima p diambil secara acak dan untuk menguji keprimaan bilangan tersebut dilakukan menggunakan Teorema Fermat. Dalam hal ini nilai p disarankan agar diambil dengan jumlah yang besar untuk lebih mempersulit pihak lain melakukan perhitungan untuk mendapatkan kunci rahasia.
2.
3.
Perhitungan nilai totient. Nilai totient π didapat dari π (π) = π β1
Penentuan kunci tambahan enkripsi (multiple-key) Dalam konsep ini, berbeda dengan konsep algoritma Pohlig-Hellman sebelumnya karena terdapat adanya penambahan kunci untuk enkripsi seperti yang ada pada algoritma RSA. Banyaknya kunci tambahan dapat ditentukan berapa banyak kunci tambahan enkripsi sebanyakβx (K e1, K e2, K e3 β¦ K ex ). Setelah ditentukan banyaknya kunci untuk menentukan nilai setiap K e dengan syarat bahwa nilai: K e1 K e2 .
bilangan ganjil dan GCD(K e1 , π(n)) = 1
bilangan ganjil dan GCD (K e1 β K e2 , π(n)) = 1
. K ex
bilangan ganjil dan GCD (K e1 β K e2 β β¦ β¦ β K ex , π(n)) = 1
Universitas Sumatera Utara
4.
Perhitungan nilai kunci enkripsi e Setelah setiap nilai kunci K e ditentukan selanjutnya dapat dihitung nilai kunci enkripsi e,dengan rumus e=K e1 *K e2 β¦*K ex .
5.
Enkripsi Enkripsi merupakan proses pengubahan plaintext menjadi ciphertext. Untuk melakukan enkripsi dapat dilakukan dengan rumus πΆ = ππ πππ π dimana pada plaintext dengan nilai m
6.
Penentuan Kunci Dekripsi Menentukan berapa banyak kunci dekripsi sebanyak βx (K d1, K d2, K d3 β¦ K dx ). Setelah itu menentukan nilai setiap K d dengan syarat bahwa nilai : K d1 K d2 .
bilangan ganjil dan GCD(K π1 , π(n)) = 1
bilangan ganjil dan GCD (K π1 β K π2 , π(n)) = 1
. K dx 7.
8.
bilangan ganjil dan GCD (K π1 β K π2 β β¦ β¦ β K ππ₯ , π(n)) = 1
Perhitungan nilai kunci dekripsi d
Setelah didapat nilai K d , dapat dihitung nilai π = (K π1 β K π2 . .β K ππ₯ )
Dekripsi
Dekripsi merupakan kebalikan dari enkripsi. Masukannya adalah ciphertext dan keluarannya adalah plaintext. Untuk melakukan dekripsi dapat dilakukan dengan rumus π = πΆ π πππ π
3.3. Analisis Sistem
Setelah mengetahui analisis algoritma yang akan dirancang, selanjutnya dilakukan analisis sistem. Dalam hal ini analisis sistem yang akan dilakukan terdiri dari analisis permasalahan dan analisis kebutuhan dari sistem yang akan dirancang.
3.4.1. Analisis Permasalahan Berikut adalah diagram analisis permasalahan dari sistem yang akan dibuat dengan diagram konteks yang merupakan model untuk menunjukkan bagaimana
Universitas Sumatera Utara
sistem berhubungan dengan data yang diinput dan output data yang didapati. Penjelasan diagram konteks sistem dapat dilihat pada gambar 3.1. (plaintext, kunci enkripsi)
(plaintext)
SISTEM
PENGIRIM
(ciphertext)
PENERIMA
(ciphertext, kunci dekripsi)
Gambar 3. 1. Diagram Konteks Sistem Pada gambar 3.1. terlihat adanya empat proses yang menjadi fungsi utama sistem yang terdiri dari dua bagian utama yaitu berdasarkan sisi pengirim dan penerima. Pada sisi pengirim, proses pertama terdapat inputan data yaitu plain text dan kunci enkripsi yang selanjutnya melalui sistem akan menghasilkan ciphertext. Ciphertext
tersebut
nantinya
akan
digunakan
oleh
penerima
dalam
membangkitkan kembali plaintext yang dikirimkan oleh pengirim. Pada sisi penerima proses pertama terdapat inputan ciphertext dan kunci dekripsi yang dihubungkan ke dalam sistem. Dari proses selanjutnya akan dihasilkan kembali plaintext awal. 3.4.2. Analisis Kebutuhan Sistem Aspek fungsional yang terdapat pada sistem meliputi adanya fungsi enkripsi, dekripsi, pembangkitan kunci, penambahan kunci serta bantuan penggunaan sistem.
Universitas Sumatera Utara
3.4. Perancangan Sistem Pada tahap perancangan sistem ini menggunakan UML yang mencakup diagram use case, sequence, class dan activity. Tahap perancangan juga mencakup perancangan flowchart dan antarmuka sistem.
3.5.1. Diagram Use Case Diagram ini menunjukkan hubungan antara pemakai dengan sistem. Pada diagram ini terdapat dua pelaku yaitu pengirim dan penerima. Use case yang terdapat pada pengirim adalah melakukan enkripsi. Hasil yang dienkripsi kemudian akan digunakan untuk melakukan dekripsi. Pada gambar 3.2. dijelaskan tentang diagram use-case dari sistem yang akan dirancang.
enkripsi
PENGIRIM
PENERIMA
SISTEM
dekripsi
Gambar 3. 2. Diagram Use Case
3.5.2. Diagram Sequence Diagram sequence menggambarkan proses atau langkah-langkah yang dilakukan oleh pengirim dan penerima dalam menggunakan sistem. Pengirim terlebih dahulu melakukan proses penginputan data berupa plaintext dan pembangkitan kunci yang dilakukan secara acak oleh sistem yang dilakukan dengan teorema Fermat. Dan setelah melakukan proses enkripsi akan menghasilkan ciphertext yang
Universitas Sumatera Utara
selanjutnya akan dikirimkan kepada penerima pesan. Penerima yang telah mendapat ciphertext akan melakukan proses dekripsi sehingga menghasilkan kembali plaintext yang dikirimkan oleh pengirim. Proses dekripsi dilakukan setelah mendapatkan kunci dekripsi terlebih dahulu. Diagram sequence untuk sistem yang dibangun dapat dilihat pada gambar 3.3. PENGIRIM
PENERIMA enkripsi
dekripsi
plaintext
ciphertext
kunci deskripsi
kunci enkripsi
Gambar 3.3. Diagram Sequence
3.5.3. Diagram Class Diagram class menggambarkan keadaan atribut dari masing-masing proses yang terdapat pada sistem yaitu enkripsi dan dekripsi. Pada proses enkripsi terdapat beberapa atribut yaitu plaintext, kunci tambahan (multiple-key) enkripsi , kunci enkripsi dan proses Pohlig-Hellman. Pada proses dekripsi terdapat atribut ciphertext, kunci tambahan (multiple-key) dekripsi, kunci dekripsi dan PohligHellman. Pada gambar 3.4. merupakan diagram class sistem yang dirancang. Enkripsi - plaintext - kunci enkripsi - multipl key enkripsi - Pohlig-Hellman +Enkripsi ()
Dekripsi - ciphertext - kunci dekripsi - multiple key dekripsi - Pohlig-Hellman +Dekripsi ()
Gambar 3. 4. Diagram Class
Universitas Sumatera Utara
3.5.4. Diagram Activity Diagram activity menggambarkan segala aktivitas yang terdapat pada sistem. Terdapat dua aktivitas utama yaitu aktivitas pada pengirim yang akan mengirimkan pesan dengan melibatkan proses enkripsi dan aktivitas pada penerima yang melibatkan proses dekripsi. Pada kedua proses terdapat aktvitas seperti pembangkitan kunci dan penambahan multiple-key. Gambar 3.5. menjelaskan tentang diagram activity yang akan dirancang. PENGIRIM PENERIMA
Kunci bil. Prima
ciphertext
Multiple key enkripsi
Multiple key dekripsi
Kunci enkripsi
Kunci dekripsi
plaintext
dekripsi
Enkripsi
plaintext
Gambar 3. 5. Diagram Activity Setelah pengirim menginputkan plaintext , multiple key dan kunci enkripsi agar proses enkripsi dapat berlangsung. Proses ini nantinya akan menghasilkan ciphertext. Penerima akan melakukan proses dekripsi dengan kunci dekripsi yang berhubungan dengan kunci enkripsi yang ada pada pengirim. Selanjutnya proses dekripsi akan menghasilkan plaintext.
3.5.5. Flowchart Sistem Algoritma Pohlig-Hellman Multiple-key Terdapat dua hal penting yang dilakukan dalam sistem yang dirancang yaitu enkripsi dan dekripsi. Dalam melakukan enkripsi data, terlebih dahulu menentukan kunci berupa bilangan prima yang didapat berdasarkan Teorema
Universitas Sumatera Utara
Fermat dan dihasilkan secara acak dari bilangan prima yang disepakati. Dengan dilakukan secara acak maka tingkat keamanan kunci publik juga akan lebih tinggi karena hanya diketahui oleh pengirim dan selanjutnya diketahui penerima melalui pengirim.
Perhitungan nilai totient dilakukan dengan pengurangan nilai p dengan 1. Nilai totient diperlukan dalam proses enkripsi dan dekripsi. Dalam proses enkripsi selanjutnya akan ditentukan nilai kunci tambahan (multiple-key) yang didapat berdasarkan dari GCD antara nilai kunci yang mungkin dengan nilai totient harus bernilai 1. Kunci tambahan yang dihasilkan nantinya akan digunakan dalam perhitungan nilai kunci enkripsi e. Nilai e didapat dengan perkalian setiap kunci tambahan yang digunakan.
Jika semua nilai telah terpenuhi maka dapat dihitung ciphertext dari plaintext yang diinput. Demikian halnya untuk melakukan proses dekripsi dapat dilakukan berdasarkan ciphertext yang didapat. Setiap plaintext yang diinput satu persatu akan dikodekan dalambentuk ciphertext dengan perhitungan pada proses enkripsi. Kode tersebut dihitung berdasarkan nilai plaintext pada kode ASCII.
Dengan menentukan kunci tambahan dekripsi sebanyak n-buah yang didapat secara acak dari GCD antara kunci yang memungkinkan dengan nilai totient harus bernilai 1. Nilai dekripsi d dapat dihitung dengan perkalian setiap kunci tambahan. Dengan nilai d yang didapat maka plaintext dapat dihitung kembali berdasarkan rumus dekripsi. Untuk lebih lanjut flowchart tersebut dapat dilihat pada gambar 3.6.
Universitas Sumatera Utara
START Pembangkitan kunci (bil. Prima p) Hitung totient = p-1
Enkripsi
Deskripsi
Kunci Enkripsi Ke1,...Ken
Ciphertext
Hitung e = Ke1* ...Ken
Kunci dekripsi Kd1,β¦ Kdn Hitung d = Kd1*...Kdn
Input Plaintext m
Hitung plaintext P = C^d mod p Hitung Ciphertext C = m^e mod p
END
Plaintext
Gambar 3. 6. Flowchart Algoritma Pohlig-Hellman Multiple-key 3.5.6. Flowchart Pembangkitan Kunci (Teorema Fermat) START
Input p
L = jlh.digit p
i=0
a = rand (1,p)
Tidak
a^(p-1) mod p = 1
Ya
Tidak
i = 1+1
I=L
Ya
Output p prima
END
Gambar 3. 7. Flowchart Teorema Fermat
Universitas Sumatera Utara
Pada pembangkitan kunci bilangan prima dilakukan seperti pada teorema Fermat, dengan mengeksekusi setiap bilangan yang sudah ditentukan batasannya pada program. Selanjutnya program akan secara acak menentukan bilangan prima yang akan digunakan.
3.5.7. Flowchart Enkripsi Pohlig-Hellman Multiple-key Pada proses enkripsi dilakukan proses pembangkitan kunci bilangan prima dan selanjutnya menentukan kunci tambahan yang akan digunakan. Setiap kunci yang dihasilkan akan digunakan untuk perhitungan nilai kunci enkripsi. Dengan kunci enkripsi maka proses enkripsi dapat dilakukan sesuai dengan rumus enkripsi. Berikut pada gambar 3.8. disajikan flowchart untuk enkripsi algoritma PohligHellman.
Bilangan Prima p
Ciphertext
Totient = p - 1
C = m^e mod n
Ke sebanyak -n
Input plaintext
Input : Ke-1 β¦.Ke-n
E = Ke1 * Ke2 * ...Ke-n
Gambar 3. 8. Flowchart Enkripsi
Universitas Sumatera Utara
3.5.8. Flowchart Dekripsi Pohlig-Hellman Multiple Key Pada proses dekripsi dilakukan proses pembangkitan kunci kunci tambahan dekripsi yang akan digunakan. Setiap kunci yang dihasilkan akan digunakan untuk perhitungan nilai kunci dekripsi. Dengan kunci dekripsi maka proses dekripsi dapat dilakukan sesuai dengan rumus dekripsi. Berikut pada gambar 3.9. disajikan flowchart untuk enkripsi algoritma Pohlig-Hellman. Kd sebanyak -n
Plaintext
M = C^d mod n Input : Kd-1 β¦.Kd-n Ciphertext
d = Kd1 * Kd2 * ...Kd-n
Gambar 3. 9. Flowchart Dekripsi
3.5. Kamus Data Seluruh proses yang terdapat dalam rancangan sistem memiliki beberapa data yang merupakan data input ataupun data output. Perincian data yang digunakan dapat dilihat dalam tabel 3.1. berikut ini.
Nama Plaintext Ciphertext Private key Multiple key Encryption key Decryption key
Tipe data Str Str Int Int Int Int
Keterangan Pesan yang disampaikan Pesan setelah dienkripsi Kunci awal untuk dekripsi Kunci tambahan Kunci enkripsi Kunci dekripsi
Tabel 3.1. Kamus Data
Universitas Sumatera Utara
3.6. Perancangan Antarmuka
Dalam rancangan program nantinya akan dirancang berupa algoritma PohligHellman Multiple-key dan algoritma Pohlig-Hellman tanpa multiple-key (bentuk dasar dari algoritma). Hal ini dilakukan untuk dapat melihat perbandingan dari kedua algoritma. Tampilan antarmuka program disajikan dengan melakukan lima pilihan yaitu proses enkripsi dan dekripsi untuk kedua algoritma Pohlig-Hellman. Saat program dijalankan akan menampilkan pilihan untuk melakukan enkripsi atau dekripsi dan juga pilihan untuk keluar dari program. Penjelasan konsep rancangan antarmuka program dapat dilihat pada gambar 3.10. berikut ini.
--CRYPTOGRAPHY = POHLIG-HELLMAN PROGRAMβ MENU 1. Enkripsi Algoritma Pohlig-Hellman Multiple-key 2. Dekripsi Algoritma Pohlig-Hellman Multiple-key 3. Enkripsi Algoritma Pohlig-Hellman 4. Dekripsi Algoritma Pohlig-Hellman 5. Keluar
Gambar 3.10. Tampilan rancangan menu program
Saat ditentukan pilihan untuk melakukan enkripsi dengan algoritma Pohlig-Hellman Multiple-key, maka akan ditampilkan nilai kunci public p, totient, multiple-key, dan nilai kunci enkripsi dan dekripsi secara random. Dan selanjutnya disuguhkan untuk mengisi pesan yang akan dikirimkan. Saat pesan dikirimkan selanjutnya akan ditampilkan ciphertext yang diinginkan. Algoritma PohligHellman tanpa multiple-key hanya akan menampilkan nilai kunci p, nilai totient, nilai kunci enkripsi e dan nilai kunci dekripsi d serta ruang untuk mengisi pesan yang akan dienkripsi. Untuk lebih jelasnya antarmuka enkripsi dapat dilihat pada gambar 3.11
Universitas Sumatera Utara
p = β¦. totient = β¦. Ke[1] = β¦. Ke[2] = β¦. β¦β¦β¦β¦β¦β¦β¦ Ke[n] = β¦. Kd[1] = β¦. Kd[2] = β¦. . . . Ke[n] = β¦. e = β¦. d = β¦. Tuliskan pesan anda: β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦
Gambar 3. 11. Tampilan proses enkripsi multiple-key
Namun untuk algoritma Pohlig Hellman tanpa multiple-key hanya akan menampilkan nilai kunci p, nilai totient, nilai kunci enkripsi e, nilai dekripsi d dan tempat untuk menuliskan pesan yang akan dienkripsi. Tampilan proses enkripsi untuk algoritma Pohlig-Hellman tanpa multiple-key dapat dilihat pada gambar 3.12.
p = β¦. totient = β¦. e = β¦. d = β¦. Tuliskan pesan anda: β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦
Gambar 3. 12. Tampilan proses enkripsi
Untuk melakukan proses dekripsi baik pada algoritma Pohlig-Hellman multiple-key atau pun algoritma Pohlig-Hellman standar, akan diberikan isian
Universitas Sumatera Utara
untuk menginput nilai p dan d yang ada sebelumnya. Dan selanjutnya disuguhkan untuk mengisi ciphertext satu persatu dari hasil yang diperoleh saat enkripsi. Saat pesan dikirimkan selanjutnya akan ditampilkan plaintext sebelumnya. Berikut pada gambar 3.13. adalah tampilan proses dekripsi.
Masukkan nilai p = β¦. Masukkan nilai d = β¦. Masukkan panjang pesan = β¦. Masukkan ciphertext [1] = β¦. Masukkan ciphertext [2] = β¦. Masukkan ciphertext [3] = β¦. Masukkan ciphertext [.] = β¦. Masukkan ciphertext [n] = β¦. Plaintext : β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦
Gambar 3. 13. Tampilan proses dekripsi
Sad
Sad
Universitas Sumatera Utara
AsdA
BAB IV
BAB IV HASIL DAN PEMBAHASAN
Dalam bab ini dibahas mengenai model rancangan algoritma yang dibuat dan hasil uji coba rancangan model perangkat lunak. Hal ini dilakukan untuk mengetahui gambaran, cara kerja dan pengembangan sistemnya serta untuk mendapatkan perbandingan dari pengembangan algoritma yang sudah dikembangkan dengan algoritma sebelumnya.
4.1. Perbandingan Algoritma Berdasarkan pembahasan model algoritma Pohlig-Hellman multiple-key pada bab sebelumnya terdapat adanya perbedaan algoritma Pohlig-Hellman sebelum dan sesudah menggunakan multiple-key. Untuk mendapatkan gambaran kelebihan dan kekurangan dari kedua algoritma tersebut dilakukan perbandingan algoritmaalgoritma yang dibahas sebelumnya. Algoritma yang dibandingkan yaitu : 1. Perbandingan algoritma Pohlig-Hellman dengan algoritma RSA; 2. Perbandingan algoritma RSA dengan algoritma RSA multiple-key; 3. Perbandingan algoritma RSA multiple-key dengan model algoritma PohligHellman multiple-key; 4. Perbandingan algoritma Pohlig-Hellman dengan model algoritma PohligHellman multiple-key. Perbandingan algoritma-algoritma ini dilakukan untuk mendapatkan kelebihan dan kekurangan antara algoritma Pohlig-Hellman sebelum dan sesudah dikembangkan dengan konsep multiple-key. Dengan membandingkan setiap algoritma tersebut akan terlihat setiap perbedaan algoritma. Terlebih dahulu akan
Universitas Sumatera Utara
dibahas perbandingan antara Pohlig-Hellman dengan algoritma RSA pada Tabel 4.1. Tabel 4.1. Perbandingan algoritma Pohlig-Hellman dan algoritma RSA Proses ALGORITMA POHLIG-HELLMAN
ALGORITMA RSA
1. Pembangkitan satu bilangan prima p
Pembangkitan dua bilangan prima p dan q, p β q
2. -
Perhitungan nilai n n=p*q
3. Perhitungan nilai totient totient (p) = p-1
Perhitungan nilai totient totient (n) = (p-1)*(q-1)
4. Perhitungan nilai kunci enkripsi e Syarat : 1<e
Perhitungan nilai kunci dekripsi e Syarat : 1<e
5. Perhitungan nilai kunci dekripsi d Syarat : d = e -1 mod totient (p )
Perhitungan nilai kunci dekripsi d Syarat : d = e-1 mod totient (n)
6. Enkripsi C = Me mod p Dekripsi M = Cd mod p
Enkripsi C = Me mod n Dekripsi M = Cd mod n
Dari tabel 4.1. terlihat perbedaan antara algoritma Pohlig-Hellman dan algoritma RSA adalah pada pembangkitan kuncinya dimana algoritma PohligHellman menggunakan satu kunci sedang algoritma RSA menggunakan dua kunci. Hal ini mempengaruhi perhitungan nilai totient yang didapat, dimana pada algoritma Pohlig-Hellman didapat dari hasil pengurangan nilai p dikurang satu, sedangkan pada algoritma RSA didapat dari perhitungan perkalian kedua kunci setelah dikurang satu. Untuk perhitungan kunci enkripsi dan dekripsi kedua algoritma menggunakan konsep yang sama demikian juga dalam proses enkripsi dan dekripsinya.
Universitas Sumatera Utara
Algoritma RSA multiple-key memiliki beberapa perbedaan dengan algoritma RSA yang sudah ada sebelumnya. Untuk melihat perbedaan tersebut dapat dilihat pada Tabel 4.2. berikut ini. Tabel 4.2. Perbandingan algoritma RSA dan RSA multiple-key Proses
ALGORITMA RSA
ALGORITMA RSA Multiple-key
1.
Pembangkitan Bilangan Prima p dan q , p β q
2 Pembangkitan 2 Bilangan Prima p dan q , p β q
2.
Perhitungan nilai n n=p*q
3.
Perhitungan nilai totient Perhitungan nilai totient totient (n) = (p-1)*(q-1) totient (n) = (p-1)*(q-1)
Perhitungan nilai n n=p*q
3.a.
-
Perhitungan multiple-key enkripsi (Ke) Syarat : K e1 bil.ganjil & GCD (Ke1,tot(n))= 1 K e2 bil.ganjil & GCD (Ke1*Ke2, tot(n))= 1 . . K ex bil. ganjil & GCD (Ke1*..Kex, tot(n))= 1
3.b
Perhitungan nilai kunci Perhitungan nilai kunci enkripsi e enkripsi e, syarat : e = (Ke1 * Ke2 * β¦β¦. Kex) 1<e
4.a.
-
Perhitungan multiple-key dekripsi (Kd) Syarat : K d1 bil.ganjil & GCD (K d1 ,tot(n))= 1 K d2 bil.ganjil & GCD (K d1 *K e2 , tot(n))= 1 . . K dx bil. ganjil & GCD (K d1 *..K ex , tot(n))= 1
4.b. Perhitungan nilai kunci Perhitungan nilai kunci dekripsi d dekripsi d Syarat : Syarat : d = K d1 * K d2 β¦β¦.K dx -1 d = e mod totient (n)
Universitas Sumatera Utara
Proses 5.
ALGORITMA RSA Enkripsi C = Me mod n Dekripsi M = Cd mod n
ALGORITMA RSA Multiple-key Enkripsi C = Me mod n Dekripsi M = Cd mod n
Dari tabel 4.2. didapati bahwa antara algoritma RSA dengan algoritma RSA multiple-key memperlihatkan konsep yang sama pada proses pembangkitan kunci, perhitungan nilai n, perhitungan nilai totient, serta proses enkripsi dan dekripsinya. Perbedaannya terdapat pada algoritma RSA multiple-key yaitu dengan adanya proses perhitungan kunci tambahan (multiple-key) sehingga perhitungan nilai kunci enkripsi dan kunci dekripsi didapati dari hasil perkalian kunci tambahan. Dengan konsep penambahan kunci algoritma akan melakukan perhitungan kunci enkripsi dan dekripsi dengan nilai yang lebih besar dari algoritma RSA sebelumnya yang kuncinya antara 1<e
Penggunaan multiple-key pada algoritma RSA selanjutnya diterapkan dalam algoritma Pohlig-Hellman dengan menyisipkan kunci tambahan dalam algoritma. Kunci tambahan tersebut ditempatkan setelah mendapatkan nilai totient, sehingga untuk konsep kunci tambahan mengadopsi kunci tambahan yang ada pada algoritma RSA multiple-key. Pada tabel 4.3. diperlihatkan perbandingan algoritma RSA multiple-key dan model algoritma Pohlig-Hellman menggunakan multiplekey.
Universitas Sumatera Utara
Tabel 4.3. Perbandingan algoritma RSA multiple-key dan model algoritma PohligHellman multiple-key ALGORITMA POHLIGHELLMAN Multiple-key
Proses ALGORITMA RSA Multiple-key 1. Pembangkitan dua bilangan prima p dan q , p β q
Pembangkitan satu bilangan prima
2. Perhitungan nilai n n=p*q
-
3. Perhitungan nilai totient totient (n) = (p-1)*(q-1)
Perhitungan nilai totient totient (p) = p-1
3.a. Perhitungan multiple-key enkripsi (Ke) Syarat : K e1 bil.ganjil &GCD(K e1 ,tot(n))= 1 K e2 bil.ganjil&GCD (K e1 *K e2 ,tot(n) = 1 . . K ex bil.ganjil & GCD (K e1 *..K ex , tot(n)= 1
Perhitungan multiple-key enkripsi (Ke) Syarat : K e1 bil.ganjil&GCD (K e1 ,tot(p)) =1 K e2 bil.ganjil&GCD (K e1 *K e2 ,tot(p) = 1 . . K ex bil.ganjil & GCD (K e1 *..K ex , tot(p))= 1
3.b Perhitungan nilai kunci dekripsi e e = (K e1 * K e2 * β¦β¦. K ex )
Perhitungan nilai kunci enkripsi e e = (K e1 * K e2 * β¦β¦. K ex )
4.a. Perhitungan multiple-key dekripsi (Kd) Syarat: K d1 bil.ganjil & GCD (K d1 ,tot(n) =1 K d2 bil.ganjil&GCD (K d1 *K d2 , tot(n) = 1 . . K dx bil. ganjil & GCD (K d1 *..K ex , tot(n)) = 1
Perhitungan multiple-key dekripsi (K d ) Syarat : K d1 bil.ganjil & GCD (K d1 ,tot(p)) =1 K d2 bil.ganjil & GCD (K d1 *K d2 , tot(p))= 1 . . K dx bil. ganjil & GCD (K d1 *..K ex , tot(p))= 1
4.b. Perhitungan nilai kunci dekripsi d Syarat : d = K d1 * K d2 β¦β¦.K dx
Perhitungan nilai kunci dekripsi d Syarat : d = K d1 * K d2 β¦β¦.K dx
Universitas Sumatera Utara
ALGORITMA POHLIGHELLMAN Multiple-key
Proses ALGORITMA RSA Multiple-key 5. Enkripsi C = Me mod n Dekripsi M = Cd mod n
Enkripsi C = M e mod p Dekripsi M = C d mod p
Dari perbandingan kedua algoritma didapat persamaan dalam perhitungan kunci multiple-key, namun tetap mengikuti cara kerja algoritma dasarnya masingmasing.
Setelah mendapatkan perbandingan dari algoritma-algoritma diatas
terlihat jelas bahwa penggunaan multiple-key pada algoritma Pohlig-Hellman meningkatkan kualitas kerahasiaan informasi karena dijaga oleh beberapa lapisan kunci yang dapat mempersulit pihak lain untuk menembus kunci-kunci tersebut.
Berdasarkan perbandingan
perbandingan-perbandingan
antara
algoritma
diatas
Pohlig-Hellman
maka
sebelum
dapat dan
dilihat sesudah
menggunakan multiple-key. Pada tabel 4.4. diperlihatkan perbandingan antara kedua algoritma tersebut. Tabel 4.4. Perbandingan model algoritma Pohlig-Hellman multiple-key dan RSA multiple-key
Proses
ALGORITMA POHLIG-HELLMAN
ALGORITMA POHLIG-HELLMAN Multiple-key
1. Pembangkitan satu bilangan prima p
Pembangkitan satu bilangan prima
2. -
-
3. Perhitungan nilai totient totient (p) = p-1
Perhitungan nilai totient totient (p) = p-1
3.a. -
Perhitungan multiple-key enkripsi (Ke) Syarat : K e1 bil.ganjil&GCD (K e1 ,tot(p)) =1 K e2 bil.ganjil&GCD (K e1 *K e2 ,tot(p) = 1 . . K ex bil.ganjil & GCD (K e1 *..K ex , tot(p))= 1
Universitas Sumatera Utara
Proses
ALGORITMA POHLIG-HELLMAN
ALGORITMA POHLIG-HELLMAN Multiple-key
3.b Perhitungan nilai kunci enkripsi e Syarat : 1<e
Perhitungan nilai kunci enkripsi e e = (K e1 * K e2 * β¦β¦. K ex )
4.a. -
Perhitungan multiple-key dekripsi (K d ) Syarat : K d1 bil.ganjil & GCD (K d1 ,tot(p)) =1 K d2 bil.ganjil & GCD (K d1 *K d2 , tot(p))= 1 . . K dx bil. ganjil & GCD (K d1 *..K ex , tot(p))= 1
4.b. Perhitungan nilai kunci dekripsi d Syarat : d = e -1 mod totient (p )
Perhitungan nilai kunci dekripsi d Syarat : d = K d1 * K d2 β¦β¦.K dx
5. Enkripsi C = Me mod p Dekripsi M = Cd mod p
Enkripsi C = M e mod p Dekripsi M = C d mod p
Dari tabel 4.4. terlihat perbedaan antara algoritma Pohlig-Hellman sebelum dan sesudah dikembangkan dengan konsep multiple-key. Konsep multiple-key menjadi perbedaan utama dari kedua algoritma. Dengan multiple-key akan menghasilkan nilai kunci enkripsi dan dekripsi yang lebih besar karena didapat dari perkalian kunci-kunci tambahannya. Kunci dengan nilai yang besar pastinya akan melakukan perhitungan yang besar pula untuk proses enkripsi dan dekripsinya.
4.2. Tampilan Antarmuka Sistem Pada tampilan awal program, sistem berjudul βCryptography : Program PohligHellmanβ. Program akan menampilkan pilihan untuk melakukan proses enkripsi dan dekripsi menggunakan algoritma Pohlig-Hellman dengan multiple-key dan tanpa multiple-key. Pada gambar 4.1. menjelaskan tentang tampilan awal program.
Universitas Sumatera Utara
Gambar 4.1. Tampilan Awal Program
Terdapat beberapa pilihan yang diberikan didalam program seperti untuk melakukan enkripsi dan dekripsi dengan algoritma Pohlig-Hellman dengan multiple-key serta untuk melakukan enkripsi dan dekripsi dengan algoritma Pohlig-Hellman tanpa multiple-key. Dengan menginput angka 1 maka akan ditampilkan enkripsi menggunakan algoritma Pohlig-Hellman dengan multiplekey. Dalam form ini akan langung dihasilkan nilai kunci p, nilai totient, nilai multiple-key untuk enkripsi dan dekripsi, nilai kunci enkripsi dan nilai kunci dekripsi. Gambar 4.1. menjelaskan tentang tampilan awal untuk proses enkripsi.
Gambar 4.2. Tampilan Awal Enkripsi
Universitas Sumatera Utara
Semua kunci ini dihasilkan secara acak oleh program. Hal ini dilakukan karena pada dasarnya pengirim pesan oleh orang yang berhak mengetahui seluruh kunci yang akan dibuat, sehingga secara otomatis semua kunci diketahui oleh pengirim saja. Selanjutnya kunci tersebut dapat diberikan kepada penerimanya saja. Dengan cara acak ini akan dapat meningkatkan keamanan data mulai dikirimkan sampai akhirnya diterima oleh penerima pesan.
Dalam program enkripsi diberikan perintah untuk menuliskan pesan atau plaintext yang akan dikirim. Setelah pesan diinput program akan menghasilkan kode ciphertext dari pesan tersebut. Pada gambar 4.3. memperlihatkan tentang tampilan proses enkripsi.
Gambar 4.3. Tampilan Proses Enkripsi
Untuk melakukan dekripsi dengan menginput angka 2 pada program. Program akan menginstruksikan untuk menginput nilai kunci publik, nilai kunci dekripsi, panjang pesan dan menginput kode ciphertext. Dengan mengisikan sesuai dengan yang didapat pada saat enkripsi maka program akan menampilkan plaintext yang merupakan pesan yang dikirim sebelumnya. Pada gambar 4.4. merupakan tampilan output dekripsi.
Universitas Sumatera Utara
Gambar 4.4. Tampilan Proses Dekripsi Untuk melakukan enkripsi algoritma Pohlig-Hellman tanpa multiple-key dengan menginput angka 3 maka program akan menampilkan kunci bilangan prima p, nilai totient, kunci enkripsi e, kunci dekripsi d. Selanjutnya diberikan isian untuk menginput pesan rahasia yang kemudian diubah menjadi ciphertext. Proses enkripsi tanpa multiple-key dapat dilihat pada gambar 4.5.
Gambar 4.5. Tampilan enkripsi tanpa multiple-key
Universitas Sumatera Utara
Untuk melakukan dekripsi diinput angka 4 pada program selanjutnya akan memberikan perintah untuk menginput nilai kunci p, nilai kunci dekripsi d, panjang pesan yang diinput serta seluruh kode ciphertext yang diinput sebelumnya. Tampilan dekripsi tanpa multiple-key dapat dilihat pada gambar 4.6.
Gambar 4.6. Tampilan dekripsi tanpa multiple-key
4.3. Pengujian Pengujian sistem dilakukan dengan membandingkan algoritma Pohlig-Hellman dengan multiple-key dan tanpa menggunakan multiple-key. Kedua algoritma akan dibandingkan untuk melakukan proses enkripsi dan dekripsi dengan menguji sebuah teks sebagai plaintext. Pengujian dilakukan dengan kriteria sebagai berikut : 1. Pesan/plaintext yang diinput adalah : KRYPTOGRAFI 2. Kunci privat dan multiple-key yang digunakan dalam enkripsi dan dekripsi dilakukan secara acak oleh program dengan batasan kunci privat bilangan prima antara 100 β 1000, multiple-key enkripsi sebanyak 3 dan multiple-key dekripsi sebanyak 3. 3. Spesifikasi perangkat keras yang digunakan dalam pengujian program adalah pada laptop dengan prosesor Intel Atom N550, 1,5 GHz dengan Memori 1 GB DDR3 dan pada laptop dengan prosesor Intel Core 2 Duo 1,73Ghz Memori 2 GB.
Universitas Sumatera Utara
4.2.1. Proses Pembangkitan Kunci Proses enkripsi dan dekripsi dilakukan setelah program melakukan pembangkitan kunci privat. Kunci privat yang digunakan adalah bilangan prima dan Teorema Fermat dimanfaatkan untuk pembangkitan bilangan prima tersebut. Bilangan prima dihitung oleh program dengan terlebih dahulu menentukan batas dari bilangan yang diuji keprimaannya. Batasan bilangan yang diuji oleh program adalah 1 sampai dengan 1000. Program menghitung seluruh bilangan prima dengan batasan dan selanjutnya menentukan satu bilangan prima yang digunakan sebagai kunci privat.
Berdasarkan bilangan prima yang telah disepakati kemudian dilakukan perhitungan nilai totient dengan mengurangkan bilangan prima dengan 1. Nilai totient digunakan untuk menentukan nilai yang mungkin digunakan untuk menjadi kunci tambahan (multiple-key). Kunci tambahan dapat dibuat dalam beberapa kunci dan untuk menentukan jumlah kunci dilakukan dalam program.
Perhitungan nilai kunci tambahan (multiple-key) dilakukan berdasarkan syarat yang telah ditentukan dalam model algoritma Pohlig-Hellman multiple-key. Nilai kunci-kunci tambahan tersebut secara acak dihasilkan oleh program berdasarkan syarat yang ditentukan. Setelah mendapatkan kunci tambahan maka selanjutnya dapat dihitung nilai kunci enkripsi dan kunci dekripsi. Kunci-kunci tersebut dihitung dengan perkalian setiap kunci tambahan yang didapat sebelumnya.
Pada pengujian program didapat nilai kunci publik p = 607, nilai totient = 606, nilai kunci tambahan enkripsi pertama Ke1 = 155, Ke2 = 125, Ke3 = 179, kunci tambahan dekripsi Kd1 = 41, Kd2 = 167, Kd3 = 239. Berdasarkan kunci tersebut didapat nilai kunci enkripsi e = 3468125, nilai kunci dekripsi d = 1636433. Proses perhitungan pembangkitan kunci-kunci tersebut dapat dilihat pada gambar 4.7. berikut ini.
Universitas Sumatera Utara
Gambar 4.7. Tampilan pembangkitan kunci dengan multiple-key
Algoritma Pohlig-Hellman tanpa multiple-key dapat dilakukan dengan menginput angka 3 pada pilihan program. Saat program dijalankan secara acak akan dihasilkan nilai bilangan prima p = 607, sehingga nilai totientnya 606. Selanjutnya didapati perhitungan kunci enkripsi e = 229 dan kunci dekripsi d = 217. Proses perhitungan tersebut dapat dilihat pada gambar 4.8.
Gambar 4.8. Tampilan proses pengujian pembangkitan kunci
Dari pengujian proses pembangkitan kunci didapati bahwa dengan kunci bilangan prima yang sama p = 607, maka akan dihasilkan nilai totient yang sama juga sebagai hasil perhitungan nilai p - 1. Namun terdapat perbedaan pada kunci enkripsi e dan kunci dekripsi d yang dihasil. Hal ini dikarenakan algoritma Pohlig-Hellman multiple-key mendapat kunci-kunci tersebut dari hasil perkalian seluruh kunci tambahannya sedangkan algoritma yang tanpa menggunakan multiple-key didapat langsung berdasarkan GCD dari nilai kunci enkripsi dan dekripsi yang memungkinkan dengan nilai totient.
Universitas Sumatera Utara
4.2.2. Proses Enkripsi Setelah kunci enkripsi diperoleh maka proses enkripsi dapat dilakukan. Plaintext atau pesan yang akan dikirimkan diinput pada program. Dalam pengujian ini plaintext yang diinput adalah KRYPTOGRAFI. Program akan melakukan enkripsi dan menghasilkan ciphertext dari plaintext yang diinput. Perhitungan dilakukan untuk setiap teks yang menjadi plaintext dan dikodekan dalam angka. Perhitungan dapat dilakukan berdasarkan rumus C = me mod n. Dari perhitungan maka didapat ciphertext dari plaintext yang diinput adalah 277, 193, 142, 45, 326, 561, 107, 193, 557, 282, 165. Gambar 4.9. menjelaskan tentang tampilan pengujian proses enkripsi dengan multiple-key.
Gambar 4.9. Tampilan pengujian proses enkripsi dengan multiple-key
Untuk pengujian algoritma Pohlig-Hellman tanpa multiple-key digunakan juga plaintext yang sama yaitu KRYPTOGRAFI. Program melakukan enkripsi dan menghasilkan ciphertext dari plaintext yang diinput. Perhitungan dilakukan untuk setiap teks yang menjadi plaintext dan dikodekan dalam angka. Perhitungan ciphertext didapat sesuai dengan rumus dekripsi. Kode ciphertext yang dihasilkan dalam algoritma ini adalah 278, 498, 87, 48, 438, 390, 359, 498, 54, 10, 43. Gambar 4.10. memperlihatkan tampilan pengujian proses enkripsi tanpa multiplekey.
Universitas Sumatera Utara
Gambar 4.10. Tampilan pengujian proses enkripsi tanpa multiple-key
Antara kedua algoritma menghasilkan ciphertext yang berbeda. Hal ini dipengaruhi oleh besarnya kunci enkripsi yang didapat dari perhitungan sebelumnya. Perhitungan yang lebih besar pada algoritma yang menggunakan multiple-key.
4.2.3. Proses Dekripsi Pada proses dekripsi baik menggunakan multiple-key atau pun tidak menggunakannya, keduanya sama-sama melakukan proses yang sama yaitu menginput nilai kunci bilangan prima p dan kunci dekripsi d yang digunakan sebelumnya pada saat enkripsi. Proses dekripsi dilakukan setelah mendapatkan nilai kunci dekripsi yang sudah dihitung pada proses enkripsi sebelumnya. Dalam hal ini kode ciphertext akan dikembalikan sebagai plaintext.
Untuk mendekripsi maka semua kode ciphertext, terlebih dahulu ditentukan panjang dari ciphertext yang diinput sebelumnya. Panjang ciphertext adalah banyaknya kode ciphertext yang digunakan. Setelah semua kode ciphertext diinput program akan menampilkan plaintext yang digunakan sebelumnya. Pada pengujian program didapati kembali plaintext adalah KRYPTOGRAFI yang sesuai dengan plaintext yang diinput pada saat proses enkripsi.
Kedua algoritma sama-sama menghasilkan plaintext yang sama setelah melakukan perhitungan dan penginputan pada setiap langkah-langkah dekripsi yang ditampilkan pada progam. Namun nilai kunci dekripsi d dan kode ciphertext
Universitas Sumatera Utara
yang diinput berbeda. Hal ini terjadi karena pada algoritma Pohlig- Hellman dengan multiple-key menggunakan nilai kunci dekripsi yang lebih besar dari algoritma yang tidak menggunakan multiple-key. Untuk melihat hasil dekripsi dari kedua algoritma tersebut dapat dilihat pada gambar 4.11 dan gambar 4.12.
Gambar 4.11. Tampilan Proses Dekripsi dengan Multiple-key
Universitas Sumatera Utara
Gambar 4.12. Tampilan Proses Dekripsi tanpa Multiple-key
4.4. Pembahasan Dari hasil pengujian rancangan algoritma yang sudah dibuat, terdapat beberapa perbedaan antara algoritma Pohlig-Hellman menggunakan multiple-key dengan algoritma Pohlig-Hellman tanpa multiple-key. Perbedaan tersebut mencakup pada proses pembangkitan kunci privat, penentuan kunci enkripsi dan kunci dekripsi, perhitungan kode ciphertext, kecepatan proses sistem untuk melakukan enkripsi dan dekripsi. Namun algoritma Pohlig Hellman sebelumnya menjadi dasar untuk pengembangan algoritma. Hal ini dibuktikan karena terdapat beberapa kesamaan yang mendasar antara kedua algoritma seperti pembangkitan kunci bilangan prima, perhitungan nilai totient dan proses enkripsi dan dekripsi.
Universitas Sumatera Utara
Berdasarkan hasil pengujian dari kedua algoritma, dapat dilihat adanya kelebihan dan kekurangan dari kedua algoritma. Adapun beberapa hasil yang didapat dari pengujian program dapat dilihat pada Tabel 4.5. berikut ini. Tabel 4. 5. Perbandingan proses pada pengujian program No 1
2 3
4
5
6
7
8
9
Perbandingan Proses Pembangkitan kunci privat
Algoritma Pohlig-Hellman Tanpa Multiple-key Multiple-key Menggunakan pembangkitkan kunci privat yang sama yaitu bilangan prima yang dihitung teorema Fermat dan bilangan dihasilkan secara acak Perhitungan nilai Menggunakan perhitungan yang sama yaitu totient π‘ππ‘ (π) = π β 1 Pembangkitan Menggunakan pem- Tidak menggunakan kunci kunci tambahan bangkitan kunci tamba- tambahan (multiple-key) han untuk enkripsi dan dekripsi Perhitungan kunci Dilakukan dengan Dilakukan dengan enkripsi perkalian kunci tamba- perhitungan han (multiple-key) GCD(tot (p), e) = 1 dan enkripsi 1<e<(tot)(p) Perhitungan kunci Dilakukan dengan Dilakukan dengan dekripsi perkalian kunci tamba- perhitungan : han (multiple-key) d = e-1 mod p dekripsi Perhitungan kode Proses dilakukan lebih Proses dilakukan lebih cepat ciphertext lama karena nilai kunci karena nilai kunci enkripsi enkripsi lebih besar kecil Proses dekripsi Proses dilakukan lebih Proses dilakukan lebih cepat lama karena nilai kunci karena nilai kunci dekripsi dekripsi lebih besar kecil Kecepatan proses Proses dilakukan lebih Proses dilakukan lebih cepat sistem lambat karena melaku- karena hanya menggunakan kan penambahan kunci satu kunci Kekuatan sistem Lebih sulit ditembus Dibandingkan dengan pekarena dilapis oleh nambahan multiple-key lekunci tambahan bih rendah kekuatan karena hanya menggunakan satu kunci.
Universitas Sumatera Utara
BAB V
BAB V KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dan saran yang diambil dari hasil perancangan, implementasi dan pengujian terhadap model dan perangkat lunak serta saran untuk pengembangan lebih lanjut terkait model algoritma Pohlig-Hellman Multiple-key sehingga untuk pengembangannya dapat ditingkatkan.
5.1. Kesimpulan a. Rancangan model algoritma Pohlig-Hellman multiple-key dapat bekerja lebih baik dibandingkan dengan algoritma Pohlig-Hellman sebelumnya karena dengan konsep penambahan kunci (multiple-key) menjadikan kerahasiaan informasi berlapis sehingga algoritma lebih sulit untuk ditembus. b. Konsep multiple-key pada model algoritma Pohlig-Hellman meningkatkan kerahasiaan informasi dengan kunci yang berlapis sehingga dapat mempersulit pihak lain untuk memecahkan kunci enkripsi maupun kunci dekripsi. c. Pembangkitan kunci secara acak untuk kunci privat dan kunci tambahan (multiple-key) pada model algoritma meningkatkan kualitas kunci yang digunakan karena lebih sulit untuk ditebak nilai dari kunci yang digunakan. d. Dalam pengujian pembangkitan kunci bilangan prima jika diuji dengan batas maksimum sampai 1.000, sistem terlalu berat untuk menjalankan perhitungan karena membutuhkan processor dan bahasa pemrograman yang mampu memproses dengan perhitungan dengan jumlah yang besar.
Universitas Sumatera Utara
5.2. Saran a. Sistem sebaiknya dirancang menggunakan bahasa pemrograman yang dapat melakukan perhitungan dalam jumlah yang sangat besar sehingga dapat dilakukan perhitungan untuk nilai kunci yang lebih besar. b. Sistem sebaiknya dijalankan dengan processor yang cukup besar dalam melakukan proses perhitungan untuk nilai kunci yang besar (untuk kunci diatas 1000). c. Perlu dilakukan penelitian lebih lanjut tentang pengembangan multiple-key pada algoritma asimetris lainnya untuk mendapatkan algoritma yang lebih baik sebagai pengembangan kriptografi.
Universitas Sumatera Utara