2.14. Penelitian yang Relevan
1. Firman Saragih2008, membuat penelitian yang berjudul Penggunaan
Kriptografi One Time Pad Algoritma Vernam dalam Pengamanan Informasi. Hasil penelitian yang diperoleh adalah One-time pad
merupakan algoritma pengenkripsian datadan informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam menjamin
kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan kepada penerima pesan tanpa dapat diketahui oleh pihak lainSaragih,
2008. 2.
Henny Wandani20012, membuat penelitian yang berjudul Implementasi Sistem Keamanan Data dengan Menggunakan Tekhnik Steganografi End
of File EOF dan Rabin Public Key Cryptosystem, dimana penelitian ini
menggabungkan algoritma kriptografi Rabin Public Key dengan tekhnik Steganografi dalam pengamanan data dan kerahasian sebuah data rahasia
dengan algoritma Rabin sebagai pembangkit kunciWandani, 2012. 3.
Gustaf Prameswara2012, membuat penelitian yang berjudul Implementasi Algoritma One Time Padpada data teks dan Knapsack pada
kunci. Penelitian ini membahas tentang bagaimana algoritma One Time Pad
mengenkripsikan dan mendekripsikan pesan dan Knapsack sebagai pengaman kunci dalam pengiriman pesan Prameswara,2012.
Universitas Sumatera Utara
BAB III ANALISIS DAN PERANCANGAN
Berisi tentang uraian analisis mengenai proses kerja dari metode One Time Pad dan Rabin Cryptosystem
yang terdiri dari flowchart, pseudocode, Unified Modeling Language
UML serta perancangan dari aplikasi.
3.1 Analisis Sistem
Analisis Sistem adalah perancangan sebuah sistem untuk menganalisis kebutuhan dari sistem yang telah dirancang sehingga sistem dapat lebih baik dan dapat dikembangkan
di masa yang akan datang. Ada tiga fase di dalam analisis sistem yaitu analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah adalah bagaimana
mengidentifikasi masalah dan menemukan penyebab dari masalah tersebut serta memahami kelayakan masalah. Analisis kebutuhan dilakukan untuk menjelaskan
fungsi-fungsi yang ditawarkan dan mampu dikerjakan sistem. Sedangkan analisis proses untuk memodelkan tingkah laku sistem
.
3.1.1 Analisis Masalah
Saat ini keamanan dalam pengiriman pesan rahasia sangatlah rentan oleh pihak ketiga yang ingin mengetahui isi dari pesan tersebut. Masalah utama didalam penelitian ini
adalah bagaimana teknik Hybridcryptosystem digunakan dalam pengamanan data teks. Masalah-masalah pada penelitian ini diidentifikasikan dengan menggunakan
diagram Ishikawa. Diagram Ishikawa atau yang sering dikenal dengan Cause and Effect Diagram
adalah diagram yang digunakan untuk memahami dan mengidentifikasi serta menggambarkan beberapa masalah yang terjadi pada sistem
dan akibat yang ditimbulkan oleh masalah. Permasalahan pada penelitian ini secara umum dapat ditunjukkan pada diagram
Ishikawa. Gambar 3.1.
Universitas Sumatera Utara
Menggabungkan Algoritma Simetris Dan Asimetris untuk Mengamankan
Data Teks. Mesin
Material Manusia
Metode Kriptografi
Simetri Kriptografi
Asimetri Pengirim dan
Penerima Pihak Ketiga
Memiliki rasa curiga dan Ingin tahu
Data yang dikirim aman
Proses Komputasi Yang relatif lama
Jalur Pengiriman Tidak Aman
Kunci dapat diketahui Pihak Ketiga
Lemahnya Pengamanan Kunci
Gambar 3.1 Diagram Ishikawa
Pada gambar 3.1, dapat disimpulkan bahwa permasalahannya adalah muncul rasa curiga atau ingin tahu dari pihak ketiga terhadap kerahasian sebuah pesan yang
disebabkan faktor perubahan ciphertext dan penggunaan menggunakan satu kunci yang tidak aman dalam mengirimkan pesan kepada orang lain.
Solusi yang dapat ditawarkan adalah dengan mengunci ciphertext dengan kunci kriptografi simetri serta mengunci cipherkey dengan kriptografi asimetri dalam
pengiriman pesan. Dengan cara melakukan teknik Hybridcryptosystem dengan Algortima One Time Pad dan Algoritma Rabin.
3.1.2 Analisis Kebutuhan Didalam analisis kebutuhan ini terdapat dua kebutuhan yaitu kebutuhan fungsional
dan kebutuhan non fungsional.
3.1.2.1 Kebutuhan Fungsional
Kebutuhan fungsional adalah menjelaskan proses-proses aktifitas yang dapat dilakukan oleh sistem dalam melakukan pelayanan yang dilakukan sistem dan
kebutuhan yang harus dipenuhi oleh sistem, yaitu:
Universitas Sumatera Utara
1. Fungsi Pembangkit Kunci
Pengguna pada fungsi ini berperan sebagai penerima pesan. Pembangkitan kunci dapat dilakukan dengan input langsung atau pun dibangkitkan secara
acak untuk memudahkan proses enkripsi dan dekripsi. 2.
Fungsi Enkripsi Pengguna dapat melakukan proses enkripsi pesan dari plaintext menjadi
ciphertext dengan memiliki kunci enkripsi berupa input langsung ataupun
dengan memilih berkas yang tersimpan dalam format .txt atau .doc. 3.
Fungsi Dekripsi Dapat melakukan proses dekripsi dengan memiliki kunci dekripsi dan
ciphertext yang sesuai dan pengguna dapat melakukan proses dekripsi menjadi
plaintext. 4.
Fungsi Penguncian Kunci Pesan Dalam fungsi ini, pengguna dapat melakukan enkripsi kunci pesan dengan
kunci publik yang sudah dibangkitkan dengan mengubahnya kedalam bentuk cipherkey
.
3.1.2.2 Kebutuhan Non-Fungsional
Kebutuhan non-fungsional adalah mendeskripsikan fitur, karakteristik dan batasan lainnya seperti performa, penggunaan, model penyimpanan data, dokumentasi,
kontrol, dan ekonomi. Terdapat beberapa hal yang menjadi syarat kebutuhan non- fungsional antara lain:
1. Performa
Aplikasi yang dibangun dapat menampilkan dan menyimpan hasil dari fungsi kriptografi yang dilakukan oleh sistem.
2. Mudah dipelajari dan digunakan
Aplikasi yang dibangun harus sederhana dan user friendly agar mudah digunakan dan dipelajari oleh pengguna.
Universitas Sumatera Utara
3. Model Penyimpanan Data
Data pesan teks yang dihasilkan baik berupa ciphertext maupun plaintext disimpan pada alamat file khusus dalam bentuk .txt dan .doc.
4. Dokumentasi
Aplikasi yang akan dibangun memiliki panduan penggunaan aplikasi. 5.
Kontrol Aplikasi yang akan dibangun memiliki pesan error jika pengguna tidak
memasukkan data input tidak lengkap atau salah. 6.
Ekonomi Aplikasi yang dibangun tidak membutuhkan biaya dan perangkat tambahan.
3.1.3 Analisis Proses Pada penelitian ini Aplikasi yang dibangun menggunakan algoritma One Time Pad
untuk melakukan proses enkripsi dan dekripsi pesan dan algoritma Rabin Cryptosystem
dalam melakukan proses enkripsi dan dekripsi kunci pesan. Data pesan yang diolah adalah berbentuk teks berformat .txt dan .doc.
Pada algoritma Rabin Cryptosystem untuk membangkitkan kunci digunakan Theorema Fermat
untuk menemukan suatu bilangan prima atau menguji keprimaan suatu bilangan.
Pada proses dekripsi algoritma Rabin digunakan algoritma Chinese Remainder Theorem
dan dalam menentukan hasil dekripsi dari empat kemungkinan hasil dilakukan secara otomatis autodecrypt, yaitu dengan memilih nilai yang paling
kecil. Hal ini berdasarkan pengalaman dalam melakukan dekripsi dari nilai 1 hingga
255 mencakup karakter dalam ASCII 8 bit dengan kunci publik yang sama n dan lebih besar dari 255 n 255, nilai hasil dekripsi yang benar biasanya adalah nilai
yang paling kecil
.
3.2 Pemodelan
Pemodelan sistem dilakukan untuk menunjukkan dan mendeskripsikan gambaran dari sistem yang akan dibangun. Pada penelitian ini dilakukan pemodelan dengan
menggunakan UML untuk mendesain serta merancang sistem.UML adalah bahasa yang digunakan untuk memberikan penjelasan mengenai komponen-komponen untuk
Universitas Sumatera Utara
membangun sistem dan interaksi antar komponen sistem. Model UML yang digunakan dalam penelitian ini antara lain adalah use case diagram, activity diagram
serta sequance diagram. 3.2.1 Use-Case Diagram
Use-case Diagram
adalah gambaran skenario penggunaan aplikasi sistem tentang bagaimana cara sistem bekerja dengan pengguna. Use-case Diagram membutuhkan
identifikasi siapakah pengguna yang akan menggunakan sistem tersebut. Pengguna tersebut dinamakan actor. Actor berperan untuk melakukan komunikasi dengan sistem
dimana actor bekerja diluar dari sistem itu sendiri. Hubungan antar actor dengan use- case
dihubungkan dengan garis lurus. Sedangkan hubungan dimana satu use-case digunakan untuk meredudansi use-case lainnya digunakan garis putus-putus dengan
keterangan include. Untuk extend digunakan untuk mensimplifikasi satu use-case dengan use-case lainnya.
Gambar 3.2 Diagram Use-Case
Pada gambar 3.2 terdapat dua actor yang mempunyai peran masing-masing yaitu pengirim dan penerima.Pengirim mengenkripsikan pesan terlebih dahulu dengan
algoritma One Time Pad setelah plaintext dienkripsikan menjadi ciphertext lalu kunci dari One Time Pad dienkripsikan dengan kunci publik yang diterima dari penerima
Universitas Sumatera Utara
menjadi cipherkey. Kemudian penerima menentukan kunci terlebih dahulu untuk dikirim ke sipengirim dengan membangkitkan kunci terlebih dahulu dengan algoritma
Rabin. Penerima mengirimkan kunci publik ke sipengirim untuk mengunci kunci pesan dan sipenerima mengdekripsikan terlebih dahulu kunci pesan untuk mengetahui
kunci pesan lalu mengedekripsikan pesan dari ciphertext menjadi plaintext. Berikut ini merupakan tabel narrative use-case yang dapat dilihat pada tabel 3.1
Tabel 3.1 Narrative Use-Case Enkripsi Pesan
Use-case Name Enkripsi Pesan
Design Scope Sistem black box
Goal Level User-goal
Stakeholder and Interest
PengirimPengguna: dapat mengenkripsikan pesan dan kunci pesan untuk menjaga keamanan pesan.
Precondition PenggirimPengguna memiliki file teks plaintext .txt atau .doc
atau dapat memasukkan pesan secara langsung dan kunci publik. Minimal Guarantee
Sistem akan memberikan pesan error ketika enkripsi pesan gagal. Success Guarantee
Sistem akan memberikan pesan enkripsi telah sukses. Trigger
Pengguna menekan tombol enkripsi pesan. Main Success Scenario
1. Pengirim menginputkan plaintext yang akan dienkripsi
2. Pengirim memasukkan kunci dan menekan tombol enkripsi.
3. Sistem akan melakukan enkripsi pesan.
4. Pengirim melakukan proses enkripsi kunci pesan dengan
kunci publik. 5.
Sistem akan melakukan enkripsi kunci pesan. 6.
Sistem akan memberikan pesan bahwa enkripsi pesan dan kunci pesan telah sukses.
Extensions 2. Kunci enkripsi tidak lengkap atau kosong.
2a. Sistem akan memberikan pesan kepada pengirim untuk dilakukan cek ulang kembali input-an yang telah
diberikan.
Berikut ini merupakan tabel narrative use-case yang dapat dilihat pada tabel 3.2 yang menjelaskan Narrative Use-Case Dekripsi Pesan.
Universitas Sumatera Utara
Tabel 3.2 Narrative Use-Case Dekripsi Pesan
Use-case Name Dekripsi Pesan
Design Scope Sistem black box
Goal Level User-goal
Stakeholder and Interest
Penerima dapat mendekripsikan kembali cipherkey dan ciphertext
ke dalam bentuk plaintext. Precondition
Penerima memiliki file teks ciphertext Minimal Guarantee
Sistem akan memberikan pesan error ketika dekripsi pesan gagal.
Success Guarantee Sistem akan memberikan pesan dekripsi telah sukses dan
menyimpannya pada alamat yang telah ditentukan. Trigger
Pengguna dapat menekan tombol Dekripsi File. Main Succes Scenario
1. Penggirim memiliki kunci privat Rabin
2. Penggirim mengdenkripsikan kunci Pesan dengan Kunci
Privat. 3.
Penggirim mengdenkripsikan ciphertext yang akan didekripsi.
4. Sistem akan melakukan dekripsi pesan.
5. Sistem akan memberikan pesan bahwa dekripsi telah
sukses. 6.
Sistem akan menampilkan plaintext
Berikut ini merupakan tabel narrative use-case yang dapat dilihat pada tabel 3.3 yang menjelaskan Narrative Use-Case Bangkitkan Kunci.
Tabel 3.3 Narrative Use-Case Bangkitkan Kunci
Use-Case Name Bangkitkan Kunci Secara Acak
Design Scope Sistem black box
Goal Level User-goal
Stakeholders and Interest Pengirim Pengguna: Ingin menentukan atau
membangkitkan kunci secara acak karena sulit secara manual.
Precondition -
Minimal Guarantee -
Success Guarantee Sistem menampilkan kunci yang sudah memenuhi syarat.
Trigger Pengguna menekan tombol bangkitkan kunci.
Main Success Scenario 1.
Sistem menampilkan kunci private dan kunci publik pada form.
Universitas Sumatera Utara
3.2.2 Sequence Diagram
Sequence Diagram berfungsi untuk menggambarkan rangkaian pesan yang akan
dikirim antara object yang ada serta interaksi yang terjadi antar object. Berikut Sequence Diagram
dari sistem yang dirancang dapat dilihat pada gambar 3.3.
Gambar 3.3 Diagram Sequence untuk Bangkitkan Kunci
Gambar 3.4 Diagram Sequence untuk Enkripsi
Universitas Sumatera Utara
Gambar 3.5. Diagram Sequence untuk Dekripsi
3.2.3 Activity Diagram
Pada Activity Diagram menggambarkan berbagai alur aktivitas yang ada di dalam sistem yang sedang dirancang dan bagaimana masing-masing alur yang ada berawal
serta berakhir. Activity Diagram juga bertujuan untuk membantu bagaima40na memahami proses dan menggambarkan setiap interaksi yang ada antara beberapa use
case yang digunakan. Activity Diagram dari sistem dapat dilihat pada gambar 3.6.
Universitas Sumatera Utara
Gambar 3.6. Activity Diagram
3.3 Flowchart Sistem
Flowchart merupakan diagram alir dari bagan-bagan tertentu yang memiliki arus
penggambaran mengenai langkah-langkah penyelesaian suatu permasalahan. Selain itu, flowchart juga memiliki fungsi memudahkan proses pengecekan terhadap sistem
yang akan dibuat. Berikut merupakan flowchart dari sistem yang dibangun.
Universitas Sumatera Utara
3.3.1 Flowchart Enkripsi Pesan dengan Algoritma One Time Pad
Berikut adalah flowchart enkripsi pesan dari sistem yang dibangun dapat dilihat pada gambar 3.7
Gambar 3.7. Flowchart Enkripsi Pesan dengan Algoritma One Time Pad
Universitas Sumatera Utara
3.3.2. Flowchart Enkripsi Kunci dengan Algoritma Rabin
Berikut adalah flowchart enkripsi kunci pesan dari sistem yang dibangun dapat dilihat pada gambar 3.8
Gambar 3.8. Flowchart Enkripsi Kunci dengan Algoritma Rabin
Universitas Sumatera Utara
3.3.3. Flowchart Dekripsi Pesan dan Kunci Pesan
Berikut adalah flowchart dekripsi pesan dari sistem yang dibangun dapat dilihat pada gambar 3.9
Gambar 3.9 Flowchart dekripsi pesan dan Kunci Pesan
Universitas Sumatera Utara
3.4. Pseudocode Sistem
Pseudocode merupakan pendeskripsian dari algoritma pemrograman komputer yang
ada dimana menggunakan struktur sederhana dari bahasa pemrograman yang digunakan dan dapat dimengerti. Berikut merupakana pseudocode dari sistem yang
dibangun.
3.4.1. Psuedocode Enkripsi Pesan
ENKRIPSI PESAN DENGAN OTP
For i= 0 to Panjang kunci-1 Cipherteks= plainteks + key
Berikut ini merupakan penjelasan dari pseudocode di atas. Pseudocode,dimana pseudocode ini adalah proses enkripsi dari OTP. Perulangan sebanyak panjang
karakter untuk menghasilkan cipherteks nya dengan menggunakan nilai plainteks+kunci.
3.4.2. Psuedocode Enkripsi Kunci Pesan
ENKRIPSI KUNCI PESAN DENGAN RABIN
1. function enkripsiP,n: 2.
ifP n: 3.
C = powP,2,n 4.
return C 5. return False
1. function enkripsiPesanP, n: 2.
C = list 3.
for i = 0 to lengthP-1:
Universitas Sumatera Utara
4. C.appendenkripsiordP[i], n
5. if C[i] == False: break
6. return C
Berikut ini merupakan penjelasan dari pseudocode diatas dimana fungsi enkripsi dari rabin dengan parameter p dan n.jika p harus lebih kecil dari n dimana untuk cipherteks
nya yaitu dengan p2 mod n untuk nilai cipherteksnya jika benar. Jika salah maka dia akan kembali ke fungsi enkripsi.
3.4.3. Psuedocode Pembangkit Kunci
Pseudocode dari pembangkit kunci untuk algoritma Rabin terdiri dari dua bagian,
yaitu fungsi cek Kunci p, q dan bangkitkan Kunci sebagai berikut.
CEK KUNCI 1.function cekKuncip,q:
2.ifp mod 4 == 3 and TheoremFermat p and q mod 4 == 3 and TheoremFermatq
and p ≠q and lengthstrpq ≤ 8: 3.return True
4.return False
BANGKIT KUNCI 1.function bangkitkanKunci:
2.syarat_tdk_terpenuhi = True 3.while syarat_tdk_terpenuhi:
4.p = random3,9999
3.4.4. Pseudocode Dekripsi Kunci Pesan
Berikut ini adalah pseudocode dari proses dekripsi pada penelitian ini
.
Universitas Sumatera Utara
1.function autodekripsiC, p, q: 2.mp = powC, p+14, p
3.mq = powC, q+14, q 4.x, y, n = CRTmp,mq,p,q
5.P1 = x + y mod n 6.P2 = x
– y mod n 7.P3 = -x + y mod n
8.P4 = -x – y mod n
9.return minP1, P2, P3, P4
1.function dekripsiC, p, q: 2.
Psn = [] 3.
for i = 0 to lengthC-1: 4.
Psn.appendchrautodekripsiC[i],p,q 5.
return joinPsn
Pada algoritma Rabin, terdapat empat hasil dekripsi dan penerima pesan harus menentukan pesan yang benar. Terdapat beberapa cara yang dapat dilakukan untuk
dapat menentukan hasil dekripsi yang benar, seperti menggandakan pesan atau menggandakan nilai bit dari pesan sebelum dienkripsi dan hasil yang memiliki nilai
yang berulang merupakan kemungkinan hasil dekripsi yang benar. Jika pesan yang dienkripsi jumlahnya sedikit, maka penerima pesan relatif mudah
dalam menentukan hasil dekripsi. Namun jika pesan yang dienkripsi jumlahnya banyak, maka akan timbul kesulitan bagi penerima pesan dalam menentukan hasil
dekripsi. Penulis sudah mencoba melakukan enkripsi menggunakan kunci publik yang lebih besar dari 255 dan dekripsi untuk nilai yang mencakup karakter pada
ASCII 8 bit 1 sampai dengan 255 dan memberikan pengalaman bahwa hasil dekripsi yang benar biasanya adalah nilai yang paling kecil dari keempat hasil
dekripsi. Berdasarkan pengalaman tersebut, penulis melakukan modifikasi dalam proses dekripsi pada penelitian ini yaitu dengan melakukan proses autodekripsi
penerima pesan tidak direpotkan dalam menentukan nilai dekripsi yang dianggap benar.
Universitas Sumatera Utara
3.4.5. Pseudocode Dekripsi Pesan
Dekripsi Pesan
For i= 0 topanjangkunci-1 Plaintext=ciphertext
– key
Berikut ini merupakan penjelasan dari pseudocode di atas, dimana pseudocode ini adalah proses enkripsi dari OTP. Perulangan sebanyak panjang karakter untuk
menghasilkan plainteksnya dengan rumus ciphertext- kunci.
3.5. Perancangan Antarmuka Interface
Perancangan antarmuka adalah desain awal dari tampilan sistem yang akan sistem dibangun.
Antarmuka harus dirancang dengan memperhatikan faktor pengguna sehingga sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk
digunakan oleh pengguna. Sistem yang dibangun terdiri dari form utama dan home, pengirim, dan penerima.
3.5.1 Form Utama dan Home
Form Utama dan Home adalah tampilan awal dari sistem ini dijalankan. Tampilan ini
menampilkan Form Home, Pengirim, dan penerima. Gambar 3.10 menunjukkan tampilan sementara dari form utama dan home.
Gambar 3.10 Rancangan Tampilan Form Utama dan Home
Universitas Sumatera Utara
Keterangan: Label yang menunjukkan nama dari judul aplikasi penilitian.
Gambar yang menampilkan logo instansi penulis. Label
yang menunjukkan nama dan NIM penulis.
1.5.2 Form Pengirim
Pada halaman form pengirim ini, pengguna dapat melakukan proses enkripsi pesan dan kunci pesan yang akan dikirim ke penerima.Gambar 3.11 menunjukkan tampilan
sementara dari form pengirim.
Gambar 3.11 Rancangan Form Pengirim
Keterangan: 1
Pengguna dapat memilih berkas dari file yang berformat .txt dan .doc yang telah disimpan dengan menekan tombol Import. Setelah berkas dipilih maka
pesan akan ditampilkan di textbox seperti ditunjukkan nomor 2 pada gambar
Universitas Sumatera Utara
2 Pesan dapat diinputkan langsung pada textbox atau dari berkas yang sudah
dipilih seperti ditunjukkan gambar nomor 1. Untuk melakukan enkripsi, textbox
ini tidak boleh dibiarkan kosong dan sebaiknya hanya karakter yang terdapat pada ASCII 8 bit yang menjadi isi dari textbox ini.
3 Sebelum menekan tombol enkripsi pesan dan jika pesan sudah terisi pada
textbox nomor 2, maka pengguna harus mengisi kunci OTP untuk proses
enkripsi. 4
Textbox ini akan menampilkan hasil dari proses enkripsi pesan menjadi ciphertext yang ditampikan dalam bentuk ASCII.
5 Textbox ini akan menampilkan kunci publik yang sudah diterima dari
sipenerima sebelum melakukan proses enkripsi kunci pesan dan kunci publik tersebut tidak boleh kosong.
6 Didalam textbox ini akan ditampilkan hasil enkripsi kunci OTP yang sudah
dienkripsi dengan kunci publik Rabin.
3.5.3 Form Penerima
Form Penerima adalah halaman dimana pengguna dapat melakukan proses dekripsi
pesan dan dekripsi kunci pesan dari si pengirim. Gambar 3.12 menunjukkan tampilan sementara dari form penerima.
Gambar 3.12 Rancangan Form Penerima
Universitas Sumatera Utara
Keterangan: 1
Buttontombol untuk menampilkan form pembangkit kunci dari algoritma Rabin.
2 Textbox untuk menampilkan cipherkey OTP yang dikirim oleh sipengirim
kepada sipenerima. 3
Textbox untuk menampilkan kunci private p 4
Textbox untuk menampilkan kunci private q 5
Button untuk langsung menampilkan kunci private yang telah dibangkitkan terlebih dahulu.
6 Button dekripsi untuk melakukan proses dekripsi kunci pesan.
7 Textbox untuk menampilkan Kunci OTP
8 Textbox untuk menampilkan ciphertext pesan
9 Button untuk melakukan proses dekripsi pesan
10 Textbox untuk menampilkan pesan.
3.5.4 Form Pembangkit Kunci
Halaman pembangkit kunci berfungsi untuk memudahkan dalam proses penentuan kunci. Pengguna dapat menentukan kunci sesuai kehendak pengguna atau dapat
menggunakan fungsi pembangkit kunci acak. Kunci yang sudah diperoleh dari proses pembangkitan kunci dapat disimpan agar memudahkan dalam penggunaan aplikasi
atau khawatir kunci terlupa. Tampilan halaman pembangkit kunci dapat dilihat pada Gamba3.13.
Universitas Sumatera Utara
.
Gambar 3.13 Rancangan Form Pembangkit Kunci
Keterangan: 1
Textbox untuk menginputkan bilangan prima 2
Textbox untuk menginputkan langsung bilangan prima 3
Textbox untuk menampilkan hasil pq atau kunci publik. 4
Button untuk membangkitkan bilangan prima secara 5
Button untuk memerikasa apakah yang diinputkan benar bilangan prima atau tidak.
6 Button untuk menyimpan kunci private dan kunci publik.
Universitas Sumatera Utara
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada tahap ini dilakukan pembuatan sistem dan coding sesuai dengan analisis dan
perancangan. Kemudian melakukan pengujian sistem
4.1 Implementasi Sistem
Implementasi sistem merupakan tahapan dimana telah dilakukan proses implementasi terhadap sistem yang sebelumnya telah dianalisis. Implementasi sistem dengan teknik
Hybirdcryptosystem dengan algoritma One Time Pad dan Rabin Cryptosystem dalam pengamanan data teks dibangun dengan bahasa pemrograman C dan Phyton 3.2.2.
Untuk tampilan aplikasi dan proses enkripsi dan dekripsi pesan mengunakan bahasa pemrograman C. Proses pembangkit kunci dan enkripsi kunci pesan dan dekripsi
kunci pesan menggunakan Phyton. Adapun perangkat lunak yang digunakan sebagai Integrated Development Environment
IDE untuk C adalah SharpDevelop versi 4.4.1.9729-7196a277, IDE untuk Python adalah Python IDLE versi 3.3.2. dan
perangkat lunak database yang digunakan untuk menyimpan kunci adalah Microsoft Access 2013.
Spesifikasi perangkat keras yang digunakan dalam pembangunan sistem dan pengujian sistem adalah sebagai berikut:
Tabel 4.1 Spesifikasi Kebutuhan Perangkat Keras untul Implementasi
Spesifikasi Komputer CPU : IntelR Celeron® 1.70 GHz
RAM : 2 GB Monitor : 14 inc
Sistem Operasi : Windows 7 Home Premium
4.1.1 Tampilan Antarmuka Sistem
Didalam membangun sistem ini diimplementasikan kedalam berapa tampilan yang terdiri dari form utama dan home, form pengirim,form penerima dan form pembangkit
kunci.
Universitas Sumatera Utara
4.1.1.1. Form Utama dan Home
Ketika sistem dijalankan tampilan awal yang muncul adalah formutama dan home. Didalam form utama dan Home ini terdapat Judul Skripsi,Logo Fakultas, Nama
Penulis. Form ini mempunyai tiga tab control yaitu Home,Pengirim,dan Penerima. Gambar 4.1. merupakan form utama dan home.
Gambar 4.1 Antarmuka Form Utama dan Home
4.1.1.2. Form Pengirim
Didalam form ini pengguna dapat melakukan proses enkripsi pesan dan enkripsi kunci pesan. Gambar 4.2 berikut ini adalah tampilan dari halaman form pengirim.
Gambar 4.2. Antarmuka Form Pengirim
Universitas Sumatera Utara
Berikut ini penjelasan dari gambar 4.2. 1
User dapat memilih berkas yang akan dienkripsi dengan menekan tombol button import
dengan format .txt atau .doc. User juga dapat menginputkan langsung pesan yang akan dienkripsi dengan mengisinya di textbox dengan
label plaintext. 2
Selanjutnya user memasukkan kunci OTP secara random sebelum melakukan proses enkripsi di textbox dengan label kunci OTP.
3 Setelah proses enkripsi selesai maka pesan yang sudah dienkripsi tadi akan
ditampilkan didalam textbox dengan label ciphertext dalam bentuk ASCII. 4
User kemudian melakukan enkripsi kunci pesan dengan kunci publik yang sudah dikirim oleh sipenerima yang ditampilkan didalam textbox dengan label
kunci publik Rabin. Lalu user menekan tombol button enkripsi kunci pesan. 5
Setelah proses enkripsi kunci pesan selesai maka hasil dari enkripsi tersebut akan ditampilkan di textbox dengan label ciphertext kunci.
6 Hasil dari enkripsi pesan dan enkripsi kunci pesan dapat disalin dengan
menekan tombol button salin ciphertext dan salin C kunci.
4.1.1.3. Form Penerima
Didalam formini pengguna dapat melakukan proses dekripsi pesan dan dekripsi kunci pesan. Gambar 4.3 berikut ini adalah tampilan dari halaman form penerima.
Gambar 4.3 Antarmuka FormPenerima
Universitas Sumatera Utara
Berikut penjelasan dari gambar 4.3 1
User dapat melakukan proses dekripsi kunci dengan menginputkan cipherkey yang sudah disalin sebelumnya di formpenerima dengan menampilkannya
ditextbox dengan label cipherkey. 2
User menekan tombol button “Gunakan Kunci Private Saya” untuk menampilkan kunci privet di textbox dengan label kuni private.
3 User menekan tombol button dekrip untuk melakukan proses dekripsi kunci
pesan. Setelah proses dekripsi kunci pesan selesai maka kunci akan ditampilkan di textbox dengan label Kunci OTP.
4 User mendapatkan kunci OTP dan user menyalin ciphertext yang telah disalin
diformpengirim dan menampilkannya ditextbox dengan label ciphertext pesan. 5
Untuk melakukan proses dekripsi pesan user dapat menekan button dekripsi pesan.
6 Setelah proses dekripsi selesai maka pesan akan ditampilkan di textbox dengan
label pesan
4.1.1.3. Form Pembangkit Kunci
Halaman pembangkit kunci berfungsi untuk memudahkan dalam proses penentuan kunci. Pengguna dapat menentukan kunci sesuai kehendak pengguna atau dapat
menggunakan fungsi pembangkit kunci acak. Kunci yang sudah diperoleh dari proses pembangkitan kunci dapat disimpan agar memudahkan dalam penggunaan aplikasi
atau khawatir kunci terlupa. Tampilan halaman pembangkit kunci dapat dilihat pada Gambar 4.4. berikut ini.
Universitas Sumatera Utara
Gambar 4.4 Antarmuka Form Pembangkit Kunci
4.2. Pengujian Sistem
Pengujian dilakukan terhadap sistem untuk membuktikan bahwa sistem yang telah dibangun berjalan dengan baik serta sesuai dengan analisis dan perancangan sistem
yang telah dibuat sebelumnya. Untuk melakukan pengujian terhadap sistem, pada penelitian ini dirancang
suatu skenario dalam mengamankan suatu pesan teks. Adapun skenario yang dibuat adalah pengguna sistem ingin mengamankan pesan teks dengan cara melakukan
enkripsi yang dilanjutkan dengan mengenkripsi kunci dari pesan tersebut. Pada skenario selanjutnya, penerima pesan menerima cipherkey dan ciphertext dari
pengirim dan dilanjutkan dengan proses dekripsi untuk memperoleh pesan dari pengirim. Untuk mengetahui bahwa proses yang dilakukan sistem berjalan dengan
baik dan hasil proses sistem adalah benar, maka pada tiap-tiap skenario dilakukan perhitungan secara manual yang kemudian dibandingkan dengan hasil dari sistem.
4.2.1. Skenario Pembangkitan Kunci
Misalkan pengirim bernama Alice dan penerima pesan bernama Bob. Alice ingin mengirimkan pesan kepada Bob dan pesan tersebut diamankan dengan
menggunakan sistem, maka hal yang pertama dilakukan Alice adalah menerima kunci
Universitas Sumatera Utara
publik dari Bob. Sebelumnya, Bob harus menentukan kunci private yaitu dua buah bilangan prima yang keduanya jika dimodulokan dengan 4 akan menghasilkan nilai 3.
Jika kunci private benar, maka kunci publik dapat diperoleh. Kunci private yang ingin digunakan oleh Bob adalah 23 dan 223.
Gambar 4.5. berikut adalah hasil pengujian kunci dengan menggunakan sistem dan kunci dapat digunakan karena sistem menampilkan kunci publik hasil perkalian
dari pasangan kunci private.
Gambar 4.5. Pengujian Sistem dengan Skenario Pembangkitan Kunci
Untuk membuktikan kebenaran dari proses pembangkit kunci pada sistem sesuai Gambar 4.5, maka berikut ini adalah perhitungan yang dilakukan secara manual
dengan menggunakan Metode Fermat untuk menguji keprimaan dari pasangan kunci yang dipilih oleh Alice.
Telah diketahui sebelumnya bahwa bilangan 23 adalah bilangan prima. Pengujian keprimaan bilangan 223 adalah sebagai berikut:
1. Pengujian dilakukan sebanyak n kali. Dimana n adalah jumlah digit dari p
sehingga n = 3. 2.
Pada n = 1, pilih sembarang bilangan bulat positif a dengan syarat 1ap. a
= 40. 3.
Hitung 1 mod p. 40
222
mod 223 = 1. Karena hasilnya sama dengan 1, maka dilanjutkan dengan n = 2.
4. n = 2, pilih sembarang bilangan bulat positif a dengan syarat 1ap. a = 2
5. Hitung 1 2
222
mod 223 = 1. Karena hasilnya sama dengan 1, maka dilanjutkan dengan n = 3.
Universitas Sumatera Utara
6. n = 3 a = 154. 1 mod p. 154
222
mod 223 = 1 7. Karena sampai pengujian akhir semua menghasilkan nilai 1 dalam modulo
p maka dapat dinyatakan bahwa p adalah merupakan bilangan prima.
Karena pasangan kunci 23 dan 223 merupakan bilangan prima, maka dapat disimpulkan bahwa hasil proses dari sistem menghasilkan nilai yang benar. Kunci
publik diperoleh dari hasil perkalian antara pasangan kunci private yaitu 5129. Lalu kunci publik ini dikirimkan kepada Alice melalui suatu saluran yang tidak aman.
4.2.2. Skenario enkripsi
Setelah Alice menerima Kunci Publik maka langkah berikutnya Alice akan melakukan proses enkripsi pesan. Pesan yang akan dienkripsi Alice adalah sebuah kata yaitu
‘Mata’. Hasil enkripsi pesan dengan sistem dapat dilihat pada gambar 4.6.
Gambar 4.6 Pengujian Sistem dengan Skenario Enkripsi
Perhitungan manual dari proses enkripsi sesuai dengan Gambar 4.5. adalah sebagai berikut.
1. P= ‘m’=109
K.OTP= ‘a’=97 C=P+K.OTP= 206Î.
Universitas Sumatera Utara
2. P=’a’=97
K.OTP=’r’=114 C=P+K.OTP= 211Ó
3. P=’t’=116
K.OTP=’m’=109 C=P+K.OTP=225á
4. P=’a’=97
K.OTP=’a’=97 C=P+K.OTP=194Â
Jika dibandingkan hasil perhitungan manual dengan hasil dari sistem, maka dapat disimpulkan bahwa proses enkripsi dari sistem menghasilkan nilai yang benar.
4.2.3. Skenario Enkripsi Kunci Pesan
Setelah Alice mendapatkan hasil enkripsi pesan selanjutnya Alice akan mengenkripsi kunci dari pesan tersebut dengan menggunakan kunci publik dari algoritma Rabin.
Gambar 4.7 adalah tampilan dari sistem enkripsi kunci pesan.
Gambar 4.7 Pengujian Sistem dengan Skenario Enkripsi Kunci Pesan
Universitas Sumatera Utara
Perhitungan manual dari proses enkrips kunci pesan sesuai dengan Gambar 4.6. adalah sebagai berikut.
1. P= ‘a’=97
C = 97
2
mod 5129 = 4280 2.
P=’r’=114 C=114
2
mod 5129=2738 3.
P=’m’=109 C=109
2
mod 5129=1623 4.
P=’a’=97 C=97
2
mod 5129 = 4280 Jika dibandingkan hasil perhitungan manual dengan hasil dari sistem, maka
dapat disimpulkan bahwa proses enkripsi kunci pesan dari sistem menghasilkan nilai
yang benar. 4.2.4.
Skenario Dekripsi Kunci Pesan
Bob menerima cipherkey yang dikirim oleh Alice melalui saluran tidak aman. Hal yang pertama dilakukan oleh Bob adalah membaca kunci pesan yang asli dengan
menggunakan kunci private yang dimiliki oleh Bob. Gambar 4.8 menunjukkan proses dekripsi kunci pesan dengan sistem.
Gambar 4.8 Pengujian Sistem dengan Skenario Dekripsi Kunci
Universitas Sumatera Utara
Perhitungan secara manual dari proses dekripsi kunci pesan berdasarkan Gambar 4.8 adalah sebagai berikut:
1 Hitung nilai Y
p
dan Y
q
yang merupakan inversi modulo dari p dan q dengan menggunakan algoritma Extended Euclidean.
Tabel 4.3. Penyelesaian Extended Euclidean pada Skenario Dekripsi Kunci Pesan
Iterasi P
q Y
p
x2 Y
q
y2 hasilBagi sisaBagi
S T
1 23
223 1
1 23
1 2
223 23
1 1
9 16
-9 1
3 23
16 1
-9 1
1 7
10 -1
4 16
7 -9
10 1
-1 2
2 -29
3 5
7 2
10 -29
-1 3
3 1
97 -10
6 2
1 -29
97 3
-10 2
-223 23 7
1 97 -223 -10 -23
- -
- -
Sehinggadapat dinyatakan bahwa GCD23,223 adalah 1, nilai Y
p
= 97 dan nilai Y
q
= - 10.
2 Dekripsi dari ciphertext 4280:
n = 5129
m
p
= 4280
23+14
mod 23 = 18 m
q
= 4280
223+14
mod 223 = 126 Misalnya :
x = m
p
qY
q
= 18 × 223 × -10 = -40140 y
= m
q
pY
p
= 126 × 23 × 97 = 281106.
Maka: P1 = x + y mod n = -40140+ 281106 mod 5129 = 5032 mod 5129
P2 = x - y mod n = -40140 - 281106 mod 5129 = 1881 mod 5129
Universitas Sumatera Utara
P3 = -x + y mod n = 40140 + 281106 mod 5129 = 3248 mod 5129 P4 = -x - y mod n = 40140- 281106 mod 5129 = 97 mod 5129
Nilai terkecil dari P1, P2, P3, P4 adalah = 97 ‘a’ dalam ASCII
3 Dekripsi dari ciphertext 2738:
n = 5129
m
p
= 2738
23+14
mod 23 = 1 m
q
= 2738
223+14
mod 223 = 109 Misalnya :
x = m
p
qY
q
= 1 × 223 × -10 = -2230 y
= m
q
pY
p
= 109× 23 × 97 = 243179.
Maka: P1 = x + y mod n = -2230+ 243179 mod 5129 = 5015mod 5129
P2 = x - y mod n = -2230 - 243179 mod 5129 = 783 mod 5129 P3 = -x + y mod n = 2230 + 243179 mod 5129 = 4346 mod 5129
P4 = -x - y mod n = 2230- 243179 mod 5129 = 114 mod 5129 Nilai terkecil dari P1, P2, P3, P4 adalah = 114
‘r’ dalam ASCII
4 Dekripsi dari ciphertext 1623:
n = 5129
m
p
= 1623
23+14
mod 23 = 6 m
q
= 1623
223+14
mod 223 = 136 Misalnya :
x = m
p
qY
q
= 6 × 223 × -10 = 13380 y
= m
q
pY
p
= 136× 23 × 97 = 303146 Maka:
P1 = x + y mod n = 13380+ 303146 mod 5129 =3657 mod 5129 P2 = x - y mod n = 13380 - 303146 mod 5129 = 2587 mod 5129
P3 = -x + y mod n = -13380 + 303146 mod 5129 = 109mod 5129 P4 = -x - y mod n = -13380-303146 mod 5129 = 1472mod 5129
Nilai terkecil dari P1, P2, P3, P4 adalah = 109 ‘m’ dalam ASCII
Universitas Sumatera Utara
5 Dekripsi dari ciphertext 4280:
n = 5129
m
p
= 4280
23+14
mod 23 = 18 m
q
= 4280
223+14
mod 223 = 126 Misalnya :
x = m
p
qY
q
= 18 × 223 × -10 = -40140 y
= m
q
pY
p
= 126 × 23 × 97 = 281106.
Maka: P1 = x + y mod n = -40140+ 281106 mod 5129 = 5032 mod 5129
P2 = x - y mod n = -40140 - 281106 mod 5129 = 1881 mod 5129 P3 = -x + y mod n = 40140 + 281106 mod 5129 = 3248 mod 5129
P4 = -x - y mod n = 40140- 281106 mod 5129 = 97 mod 5129 Nilai terkecil dari P1, P2, P3, P4 adalah =
97 ‘a’ dalam ASCII
4.2.5. Skenario Dekripsi Pesan
Setelah Bob mendapatkan kunci maka Bob selanjutnya akan mengdekripsikan pesan dengan kunci yang sudah didapat oleh Bob. Gambar 4.9. adalah menunjukkan proses
dekripsi pesan dengan sistem.
Gambar 4.9 Pengujian Sistem dengan Skenario Dekripsi Pesan
Universitas Sumatera Utara
Perhitungan manual dari proses dekripsi pesan sesuai dengan Gambar 4.8. adalah sebagai berikut:
1. C=
Î=206 K.OTP= ‘a’=97
C - K.OTP= 206-97=109 P= chr109= ‘m’
2. C=
Ó=211 K.OTP=’r’=114
C-K.OTP=211-114=97 P=chr9
7=’a’ 3.
C= ‘á’=225
K.OTP=’m’=109 C-K.OTP=225-109=116
P=chr116=’t’ 4.
C=
Â
=194 K.OTP=
’a’=97 C-K.OTP=194-97=97
P=chr97=’a’
4.2.6. Pengujian Enkripsi Pesan
Pengujian ini dilakukan untuk mengetahui pengaruh panjang plaintext terhadap lama proses enkripsi dan panjang kunci yang digunakan terhadap lama proses enkripsi
algoritma One Time Pad.
Universitas Sumatera Utara
Tabel 4.3. Hasil Pengujian Enkripsi dengan Variasi Panjang Plaintext
NO Panjang Plaintext
Karakter Waktu
detik 1.
19 1,712
2. 121
1,933 3.
1507 2,451
4. 2527
2,987 5.
10828 4,555
Gambar 4.10 Grafik Pengujian Enkripsi Pesan
Berdasarkan tabel 4.3 dan Gambar 4.10 dapat diperoleh lama waktu dalam melakukan proses enkripsi pesan dengan lima contoh panjang plaintext yang berbeda.
4.2.7. Pengujian dekripsi pesan
Pengujian ini dilakukan untuk mengetahui pengaruh panjang plaintext terhadap lama proses dekripsi dengan panjang kunci yang digunakan terhadap lama proses dekripsi
algoritma One Time Pad.
Universitas Sumatera Utara
Tabel 4.4. Hasil Pengujian Dekripsi dengan Variasi Panjang Plaintext
NO Panjang Plaintext
Karakter Waktu
detik 1.
19 0,535
2. 121
0,918 3.
1507 1,000
4. 2527
1,765 5.
10828 3,121
Gambar 4.11 Grafik Pengujian Dekripsi Pesan
Berdasarkan tabel 4.4 dan Gambar 4.11 dapat diperoleh lama waktu dalam melakukan proses enkripsi pesan dengan lima contoh panjang plaintext yang berbeda.
Universitas Sumatera Utara
Tabel 4.5 Perbandingan Waktu Enkripsi dan Dekripsi Pesan
Nomor Panjang Plaintext
Waktu Enkripsi Waktu Dekripsi
1 19
1,712 0,535
2 121
1,933 0,918
3 1507
2,451 1,000
4 2527
2,987 1,765
5 10828
4,555 2,121
Gambar 4.12 Grafik Perbandingan Enkripsi dan Dekripsi
Berdasarkan tabel 4.5 dan Gambar 4.12 diatas, dapat diinformasikan bahwa jumlah proses waktu enkripsi dan dekripsi berbeda. Sistem memerlukan waktu yang lebih
lama untuk melakukan proses enkripsi pesan daripada melakukan proses dekripsi pesan tersebut
Universitas Sumatera Utara
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pembahasan dan hasil dari penelitian, maka diperoleh beberapa kesimpulan sebagai berikut:
1. Algoritma One Time Pad berfungsi untuk mengamankan informasi pesan
yang akan dienkripsi sementara algoritma Rabin berfungsi untuk mengamankan kunci dari pesan yang telah dienkripsi .
2. Pesan yang bisa diinput untuk enkripsi pesan berupa .txt dan .doc.
3. Jumlah nilai karakter setelah dienkripsi akan semakin besar dan akan kembali
seperti semula setelah did ekripsi karena dirubah ke dalam bentuk ASCII. 4.
Pada algoritma Rabin menggunakan Kunci Publik untuk enkripsi kunci dan kunci private untuk dekripsi kunci.
5. Penggunaan autodekripsi cukup membantu untuk menentukan hasil dekripsi
yang benar dari keempat hasil dekripsi pada proses dekripsi algoritma Rabin.
Universitas Sumatera Utara
5.2 Saran