IMPLEMENTASI THREE-PASS PROTOCOL DENGAN KOMBINASI ALGORITMA VIGENERE CIPHER DAN ALGORITMA ONE TIME
PAD DALAM PENGAMANAN FILE GAMBAR
SKRIPSI
ROSALIA SIANIPAR 131401102
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
2018
IMPLEMENTASI THREE-PASS PROTOCOL DENGAN KOMBINASI ALGORITMA VIGENERE CIPHER DAN ALGORITMA ONE TIME
PAD DALAM PENGAMANAN FILE GAMBAR
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
ROSALIA SIANIPAR 131401102
PROGRAM S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2018
PERSETUJUAN
Judul : Implementasi Three-Pass Protocol dengan Kombinasi Algoritma Vigenere Cipher dan Algoritma One Time Pad dalam Pengamanan File Gambar
Kategori : Skripsi
Nama : Rosalia Sianipar
Nomor Induk Mahasiswa : 131401102
Program Studi : Sarjana (S-1) Ilmu Komputer
Fakultas : Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
Diluluskan di Medan, 24 Januari 2018
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Amer Sharif, S.Si., M.Kom Dian Rachmawati, S.Si., M.Kom
Diketahui/disetujui oleh
Program studi S-1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom
PERNYATAAN
IMPLEMENTASI THREE-PASS PROTOCOL DENGAN KOMBINASI ALGORITMA VIGENERE CIPHER DAN ALGORITMA ONE TIME
PAD DALAM PENGAMANAN FILE GAMBAR
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan,
Rosalia Sianipar 131401102
PENGHARGAAN
Pujian hormat dan syukur hanya kepada Tuhan Yesus Kristus oleh karena kasih karunia-Nyalah penulis dimampukan untuk menyelesaikan skripsi ini sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer dari Program Studi S-1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Penulis juga bersyukur kepada pihak-pihak yang telah berperan penting dalam penyelesaian skripsi ini. Penulis berterima kasih kepada:
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas Sumatera Utara
2. Bapak Prof. Opim Salim Sitompul, M.Sc.. selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembanding I yang telah memberikan kritik dan saran
4. Bapak Herriyance, S.T., M.Kom selaku Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembanding II yang telah memberikan kritik dan saran
5. Ibu Dian Rachmawati, S.Si., M.Kom selaku Dosen Pembimbing I yang telah dengan sabar memberikan bimbingan dan dukungan kepada penulis
6. Bapak Amer Sharif, S.Si., M.Kom selaku Dosen Pembimbing II yang telah berbaik hati memberikan bimbingan dan dukungan kepada penulis
7. Seluruh bapak/ibu dosen serta pegawai di Program Studi S-1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara 8. Bapakku Baktiar Sianipar dan mamaku Demiala Tampubolon tersayang yang
dengan sangat sabar memotivasi, mendoakan, mengasihi, dan memberikan pengertian serta sukacita kepada penulis
9. Kakakku Cahaya M. Sianipar, S.Pd kukasihi, adek-adekku Kristanto Sianipar, Suminar Sianipar, Renita Y. Sianipar dan Juandiego Sianipar, dan opungku Gusta br Pangaribuan yang terkasih yang selalu memberikan semangat dan keceriaan kepada penulis
10. Kelompok Tumbuh Bersama terkasih Precious-Dominica (Jhonri O. Kudadiri, Endang P. Tambunan, Mangasa A.S. Manullang, Toni A. Sianturi, Efelin O.
Siburian) dan PKK kami kak Dasma Sipayung dan kak Sunfirst Nababan, terima kasih untuk setiap hal
11. Hannayeni Sirait, Claudia Situmorang, Nova Sagala, Rosma Siringo-ringo, Kelvyn Pasaribu, kak Evelin Sinaga, kak Winda Siburian, Agnes Pangaribuan, Tumiar Lubis, Novri Berutu, Falen Siagian, kak Dahlia Siagian, Tahi Sinambela, dan seluruh teman-teman pelayanan UKM KMK USU UP FMIPA yang selalu memberikan dukungan dan mendoakan penulis
12. Adik-adik kelompok kecil, Lemuel (Yulia Sipayung dan Sendy Natanael) dan Lara Feodora (Gita Yukio Sipayung, Anastasia Leonita, Indah C. Pakpahan, Nia Hizkia Pangaribuan, Novli F. Situmorang, Rebecca Sitorus) yang memberikan semangat dan sukacita serta mendoakan penulis
13. Teman-teman dari Program Studi S-1 Ilmu Komputer khususnya Jay Silen, Putri Aulia Noer, Daniel Hamonangan, Exaudi Naipospos, Brando Tampubolon, Indah Lumbanraja, Elvi Situmorang, Ezra Hidayanti dan seluruh anggota KMKI yang memberikan semangat, bantuan dan mendoakan penulis
14. Seluruh pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat dituliskan satu per satu.
Penulis menyadari bahwa penelitian ini tidak sempurna. Namun, dengan segala kelebihan dan kekurangannya penulis berharap skripsi ini bermanfaat bagi siapa saja yang membacanya.
Medan, Januari 2018
Penulis
ABSTRAK
Pertukaran informasi saat ini sudah sangat mudah, khususnya untuk citra digital.
Dibutuhkan pengamanan untuk citra-citra tersebut karena adanya pihak-pihak yang tidak bertanggungjawab menyalahgunakan citra milik orang lain. Salah satu teknik pengamanan data adalah kriptografi. Kriptografi adalah ilmu tentang metode pengiriman pesan secara rahasia sehingga hanya penerima pesan yang dituju yang dapat membaca pesan tersebut. Ada dua jenis kriptografi diklasifikasikan berdasarkan kunci yaitu, kriptografi simetris dan asimetris. Pada penelitian ini, algoritma kriptografi yang digunakan adalah algoritma kriptografi simetris yaitu, Vigenere Cipher dan One Time Pad. Namun, keamanan kedua algoritma ini tergantung pada keamanan kunci algoritma tersebut. Three-Pass Protocol adalah skema kerja yang memungkinkan dua orang melakukan pertukaran pesan rahasia tanpa melakukan pertukaran kunci. Jadi, kedua algoritma kriptografi simetris tersebut dikombinasikan pada skema Three-Pass Protocol. Sistem dibangun dengan menggunakan bahasa pemrograman C# dengan IDE SharpDevelop. Hasil penelitian dan pengujian menggunakan GetPixel menunjukkan bahwa pengamanan file gambar menggunakan kombinasi algoritma Vigenere Cipher dan One Time Pad mengembalikan file gambar semula secara utuh sehingga memenuhi parameter keutuhan data. Hasil pengujian terhadap waktu proses eksekusi program menunjukkan waktu proses berbanding lurus dengan ukuran citra.
Kata Kunci: Kriptografi, Three-Pass Protocol, Vigenere Cipher, One Time Pad, File Gambar.
IMPLEMENTATION OF THREE-PASS PROTOCOL WITH COMBINATION OF VIGENERE CIPHER ALGORITHM AND ONE TIME PAD
ALGORITHM IN SECURITY IMAGE FILE
ABSTRACT
Nowdays, the exchange of information is very easy, especially for digital image.
Security is required for these images because of irresponsible parties abusing the image of others. One of the data security techniques is cryptography. Cryptography is the study of methods for sending messages in secret so that only the intended recipient can read the message. There are two types of cryptography classified by key is symmetric and asymmetric cryptography. In this research, cryptographic algorithm used is symmetric cryptography algorithm that is, Vigenere Cipher and One Time Pad. However, the security of these two algorithms depends on the key security of the algorithm. The Three-Pass Protocol is a work scheme that allows two people to exchange secret messages without exchanging keys. Thus, both symmetric cryptographic algorithms are combined in the Three-Pass Protocol scheme. The system was built using the C#
programming language with the SharpDevelop IDE. The results of research and testing using GetPixel shows that the security of image files using a combination of Vigenere Cipher algorithm and One Time Pad can restore the original image file intact so as to meet the data integrity parameter. The test results on the program execution time shows the processing time is directly proportional to the size of the image.
Key Words: Cryptography, Three-Pass Protocol, Vigenere Cipher, One Time Pad, Image File.
DAFTAR ISI
Halaman.
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xii
BAB I Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB II Landasan Teori
2.1 Citra 5
2.1.1 Jenis-Jenis Citra Digital 5
2.1.2 Citra Bitmap (*.bmp) 7
2.2 Kriptografi 7
2.2.1 Kriptografi Klasik 8
2.2.2 Kriptografi Modern 8
2.2.3 Kriptografi Kunci Simetris 8
2.2.4 Kriptografi Kunci Asimetris 9
2.3 Algoritma Vigenere Cipher 9
2.4 Algoritma One Time Pad 12
2.5 Three-Pass Protocol 14
BAB III Analisis dan Perancangan
3.1 Analisis Sistem 16
3.1.1 Analisis Masalah 16
3.1.2 Analisis Kebutuhan 17
3.2 Perancangan Sistem 19
3.2.1 Use Case Diagram 19
3.2.2 Activity Diagram 23
3.2.3 Sequence Diagram 25
3.2.3 Psedocode 25
3.2.5 Flowchart 29
3.2.6 Perancangan Antarmuka (Interface) 33
BAB IV Implementasi dan Pengujian
4.1 Implementasi Sistem 40
4.1.1 Halaman Utama 40
4.1.2 Halaman Tentang 41
4.1.3 Halaman Pengirim 41
4.1.4 Halaman Penerima 42
4.2 Pengujian Sistem 43
4.2.1 Pengujian Enkripsi Vigenere Cipher 43
4.2.2 Pengujian Enkripsi One Time Pad 48
4.2.3 Pengujian Dekripsi Vigenere Cipher 53
4.2.4 Pengujian Dekripsi One Time Pad 57
4.2.5 Pengujian Keutuhan Data 61
4.2.6 Pengujian Algoritma Terhadap Waktu Proses 62
BAB V Kesimpulan dan Saran
5.1 Kesimpulan 66
5.2 Saran 66
Daftar Pustaka 67
DAFTAR TABEL
Halaman
Tabel 2.1 Bujursangkar Vigenere 10
Tabel 3.1 Use case narrative pengirim 19
Tabel 3.2 Use case narrative enkripsi Vigenere 20
Tabel 3.3 Use case narrative dekripsi Vigenere 21
Tabel 3.4 Use case narrative penerima 21
Tabel 3.5 Use case narrative enkripsi One Time Pad 22 Tabel 3.6 Use case narrative dekripsi One Time Pad 23
Tabel 3.7 Pseudocode enkripsi Vigenere Cipher 26
Tabel 3.8 Pseudocode dekripsi Vigenere Cipher 26
Tabel 3.9 Pseudocode enkripsi One Time Pad 27
Tabel 3.10 Pseudocode dekripsi One Time Pad 28
Tabel 3.11 Pseudocode acak kunci One Time Pad 28
Tabel 4.1 Nilai piksel RGB plainimage 44
Tabel 4.2 Nilai piksel RGB cipherimage I 46
Tabel 4.3 Nilai piksel RGB cipherimage I hasil perhitungan manual 48
Tabel 4.4 Nilai piksel RGB cipherimage II 50
Tabel 4.5 Nilai piksel RGB cipherimage II hasil perhitungan manual 52
Tabel 4.6 Nilai piksel RGB cipherimage III 54
Tabel 4.7 Nilai piksel RGB cipherimage III hasil perhitungan manual 57
Tabel 4.8 Nilai piksel RGB plainimage 59
Tabel 4.9 Nilai piksel RGB plainimage hasil perhitungan manual 61 Tabel 4.10 Waktu proses pada citra 100x100 piksel 62 Tabel 4.11 Waktu proses pada citra 200x200 piksel 63 Tabel 4.12 Waktu proses pada citra 300x300 piksel 63 Tabel 4.13 Waktu proses pada citra 400x400 piksel 64
Tabel 4.14 Waktu proses citra 64
DAFTAR GAMBAR
Halaman
Gambar 2.1 Contoh citra biner 6
Gambar 2.2 Contoh citra grayscale 6
Gambar 2.3 Contoh citra warna 7 Gambar 2.4 Skema kriptografi kunci simetris 9 Gambar 2.5 Skema kriptografi kunci asimetris 9 Gambar 2.6 Skema kerja Three-Pass Protocol 15
Gambar 3.1 Diagram Ishikawa 17
Gambar 3.2 Use case diagram system 19
Gambar 3.3 Activity diagram sistem 24
Gambar 3.4 Sequence diagram sistem 25
Gambar 3.5 Flowchart algoritma Vigenere Cipher 29
Gambar 3.6 Flowchart algoritma One Time Pad 30
Gambar 3.7 Flowchart acak kunci One Time Pad 31
Gambar 3.8 Flowchart sistem 32
Gambar 3.9 Rancangan antarmuka halaman utama 33
Gambar 3.10 Rancangan antarmuka halaman tentang 34
Gambar 3.11 Rancangan antarmuka halaman pengirim 35
Gambar 3.12 Rancangan antarmuka halaman penerima 37
Gambar 4.1 Antarmuka halaman utama 40
Gambar 4.2 Antarmuka halaman tentang 41
Gambar 4.3 Antarmuka halaman pengirim 42
Gambar 4.4 Antarmuka halaman penerima 43
Gambar 4.5 Plainimage 44
Gambar 4.6 Enkripsi Vigenere Cipher 45
Gambar 4.7 Cipherimage 45
Gambar 4.8 Enkripsi One Time Pad 49
Gambar 4.9 Cipherimage II 50
Gambar 4.10 Dekripsi Vigenere Cipher 53
Gambar 4.11 Cipherimage III 54
Gambar 4.12 Dekripsi One Time Pad 58
Gambar 4.13 Plainimage 58
Gambar 4.14 Grafik hubungan ukuran citra dan waktu proses 65
DAFTAR LAMPIRAN
Halaman
Lampiran 1 Listing Program A-1
Lampiran 2 Curriculum Vitae B-1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pertukaran informasi saat ini sudah sangat mudah, khususnya untuk citra digital atau gambar. Hal ini bisa dilihat dari semakin banyaknya media sosial yang menyediakan fitur-fitur utama untuk bertukar gambar, seperti instagram. Kemudahan dalam bertukar gambar ini membuat masyarakat berlomba-lomba untuk menampilkan gambar terbaiknya padahal tidak sedikit diantaranya bersifat privasi. Menjadi masalah adalah ketika ada pihak-pihak yang tidak bertanggungjawab menyalahgunakan citra milik orang lain dan ini menimbulkan ancaman bagi pihak terkait. Untuk itu, sangat dibutuhkan pengamanan untuk citra-citra digital tersebut.
Salah satu teknik pengamanan data adalah kriptografi. Kriptografi adalah ilmu tentang metode pengiriman pesan secara rahasia (yaitu, dienkripsi atau menyamarkan bentuk) sehingga hanya penerima pesan yang dituju yang dapat melepaskan penyamaran dan membaca pesan (atau memahaminya). Pesan asli disebut plaintext dan pesan rahasia disebut ciphertext (Mollin, 2007).
Vigenere Cipher adalah sebuah algoritma kunci simetris dimana kunci enkripsi sama dengan kunci dekripsi. Pada algoritma Vigenere Cipher kata kunci diulang sebanyak yang diperlukan dengan panjang plaintext (Mollin, 2003). Penggunaan Vigenere Cipher bergantung pada penggunaan karakter acak pada tabel, semakin acak karakter yang digunakan pada tabel tersebut maka keamanan algoritma ini juga semakin baik (Singh, 2012).
Algoritma One Time Pad dikenal sebagai algoritma yang memiliki kerahasiaan sempurna (perfect secrecy). Pada algoritma One Time Pad, jumlah kunci sama panjangnya dengan jumlah plaintext (Mollin, 2003).
Keamanan kedua algoritma di atas tergantung dengan keamanan kunci algoritma tersebut. Three-Pass Protocol adalah sebuah skema kerja yang memungkinkan dua orang melakukan pertukaran pesan tanpa melakukan pertukaran kunci (Schneier, 1996).
Berdasarkan uraian di atas, maka penulis ingin melakukan penelitian dengan rencana judul “Implementasi Three-Pass Protocol dengan Kombinasi Algoritma Vigenere Cipher dan Algoritma One Time Pad dalam Pengamanan File Gambar”.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah, rumusan masalah pada penelitian ini adalah belum adanya aplikasi pengamanan citra tanpa harus melakukan pertukaran kunci antara pengirim dan penerima pesan dengan menggunakan Three-Pass Protocol dengan kombinasi algoritma Vigenere Cipher dan One Time Pad.
1.3 Batasan Masalah
Adapun batasan masalah dalam penelitian ini adalah sebagai berikut:
1. Pengirim pesan menggunakan algoritma Vigenere Cipher sedangkan penerima pesan menggunakan algoritma One Time Pad
2. Menggunakan fungsi generate random number yang tersedia pada bahasa pemrograman yang digunakan untuk mengacak kunci
3. Jenis file gambar yang digunakan berekstensi *.bmp dengan citra warna RGB (Red Green Blue)
4. Ukuran maksimal gambar adalah 100.000.000 piksel
5. Implementasi berupa enkripsi dan dekripsi saja dan tidak melakukan kriptanalis 6. Parameter yang akan digunakan adalah keutuhan data (integrity) menggunakan GetPixel yang tersedia pada bahasa pemrograman yang digunakan dan waktu proses (milisekon)
7. Menggunakan bahasa pemrograman C#
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah mengimplementasikan Three-Pass Protocol dengan kombinasi algoritma Vigenere Cipher dan algoritma One Time Pad dalam pengamanan file gambar.
1.5 Manfaat Penelitian
Penelitian ini diharapkan bermanfaat untuk masyarakat yang membutuhkan pengamanan gambar yang dianggap rahasia dan tidak ingin diketahui orang lain tanpa harus melakukan pertukaran kunci antara pengirim dan penerima, dan juga sebagai literatur kriptografi.
1.6 Metodologi Penelitian
Penelitian ini menerapkan beberapa metode penelitian sebagai berikut:
1. Studi Literatur
Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. Referensi yang digunakan dapat berupa buku, jurnal, skripsi, tesis, artikel, situs internet yang berkaitan dengan penelitian ini yaitu tentang Three-Pass Protocol, algoritma Vigenere Cipher, dan algoritma One Time Pad.
2. Analisis dan Perancangan Sistem
Tahap ini digunakan untuk mengolah data dari hasil literatur algoritma Vigenere Cipher dan One Time Pad. Proses ini meliputi pembuatan use case diagram, flowchart, dan perancangan interface dari aplikasi yang akan dibuat.
3. Implementasi Sistem
Skema Three-Pass Protocol dengan kombinasi algoritma Vigenere Cipher dan algoritma One Time Pad diimplementasikan dalam bentuk aplikasi yang dibuat dengan menggunakan bahasa C#.
4. Pengujian Sistem
Pada tahap ini sistem yang telah dibuat akan diuji.
5. Dokumentasi Sistem
Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).
1.7 Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu:
BAB I PENDAHULUAN
Bab ini berisi latar belakang pemilihan judul skripsi
“Implementasi Three-Pass Protocol dengan Kombinasi Algoritma Vigenere Cipher dan Algoritma One Time Pad dalam Pengamanan File Gambar”, rumusan masalah, batasan masalah, tujuan penelitian, metode penelitian dan sistematika penelitian.
BAB II LANDASAN TEORI
Bab ini berisi penjelasan singkat mengenai kriptografi secara umum, algoritma Vigenere Cipher, algoritma One Time Pad, Three-Pass Protocol dan citra.
BAB III ANALISIS DAN PERANCANGAN
Bab ini berisi analisis terhadap masalah penelitian, analisis kebutuhan dalam membangun sistem dan perancangan terhadap sistem yang akan dibangun.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi penjelasan implementasi Three-Pass Protocol dengan mengkombinasikan algoritma Vigenere Cipher dan algoritma One Time Pad dan pengujian terhadap sistem yang telah dibangun dengan beberapa sampel file gambar serta pembahasan hasil pengujian.
BAB V KESIMPULAN DAN SARAN
Berisi kesimpulan dari keseluruhan penelitian dan saran berdasarkan hasil pengujian yang diharapkan dan dapat bermanfaat untuk pengembangan selanjutnya.
BAB II
LANDASAN TEORI
2.1.Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek.
Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar-X, yang terletak di kertas foto, lukisan, pemandangan alam, hasil CT scan, gambar-gambar yang terekam pada pita kaset dan lain sebagainya. Citra analog tidak dapat direpresentasikan ke dalam komputer sehingga tidak bisa diproses di komputer secara langsung. Oleh sebab itu, citra analog harus dikonversi ke digital terlebih dahulu supaya dapat diproses. Citra digital adalah citra yang diolah oleh komputer. Monitor akan menampilkan kotak-kotak kecil. Namun, yang disimpan dalam memori komputer hanyalah angka-angka yang menunjukkan besar intensitas pada masing-masing piksel tersebut.
2.1.1. Jenis-Jenis Citra Digital
Menurut Sutoyo (2009), ada 3 jenis citra digital yang sering digunakan, yaitu:
1. Citra Biner (Monokrom), warna pada citra ini sebanyak 2, yaitu hitam dan putih dan membutuhkan 1 bit di memori untuk menyimpan kedua warna ini. Bit 0 mewakili warna hitam dan bit 1 mewakili warna putih. Contoh citra biner dapat dilihat pada gambar 2.1, berikut ini:
Gambar 2.1 Contoh citra biner
2. Citra Grayscale (Skala Keabuan), banyaknya warna pada citra ini tergantung pada jumlah bit yang disediakan di memori untuk menampung kebutuhan warna tersebut. Citra 2 bit mewakili 4 warna dan citra 3 bit mewakili 8 warna. Semakin besar jumlah bit warna yang disediakan di memori, semakin halus gradasi warna yang terbentuk. Contoh citra grayscale dapat dilihat pada gambar 2.2, berikut ini:
Gambar 2.2 Contoh citra grayscale
3. Citra Warna (True Color), setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar (RGB = Red Green Blue). Setiap warna dasar merupakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 255 warna. Berarti setiap piksel mempunyai kombinasi warna sebanyak 28. 28. 28 = 224 = 16 juta warna lebih. Itulah sebabnya format ini dinamakan true color karena mempunyai jumlah warna yang cukup besar sehingga dikatakan hampir mencakup seluruh warna di alam. Contoh citra warna dapat dilihat pada gambar 2.3, berikut ini:
Gambar 2.3 Contoh citra warna 2.1.2. Citra Bitmap (*.bmp)
Citra Bitmap disebut juga dengan citra raster. Citra bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per piksel).
Citra Bitmap direpresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Bitmap merupakan media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital. Citra Bitmap biasanya diperoleh dengan cara scanner, camera digital, video digital, dan lain-lain. Citra bitmap dengan format file *.bmp adalah citra murni.
2.2.Kriptografi
Berdasarkan etimologi, kriptografi berasal dari bahasa Yunani kryptos, yang berarti tersembunyi, dan graphein yang berarti tulisan. Kriptografi adalah ilmu tentang metode pengiriman pesan secara rahasia (yaitu, dienkripsi atau menyamarkan bentuk) sehingga hanya penerima pesan yang dituju yang dapat melepaskan penyamaran dan membaca pesan (atau memahaminya). Pesan asli disebut plaintext dan pesan rahasia disebut ciphertext. Proses mengubah plaintext menjadi ciphertext disebut enkripsi. Proses mengembalikan ciphertext menjadi plaintext, yang dikerjakan oleh penerima yang memiliki pengetahuan untuk melepaskan penyamaran, disebut dekripsi. Siapapun yang terlibat dalam kriptografi disebut kriptografer. Sebaliknya, ilmu tentang teknik matematika untuk mencoba menaklukkan metode kriptografi disebut kriptanalis. Kriptologi adalah ilmu yang mempelajari keduanya yaitu kriptografi dan kriptanalis (Mollin, 2007).
Tujuan kriptografi ada empat, yaitu (Paar & Pelzl, 2010):
1. Kerahasiaan: informasi dirahasiakan dari siapapun kecuali pihak resmi.
2. Integritas: pesan belum diubah sama sekali selama proses pengiriman.
3. Otentikasi: pengirim pesan adalah asli. Istilah alternatifnya adalah pembuktian keaslian asal data.
4. Non-repudiation: pengirim pesan tidak dapat menyangkal penciptaan pesan.
2.2.1. Kriptografi Klasik
Sebelum era komputer, kriptografi terdiri dari algoritma berbasis karakter. Ada dua teknik dasar yang biasa digunakan, yaitu cipher substitusi dan cipher transposisi.
Sebuah cipher substitusi adalah satu dimana setiap karakter dalam plaintext diganti untuk karakter lain dalam ciphertext. Penerima membalikkan substitusi pada ciphertext untuk memulihkan plaintext. Sedangkan cipher transposisi adalah urutan karakter dalam plaintext diganti. (Schneier, 1996)
2.2.2. Kriptografi Modern
Kriptografi modern menggunakan gagasan dasar yang sama seperti kriptografi klasik, namun kriptografi modern lebih kompleks daripada kriptografi klasik.
Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter (seperti yang dilakukan pada cipher substitusi atau cipher transposisi pada algoritma kriptografi klasik). Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plaintext, maupun ciphertext) dinyatakan dalam rangkaian bit biner, 0 dan 1. Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner (Schneier, 1996).
2.2.3. Kriptografi Kunci Simetris
Algoritma simetris kadang-kadang disebut algoritma konvensional, algoritma dimana kunci enkripsi dapat dihitung dari kunci dekripsi dan sebaliknya. Dalam kebanyakan algoritma simetris kunci enkripsi sama dengan kunci dekripsi.
Algoritma ini juga disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci sehingga algoritma ini mengharuskan pengirim dan penerima menyetujui kunci sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetris terletak pada kunci. Membocorkan kunci berarti siapapun bisa
mengenkripsi dan mendekripsi pesan. Selama komunikasi harus tetap rahasia maka kunci harus tetap dirahasiakan.
Algoritma simetris dapat dibagi menjadi dua kategori: stream cipher dan block cipher. Stream cipher beroperasi pada plaintext satu bit (atau kadang-kadang byte) pada suatu waktu. Block cipher beroperasi pada plaintext dalam kelompok bit (Schneier, 1996).
Kunci (K)
Plaintext (P) Ciphertext (C) Plaintext (P)
Gambar 2.4 Skema kriptografi kunci simetris 2.2.4. Kriptografi Kunci Asimetris
Kriptografi kunci asimetris atau kriptografi kunci publik adalah bentuk kriptografi yang menggunakan dua jenis kunci; satu kunci tersedia untuk umum dan digunakan untuk enkripsi sedangkan kunci lainnya bersifat pribadi dan digunakan untuk dekripsi (Smart, 2016). Kunci publik pertama kali dipublikasikan pada tahun 1976 oleh Whit Diffie dan Martin Hellman.
Kunci Publik (K1) Kunci Privat (K2)
Plaintext (P) Ciphertext (C) Plaintext (P)
Gambar 2.5 Skema kriptografi kunci asimetris 2.3.Algoritma Vigenere Cipher
Algoritma Vigenere Cipher pertama kali dipublikasikan pada tahun 1586 oleh Blaise de Vigenere. Vigenere Cipher adalah metode untuk mengenkripsi teks alfabet dengan menggunakan serangkaian Caesar Cipher yang berbeda berdasarkan huruf pada kata kunci (Kester, 2012). Algoritma ini adalah algoritma kunci simetris mengingat bahwa mengetahui enkripsi sama saja dengan mengetahui dekripsi dan merupakan cipher substitusi polialfabetis.
Enkripsi Ek (P) = C
Dekripsi Dk (C) = P
Enkripsi EK1 (P) = C
Dekripsi DK2 (C) = P
Cara mudah memvisualisasikan Vigenere Cipher adalah dengan menggunakan bujursangkar Vigenere, sebagai berikut.
Tabel 2.1 Bujursangkar Vigenere
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E G G H I J K L M N P P Q R S T U V W X Y Z A B C D E F H H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Untuk menggunakan tabel 2.1 ada tiga hal yang dilakukan untuk mengenkripsi pesan:
1. Tempatkan plaintext berturut-turut
2. Kata kunci ditempatkan di bawah plaintext, diulang sesering yang diperlukan untuk menutup semua plaintext
3. Ganti setiap huruf dari plaintext dengan huruf pada perpotongan baris dan kolom dari tabel yang berisi huruf kata kunci dan huruf plaintext.
Sedangkan untuk mendekripsi adalah kebalikan dari proses enkripsi, yaitu dengan menarik garis horizontal dari huruf kunci ke huruf ciphertext dan dari huruf ciphertext ditarik garis vertikal ke huruf plaintext (Mollin, 2003).
Secara matematis, proses enkripsi dan dekripsi dirumuskan sebagai berikut:
Ci = Pi + Ki (mod n) (1)
Pi = Ci – Ki (mod n) (2)
dimana, P adalah plaintext, K adalah key, C adalah ciphertext, dan n adalah jumlah karakter yang digunakan (Hewlett, 2003).
Contoh enkripsi dan dekripsi Vigenere Cipher:
Suatu piksel memiliki nilai RGB, red = 251; green = 58; blue = 51. Kemudian nilai RGB inilah yang akan dienkripsi menggunakan Vigenere Cipher, sehingga:
P1 = 251 P2 = 58 P3 = 51
Kemudian kita menentukan kunci Vigenere K1 = 83
K2 = 178 K3 = 90
1. Poses enkripsi adalah dengan menggunakan rumus enkripsi C = Pi + Ki mod n, maka C1 = P1 + K1 (mod 256)
= 251 + 83 (mod 256) = 334 (mod 256) = 78
C2 = P2 + K2 (mod 256) = 58 + 178 (mod 256) = 236 (mod 256) = 236
C3 = P3 + K3 (mod 256) = 51 + 90 (mod 256) = 141 (mod 256)
R = 251 G = 58 B = 51
= 141
Jadi, ciphertext yang terbentuk adalah C = (78, 236, 141).
2. Poses dekripsi adalah dengan menggunakan rumus enkripsi P = Ci - Ki (mod n), maka
P1 = C1 – K1 (mod 256) = 78 – 83 (mod 256) = -5 (mod 256) = 251
P2 = C2 – K2 (mod 256) = 236 – 178 (mod 256) = 58 (mod 256)
= 58
P2 = C2 – K2 (mod 256) = 141 – 90 (mod 256) = 51 (mod 256) = 51
Jadi, plaintext adalah C = (251, 58, 51).
2.4.Algoritma One Time Pad
Algoritma One Time Pad ditemukan oleh Gilbert S. Vernam pada tahun 1917. One Time Pad adalah algoritma dengan kunci yang benar-benar acak, hanya digunakan sekali dan panjang kunci sama dengan panjang plaintext. Oleh karena itu, algoritma ini memiliki tingkat kerahasiaan sempurna (perfect secrecy) (Mollin, 2003). One Time Pad mendapatkan reputasi sebagai algoritma yang kuat namun sederhana dengan tingkat keamanan yang tinggi. Algoritma ini juga masih lebih baik dibandingkan dengan algoritma-algoritma kriptografi modern (Widiasari, 2012).
Secara matematis, proses enkripsi dan dekripsi dirumuskan sebagai berikut:
C = Pi + Ki mod n (3)
P = Ci – Ki mod n (4)
dimana, P adalah plaintext, K adalah key, C adalah ciphertext, dan n adalah jumlah karakter yang digunakan (Schneier, 1996).
Contoh enkripsi dan dekripsi One Time Pad:
Suatu piksel memiliki nilai RGB, red = 204; green = 226; blue = 249. Kemudian nilai RGB ini diubah ke dalam bentuk biner lalu dienkripsi menggunakan One Time Pad, sehingga:
P1 = 204 P2 = 226 P3 = 249
Kemudian tentukan kunci One Time Pad secara acak K1 = 225
K2 = 35 K3 = 112
1. Proses enkripsi adalah dengan menggunakan rumus enkripsi C = Pi + Ki mod n, maka
C1 = P1 + K1 (mod 256) = 204 + 225 (mod 256) = 429 (mod 256) = 173
C2 = P2 + K2 (mod 256) = 226 + 35 (mod 256) = 261 (mod 256) = 5
C3 = P3 + K3 (mod 256) = 249 + 112 (mod 256) = 361 (mod 256) = 105
Jadi, ciphertext yang terbentuk adalah C = (173, 5, 105).
R = 204 G = 226 B = 249
2. Proses dekripsi adalah dengan menggunakan rumus dekripsi P = Ci - Ki mod n, maka
P1 = C1 - K1 (mod 256) = 173 - 225 (mod 256) = -52 (mod 256) = 204
P2 = C2 – K2 (mod 256) = 5 - 35 (mod 256) = -30 (mod 256) = 226
P3 = C3 – K3 (mod 256) = 105 - 112 (mod 256) = -7 (mod 256)
= 249
Jadi, plaintext adalah C = (204, 226, 249).
Perbedaan algoritma Vigenere Cipher dan One Time Pad terletak pada kunci.
Algoritma Vigenere Cipher menggunakan kata kunci yang diulang-ulang sepanjang plaintext, sedangkan One Time Pad menggunakan kunci yang benar-benar acak, digunakan sekali dan panjang kunci sama dengan panjang plaintext.
2.5.Three-Pass Protocol
Protokol ini ditemukan oleh Adi Shamir. Protokol ini memungkinkan Alice dan Bob berkomunikasi secara aman tanpa melakukan pertukaran kunci baik kunci rahasia ataupun kunci publik.
Hal ini mengasumsikan adanya cipher simetris yang komutatif, yaitu EA(EB(P)) = EB(EA(P)). Kunci rahasia Alice adalah A. Kunci rahasia Bob adalah B. Alice mengirim pesan (P) ke Bob. Berikut ini adalah skema kerjanya:
1. Alice mengenkripsi P dengan kuncinya dan mengirim ke Bob C1 = EA(P)
2. Bob mengenkripsi C1 dengan kunciya dan mengirim ke Alice C2 = EB(EA(P))
3. Alice mendekripsi C2 dengan kuncinya dan mengirim ke Bob
C3 = DA(EB(EA(P))) = DA(EA(EB(P))) = EB(P)
4. Bob mendekripsi C3 dengan kuncinya untuk memperoleh P. (Schneier, 1996) Cara kerja Three-Pass Protocol tersebut diilustrasikan seperti gambar 2.6, berikut ini:
Alice (Vigenere Cipher) Bob (One Time Pad)
C1
C2
C3
Gambar 2.6 Skema kerja Three-Pass Protocol EVigenere(P) =
C1
EOTP(C1) = C2
DVigenere(C2) = DVigenere(EOTP(EVigenere(P)))
= EOTP(P) = C3
DOTP(C3) = DOTP(EOTP(P)) = P P
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian-bagian komponennya untuk tujuan mempelajari seberapa baik komponen bekerja dan berinteraksi untuk mencapai tujuannya (Whitten & Bentley 2007).
3.1.1 Analisis masalah
Tahap analisis masalah memberi analisis pemahaman yang lebih menyeluruh tentang masalah, peluang dan/atau arahan yang memicu proyek tersebut. Tujuan tahap analisis masalah adalah untuk mempelajari dan memahami masalah dengan cukup baik untuk menganalisis secara menyeluruh permasalahan, peluang, dan kendala yang dihadapi.
Analisis masalah dapat dilakukan dengan menggunakan diagram Ishikawa.
Diagram Ishikawa adalah alat grafis yang digunakan untuk mengidentifikasi, mengeksplorasi, dan menggambarkan masalah dan sebab dan akibat dari masalah tersebut. Hal ini sering disebut sebagai cause and effect diagram atau fishbone diagram.
Gambar 3.1 merupakan gambaran masalah secara umum pada penelitian ini dengan menggunakan diagram Ishikawa.
Gambar 3.1 Diagram Ishikawa 3.1.2 Analisis Kebutuhan
Tujuan analisis adalah mengidentifikasi dan memperlihatkan kebutuhan untuk mencapai sasaran produk. Ada 2 bagian dalam analisis sistem yaitu analisis kebutuhan fungsional dan non-fungsional. Kebutuhan fungsional mendeskripsikan kegiatan- kegiatan dan layanan yang harus disediakan sistem. Sedangkan kebutuhan non- fungsional mendeskripsikan fitur lain seperti karakteristik, dan kendala lainnya agar sistem sesuai dengan yang diharapkan.
a. Kebutuhan fungsional
1. Menerima input plainimage
Sistem mencari dan membaca file citra yang berekstensi *.bmp yang tersimpan pada perangkat yang digunakan.
2. Menerima input kunci
Sistem menerima input kunci yang berasal dari pengguna atau sistem membangkitkan kunci secara acak untuk digunakan sebagai kunci Vigenere dan One Time Pad.
User
Method
Material
System
Pengamanan file gambar pada Three-Pass Protocol dengan kombinasi algoritma Vigenere Cipher dan One Time Pad
3. Mengenkripsi pesan
Sistem mengenkripsi pesan dengan kunci yang telah ada menggunakan algoritma Vigenere Cipher untuk pengirim pesan asli dan One Time Pad untuk penerima pesan asli.
4. Mendekripsi pesan
Sistem mendekripsi pesan dengan kunci yang telah ada menggunakan algoritma Vigenere Cipher untuk pengirim pesan asli dan One Time Pad untuk penerima pesan asli.
5. Menyimpan pesan
Sistem menyimpan pesan yang sudah dienkripsi dan didekripsi.
b. Kebutuhan nonfungsional 1. Performa
Sistem melakukan proses enkripsi dan dekripsi pesan dengan waktu yang relatif singkat.
2. User friendly
Sistem menggunakan desain yang mudah dimengerti dan dipelajari.
3. Kontrol
Sistem yang akan dibangun menampilkan pesan error untuk setiap input yang tidak sesuai.
4. Dokumentasi
Sistem yang akan dibangun memiliki panduan penggunaan.
3.2 Perancangan Sistem
3.2.1 Use Case Diagram
Use case diagram digunakan untuk menggambarkan hubungan antara pengguna dengan sistem. Gambar 3.2 merupakan use case diagram yang akan dibangun.
Gambar 3.2 Use case diagram sistem
Setiap use case dijelaskan dalam use case narrative. Tabel 3.1 sampai dengan tabel 3.6 merupakan use case narrative dari setiap use case yang ada di gambar 3.2.
Tabel 3.1 Use case narrative pengirim
Name Pengirim
Actors Pengguna
Trigger Pengguna memilih tab “Pengirim”
Preconditions Aplikasi telah berhasil dijalankan dan pengguna sudah menekan tombol “MASUK” pada jendela utama
Basic Flow of Events
1. Use case dimulai ketika pengguna menekan tab “Pengirim”
2. Sistem menampilkan halaman tab “Pengirim”
3. Pengguna melakukan inputan plainimage
4. Sistem menampilkan plainimage beserta nama file dan ukurannya
5. Pengguna melakukan inputan kunci 6. Sistem melakukan proses enkripsi
7. Sistem menampilkan hasil proses enkripsi dan waktu proses enkripsi
8. Pengguna menyimpan hasil proses enkripsi 9. Pengguna melakukan inputan cipherimage II
10. Sistem menampilkan cipherimage II beserta nama file dan ukurannya
11. Sistem melakukan proses dekripsi
12. Sistem menampilkan hasil proses dekripsi dan waktu proses dekripsi
13. Pengguna menyimpan hasil proses dekripsi Alternative
Flows
Jika di langkah 3 basic flow pengguna memilih citra dengan ukuran yang tidak sesuai dengan yang ditentukan maka sistem akan menampilkan pemberitahuan
Post Conditions
Pengguna dapat melihat dan menyimpan hasil enkripsi dan dekripsi citra dengan menggunakan algoritma Vigenere Cipher
Tabel 3.2 Use case narrative enkripsi Vigenere Name Enkripsi Vigenere
Actors Pengguna
Trigger Pengguna menekan tombol “ENKRIPSI”
Preconditions Terdapat plainimage dalam form dan kunci telah diinputkan ke dalam sistem
Basic Flow of Events
1. Use case dimulai ketika pengguna menekan tombol
“ENKRIPSI”
2. Sistem melakukan proses enkripsi
3. Sistem menampilkan hasil proses enkripsi dan waktu proses enkripsi
Alternative Flows
Tidak ada
Post Conditions
Sistem menampilkan hasil proses enkripsi dan waktu proses enkripsi
Tabel 3.3 Use case narrative dekripsi Vigenere Name Dekripsi Vigenere
Actors Pengguna
Trigger Pengguna menekan tombol “DEKRIPSI”
Preconditions Terdapat cipherimage II dalam form Basic Flow of
Events
1. Use case dimulai ketika pengguna menekan tombol
“DEKRIPSI”
2. Sistem melakukan proses dekripsi
3. Sistem menampilkan hasil proses edekripsi dan waktu proses dekripsi
Alternative Flows
Tidak ada
Post Conditions
Sistem menampilkan hasil proses dekripsi dan waktu proses enkripsi
Tabel 3.4 Use case narrative penerima
Name Penerima
Actors Pengguna
Trigger Pengguna memilih tab “Penerima”
Preconditions Aplikasi telah berhasil dijalankan dan pengguna sudah menekan tombol “MASUK” pada jendela utama
Basic Flow of Events
1. Use case dimulai ketika pengguna menekan tab “Penerima”
2. Sistem menampilkan halaman tab “Penerima”
3. Pengguna melakukan inputan cipherimage I
4. Sistem menampilkan cipherimage I beserta nama file dan ukurannya
5. Pengguna membangkitkan kunci
6. Sistem menampilkan kunci yang sudah dibangkitkan 7. Sistem melakukan proses enkripsi
8. Sistem menampilkan hasil proses enkripsi dan waktu proses enkripsi
9. Pengguna menyimpan hasil proses enkripsi 10. Pengguna melakukan inputan cipherimage III
11. Sistem menampilkan cipherimage III beserta nama file dan ukurannya
12. Sistem melakukan proses dekripsi
13. Sistem menampilkan hasil proses dekripsi dan waktu proses dekripsi
14. Pengguna menyimpan hasil proses dekripsi Alternative
Flows
Tidak ada
Post Conditions
Pengguna dapat melihat dan menyimpan hasil enkripsi dan dekripsi citra dengan menggunakan algoritma One Time Pad
Tabel 3.5 Use case narrative enkripsi One Time Pad Name Enkripsi One Time Pad
Actors Pengguna
Trigger Pengguna menekan tombol “ENKRIPSI”
Preconditions Terdapat cipherimage I dalam form dan kunci telah diinputkan ke dalam sistem
Basic Flow of Events
1. Use case dimulai ketika pengguna menekan tombol
“ENKRIPSI”
2. Sistem melakukan proses enkripsi
3. Sistem menampilkan hasil proses enkripsi dan waktu proses enkripsi
Alternative Flows
Tidak ada
Post Conditions
Sistem menampilkan hasil proses enkripsi dan waktu proses enkripsi
Tabel 3.6 Use case narrative dekripsi One Time Pad Name Dekripsi One Time Pad
Actors Pengguna
Trigger Pengguna menekan tombol “DEKRIPSI”
Preconditions Terdapat cipherimage III dalam form Basic Flow of
Events
1. Use case dimulai ketika pengguna menekan tombol
“DEKRIPSI”
2. Sistem melakukan proses dekripsi
3. Sistem menampilkan hasil proses edekripsi dan waktu proses dekripsi
Alternative Flows
Tidak ada
Post Conditions
Sistem menampilkan hasil proses dekripsi dan waktu proses enkripsi
3.2.2 Activity Diagram
Activity diagram digunakan untuk menggambarkan secara grafis berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi dan bagaimana berhenti. Gambar 3.3 merupakan activity diagram untuk use case pengirim dan penerima.
Gambar 3.3 Activity diagram sistem
3.2.3 Sequence Diagram
Sequence diagram merupakan diagram yang menggambarkan interaksi antara pengguna dan sistem untuk skenario use case. Sequence diagram membantu untuk menggambarkan data yang masuk dan data yang keluar. Gambar 3.4 merupakan sequence diagram sistem yang akan dibangun untuk use case pengirim dan penerima.
Gambar 3.4 Sequence diagram sistem 3.2.4 Pseudocode
Pseudocode merupakan kode yang menyerupai instruksi kode program yang sebenarnya sesuai dengan bahasa pemrograman yang akan digunakan.
a. Algoritma Vigenere Cipher
Algoritma Vigenere Cipher terdiri dari dua fungsi, yaitu fungsi enkripsi dan fungsi dekripsi. Pseudocode untuk masing-masing fungsi ditunjukkan pada tabel 3.7 dan tabel 3.8.
Tabel 3.7 Pseudocode enkripsi Vigenere Cipher
Tabel 3.8 Pseudocode dekripsi Vigenere Cipher
Keterangan pseudocode enkripsi dan dekripsi Vigenere Cipher:
1. i sebagai indeks dari tinggi (height) citra yang diurutkan.
2. j sebagai indeks dari lebar (width) citra yang diurutkan
Function enkripsivigenere() r=0
g=0 b=0 indeks=0
For (i=0; i<height; i++){
For(j=0; j<width; j++){
indeks=indeks%kuncivigenere.Length
r=(R piksel citra_asli(j,i)+kuncivc[indeks])%256 g=(G piksel citra_asli(j,i)+kuncivc[indeks])%256 b=(B piksel citra_asli(j,i)+kuncivc[indeks])%256 indeks++
atur warna piksel citra_asli(j,i) }
}
Function dekripsivigenere() r=0
g=0 b=0 indeks=0
For (i=0; i<h; i++){
For(j=0; j<w; j++){
indeks=indeks%kuncivigenere.Length
r=(R piksel citra_c2(j,i)-kuncivc[indeks])%256 g=(G piksel citra_c2(j,i)-kuncivc[indeks])%256 b=(B piksel citra_c2(j,i)-kuncivc[indeks])%256
if(r<0){
r=r+256 }
if(g<0){
g=g+256 }
if(b<0){
b=b+256 }
indeks++
atur warna piksel citra_c2(j,i) }
}
3. r adalah variabel untuk menampung nilai red pada piksel yang ditunjuk oleh indeks j, i
4. g adalah variabel untuk menampung nilai green pada piksel yang ditunjuk oleh indeks j, i
5. b adalah variabel untuk menampung nilai blue pada piksel yang ditunjuk oleh indeks j, i
6. Variabel indeks fungsinya adalah sebagai indeks untuk kunci Vigenere.
b. Algoritma One Time Pad
Algoritma One Time Pad juga terdiri dari dua fungsi, yaitu fungsi enkripsi dan fungsi dekripsi. Pseudocode untuk masing-masing fungsi ditunjukkan pada tabel 3.9 dan tabel 3.10.
Tabel 3.9 Pseudocode enkripsi One Time Pad
c. Pengacakan Kunci
Function enkripsionetimepad() r=0
g=0 b=0 indeks=0
For (i=0; i<h; i++){
For(j=0; j<w; j++){
r=(R piksel citra_c1(j,i)+kunciotp[indeks])%256 g=(G piksel citra_c1(j,i)+kunciotp[indeks])%256 b=(B piksel citra_c1(j,i)+kunciotp[indeks])%256
atur warna piksel citra_c1(j,i) }
}
Tabel 3.10 Pseudocode dekripsi One Time Pad
Keterangan pseudocode enkripsi dan dekripsi One Time Pad:
1. i sebagai indeks dari tinggi (height) citra yang diurutkan.
2. j sebagai indeks dari lebar (width) citra yang diurutkan
3. r adalah variabel untuk menampung nilai red pada piksel yang ditunjuk oleh indeks j, i
4. g adalah variabel untuk menampung nilai green pada piksel yang ditunjuk oleh indeks j, i
5. b adalah variabel untuk menampung nilai blue pada piksel yang ditunjuk oleh indeks j, i
6. Variabel indeks fungsinya adalah sebagai indeks untuk kunci One Time Pad.
c. Pengacakan kunci
Pseudocode untuk pengacakan kunci One Time Pad dilihat pada tabel 3.11.
Tabel 3.11 Pseudocode acak kunci One Time Pad
Function dekripsionetimepad() r=0
g=0 b=0 indeks=0
For (i=0; i<h; i++){
For(j=0; j<w; j++){
r=(R piksel citra_c3(j,i)-kunciotp[indeks])%256 g=(G piksel citra_c3(j,i)-kunciotp[indeks])%256 b=(B piksel citra_c3(j,i)-kunciotp[indeks])%256 if(r<0){
r=r+256 }
if(g<0){
g=g+256 }
if(b<0){
b=b+256 }
atur warna piksel citra_c2(j,i) }
}
Function acakkuncionetimepad() kunci_otp=[]
kunci=0
For (i=0; i<panjangp; i++){
kunci=rndotp.Next(0,256) kunci_otp[i]=kunci
Keterangan pseudocode acak kunci One Time Pad:
1. kunci_otp sebagai variabel array yang menampung nilai dalam jumlah banyak 2. kunci sebagai variabel yang membantu menampung nilai hasil acak
3. i sebagai indeks dari panjang piksel suatu citra yang diproses secara berurut 4. rndotp.Next(0,256) sebagai fungsi untuk mengacak nilai di antara 0 sampai
dengan 256
3.2.5 Flowchart
Flowchart atau diagram alir merupakan gambar atau bagan yang memperlihatkan hubungan antar proses dan pernyataanya.
a. Flowchart algoritma Vigenere Cipher
Flowchart untuk enkripsi dan dekripsi pada algoritma Vigenere Cipher di tunjukkan pada gambar 3.5.
Gambar 3.5 Flowchart algoritma Vigenere Cipher Mulai
Plainimage, Kunci
Cipherimage
Plainimage
Selesai P = (C - K) mod n C = (P + K) mod n
b. Flowchart algoritma One Time Pad
Flowchart untuk enkripsi dan dekripsi pada algoritma One Time Pad ditunjukkan pada gambar 3.6.
Gambar 3.6 Flowchart algoritma One Time Pad c. Flowchart pengacakan kunci
Flowchart untuk pengacakan kunci Vigenere Cipher dan One Time Pad dilihat pada gambar 3.7.
Mulai
Plainimage, Kunci
Cipherimage
Plainimage
Selesai P = (C - K) mod n C = (P + K) mod n
Gambar 3.7 Flowchart acak kunci One Time Pad c. Flowchart Sistem
Secara umum, sistem memiliki tiga halaman utama yang dipilih oleh pengguna, yaitu pengirim, penerima dan tentang. Flowchart sistem yang menunjukkan alur kerja sistem secara sistematis ditunjukkan pada gambar 3.8, berikut ini.
Mulai
Bilangan acak
Selesai
Acak bilangan sebanyak jumlah piksel pada citra
Citra
Gambar 3.8 Flowchart sistem
Mulai
Lanjut
Pengirim Plainimage,
Kunci Vigenere
Ukuran plainimage
sesuai
Cipherimage I Enkripsi Vigenere
Penerima Cipherimage I,
Kunci OTP Enkripsi
OTP Cipherimage II
Pengirim
Cipherimage II
Dekripsi Vigenere
Cipherimage III
Penerima Cipherimage III Dekripsi
OTP Plainimage
Tentang Informasi tentang aplikasi
Selesai
3.2.6 Perancangan Antarmuka (Interface)
Antarmuka merupakan sarana interaksi antara pengguna dengan sistem. Tujuan perancangan antarmuka adalah untuk mempermudah dalam implementasi.
1. Halaman utama
Halaman utama merupakan tampilan awal sistem saat pertama kali dijalankan.
Rancangan halaman utama ditunjukkan pada gambar 3.9.
Gambar 3.9 Rancangan antarmuka halaman utama Keterangan gambar:
1. Label digunakan untuk judul sistem.
2. Picture box digunakan untuk logo universitas.
3. Button digunakan untuk masuk ke dalam sistem.
2. Halaman tentang
Halaman tentang memberkan informasi umum mengenai sistem ini. Gambar 3.10 merupakan rancangan antarmuka halaman tentang.
Gambar 3.10 Rancangan antarmuka halaman tentang Keterangan gambar:
1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada sistem.
2. RichTextBox berguna untuk menampilkan informasi umum sistem.
3. PictureBox berguna untuk menampilkan logo universitas.
4. PictureBox berguna untuk menampilkan foto penulis.
3. Halaman pengirim
Halaman pengirim merupakan halaman yang digunakan untuk mengenkripsi dan mendekripsi pesan dengan menggunakan algoritma Vigenere Cipher. Pesan yang sudah dienkripsi di halaman ini disimpan dahulu kemudian dienkripsi kembali di halaman
penerima. Lalu, hasil enkripsi dari halaman penerima didekripsi di halaman pengirim.
Gambar 3.11 merupakan rancangan antarmuka halaman pengirim.
Gambar 3.11 Rancangan antarmuka halaman pengirim Keterangan gambar:
1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada sistem
2. GroupBox berguna untuk mengelompokkan form untuk lebih teratur.
3. RichTextBox berguna untuk memasukkan kunci Vigenere Cipher.
4. Button digunakan untuk memasukkan kunci Vigenere Cipher.
5. Button digunakan untuk mereset halaman pengirim dan penerima.
6. Label digunakan untuk menampilkan kata “Plainimage”.
7. PictureBox digunakan untuk menampung plainimage.
8. Button digunakan untuk mengunggah plainimage.
9. Label digunakan untuk menampilkan kata “Nama File”.
10. TextBox digunakan untuk menampilkan nama file plainimage.
11. Label digunakan untuk menampilkan kata “Ukuran Gambar”.
12. TextBox digunakan untuk menampilkan lebar dari plainimage.
13. Label digunakan untuk menampilkan huruf “x”.
14. TextBox digunakan untuk menampilkan panjang dari plainimage.
15. Label digunakan untuk menampilkan kata “piksel”.
16. Label digunakan untuk menampilkan kata “Cipherimage I”.
17. PictureBox digunakan untuk menampung cipherimage I.
18. Button digunakan untuk memulai proses enkripsi menggunakan algoritma Vigenere Cipher.
19. Button digunakan untuk menyimpan cipherimage I.
20. Label untuk menampilkan kata “Running time”.
21. TextBox digunakan untuk menampilkan waktu proses enkripsi Vigenere Cipher.
22. Label digunakan untuk menampilkan kata “ms”.
23. Label digunakan untuk menampilkan kata “Cipherimage II”.
24. PictureBox digunakan untuk menampung cipherimage II.
25. Button digunakan untuk mengunggah cipherimage II.
26. Label digunakan untuk menampilkan kata “Nama File”.
27. TextBox digunakan untuk menampilkan nama file cipherimage II.
28. Label digunakan untuk menampilkan kata “Ukuran Gambar”.
29. TextBox digunakan untuk menampilkan lebar dari cipherimage II.
30. Label digunakan untuk menampilkan huruf “x”.
31. TextBox digunakan untuk menampilkan panjang dari cipherimage II.
32. Label digunakan untuk menampilkan kata “piksel”.
33. Label digunakan untuk menampilkan kata “Cipherimage III”.
34. PictureBox digunakan untuk menampung cipherimage III.
35. Button digunakan untuk memulai proses dekripsi menggunakan algoritma Vigenere Cipher.
36. Button digunakan untuk menyimpan cipherimage III.
37. Label untuk menampilkan kata “Running time”.
38. TextBox digunakan untuk menampilkan waktu proses dekripsi Vigenere Cipher.
39. Label digunakan untuk menampilkan kata “ms”.
4. Halaman penerima
Halaman penerima merupakan halaman yang digunakan untuk mengenkripsi dan mendekripsi pesan dengan menggunakan algoritma One Time Pad. Pesan yang sudah dienkripsi di halaman pengirim dienkripsi kembali di halaman ini. Hasil enkripsi pada halaman ini didekripsi di halaman pengirim. Kemudian hasil dekripsi pada halaman pengirim didekripsi kembali pada halaman penerima ini. Gambar 3.12 merupakan rancangan antamuka halaman penerima.
Gambar 3.12 Rancangan antarmuka halaman penerima Keterangan gambar:
1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada sistem
2. GroupBox berguna untuk mengelompokkan form untuk lebih teratur.
3. RichTextBox berguna untuk menampilkan kunci One Time Pad.
4. Button digunakan untuk mengacak kunci One Time Pad.
5. Button digunakan untuk mereset halaman pengirim dan penerima.
6. Label digunakan untuk menampilkan kata “Cipherimage I”.
7. PictureBox digunakan untuk menampung cipherimage I.
8. Button digunakan untuk mengunggah cipherimage I.
9. Label digunakan untuk menampilkan kata “Nama File”.
10. TextBox digunakan untuk menampilkan nama file cipherimage I.
11. Label digunakan untuk menampilkan kata “Ukuran Gambar”.
12. TextBox digunakan untuk menampilkan lebar dari cipherimage I.
13. Label digunakan untuk menampilkan huruf “x”.
14. TextBox digunakan untuk menampilkan panjang dari cipherimage I.
15. Label digunakan untuk menampilkan kata “piksel”.
16. Label digunakan untuk menampilkan kata “Cipherimage II”.
17. PictureBox digunakan untuk menampung cipherimage II.
18. Button digunakan untuk memulai proses enkripsi menggunakan algoritma One Time Pad.
19. Button digunakan untuk menyimpan cipherimage II.
20. Label untuk menampilkan kata “Running time”.
21. TextBox digunakan untuk menampilkan waktu proses enkripsi One Time Pad.
22. Label digunakan untuk menampilkan kata “ms”.
23. Label digunakan untuk menampilkan kata “Cipherimage III”.
24. PictureBox digunakan untuk menampung cipherimage III.
25. Button digunakan untuk mengunggah cipherimage III.
26. Label digunakan untuk menampilkan kata “Nama File”.
27. TextBox digunakan untuk menampilkan nama file cipherimage III.
28. Label digunakan untuk menampilkan kata “Ukuran Gambar”.
29. TextBox digunakan untuk menampilkan lebar dari cipherimage III.
30. Label digunakan untuk menampilkan huruf “x”.
31. TextBox digunakan untuk menampilkan panjang dari cipherimage III.
32. Label digunakan untuk menampilkan kata “piksel”.
33. Label digunakan untuk menampilkan kata “Plainimage”.
34. PictureBox digunakan untuk menampung plainimage.
35. Button digunakan untuk memulai proses dekripsi menggunakan algoritma One Time Pad.
36. Button digunakan untuk menyimpan plainimage.
37. Label untuk menampilkan kata “Running time”.
38. TextBox digunakan untuk menampilkan waktu proses dekripsi One Time Pad.
39. Label digunakan untuk menampilkan kata “ms”.
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Tahap implementasi dilakukan setelah analisis dan perancangan. Pada tahap ini, hasil analisis dan perancangan diimplementasikan ke dalam bahasa pemrograman C# dengan SharpDevelop 4.3 sebagai Integrated Development Environment (IDE).
4.1.1 Halaman Utama
Halaman utama merupakan halaman yang pertama kali muncul saat sistem dijalankan.
Halaman utama dapat dilihat pada gambar 4.1.
Gambar 4.1 Antarmuka halaman utama
4.1.2 Halaman Tentang
Halaman tentang merupakan halaman yang menjelaskan informasi umum tentang sistem. Halaman tentang dapat dilihat pada gambar 4.2.
Gambar 4.2 Antarmuka halaman tentang 4.1.3 Halaman Pengirim
Halaman pengirim merupakan halaman yang digunakan untuk mengenkripsi dan mendekripsi pesan menggunakan algoritma Vigenere Cipher. Skema Three-Pass Protocol dilihat pada sistem ini melalui hubungan antara halaman pengirim dan halaman penerima. Pesan yang sudah dienkripsi di halaman pengirim disimpan dahulu kemudian dienkripsi kembali di halaman penerima. Lalu, hasil enkripsi dari halaman penerima didekripsi di halaman pengirim. Untuk mendapatkan plainimage maka hasil dekripsi pesan pada halaman pengirim harus didekripsi kembali di halaman penerima.
Halaman pengirim dapat dilihat pada gambar 4.3.
Gambar 4.3 Antarmuka halaman pengirim 4.1.4 Halaman Penerima
Halaman penerima merupakan halaman yang digunakan untuk mengenkripsi dan mendekripsi pesan dengan menggunakan algoritma One Time Pad. Halaman penerima dapat dilihat pada gambar 4.4.
Gambar 4.4 Antarmuka halaman penerima 4.2 Pengujian Sistem
Pengujian sistem dilakukan untuk memastikan bahwa sistem berhasil dan berjalan baik sesuai dengan analisis dan perancangan sistem yang telah dibuat sebelumnya.
Pengujian yang dilakukan pada sistem ini adalah mengenkripsi dan mendekripsi gambar menggunakan algoritma Vigenere Cipher dan One Time Pad dengan skema Three-Pass Protocol. Gambar yang digunakan sebagai pesan asli atau plainimage berukuran 3x3 piksel seperti pada gambar 4.5 berikut ini.