Analisis Perbandingan Metode Playfair Cipher dan Elgamal pada Kriptografi Citra
SKRIPSI
AHMAD SYAWQI LUBIS
071401074
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(2)
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Komputer
AHMAD SYAWQI LUBIS
071401074
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(3)
PERSETUJUAN
Judul : ANALISIS PERBANDINGAN METODE
PLAYFAIR CIPHER DAN ELGAMAL PADA KRIPTOGRAFI CITRA
Kategori : SKRIPSI
Nama : AHMAD SYAWQI LUBIS
Nomor Induk Mahasiswa : 071401074
Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
Diluluskan di
Medan, 29 Agustus 2015
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Amer Sharif, S.Si, M.Kom Maya Silvi Lydia, B.Sc, M.Sc
NIP. - NIP. 197401272002122001
Diketahui/Disetujui oleh,
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001
(4)
PERNYATAAN
ANALISIS PERBANDINGAN METODE PLAYFAIR CIPHER DAN ELGAMAL PADA KRIPTOGRAFI CITRA
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 29 Agustus 2015
AHMAD SYAWQI LUBIS NIM. 071401074
(5)
PENGHARGAAN
Segala puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan rahmat dan inayah-Nya kepada penulis sehingga penulis dapat menyelesaikan Skripsi yang
berjudul ”Analisis Perbandingan Metode Playfair Cipher Dan Elgamal Pada
Kriptografi Citra”.
Ucapan terima kasih penulis sampaikan kepada Maya Silvi Lydia, B.Sc, M.Sc dan Bapak Amer Sharif, S.Si, M.Kom, selaku pembimbing yang dengan ikhlas meluangkan waktunya dan memberikan arahan serta bimbingan kepada penulis dalam menyelesaikan skripsi ini. Selanjutnya kepada Bapak Dr Dr. Poltak Sihombing, M.Kom dan Ade Candra, S.T., M. Kom selaku pembanding yang turut memberikan kritik dan saran bagi penulis. Ucapan terima kasih juga penulis ditujukan kepada Ketua dan Sekretaris Program Studi Ilmu Komputer, Bapak Dr.Poltak Sihombing,M.Kom dan Ibu Maya Silvi Lydia,B.Sc,M.Sc,. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen, serta semua pegawai di Departemen Ilmu Komputer USU.
Kepada kedua orang tua penulis, Ayahanda H. Syamsul Anwar Lubis dan Ibunda Nirwani Nasution, yang telah memberikan bantuan moril maupun materil dan selalu memberikan motivasi dan nasehat kepada penulis. Kepada abang penulis Ahmad Shobri, Muhammad Zaki dan Mahmud Nukman yang selalu sabar dalam mendidik, memotivasi, serta memberikan pengertian, perhatian, dan doa yang tak pernah berhenti, semua itu takkan bisa tergantikan. Tak lupa seluruh keluarga tercinta yang berjasa dalam memberikan dorongan kepada penulis selama menyelesaikan skripsi ini. Kepada teman-teman stambuk 2007, Indra Gunawan, Ardiansah Hasibuan, Muhammad Syukur Hutagalung, Alpiriyandi, Eka Eka Patma Rahmansyah dan teman seperjuangan lainnya yang tidak bisa disebutkan semuanya yang selalu memberikan dukungan, semangat dan motivasi. Keceriaan dan kesulitan yang dilalui bersama dalam waktu lima tahun merupakan pengalaman hidup yang tidak dapat dilupakan, semoga semua yang penulis sebutkan selalu dalam lindungan-Nya, Aamiin Ya
Robbal‟alamin.
Medan, 29 Agustus 2015
(6)
ABSTRAK
Perkembangan teknologi yang begitu pesat memungkinkan manusia dapat saling berkomunikasi dan bertukar informasi secara jarak jauh. Keamanan data menjadi isu penting dalam penyimpanan dan transmisi data. Penggunaan data citra pun semakin luas dalam berbagai bidang. Oleh karena itu, pengamanan data citra dari pihak yang tidak berhak menjadi hal yang penting. Teknik kriptografi dapat digunakan untuk memenuhi aspek kerahasiaan pesan yang dikirim, yaitu pesan yang dikirim hanya dapat dibaca oleh penerima yang memiliki hak untuk mengetahui isi pesan tersebut dengan menggunakan kunci rahasia. Walaupun demikian, enkripsi tidak dapat mencegah intersepsi dan modifikasi data pada saluran komunikasi. Enkripsi tidak mampu melindungi saluran komunikasi dari para pendengar rahasia untuk mengekstrak data rahasia.
Metode Playfair Cipher dan Elgamal merupakan dua bagian kriptografi yang masih banyak digunakan dalam melindungi pesan rahasia. Metode Playfair Cipher yang dikenal hanya menggunakan satu kunci yang digunakan dalam enkripsi maupun dekripsi. Sedangkan, metode Elgamal menggunakan kunci enkripsi dan dekripsi yang berbeda. Untuk memahami cara kerja kedua metode tersebut dalam kriptografi yang berhubungan dengan citra, penulis berinisiatif untuk melakukan penelitian ”Analisis Perbandingan Metode Playfair Cipher Dan Elgamal Pada Kriptografi Citra”.
Aplikasi yang dibuat pada penelitian ini dikerjakan menggunakan bahasa pemrograman Microsoft Visual Studio 2010. Hasil dari aplikasi ini mampu mengenkripsi file citra tipe BMP dengan format piksel 24 bit dan menghasilkan perbandingan dari kualitas citra, kecepatan enkripsi dan dekripsi, dan nilai Mean Squared Error (MSE).
Kata Kunci: Kriptografi Citra, Playfair Cipher, ElGamal, BMP, Enkripsi dan Dekripsi Citra.
(7)
COMPARATIVE ANALYSIS OF PLAYFAIR CIPHER AND ELGAMAL METHOD ON IMAGE CRPYPTOGRAPHY
ABSTRACT
Rapid technology developments allow humans to communicate and exchange information remotely. Information security become an important issue in the storage and transmission of data. The usage of image data are increasingly widespread in various fields. Therefore, the security of image data from unauthorized sides become important. Cryptographic techniques can be used to meet the confidentiality of messages sent, the message sent can only be read by the recipient who has the right to know the contents of the message using the secret key. However, encryption can‟t prevent the interception and modification of data on communication channel. Encryption is not able to protect the communication channel from the listener to extract confidential data secret.
Playfair Cipher and ElGamal is part of cryptography that still being used until recently to protect secret message. Playfair Cipher method is known to use only one key to being used in encryption and decryption. While, Elgamal method uses a pair of different keys, the encryption key and the decryption key. To understanding these two methods on image cryptography, the author took the initiative to do a research of
“Comparative Analysis of Playfair Cipher and ElGamal Method on Image Cryptography”.
The application created in this study was undertaken using Microsoft Visual Studio 2010. The results of this application is able to encrypt files of type BMP image with 24-bit pixel format and generate the comparison of image quality, speed encryption and decryption, and Value Mean Squared Error (MSE).
Keywords : Cryptography image, Playfair Cipher and ElGamal, BMP, Image Encryption and Decryption.
(8)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 4
Bab 2 Tinjauan Pustaka
2.1 Citra Digital 6
2.2 Kriptografi 7
2.3 Algoritma Playfair Cipher 8
2.4 Algoritma ElGamal 14
2.5 Analisis Perbandingan Algoritma Playfair Cipher dan ElGamal 18
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Metode Playfair Cipher dan ElGamal 20
3.1.1 Analisis Kualitas Citra 20
3.1.2 Analisis Timing Run 21
3.1.3 Analisis Mean Squared Error (MSE) 21
3.2 Perancangan Sistem 22
3.2.1 Perancangan DFD dan Spesifikasi Proses 22 3.3. Diagram Alir (Flowchart) Sistem 31 3.3.1 Diagram Alir (Flowchart) Playfair Cipher 31 3.3.2 Diagram Alir (Flowchart) ElGamal 35 3.4 Perancangan Antarmuka Pemakai (User Interface) 38 3.4.1 Antarmuka Aplikasi (Home) 38 3.4.2 Antarmuka Proses Enkripsi Metode Playfair Cipher dan 39
ElGamal
3.4.3 Antarmuka Proses Deskripsi Metode Playfair Cipher 42 dan ElGamal
Bab 4 Implementasi dan Pengujian
(9)
4.1.1 Halaman Utama 45
4.1.2 Menu Enkripsi 46
4.1.3 Menu Dekripsi 47
4.2 Pengujian 48
4.2.1 Pengujian Sample 1 49
4.2.2 Pengujian Sample 2 52
4.2.3 Hasil Pengujian 55
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 59
5.2 Saran 60
Daftar Pustaka 61
(10)
DAFTAR TABEL
No. Keterangan Hal.
2.1 Blok Plainteks ke-1 12
2.2 Blok Plainteks ke-2 12
3.1 Spesifikasi Proses DFD Level 0 23
3.2 Spesifikasi Proses DFD Level 1 24
3.3 Spesifikasi Proses DFD Level 2 Proses P.1 26 3.4 Spesifikasi Proses DFD Level 2 Proses P.2 28 3.5 Spesifikasi Proses DFD Level 2 Proses P.3 29 3.6 Spesifikasi Proses DFD Level 2 Proses P.4 30
4.1 Hasil Pengujian Enkripsi pada Citra 55
4.2 Hasil Pengujian Dekripsi pada Citra 56
(11)
DAFTAR GAMBAR
No. Keterangan Hal.
2.1 Matriks Citra Digital 6
2.2 Contoh Kunci Bujur Sangkar Matriks 5x5 Playfair Cipher 9 2.3 Proses Pengaturan Enkripsi Playfair Cipher 9 2.4 Proses Pengaturan Enkripsi Playfair Cipher 10 2.5 Contoh Potongan Matriks Untuk Komponen Warna Red hasil
digitalisasi citra
12
2.6 Potongan Matriks Untuk Komponen Warna Red Hasil Digitalisasi Citra 13
2.7 Potongan Matriks Citra Cipherteks 14
2.8 Contoh Nilai RGB Citra Digital 15
2.9 Nilai RGB Ciphertext 16
2.10 Nilai RGB Plaintext 18
3.1 DFD Level 0 23
3.2 DFD Level 1 24
3.3 DFD Level 2 Proses P.1 26
3.4 DFD Level 2 Proses P.2 27
3.5 DFD Level 2 Proses P.3 29
3.6 DFD Level 2 Proses P.4 30
3.7 Diagram Alir Proses Enkripsi pada metode Playfair Cipher 32 3.8 Potongan Matrik Kunci Metode Playfair 33 3.9 Diagram Alir Proses Deskripsi pada metode Playfair Cipher 34 3.10 Diagram Alir Proses Membangkitkan Kunci pada Metode ElGamal 35 3.11 Dagram Alir Proses Enkripsi pada Metode ElGamal 36 3.12 Dagram Alir Proses Deskripsi pada Metode ElGamal 37
3.13 RancanganAntarmuka Halaman Utama 39
3.14 Rancangan Antarmuka Menu Enkripsi 40
3.15 Rancangan Antarmuka Menu Deskripsi 43
4.1 Tampilan Utama 45
4.2 Tampilan Menu Enkripsi 47
4.3 Tampilan Menu Dekripsi 48
4.4 Tampilan Hasil Enkripsi Metode Playfair Cipher 49 4.5 Tampilan Hasil Enkripsi Metode Playfair ElGamal 50 4.6 Tampilan Error Hasil Generate Key pada Metode ElGamal 50 4.7 Tampilan Hasil Enkripsi Metode Playfair Cipher 51 4.8 Tampilan Hasil Enkripsi Metode ElGamal 52 4.9 Tampilan Hasil Enkripsi Metode Playfair Cipher 53 4.10 Tampilan Hasil Enkripsi Metode ElGamal 53 4.11 Tampilan Hasil Enkripsi Metode Playfair Cipher 54 4.12 Tampilan Hasil Enkripsi Metode ElGamal 55
(12)
ABSTRAK
Perkembangan teknologi yang begitu pesat memungkinkan manusia dapat saling berkomunikasi dan bertukar informasi secara jarak jauh. Keamanan data menjadi isu penting dalam penyimpanan dan transmisi data. Penggunaan data citra pun semakin luas dalam berbagai bidang. Oleh karena itu, pengamanan data citra dari pihak yang tidak berhak menjadi hal yang penting. Teknik kriptografi dapat digunakan untuk memenuhi aspek kerahasiaan pesan yang dikirim, yaitu pesan yang dikirim hanya dapat dibaca oleh penerima yang memiliki hak untuk mengetahui isi pesan tersebut dengan menggunakan kunci rahasia. Walaupun demikian, enkripsi tidak dapat mencegah intersepsi dan modifikasi data pada saluran komunikasi. Enkripsi tidak mampu melindungi saluran komunikasi dari para pendengar rahasia untuk mengekstrak data rahasia.
Metode Playfair Cipher dan Elgamal merupakan dua bagian kriptografi yang masih banyak digunakan dalam melindungi pesan rahasia. Metode Playfair Cipher yang dikenal hanya menggunakan satu kunci yang digunakan dalam enkripsi maupun dekripsi. Sedangkan, metode Elgamal menggunakan kunci enkripsi dan dekripsi yang berbeda. Untuk memahami cara kerja kedua metode tersebut dalam kriptografi yang berhubungan dengan citra, penulis berinisiatif untuk melakukan penelitian ”Analisis Perbandingan Metode Playfair Cipher Dan Elgamal Pada Kriptografi Citra”.
Aplikasi yang dibuat pada penelitian ini dikerjakan menggunakan bahasa pemrograman Microsoft Visual Studio 2010. Hasil dari aplikasi ini mampu mengenkripsi file citra tipe BMP dengan format piksel 24 bit dan menghasilkan perbandingan dari kualitas citra, kecepatan enkripsi dan dekripsi, dan nilai Mean Squared Error (MSE).
Kata Kunci: Kriptografi Citra, Playfair Cipher, ElGamal, BMP, Enkripsi dan Dekripsi Citra.
(13)
COMPARATIVE ANALYSIS OF PLAYFAIR CIPHER AND ELGAMAL METHOD ON IMAGE CRPYPTOGRAPHY
ABSTRACT
Rapid technology developments allow humans to communicate and exchange information remotely. Information security become an important issue in the storage and transmission of data. The usage of image data are increasingly widespread in various fields. Therefore, the security of image data from unauthorized sides become important. Cryptographic techniques can be used to meet the confidentiality of messages sent, the message sent can only be read by the recipient who has the right to know the contents of the message using the secret key. However, encryption can‟t prevent the interception and modification of data on communication channel. Encryption is not able to protect the communication channel from the listener to extract confidential data secret.
Playfair Cipher and ElGamal is part of cryptography that still being used until recently to protect secret message. Playfair Cipher method is known to use only one key to being used in encryption and decryption. While, Elgamal method uses a pair of different keys, the encryption key and the decryption key. To understanding these two methods on image cryptography, the author took the initiative to do a research of
“Comparative Analysis of Playfair Cipher and ElGamal Method on Image Cryptography”.
The application created in this study was undertaken using Microsoft Visual Studio 2010. The results of this application is able to encrypt files of type BMP image with 24-bit pixel format and generate the comparison of image quality, speed encryption and decryption, and Value Mean Squared Error (MSE).
Keywords : Cryptography image, Playfair Cipher and ElGamal, BMP, Image Encryption and Decryption.
(14)
BAB 1
PENDAHULUAN
1.1.Latar Belakang
Dewasa ini, perkembangan teknologi yang begitu pesat dan memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi secara jarak jauh, baik antar kota, antar wilayah, antar negara bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu, tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling dipertukarkan tersebut semakin meningkat. Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau kompetitornya atau negara lain. Oleh karena itu, dikembangkanlah cabang ilmu yang mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.
Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal.
Berbagai hal telah dilakukan untuk mendapatkan jaminan keamanan informasi rahasia ini. Salah satu cara yang digunakan adalah dengan menyandikan isi informasi menjadi suatu kode-kode yang tidak dimengerti. Metode penyandian yang pertama kali dibuat masih menggunakan metode algoritma rahasia. Metode ini menumpukan kemananannya pada kerahasiaan algoritma yang digunakan. Namun metode ini tidak efisien saat digunakan untuk berkomunikasi dengan banyak orang [1].
(15)
Algoritma tidak rahasia disebut algoritma kunci publik karena semua orang boleh mengetahuinya. Sembarang orang dapat menggunakan kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya tertentu yang dapat melakukan dekripsi pada pesan tersebut [4].
Algoritma Playfair Cipher ditemukan oleh Sir Charles Wheastone pada tahun 1854, namun dipromosikan oleh Baron Lyon Playfair sehingga nama yang diabadikan adalah nama terakhir. Algoritma ini merupakan salah satu dari kriptografi klasik yang proses enkripsinya menggunakan pemrosesan dalam bentuk blok-blok yang sangat besar. Metode ini merupakan salah satu cara untuk mengatasi kelemahan metode kriptografi klasik lainnya yang mudah tertebak karena terdapat korespondensi satu-satu antara plainteksdengan cipherteks [5].
Algoritma kriptografi ElGamal dibuat oleh Taher ElGamal pada tahun 1984 yang pada mulanya diperuntukkan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. Algoritma ini merupakan kriptografi asimetris menggunakan kunci publik dan kunci rahasia yang menggunakan beberapa persamaan untuk melakukan proses generate key, enkripsi dan proses dekripsi [5].
Pada penelitian ini, proses enkripsi pada kedua algoritma ini untuk citra digital adalah dengan menggunakan pasangan bilangan yang mewakili intensitas warna dari citra. Citra yang digunakan dalam pengujian penelitian ini dibatasi pada citra dengan format bmp dengan tingkat kontras dan kedetilan yang berbeda untuk membandingkan hasil enkripsi citra. Berdasarkan uraian di atas, maka penulis bermaksud untuk menganalisa dan membandingkan kriptografi citra digital dengan menggunakan algoritma Playfair Cipher dengan ElGamal.
1.2.Rumusan Masalah
Rumusan masalah dalam penelitian ini adalah bagaimana:
1. Mengamankan sebuah file citra digital agar tidak dapat dilihat oleh orang yang tidak berhak dengan metode kriptografi.
(16)
2. Mengimplementasikan algoritma Playfair cipher dan ElGamal untuk mengenkripsi dan mendekripsi citra digital sehingga dapat dibandingkan algoritma terbaik untuk citra digital dari kedua algoritma tersebut.
1.3. Batasan Masalah
Batasan-batasan masalah yang digunakan dalam tugas akhir ini, adalah: Adapun yang menjadi batasan masalah dalam penelitian ini adalah: a. File citra yang diproses adalah file citra digital true color 24 bit. b. Format file citra yang digunakan adalah BMP.
c. Bilangan Prima yang digunakan pada algoritma ElGamal untuk proses generate key adalah 257.
d. Bahasa program menggunakan Microsoft Visual 2010.
e. Parameter yang digunakan untuk analisis perbandingan adalah: 1. Kualitas citra hasil proses enkripsi dan dekripsi.
2. Kecepatan proses enkripsi dan deskripsi.
3. Nilai Mean Squared Error (MSE), yang merupakan angka perubahan nilai piksel citra sebelum dan sesudah proses enkripsi dan dekripsi.
1.4. Tujuan Penelitian
Tugas akhir ini bertujuan untuk merancang perangkat lunak yang mampu mengamankan sebuah citra digital dengan algoritma Playfair Cipher dan ElGamal untuk mendapatkan analisis perbandingan hasil enkripsi dan dekripsi.
1.5. Manfaat Penelitian
Sehubungan dengan telah dirumuskannya masalah penelitian, maka diharapakan aplikasi ini dapat memberikan manfaat, diantaranya:
1. Sebagai bahan referensi mengenai algoritma Playfair Cipher dan ElGamal dalam proses enkripsi dan dekripsi file citra.
(17)
1.6. Metodologi Penelitian
Metode penelitian yang digunakan pada tugas akhir ini, adalah :
a. Studi Literatur
Mempelajari teori tentang enkripsi dan dekripsi file citra dengan menggunakan algoritma Playfair Cipher dan ElGamal. Dalam tahap ini juga dikumpulkan teori-teori mengenai citra digital dan teknik kriptografi.
b. Analisa dan Perancangan
Pada tahap ini dilakukan untuk menganalisa proses kerja pengamanan file citra menggunakan algoritma Playfair Cipher dan ElGamal, dan selanjutnya dilakukan perancangan sistem yang meliputi perancangan proses kerja sistem, perancangan
interface, serta algoritma pemograman. c. Implementasi
Tahap ini digunakan mengimplementasikan hasil analisa dan perancangan sistem ke dalam bahasa pemograman agar bisa digunakan untuk pengamanan file citra dengan algoritma Playfair Cipher dan ElGamal.
d. Pengujian
Tahap ini digunakan untuk menguji coba sistem kriptografi yang dibuat untuk mengetahui sudah berjalan sesuai dengan tujuan penelitian atau tidak yaitu parameter perbandingan yaitu dapat menampilkan ukuran sebelum dan sesudah enkripsi, kecepatan proses serta nilai MSE.
e. Dokumentasi dan Laporan Akhir
Tahap ini dilakukan dokumentasi dari analisa dan implementasi yang digunakan untuk menyajikan hasil penelitian tersebut ke dalam sebuah skripsi
1.7. Sistematika Penulisan
Agar penulisan menjadi lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, antara lain sebagai berikut:
BAB 1 : Pendahuluan
Pada bab ini penulis menguraikan latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
(18)
BAB 2 : Tinjauan Pustaka
Pada bab ini penulis menguraikan tentang dasar - dasar teoritis algoritma Playfair Chiper dan ElGamal untuk melandasi teori - teori sehubungan dengan Visual Basic 2010 sebagai teknologi yang digunakan dalam pembuatan tugas akhir ini.
BAB 3 : Analisis Dan Perancangan
Pada bab ini penulis menguraikan tentang analisis masalah yang akan dibangun pada sistem ini, dan menganalisis apa saja kebutuhan sistem yang akan dibangun kemudian tahapan selanjutnya adalah melakukan perancangan sistem yakni dengan membuat Data Flow Diagram (DFD) atau
Diagram Aliran Data (DAD), Flowchart, basis data pengetahuan dan merancang antarmuka sistem.
BAB 4 : Implementasi Dan Pengujian Aplikasi
Pada bab ini penulis menyajikan tentang implementasi sistem berdasarkan tahapan perancangan dengan menggunakan Visual Basic 2010 serta tahapan pengujian sistem untuk melihat apakah sistem sudah berjalan sesuai perancangan atau tidak.
BAB 5 : Kesimpulan Dan Saran
Bab ini berisi mengenai kesimpulan yang diperoleh selama penulisan dan saran yang diberikan untuk pengembangan lebih lanjut.
(19)
BAB 2
LANDASAN TEORI
2.1. Citra Digital
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra terbagi 2 yaitu ada citra yang bersifat analog dan ada citra yang bersifat digital. Citra analog adalah citra yang bersifat kontinu seperti gambar pada monitor televisi, foto sinar X, hasil CT Scan, dll. Sedangkan pada citra digital adalah citra yang dapat diolah oleh komputer [10].
Citra digital merupakan citra yang diambil berdasarkan sampling dan kuantitas tertentu sehingga citra digital ini terbentuk dari piksel-piksel yang besarnya tergantung pada besar kecilnya sampling dan nilainya (besarnya derajat keabuan) tergantung pada kuantitas. Berdasarkan pengertian ini maka model citra digital dinyatakan dalam bentuk matriks yang nilainya berupa nilai derajat keabuan. Model ini menyatakan model dari citra grayscale yaitu citra yang terdiri dari derajat keabuan tertentu [3].
Sebuah citra digital dapat mewakili oleh sebuah matriks yang terdiri dari M kolom N baris, dimana perpotongan antara kolom dan baris disebut piksel ( piksel = picture element), yaitu elemen terkecil dari sebuah citra. Piksel mempunyai dua parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada koordinat (x,y) adalah f(x,y), yaitu besar intensitas atau warna dari piksel di titik itu. Oleh sebab itu, sebuah citra digital dapat ditulis dalam bentuk matriks berikut.
(20)
Dimana:
f(x,y) = fungsi besar intensitas citra M = indeks kolom dari matriks N = indeks baris dari matriks
Berdasarkan rumus tersebut, secara matematis citra digital dapat dituliskan sebagai fungsi intensitas f (x,y), dimana harga x (baris) dan y (kolom) merupakan koordinat posisi dan f(x,y) adalah nilai fungsi pada setiap titik (x,y) yang menyatakan besar intensitas citra atau tingkat keabuan atau warna dari piksel di titik tersebut. Pada proses digitalisasi (sampling dan kuantitas) diperoleh besar baris M dan kolom N hingga citra membentuk matriks M x N dan jumlah tingkat keabuan piksel [10].
2.2. Kriptografi
Kriptografi (Crypthography) berasal dari bahasa Yunani yaitu dari dua suku kata
Crypto dan Graphia. Crypto artinya menyembunyikan, sedangkan graphia artinya ilmu. Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data, yang dilakukan oleh seorang Kriptografer [1].
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu :
1. Kerahasiaan (Confidentiality)
Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
2. Integritas Data (Data Integrity)
Integritas adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
(21)
3. Otentikasi (Autentication)
Otentikasi adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
4. Ketiadaan Penyangkalan (Non-repudiation).
Ketiadaan penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat. [2]
2.3. Algoritma Playfair Cipher
Playfair Cipher merupakan salah satu contoh algoritma klasik yang ditemukan oleh Charles Wheatstone, salah seorang Pioneer Telegraf. Kemudian algoritma ini dipopularkan oleh Lyon Playfair pada tahun 1854. Algoritma Playfair Cipher termasuk ke dalam polygram cipher [6].
Proses enkripsi dengan algoritma Playfair Cipher, dilakukan dengan mengenkripsi pasangan-pasangan huruf bukan huruf-huruf tunggal. Tujuan proses enkripsi yang dilakukan perpasangan huruf ini adalah membuat analisis yang menggunakan perhitungan frekuensi kemunculan huruf menjadi sulit. Perhitungan tersebut menjadi sulit karena frekuensi kemunculan huruf-huruf dari cipherteks yang dihasilkan oleh proses enkripsi menggunakan algoritma ini menjadi datar.
Kunci yang digunakan dalam proses enkripsi, disusun di dalam sebuah bujur sangkar yang memiliki ukuran 5x5. Di dalam bujur sangkar ini akan terdapat semua alfabet namun tanpa huruf J. Untuk melakukan proses enkripsi dengan algoritma Playfair Cipher, dilakukan dengan terlebih dahulu mengisi bujur sangkar kunci. Proses pengisian bujur sangkar kunci ini dilakukan pertama-tama dengan kesepakatan pengirim pesan dan penerima pesan akan kata kunci yang akan digunakan. Kata kunci ini akan dituliskan pada bujur sangkar. Setelah itu sisa dari elemen-elemen bujur sangkar kunci yang belum diisi, akan diisi dengan alfabet A-Z tanpa huruf J yang belum ada pada bujur sangkar kunci. Sebagai contoh, misalkan kata kunci yang
(22)
disetujui oleh pengirim dan penerima pesan adalah CHARLES, maka akan dibentuk bujur sangkar kunci seperti berikut:
Gambar 2.2 Contoh Kunci Bujur Sangkar Matriks 5x5 Playfair Cipher
Setelah bujur sangkar kunci diisi, proses enkripsi dilanjutkan dengan proses pengaturan pesan yang akan dienkripsi. Proses pengaturan pesan ini adalah sebagai berikut :
1. Huruf J yang terdapat pada pesan diubah dengan huruf I.
2. Kemudian, tulis pesan dalam pasangan-pasangan huruf atau bigram.
3. Bila ada pasangan huruf yang memiliki huruf yang sama, sisipkan huruf Z di tengahnya.
4. Bila jumlah huruf pada pesan ganjil, tambahkan pada akhir pesan huruf Z. Contoh proses pengaturan pesan enkripsi :
Gambar 2.3 Proses Pengaturan Enkripsi Playfair Cipher
Setelah proses pengaturan pesan dilakukan, akan dilakukan algoritma enkripsi pada pesan yaitu dengan ketentuan-ketentuan sebagai berikut :
1. Dua huruf yang terdapat pada baris yang sama di dalam bujur sangkar kunci, akan dienkripsi menjadi huruf yang berada di kanannya.
2. Dua huruf yang terdapat pada kolom yang sama di dalam bujur sangkar kunci, akan dienkripsi menjadi huruf yang berada di bawahnya.
(23)
3. Jika dua huruf tidak berada pada baris maupun kolom yang sama di dalam bujur sangkar kunci, maka huruf pertama akan dienkripsi menjadi huruf yang terletak pada perpotongan antara baris huruf pertama dengan kolom huruf kedua. Sedangkan huruf kedua akan dienkripsi menjadi huruf yang terletak pada titik sudut keempat dari persegi panjang yang dibentuk dari tiga huruf yang telah digunakan.
Untuk dekripsi tinggal dilakukan kebalikan dari enkripsi, seperti diuraikan sebagai berikut:
1. Memisahkan pesan menjadi digraph. 2. Satu per satu dicocokkan ke dalam tabel.
Gambar 2.4 Proses Pengaturan Enkripsi Playfair Cipher
Kebalikan dari enkripsi, huruf pertama digraph dimasukkan ke tabel sebelah kanan dan huruf keduanya diposisikan di sebelah kiri (atau memasukkan huruf pertama di persegi atas dan huruf kedua di persegi bawah bagi two-square versi vertikal).
3. Dicari perpotongan dari huruf tersebut. Jika kedua huruf terletak dalam baris yang sama, digeser ke kiri. Jika berada di baris berbeda, huruf pesan asli sejajar dengan pesan hasil enkripsi.
4. Mencari periode (jika pesan dibagi ke dalam beberapa periode) untuk menemukan plaintext yang memiliki makna.
(24)
Pada penelitian ini metode sandi playfair akan diimplementasikan untuk menyandikan sebuah citra. Hal ini dimungkinkan mengingat sebuah citra dapat direpresentasikan dalam sebuah matriks yang berisi bilangan-bilangan bulat seperti yang digunakan pada matrik kunci pada metode playfair cipher. Proses enkripsi yang dikembangkan untuk data citra dilakukan dengan menggunakan pasangan bilangan yang mewakili intensitas warna dari citra. Citra yang digunakan dalam pengujian penelitian ini dibatasi pada citra dengan format bmp 24 bit dengan tingkat kontras dan kedetilan yang berbeda untuk membandingkan hasil enkripsi citra. Matriks kunci yang digunakan untuk metode playfaircipher adalah matrik berordo 16 x 16.
Langkah-langkah enkripsi adalah sebagai berikut :
1. Bentuk matriks bujur sangkar yang akan menjadi kunci dengan jumlah disesuaikan dengan semesta pembicaraan yang digunakan sebagai dasar. Misalkan pada citra yang mempunyai derajad keabuan 256 maka kunci yang akan digunakan untuk menyandikan citra adalah matriks bujur sangkar dengan ukuran 16 x 16 dengan nilai elemennya adalah bilangan bulat acak antara 0 sampai dengan 255.
2. Ciphering menggunakan setiap pasangan intensitas citra dalam plainteks untuk masing-masing kanal warna. Plainteks dibagi dalam blok-blok dimana setiap blok berisi 2 piksel (m1 dan m2) pada masing-masing baris untuk setiap kanal warna. 3. Proses ciphering pada masing-masing kanal warna dilakukan dengan cara :
a. jika m1 dan m2 terdapat pada baris yang sama dalam matriks kunci maka c1 diambil dari 1 piksel sebelah kanan m1, c2 diambil dari 1 pixel sebelah kanan m2 pada matriks kunci.
b. jika m1 dan m2 terdapat pada kolom yang sama dalam matriks maka c1 dan c2 masing-masing diambil dari 1 piksel dibawah m1 dan m2 pada matriks kunci. c. jika m1 dan m2 berbeda baris dan kolom dalam matriks kunci maka c1 diambil dari pertemuan baris piksel m1 dan kolom m2, dan c2 diambil dari pertemuan baris m2 dan kolom m1 pada matrik kunci.
(25)
Sebagai contoh proses enkripsi citra dengan playfair cipher adalah sebagai berikut: a. Lakukan proses transformasi warna sehingga nilai RGB tiap piksel terpisah
menjadi komponen Red, Green dan Blue (untuk citra warna). Tetapi untuk citra
grayscale tidak perlu dilakukan proses transformasi warna.
b. Kemudian untuk citra warna, masing-masing komponen warna (Red, Green, Blue) dibagi menjadi blok plainteks yang terdiri dari 2 piksel untuk setiap baris pada setiap komponen warna. Sebagai contoh untuk komponen Red diperoleh matriks citra pada baris 1 s.d 256 dan kolom 1 s.d 256 seperti terlihat pada Gambar 2.
Gambar 2.5 Contoh Potongan Matriks Untuk Komponen Warna Merah Hasil Digitalisasi Citra
Maka blok plainteks ke-1 diambil dari komponen citra pada baris 1 kolom 1 dan 2 yaitu:
Tabel 2.1 Blok Plainteks ke-1
139 175
Blok plainteks ke-2 diambil dari komponen citra pada baris 1 kolom 3 dan 4 yaitu:
Tabel 2.2 Blok Plainteks ke-2
167 159
Dan seterusnya sampai dengan baris ke 256.
c. Pilih matriks kunci berukuran 16 x 16 dengan elemen nilainya antara 0 sampai dengan 255 dengan posisi acak.
(26)
Gambar 2.6 Potongan Matriks Untuk Komponen Warna Merah Hasil Digitalisasi Citra
d. Gantikan tiap blok plainteks dengan nilai piksel pada matriks kunci dengan menggunakan aturan yang telah dijelaskan di atas. Misal kunci yang digunakan seperti terlihat pada tabel 2.1 dan blok plainteks yang digunakan adalah blok plainteks ke-1 yaitu 139 dan 175. Pada tabel 2.1 terlihat bahwa posisi nilai 139 dan
175 berbeda baris dan kolom seperti terlihat pada Gambar 2.4, sehingga cipherteks menggunakan aturan ke-3. Dari Gambar 2.4, maka didapat: untuk plainteks 139
digantikan dengan nilai 241, dan plainteks 175 digantikan dengan nilai 118.
Langkah tersebut dilakukan pada semua blok plainteks untuk semua komponen warna. Untuk langkah dekripsi dilakukan dengan langkah yang sama dengan proses enkripsi.
Sedangkan langkah-langkah untuk proses dekripsi caranya adalah sebagai berikut:
1. Sama dengan proses enkripsi yaitu menggunakan matriks kunci yang sama untuk proses enkripsi.
2. Proses ciphering dilakukan dengan cara:
Jika c1 dan c2 terdapat pada baris yang sama dalam matriks kunci maka m1 diambil dari 1 piksel sebelah kiri c1, m2 diambil dari 1 pixel sebelah kiri c2 pada matriks kunci.
a. Jika c1 dan c2 terdapat pada kolom yang sama dalam matriks maka m1 dan m2 masing-masing diambil dari 1 piksel diatas m1 dan m2 pada matriks kunci. b. Jika c1 dan c2 berbeda baris dan kolom dalam matriks kunci maka m1 diambil
dari pertemuan baris c1 dan kolom c2, dan m2 diambil dari pertemuan baris c2 dan kolom c1 pada matriks kunci.
(27)
45 241 67 139 20 2 9 20 65 24 200 20 5 0 10 218 65 169 96 199 65 25 10 45 75 96 45 14 100 90 45 47 69 175 5 118 65 25 10 45 75 96 45 14 100 90 45 47
Gambar 2.7 Potongan Matriks Citra Cipherteks
Misalkan pasangan kunci c1 dan c2 adalah 139 dan 175 dengan posisi berbeda baris dan kolom, maka plainteks diambil dari nilai piksel pertemuan baris c1 dan kolom c2 dan diperoleh plainteks 241 dan 118. Selanjutnya gantikan nilai 118 dengan 175 dan 139 dengan 241 sebagai plainteks. [9]
2.4. Algoritma ElGamal
Algoritma ElGamal merupakan salah satu algoritma modern yang ditemukan oleh Taher ElGamal pada tahun 1985. Algotma Enkripsi ElGamal merupakan algoritma enkripsi yang menggunakan kunci asimetris untuk kunci publiknya di mana kunci publik ini berbasis pertukaran kunci Diffie-Hellman [6].
Keamanan pada algoritma ElGamal terletak pada perhitungan logaritma diskrit yang sulit. Properti-properti dari algoritma ElGamal ini adalah :
1. p merupakan bilangan prima dan bersifat tidak rahasia. 2. g merupakan bilangan acak di mana g < p.
3. x adalah kunci privat yang merupakan bilangan acak di mana x < p.
4. y adalah kunci publik yang diperoleh dari hasil perhitungan gx mod p dan bersifat tidak rahasia.
5. m adalah pesan yang akan dienkripsi.
6. a dan b merupakan cipherteks yang bersifat tidak rahasia.
a. Algoritma pembangkitan kunci ElGamal dilakukan sebagai berikut : 1. Memilih bilangan prima p secara sembarang.
2. Memilih dua bilangan acak yaitu bilangan g dan x yang memenuhi syarat g < p
dan 1 ≤ x ≤ p-2.
(28)
Hasil dari pembangkitan kunci ElGamal ini adalah :
Kunci publik : triple <y, g, p>
Kunci privat : pasangan <x, p>
b. Algoritma enkripsi dilakukan sebagai berikut :
1. Menyusun pesan menjadi blok-blok m1, m2, dst di mana nilai setiap blok berada pada selang [0, p-1].
2. Memilih bilangan acak k yang memenuhi syarat 1 ≤ k ≤ p-2.
3. Blok-blok yang telah disusun, masing-masing dienkripsi dengan menggunakan rumus : a = gx mod p dan b = ykm mod p
Pasangan dari a dan b merupakan cipherteks untuk blok pesan. Dengan demikian, dapat diketahui apabila ukuran cipherteks yang dihasilkan dari proses ini akan menjadi dua kali lipat ukuran pesannya.
Sebagai contoh suatu file citra yang memiliki format piksel 24 bit, maka hasil dari pemrosesan menggunakan program Sistem Kriptografi ElGamal akan dibandingkan dengan hasil pemrosesan dengan cara perhitungan. Berikut ini merupakan hasil analisa dari proses enkripsi yang mengambil nilai masukan yaitu suatu file yang memiliki ukuran luas citra 200 x 300 dengan asumsi nilai R, G, B seperti pada Gambar 2.7.
Gambar 2.8 Contoh Nilai RGB Citra Digital
Nilai tersebut adalah asumsi nilai RGB dari setiap piksel, sehingga diperoleh nilai x dan y misal untuk posisi f (1,1) = ( 255 255 255 ); f (2,1) = ( 200 200 150 ); f(1,300) = (100 0 255), dengan nilai kunci publik p =317, g =299, y =256,
(29)
serta bilangan acak k =2. Sehingga dari hasil masukan tersebut dapat dihitung nilai-nilai sebagai berikut.
a = gk mod p = 2992 mod p = 7
Blok pesan yang diilustrasikan pada Gambar 2.4 kemudian dihitung dengan menggunakan rumus b = yk m mod p, dengan mengambil salah satu koordinat sebagai contoh yaitu koordinat f (202,300) memiliki intensitas R =200,G =100, B =255.
b (R) = 2562 * 200 mod 317 = 65536 * 200 mod 317 = 13107200 mod 317 = 201
b (G) = 2562 * 100 mod 317 = 65536 * 100 mod 317 = 6553600 mod 317 = 259
b (B) = 2562 * 255 mod 317 = 65536 * 255 mod 317 = 16711680 mod 317 = 74
Jadi nilai RGB pada koordinat f (202,300) setelah mengalami proses enkripsi adalah (201, 259, 74), sedangkan nilai a dan b adalah pasangan
ciphertext. Sehingga dari hasil perhitungan tersebut dapat disusun nilai RGB
ciphertext seperti Gambar 2.8.
(30)
c. Algoritma Proses Dekripsi
Proses dekripsi menggunakan kunci pribadi x dan p untuk mendekripsi a dan b
menjadi plaintext m dengan persamaan:
(ax)-1 = ap-1-x mod p (1)
m =b*ax mod p (1)
Sehingga plaintext dapat ditemukan kembali dari pasangan ciphertext a dan b. (ax)-1 = ap-1-x mod p ... (1)
m =b*ax mod p ... (2) Sehingga plaintext dapat ditemukan kembali dari pasangan ciphertext a dan b.
Pada proses dekripsi berikut ini mengambil nilai koordinat f (202,300) pada file citra yang sebelumnya telah dienkripsi pada Gambar 6 dengan nilai R =201, G =259, B =74, kunci private = 152, p= 317 dengan menggunakan persamaan (1) dan (2) maka proses dekripsi dilakukan seperti berikut.
(ax)-1 = a317-1-152 mod 317 = 7164 mod 317
= 42
m(R) = b*ax mod p = 201 * 42 mod 317 = 200
m(G) = b/ax mod p
= 259 * 42 mod 317 = 100
m(B) = b/ax mod p
= 74 * 42 mod 317 = 255
Setelah proses dekripsi dilakukan dapat disusun kembali titik koordinat f
(202,300) menjadi (200 100 255). Berikut ini adalah susunan nilai RGB
(31)
Gambar 2.10 Nilai RGB Plaintext
2.5. Analisis Perbandingan Algoritma Playfair Cipher dan ElGamal
Algoritma Playfair Cipher merupakan algoritma klasik yang masih sangat sering digunakan pada era sekarang. Hal ini dikarenakan keamanan yang terletak pada bujur sangkar kunci dan juga pada cara enkripsi yang menggunakan pasangan-pasangan huruf sehingga menyulitkan analisis dengan menggunakan perhitungan frekuensi kemunculan huruf. Sedangkan algoritma ElGamal merupakan algoritma modern yang cukup sering digunakan pada kriptografi. Hal ini dikarenakan algoritma ini memiliki keamanan yang terletak pada perhitungan logaritma diskrit.
Dengan menganalisis keduanya, maka diharapkan akan dapat diketahui keunggulan dan kekurangan masing-masing metode dan dapat dibandingkan mana algoritma yang terbaik yang lebih baik digunakan dalam proses kriptorgrafi citra.
Pada penelitian Setyaningsih, penyandian citra diimplementasikan untuk menyandikan sebuah citra yang dapat direpresentasikan dalam sebuah matriks yang berisi bilangan-bilangan bulat seperti yang digunakan pada matrik kunci pada metode
playfair cipher. Proses enkripsi yang dikembangkan untuk data citra dilakukan dengan menggunakan pasangan bilangan yang mewakili intensitas warna dari citra [9].
Berdasarkan hasil penelitian Tamam, Taufiq et al., algoritma ElGamal diimplementasikan untuk menyandikan sebuah citra berdimensi 202 x 300 piksel. Pada penelitian ini sebagai langkah awal yang harus dilakukan adalah proses generate key yaitu dengan memasukkan nilai batas random antara nilai 15 sampai 300. Nilai batas random yang telah dimasukkan tersebut kemudian digunakan untuk membangkitkan nilai prima (p), nilai (g), nilai (x). Selanjutnya pada proses enkripsi yaitu pemasukkan password untuk mengambil nilai kunci publik (p, g, y) dari dalam
(32)
basis data yang merupakan hasil dari proses generate key. Langkah selanjutnya yaitu mengambil citra plaintext dengan tipe bitmap. Hasil proses enkripsi dilakukan perbandingan ukuran file citra sebelum maupun sesudah mengalami proses enkripsi dalam satuan byte dengan tipe data Este [11].
(33)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Pada penulisan Tugas Akhir ini, untuk menyelesaikan permasalahan yang ada dilakukan satu tahapan analisis terhadap kedua metode kriptografi yang digunakan yaitu Playfair Cipher dan ElGamal. Analisis dilakukan dengan melihat bagaimana proses dari tiap-tiap metode dapat mempengaruhi parameter-parameter pembanding yang telah ditentukan dan performa masing-masing dari metode tersebut. Setelah melakukan analisis, dilanjutkan dengan tahap perancangan yang dilakukan sebelum tahap implementasi.
3.1Analisis Metode Playfair Cipher dan ElGamal
Untuk menganalisis kinerja metode Playfair dan ElGamal dalam enkripsi dan dekripsi suatu citra menggunakan empat jenis citra dengan tingkat kualitas resolusi yang berbeda (0,3 megapiksel, 2 megapiksel, 7 megapiksel dan 10 megapiksel), terdapat tiga buah parameter yang dianggap mampu mengukur kinerja metode ini, yaitu kualitas citra yang dihasilkan, timing run, dan Mean Squared Error (MSE).
3.1.1 Analisis Kualitas Citra
Citra yang dijadikan sebagai citra masukan dalam sistem adalah citra. Artinya, citra ini belum atau telah mengalami proses perbaikan. Sehingga dalam citra tersebut, tidak dianggap masih terdapat noise yang memungkinkan dapat mempengaruhi hasil keluaran.
Dalam metode Playfair Cipher, variabel yang mempengaruhi hasil keluaran citra ini adalah matriks kunci yang dibangkitkan secara acak. Hal ini dikarenakan semakin besar matriks yang dibangkitkan maka akan semakin baik citra yang dihasilkan.
(34)
Sedangkan dalam metode ElGamal, variabel yang mempengaruhi hasil keluaran citra ini adalah nilai prima yang dibangkitkan. Hal ini dikarenakan semakin besar matriks yang dibangkitkan maka akan semakin baik citra yang dihasilkan.
3.1.2 Analisis Timing Run
Ditinjau dari segi waktu pemrosesan, dalam membandingkan kinerja metode Playfair Cipher dan ElGamal, metode terbaik adalah metode yang akan memiliki waktu pemrosesan yang paling singkat diantara metode lainnya dalam memproses suatu citra.
3.1.3 Analisis Mean Squared Error (MSE)
MSE (Mean Square Error) adalah nilai error kuadrat rata-rata antara citra cover
dengan citra ter-steganografi, secara matematis dapat dirumuskan sebagai berikut:
Dimana :
MSE = Nilai Mean Square Error citra steganografi M = Panjang citra stego (dalam pixel)
N = Lebar citra stego (dalam pixel) f (i,j) = nilai piksel dari citra cover
f‟(i,j) = nilai piksel pada citra stego
Berikut diberikan contoh dari perhitungan untuk Mean Square Error (MSE), yaitu:
Dengan contoh potongan matriks 2x3 dari citra asli dan citra rekonstruksi: Citra asli:
2 8 3
(35)
Citra rekonstruksi:
2 8 3
2 1 1
Maka nilai dari MSE = ((2-2)2 + (8-8)2 + (3-3)2 + (2-2)2 + (1-1)2 + (1-1)2)
= 0
Semakin kecil/rendah nilai yang dihasilkan dari perhitungan Mean Square Error, maka kualitas citra yang dihasilkan akan semakin baik.
3.2Perancangan Sistem
Perancangan merupakan tahap kedua dari siklus hidup pengembangan sistem. Dalam penulisan Tugas Akhir ini, tahap perancangan merupakan suatu tahap yang dilakukan karena dianggap dapat memudahkan proses analisis terhadap kesesuaian hasil yang diperoleh dengan analisis secara keilmuan. Dalam proses perancangan, hal yang harus diperhatikan adalah bagaimana membangun sebuah sistem yang dapat menunjukkan hasil penelitian, yang ditampilkan secara grafis. Dalam sistem tersebut, juga menampilkan segala informasi yang berhubungan dengan penelitian.
3.2.1 Perancangan DFD dan Spesifikasi Proses
Pemodelan sistem yang dibangun digambarkan dengan diagram aliran data (Data Flow Diagram) yang menunjukkan bagaimana data diproses oleh sistem atau bagaimana data mengalir dalam serangkaian pemrosesan. Keuntungan penggunanan DFD adalah memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan atau dikembangkan.
Ada 2 teknik dasar DFD yang umum dipakai yaitu Gane and Sarson dan Yourdan and DeMarco. Pada tugas akhir ini teknik dasar DFD yang digunakan adalah Yourdan and DeMarco. Gambar 3.1 memperlihatkan DFD level 0 dari sistem yang akan dirancang.
(36)
User
P0
Aplikasi Perbandingan Playfair Cipher dan
ElGamal
citra_asli, bil_prima, kunci, citra_enkripsi data_hasil
Gambar 3.1 DFD Level 0
DFD level 0 di atas memperlihatkan sistem secara garis besar yang terdiri dari masukan, proses, dan keluaran dari sistem yang akan dirancang. Proses yang terjadi pada DFD level 0 tersebut dapat dijelaskan melalui spesifikasi proses pada Tabel 3.1.
Tabel 3.1 Spesifikasi Proses DFD Level 0
No/Nama Proses Input Keterangan Proses Output
P.0 Aplikasi Perbandingan Playfair Cipher dan
ElGamal
citra_asli, bil_prima, kunci, dan citra_enkripsi
Melakukan proses enkripsi dan deskripsi dengan metode Playfair dan ElGamal, lalu lalu membandingkan kualitas citra,
timing run-nya dan Mean Squared Error (MSE).
data_hasil
Selanjutnya DFD level 0 di atas dapat dijabarkan lebih luas lagi dengan memecah Proses 0 ke dalam proses-proses yang lebih kecil. Penjabaran tersebut disebut sebagai DFD Level 1 yang diperlihatkan pada Gambar 3.2.
(37)
User P1 Enkripsi Playfair Cipher citra_asli dt_enkripsi dt_dekripsi kunci data_enkripsi P2 Dekripsi Playfair Cipher P4 Dekripsi ElGamal P3 Enkripsi ElGamal kunci P5 Tampil Hasil Akhir citra_asli data_enkripsi data_dekripsi data_dekripsi bil_prima bil_prima citra_enkripsi citra_enkripsi data_hasil data_hasil data_hasil
Gambar 3.2 DFD Level 1
Penjelasan mengenai proses-proses yang terjadi pada DFD level 1 tersebut dapat dilihat dalam Tabel 3.2.
Tabel 3.2 Spesifikasi Proses DFD Level 1
No/Nama
Proses Input Keterangan Proses Output
P.1 Enkripsi Playfair Cipher citra_asli, kunci
Melakukan proses enkripsi pada citra yang telah dimasukkan dengan metode Playfair Cipher dan menghitung kualitas citra hasil
(38)
enkripsi dan timing run-nya. P.2 Dekripsi Playfair Cipher citra_enkripsi, kunci
Melakukan proses dekripsi pada citra yang telah dimasukkan dengan metode Playfair Cipher dan menghitung kualitas citra hasil deskripsi, timing run-nya dan Mean Squared Error (MSE).
data _dekripsi P.3 Enkripsi ElGamal citra_asli, bil_prima
Melakukan proses enkripsi pada citra yang telah dimasukkan dengan metode ElGamal dan menghitung kualitas citra hasil enkripsi dan
timing run-nya.
data_enkripsi P.4 Dekripsi ElGamal citra_enkripsi, bil_prima
Melakukan proses dekripsi pada citra yang telah dimasukkan dengan metode ElGamal dan menghitung kualitas citra hasil deskripsi, timing run-nya dan Mean Squared Error (MSE).
data _dekripsi
P.5 Tampil Hasil
Akhir
data_hasil Menampilkan proses perhitungan dari citra yang telah dienkripsi maupun didekripsikan.
data_hasil
Proses 1 (P.1) dari DFD level 1 dijabarkan lebih mendalam lagi menjadi proses-proses yang terjadi pada tahap enkripsi dari metode Playfair Cipher. Aliran data yang terjadi pada proses ini disebut sebagai DFD level 2 Proses P.1 Enkripsi Playfair Cipher, diperlihatkan pada Gambar 3.3.
(39)
User data_enkripsi P1.1 Transformasi Warna RGB citra_asli dt_enkripsi kunci data_RGB P1.2 Pembagian Blok Plainteks P1.3 Pembuatan Matriks Kunci P1.4 Pergantian Blok Plainteks dengan Nilai
Pixel Matriks Kunci nilai_pixel_matriks_kunci
data_blok_plainteks
Gambar 3.3 DFD Level 2 Proses P.1
Untuk spesifikasi proses yang terjadi pada DFD level 2 proses P.1 ini ditunjukkan pada Tabel 3.3.
Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses P.1
No/Nama
Proses Input
Keterangan
Proses Output
P.1.1 Transformasi
Warna RGB
citra_asli Menginputkan citra asli dan mengambil data RGB dari tiap pixel citra. data_RGB P.1.2 Pembagian Blok Plainteks
data_RGB Membagi setiap data RGB menjadi blok-blok plainteks data_blok_plainteks P.1.3 Pembuatan Matriks Kunci
kunci Membuat tabel
berbentuk matriks yang berisikan nilai pixel kunci. nilai_pixel_matriks_kunci P.1.4 Pergantian data_blok_plainteks, nilai_pixel_matriks_kunci Mengganti blok-blok data_enkripsi
(40)
Blok Plainteks dengan Nilai Pixel Matriks
Kunci
plainteks dengan nilai pixel dari matriks kunci dan menyimpan hasil enkripsi ke dalam
citra_enkripsi
Proses P.2 dari DFD level 1 dapat dijabarkan lebih mendalam menjadi proses-proses yang terjadi pada tahap dekripsi dari metode Playfair Cipher. Gambar 3.5 memperlihatkan hasil penjabaran DFD Level 2 Proses P.2 Dekripsi Playfair Cipher.
User
data_dekripsi P2.1
Transformasi Warna RGB citra_enkripsi
dt_dekripsi kunci
data_RGB
P2.2 Pembagian Blok
Plainteks
P2.3 Pembuatan Matriks Kunci
P2.4 Pergantian Blok Plainteks dengan Nilai
Pixel Matriks Kunci nilai_pixel_matriks_kunci
data_blok_plainteks
Gambar 3.4 DFD Level 2 Proses P.2
Untuk tabel spesifikasi proses dari DFD Level 2 Proses P.2 tersebut dapat dilihat pada Tabel 3.4.
(41)
Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses P.2
No/Nama
Proses Input
Keterangan
Proses Output
P.2.1 Transformasi
Warna RGB
citra_enkripsi Menginputkan citra hasil enkripsi dan mengambil data RGB dari tiap pixel citra tersebut. data_RGB P.2.2 Pembagian Blok Plainteks
data_RGB Membagi setiap data RGB menjadi blok-blok plainteks data_blok_plainteks P.2.3 Pembuatan Matriks Kunci
kunci Membuat tabel
berbentuk matriks yang berisikan nilai pixel kunci. nilai_pixel_matriks_kunci P.2.4 Pergantian Blok Plainteks dengan Nilai Pixel Matriks Kunci data_blok_plainteks, nilai_pixel_matriks_kunci Mengganti blok-blok plainteks dengan nilai pixel dari matriks kunci dan menyimpan hasil dekripsi ke dalam
citra_dekripsi.
data_dekripsi
Proses P.3 dari DFD level 1 dapat dijabarkan lebih mendalam lagi menjadi proses-proses yang terjadi pada tahap enkripsi dari metode ElGamal. Aliran data yang terjadi pada proses ini disebut sebagai DFD level 2 Proses P.3 Enkripsi ElGamal, diperlihatkan pada Gambar 3.5.
(42)
User data_enkripsi P3.1 Transformasi Warna RGB citra_asli dt_enkripsi bil_prima data_RGB P3.2 Pembuatan Kunci Publik-Privat P3.3 Konversi Nilai RGB nilai_kunci_publik_privat
Gambar 3.5 DFD Level 2 Proses P.3
Untuk tabel spesifikasi proses dari DFD Level 2 Proses P.3 tersebut dapat dilihat pada Tabel 3.5.
Tabel 3.5 Spesifikasi Proses DFD Level 2 Proses P.3
No/Nama
Proses Input
Keterangan
Proses Output
P.3.1 Transformasi
Warna RGB
citra_asli Menginputkan citra asli dan mengambil data RGB dari tiap pixel citra tersebut. data_RGB P.3.2 Pembuatan Kunci Publik-Privat
bil_prima Membuat kunci publik dan privat. nilai_kunci_publik_privat P.3.3 Konversi Nilai RGB data_RGB, nilai_kunci_publik_privat Mengkonversi nilai RGB citra dengan metode ElGamal dari kunci publik dan privat tersebut.
(43)
Selanjutnya data hasil enkripsi disimpan dalam citra_enkripsi.
Proses P.4 dari DFD level 1 dapat dijabarkan lebih mendalam lagi menjadi proses-proses yang terjadi pada tahap dekripsi dari metode ElGamal. Aliran data yang terjadi pada proses ini disebut sebagai DFD level 2 Proses P.4 Dekripsi ElGamal, diperlihatkan pada Gambar 3.6.
User
data_dekripsi P4.1
Transformasi Warna RGB citra_enkripsi
dt_dekripsi bil_prima
data_RGB
P4.2 Pembuatan Kunci
Publik-Privat
P4.3 Konversi Nilai
RGB nilai_kunci_publik_privat
Gambar 3.6 DFD Level 2 Proses P.4
Untuk tabel spesifikasi proses dari DFD Level 2 Proses P.4 tersebut dapat dilihat pada Tabel 3.6.
Tabel 3.6 Spesifikasi Proses DFD Level 2 Proses P.4
No/Nama
Proses Input
Keterangan
Proses Output
P.4.1 Transformasi
Warna RGB
citra_enkripsi Menginputkan citra yang telah dienkripsi dan mengambil data RGB dari tiap
(44)
pixel citra tersebut. P.4.2
Pembuatan Kunci
Publik-Privat
bil_prima Membuat kunci publik dan privat.
nilai_kunci_publik_privat
P.4.3 Konversi Nilai RGB
data_RGB,
nilai_kunci_publik_privat
Mengkonversi nilai RGB citra dengan metode ElGamal dari kunci publik dan privat tersebut. Selanjutnya data hasil dekripsi disimpan dalam citra_dekripsi.
data_dekripsi
3.3 Diagram Alir (Flowchart) Sistem
Di bawah ini akan ditampilkan diagram alir sistem user enkripsi dan dekripsi menggunakan metode Playfair Cipher dan ElGamal, serta diagram alir generate key
pada metode ElGamal.
3.3.1 Diagram Alir (Flowchart) Playfair Cipher 1) Proses Enkripsi
Langkah-langkah proses enkripsi yang dilakukan dengan metode Playfair Cipher adalah:
Untuk memulai proses ini user harus memasukkan terlebih dahulu citra asli yang akan dienkripsi. Lalu proses selanjutnya adalah mentransformasi citra warna sehingga nilai RGB tiap piksel terpisah menjadi komponen Red, Green dan Blue (untuk citra warna). Tetapi untuk citra grayscale tidak perlu dilakukan proses transformasi warna. Kemudian untuk citra warna, masing-masing komponen warna (Red, Green, Blue) dibagi menjadi blok plainteks yang terdiri dari 2 piksel untuk setiap baris pada setiap komponen warna, dimana setiap blok berisi 2 pixel (m1 dan m2) pada masing-masing baris untuk setiap kanal warna.
(45)
Mulai
Input Citra Asli
Transformasi warna sehingga nilai RGB tiap piksel terpisah menjadi komponen Red, Green dan Blue
(RGB)
Untuk citra warna, masing-masing komponen warna (Red, Green, Blue) dibagi menjadi blok plainteks
yang terdiri dari 2 piksel untuk setiap baris
Pilih matrik kunci berukuran 16 x 16 dengan elemen nilainya antara
0 sampai dengan 255 dengan posisi acak.
Selesai Hasil Enkripsi Mengganti tiap blok plainteks dengan nilai pixel pada matrik
kunci Input Kunci
Gambar 3.7 Diagram Alir Proses Enkripsi pada Metode Playfair Cipher
Selanjutnya proses ciphering pada masing-masing kanal warna dilakukan dengan cara sebagai berikut:
a. Jika m1 dan m2 terdapat pada baris yang sama dalam matrik kunci maka c1 diambil dari 1 pixel sebelah kanan m1, c2 diambil dari 1 pixel sebelah kanan m2 pada matrik kunci.
b. Jika m1 dan m2 terdapat pada kolom yang sama dalam matrik maka c1 dan c2 masing-masing diambil dari 1 pixel dibawah m1 dan m2 pada matrik kunci.
(46)
c. Jika m1 dan m2 berbeda baris dan kolom dalam matrik kunci maka c1 diambil dari pertemuan baris pixel m1 dan kolom m2, dan c2 diambil dari pertemuan baris m2 dan kolom m1 pada matrik kunci.
d. Jika m1 = m2 maka cipherteks adalah c1=m1 dan c2=m2.
Bentuk dan pilih matrik kunci berukuran 16 x 16 dengan elemen nilainya antara 0 sampai dengan 255 dengan posisi acak. Gambar 3.8 berikut adalah contoh potongan matrik kunci playfair.
Gambar 3.8 Potongan Matrik Kunci Metode Playfair
Dan diakhiri dengan menggantikan tiap blok plainteks dengan nilai pixel pada matrik kunci dengan menggunakan aturan yang telah dijelaskan di atas. Misal kunci yang digunakan seperti terlihat pada tabel diatas dan blok plainteks yang digunakan adalah blok plainteks ke-1 yaitu 139 dan 175. Pada tabel terlihat bahwa posisi nilai 139 dan 175 berbeda baris dan kolom seperti terlihat pada Gambar 3.7, sehingga cipherteks menggunakan aturan ke-3. Dari Gambar 3.8, maka didapat: untuk plainteks 139 digantikan dengan nilai 241, dan plainteks 175 digantikan dengan nilai 118.
2) Proses Dekripsi
Untuk langkah-langkah pada tahap dekripsi juga dilakukan seperti pada langkah-langkah yang sama dengan proses enkripsi. Hanya saja pada proses terakhir tiap blok plainteks dengan nilai pixel pada matrik kunci dikembalikan ke kondisi semula dengan menggunakan aturan sebagai berikut:
(47)
Mulai
Input Citra Enkripsi, kunci
Transformasi warna sehingga nilai RGB tiap piksel terpisah menjadi komponen Red, Green dan Blue
(RGB)
Untuk citra warna, masing-masing komponen warna (Red, Green, Blue) dibagi menjadi blok plainteks
yang terdiri dari 2 piksel untuk setiap baris
Gunakan matrik kunci yang sama untuk proses deskirpsi, berukuran 16 x 16 dengan elemen nilainya
antara 0 sampai dengan 255 dengan posisi acak.
Selesai Hasil Dekripsi Mengganti tiap blok plainteks dengan nilai pixel pada matrik
kunci
Gambar 3.9 Diagram Alir Proses Dekripsi pada Metode Playfair Cipher
a. Jika c1 dan c2 terdapat pada baris yang sama dalam matrik kunci maka m1 diambil dari 1 pixel sebelah kiri c1, m2 diambil dari 1 pixel sebelah kiri c2 pada matrik kunci.
b. Jika c1 dan c2 terdapat pada kolom yang sama dalam matrik maka m1 dan m2 masing-masing diambil dari 1 pixel diatas m1 dan m2 pada matrik kunci.
c. Jika c1 dan c2 berbeda baris dan kolom dalam matrik kunci maka m1 diambil dari pertemuan baris c1 dan kolom c2, dan m2 diambil dari pertemuan baris c2 dan kolom c1 pada matrik kunci.
(48)
d. Jika c1 = c2 maka plainteks adalah adalah m1=c1 dan m2=c2.
3.3.2 Diagram Alir (Flowchart) ElGamal 1) Proses Generate Key
Mulai
Selesai Input Batas Bilangan Prima
Generate Bilangan Acak g dan x g<p dan 1,x,p-2
Hitung nilai y = gx mod p
Kunci Publk = y,g,p Kunci Privat = x, p
Gambar 3.10 Diagram Alir Proses Membangkitkan Kunci pada Metode ElGamal
Proses pembangkitan kunci ElGamal yang ditunjukkan pada Gambar 3.10 adalah sebagai berikut:
Memilih bilangan prima p secara sembarang/acak dengan batasan maksimal 257.
Memilih dua bilangan acak yaitu bilangan g dan x yang memenuhi syarat g
< p dan 1 ≤ x ≤ p-2.
Menghitung y dengan rumus :y = gx mod p
(49)
Kunci publik : triple <y, g, p> Kunci privat : pasangan <x, p>
2) Proses Enkripsi
Masukkan Kata Sandi
Kunci Publik = y,g,p y=kunci publik
g=bilangan acak (kunci publik) x=bilangan acak (kunci publik)
Hasil a = gx mod p
Input file citra
Hitung Lebar dan Tinggi Citra
Ubah citra ke angka berdasarkan nilai RGB tiap piksel
Selesai
Mulai
Hasil b = ykm mod p
Hasil Enkripsi
(50)
Proses enkripsi dengan metode ElGamal yang ditunjukkan pada Gambar 3.11 adalah sebagai berikut:
Menyusun pesan menjadi blok-blok m1, m2, dst di mana nilai setiap blok berada pada selang [0, p-1].
Me ilih ila ga a ak k ya g e e uhi syarat 1 ≤ k ≤ p-2.
Blok-blok yang telah disusun, masing-masing dienkripsi dengan menggunakan rumus : a = gx mod p dan b = ykm mod p
Pasangan dari a dan b merupakan cipherteks untuk blok pesan. Dengan demikian, dapat diketahui apabila ukuran cipherteks yang dihasilkan dari proses ini akan menjadi dua kali lipat ukuran pesannya.
3) Proses Dekripsi
Input file citra
Input kunci sandi
Hitung Lebar dan Tinggi Citra
Ubah citra ke angka berdasarkan nilai RGB tiap piksel
Selesai Mulai
Private key untuk menghitung : (ax)-1 = ap-1-x mod p m =b*ax mod p
Hasil Dekripsi
(51)
Proses dekripsi dengan metode ElGamal menggunakan kunci pribadi x dan p
untuk mendekripsi a dan b menjadi plaintext m dengan rumus yang telah disediakan dalam proses dekripsi seperti yang diperlihatkan pada Gambar 3.12. Dengan adanya perhitungan tersebut, plainteks dapat ditemukan kembali dari pasangan ciphertext a dan b.
3.4 Perancangan Antarmuka Pemakai (User Interface)
Antarmuka pemakai (user interface) adalah aspek sistem komputer atau program yang dapat dilihat, didengar, atau dipersepsikan oleh pengguna manusia, dan perintah-perintah atau mekanisme yang digunakan pemakai untuk mengendalikan operasi dan memasukkan data.
Berikut ini merupakan perancangan antarmuka aplikasi perbandingan metode Playfair Cipher dan ElGamal pada kriptografi citra yang dirancang dalam bahasa pemrograman Microsoft Visual Studio 2010.
3.4.1 Antarmuka Aplikasi (Home)
Tampilan utama merupakan tampilan awal yang akan menghubungkan user dengan fitur utama perangkat lunak. Oleh karena itu, antarmuka untuk halaman utama ini dirancang dengan tampilan yang sederhana, namun tetap menarik sehingga mempermudah user dalam berinteraksi dengan sistem atau perangkat lunak (user friendly).
Antarmuka ini dirancang dengan 3 (dua) pilihan menu, yaitu Enkripsi, Dekripsi dan Exit. Dari menu-menu ini, pengguna nantinya dapat berinteraksi dengan kedua metode kriptografi yang telah ditentukan. Dalam menu utama ini juga dirancang tampilan dari judul aplikasi. Gambar 3.13 memperlihatkan rancangan antarmuka dari Menu Utama.
(52)
Gambar 3.13 RancanganAntarmuka Halaman Utama
Keterangan:
1. Menu Enkripsi merupakan menu yang digunakan untuk proses enkripsi metode playfair cipher dan elgamal.
2. Menu Dekripsi merupakan menu yang digunakan untuk proses enkripsi metode playfair cipher dan elgamal.
3. Menu Exit merupakan menu yang digunakan untuk menutup aplikasi.
4. Bagian ini digunakan sebagai tempat untuk menampilkan Judul, Logo USU dan Nama Pembuat Program.
3.4.2 Antarmuka Proses Enkripsi Metode Playfair Cipher dan ElGamal
Menu Enkripsi dirancang untuk dapat melakukan operasi enkripsi terhadap citra yang akan diolah dengan metode Playfair Cipher dan ElGamal. Operasi-operasi tersebut terdiri dari buka file, enkripsi, hitung nilai timing run, dan simpan file. Selain itu, operasi lain yang dapat dilakukan pada menu ini adalah Keluar.
Keseluruhan operasi tersebut dirancang menjadi 2 (dua) buah menu, yaitu Menu Utama dan Dekripsi. Pada figur ini dirancang 1 (satu) buah kolom untuk menginputkan citra yang akan dienkripsi dan 2 (dua) buah kolom untuk menampilkan gambar, kolom pertama untuk citra hasil enkripsi menggunakan metode Playfair
Enkripsi Dekripsi Exit
1 2 3
4
(53)
Cipher dan kolom kedua untuk citra hasil enkripsi menggunakan metode ElGamal. Menu ini juga dirancang untuk dapat menampilkan nama file, panjang pixel, lebar pixel dan ukuran dari file citra yang ditampilkan. Selain itu, menu ini juga dirancang dengan 2 (dua) button untuk mengenkripsi citra asli dan simpan hasil enkripsi.
Didalam menu ini juga akan ditampilkan informasi-informasi terkait citra yang telah dienkripsi. Gambar 3.14 memperlihatkan tampilan rancangan antarmuka menu enkripsi.
Gambar 3.14 Rancangan Antarmuka Menu Enkripsi. Simpan
Citra Enkripsi
Dekripsi
Simpan Citra Menu Utama Dekripsi
Citra Asli Playfair Cipher Information
ElGamal Information
1
2
3
6
7
8
5 13
14
15 Buka File
Kunci
Generate
12
Kunci
Generate
19 4
9
10
11
16
17
(54)
Keterangan:
1. Menu Utama merupakan menu yang digunakan untuk kembali ke tampilan menu awal.
2. Menu Dekripsi merupakan menu yang digunakan untuk menampilkan halaman dekripsi.
3. PictureBox merupakan tempat untuk menampilkan citra asli yang dimasukkan oleh user.
4. Button “Buka File” merupakan tombol yang akan digunakan untuk mengambil citra asli yang akan dilakukan proses enkripsi pada metode Playfair Cipher dan ElGamal.
5. TextBox merupakan tempat untuk menampilkan informasi dari citra asli yang dimasukkan pertama kali oleh user.
6. Button “Enkripsi” merupakan tombol yang digunakan untuk memulai proses enkripsi dengan menggunakan metode Playfair Cipher.
7. Button “Simpan Citra” merupakan tombol yang digunakan untuk menyimpan hasil enkripsi dari citra yang telah berhasil/selesai dienkripsikan dengan metode Playfair Cipher.
8. PictureBox merupakan tempat untuk menampilkan citra hasil enkripsi dari metode Playfair Cipher.
9. TextBox merupakan tempat untuk menampilkan informasi dari citra yang telah berhasil dienkripsi dengan metode Playfair Cipher.
10.TextBox „Kunci” merupakan tempat yang digunakan untuk mengisi nilai kunci yang akan digunakan untuk pembuatan matriks kunci.
11.Button “Generate” merupakan tombol yang digunakan untuk membangkitkan/memulai pembuatan matriks kunci.
12.TextBox merupakan tempat untuk menampilkan matriks kunci yang telah berhasil dibangkitkan.
13.Button “Enkripsi” merupakan tombol yang digunakan untuk memulai proses enkripsi dengan menggunakan metode ElGamal.
14.Button “Simpan Citra” merupakan tombol yang digunakan untuk menyimpan hasil enkripsi dari citra yang telah berhasil/selesai dienkripsikan dengan metode ElGamal.
(55)
15.PictureBox merupakan tempat untuk menampilkan citra hasil enkripsi dari metode ElGamal.
16.TextBox merupakan tempat untuk menampilkan informasi dari citra yang telah berhasil dienkripsi dengan metode ElGamal.
17.TextBox „Kunci” merupakan tempat yang digunakan untuk mengisi nilai kunci yang akan digunakan untuk pembuatan kunci publik dan privat.
18.Button “Generate” merupakan tombol yang digunakan untuk membangkitkan/memulai pembuatan kunci publik dan privat.
19.TextBox merupakan tempat untuk menampilkan informasi kunci-kunci yang akan digunakan dalam proses enkripsi pada metode ElGamal.
3.4.3 Antarmuka Proses Dekripsi Metode Playfair Cipher dan ElGamal
Menu Deskripsi dirancang untuk dapat melakukan operasi deskripsi terhadap citra yang akan telah dienkripsi menjadi citra asli dengan metode Playfair Cipher dan ElGamal. Operasi-operasi tersebut terdiri dari buka file, dekripsi, hitung nilai timing run, nilai MSE dan simpan file. Selain itu, operasi lain yang dapat dilakukan pada menu ini adalah Keluar.
Keseluruhan operasi tersebut dirancang menjadi 2 (dua) buah menu, yaitu Menu Utama dan Dekripsi. Pada figur ini dirancang 2 (satu) buah kolom untuk menginputkan citra yang akan didekripsi dan 2 (dua) buah kolom untuk menampilkan gambar, kolom pertama untuk citra hasil dekripsi menggunakan metode Playfair Cipher dan kolom kedua untuk citra hasil dekripsi menggunakan metode ElGamal. Menu ini juga dirancang untuk dapat menampilkan nama file, panjang pixel, lebar pixel, ukuran, lama proses dan MSE dari file citra yang ditampilkan. Selain itu, menu ini juga dirancang dengan 2 (dua) buah button untuk mendekripsi citra hasil enkripsi (masukan) dan simpan citra hasil dekripsi.
Didalam menu ini juga akan ditampilkan informasi-informasi terkait citra yang telah didekripsi. Gambar 3.15 memperlihatkan tampilan rancangan antarmuka menu enkripsi.
(56)
Gambar 3.15 Rancangan Antarmuka Menu Dekripsi.
Keterangan:
1. Menu Utama merupakan menu yang digunakan untuk kembali ke tampilan menu awal.
2. Menu Enkripsi merupakan menu yang digunakan untuk menampilkan halaman enkripsi.
3. PictureBox merupakan tempat untuk menampilkan citra yang ingin didekripsikan dengan menggunakan metode Playfair Cipher oleh user.
4. Button “Buka File” merupakan tombol yang akan digunakan untuk mengambil citra yang akan dilakukan proses dekripsi pada metode Playfair Cipher.
5. Button “Dekripsi” merupakan tombol yang digunakan untuk memulai proses dekripsi dengan menggunakan metode Playfair Cipher.
ElGamal
Information Information
Menu Utama Enkripsi
Playfair Cipher
Buka File
Simpan Citra Dekripsi
Buka File
Dekripsi
Simpan Citra
Kunci
Generate
1 2
3
4 5
6
7 8
9 10
11
12
13
14
15
16
(57)
6. Button “Simpan Citra” merupakan tombol yang digunakan untuk menyimpan hasil dekripsi dari citra yang telah berhasil/selesai didekripsikan dengan metode Playfair Cipher.
7. PictureBox merupakan tempat untuk menampilkan citra hasil dekripsi dari metode Playfair Cipher.
8. PictureBox merupakan tempat untuk menampilkan citra yang ingin didekripsikan dengan menggunakan metode ElGamal.
9. Button “Buka File” merupakan tombol yang akan digunakan untuk mengambil citra yang akan dilakukan proses dekripsi pada metode ElGamal.
10.Button “Dekripsi” merupakan tombol yang digunakan untuk memulai proses dekripsi dengan menggunakan metode ElGamal.
11.Button “Simpan Citra” merupakan tombol yang digunakan untuk menyimpan hasil dekripsi dari citra yang telah berhasil/selesai didekripsikan dengan metode ElGamal.
12.PictureBox merupakan tempat untuk menampilkan citra hasil dekripsi dari metode ElGamal.
13.TextBox merupakan tempat untuk menampilkan informasi dari citra enkripsi dan hasil dekripsi dari metode Playfair Cipher.
14.TextBox „Kunci” merupakan tempat yang digunakan untuk mengisi nilai kunci yang akan digunakan untuk pembuatan matriks kunci.
15.Button “Generate” merupakan tombol yang digunakan untuk membangkitkan/memulai pembuatan matriks kunci.
16.TextBox merupakan tempat untuk menampilkan matriks kunci yang telah berhasil dibangkitkan.
17.TextBox merupakan tempat untuk menampilkan informasi dari citra enkripsi yang dimasukkan oleh user dan juga informasi mengenai citra hasil dekripsi dari metode ElGamal.
(1)
End If End Sub
Private Sub dekripPlayfair(ByVal bigram As Integer(), ByVal Kunci As Integer(,))
Dim limit As Boolean = False
Dim bigramx As Integer() = New Integer(2) {} Dim bigramy As Integer() = New Integer(2) {} For x = 0 To 1
For i = 0 To 15 For j = 0 To 15
If (bigram(x) = Kunci(i, j)) Then bigramx(x) = i
bigramy(x) = j limit = True
If (limit = True And x = 2) Then Exit For
End If End If Next
If (limit = True And x = 2) Then Exit For
End If Next Next
If (bigramx(0) = bigramx(1)) Then If (bigramy(0) = 0) Then
plain1 = Kunci(bigramx(0), 15)
plain2 = Kunci(bigramx(1), bigramy(1)) ElseIf (bigramy(1) = 0) Then
plain1 = Kunci(bigramx(0), bigramy(0) - 1) plain2 = Kunci(bigramx(1), 15)
Else
plain1 = Kunci(bigramx(0), bigramy(0) - 1) plain2 = Kunci(bigramx(1), bigramy(1) - 1) End If
ElseIf (bigramy(0) = bigramy(1)) Then If (bigramx(0) = 0) Then
plain1 = Kunci(15, bigramy(0))
plain2 = Kunci(bigramx(1) - 1, bigramy(1)) ElseIf (bigramx(1) = 0) Then
plain1 = Kunci(bigramx(0) - 1, bigramy(0)) plain2 = Kunci(15, bigramy(1))
Else
plain1 = Kunci(bigramx(0) - 1, bigramy(0)) plain2 = Kunci(bigramx(1) - 1, bigramy(1)) End If
Else
plain1 = Kunci(bigramx(0), bigramy(1)) plain2 = Kunci(bigramx(1), bigramy(0)) End If
End Sub
Private Sub dekripsiPlayfair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dekripsiPlayfair.Click
If txtKunci.Text = "" Then
MessageBox.Show("Generate Kunci Playfair terlebih dulu") txtZ0.Focus()
Exit Sub End If
(2)
Dim sw As New Stopwatch
Dim gbr_Asli As Bitmap = New Bitmap(PictureBox1.Image) Dim gbr_Playfair As Bitmap = New Bitmap(PictureBox1.Image) Dim x As Integer = gbr_Playfair.Width
Dim y As Integer = gbr_Playfair.Height Dim bigram As Integer() = New Integer(2) {} Dim r1, g1, b1, r2, g2, b2 As Integer
Dim rCipher1, gCipher1, bCipher1, rCipher2, gCipher2, bCipher2 As Integer
waktuPlayfair.Text = "Lama Proses Dekripsi : " sw.Start()
For i = 0 To y - 1
For j = 0 To x - 1 Step 2
r1 = gbr_Playfair.GetPixel(j, i).R r2 = gbr_Playfair.GetPixel(j + 1, i).R bigram(0) = r1
bigram(1) = r2
dekripPlayfair(bigram, Form1.Kunci) rCipher1 = plain1
rCipher2 = plain2
g1 = gbr_Asli.GetPixel(j, i).G g2 = gbr_Asli.GetPixel(j + 1, i).G bigram(0) = g1
bigram(1) = g2
dekripPlayfair(bigram, Form1.Kunci) gCipher1 = plain1
gCipher2 = plain2
b1 = gbr_Asli.GetPixel(j, i).B b2 = gbr_Asli.GetPixel(j + 1, i).B bigram(0) = b1
bigram(1) = b2
dekripPlayfair(bigram, Form1.Kunci) bCipher1 = plain1
bCipher2 = plain2
gbr_Asli.SetPixel(j, i, Color.FromArgb(255, rCipher1, gCipher1, bCipher1))
gbr_Asli.SetPixel(j + 1, i, Color.FromArgb(255, rCipher2, gCipher2, bCipher2))
Next Next
PictureBox2.Image = gbr_Asli
Dim mse As Double = hitungMSE(PictureBox1.Image, PictureBox2.Image) LDekrip_Playfair.Text = gbr_Asli.Width
PDekrip_Playfair.Text = gbr_Asli.Height MSEplayfair.Text = Math.Round(mse, 4) sw.Stop()
Dim detik As Double
detik = Math.Round(sw.ElapsedMilliseconds / 1000, 3)
waktuPlayfair.Text += sw.ElapsedMilliseconds.ToString() + " ms / " + detik.ToString() + " s"
MessageBox.Show("Proses Dekripsi telah selesai", "Dekripsi",
MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub
Private Sub SimpanPlayfair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpanPlayfair.Click
(3)
Dim simpan As New SaveFileDialog() Dim path As String
simpan.Filter = "bmp Files|*.bmp" simpan.FileName = "*.bmp"
If (simpan.ShowDialog() = DialogResult.OK) Then PictureBox2.Image.Save(simpan.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
gbrDekrip_Playfair.Text = System.IO.Path.GetFileName(simpan.FileName)
path = System.IO.Path.GetFullPath(simpan.FileName) Dim fileinfo As New System.IO.FileInfo(path) Dim size As Double = fileinfo.Length / 1024
SizeDekrip_Playfair.Text = (Math.Round(size, 1)).ToString() MessageBox.Show("Gambar telah berhasil disimpan", "Simpan",
MessageBoxButtons.OK, MessageBoxIcon.Information) End If
End Sub
Private Sub SimpanElgamal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpanElgamal.Click
Dim simpan As New SaveFileDialog() Dim path As String
simpan.Filter = "bmp Files|*.bmp" simpan.FileName = "*.bmp"
If (simpan.ShowDialog() = DialogResult.OK) Then PictureBox4.Image.Save(simpan.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
gbrDekrip_Elgamal.Text =
System.IO.Path.GetFileName(simpan.FileName)
path = System.IO.Path.GetFullPath(simpan.FileName) Dim fileinfo As New System.IO.FileInfo(path) Dim size As Double = fileinfo.Length / 1024
SizeDekrip_Elgamal.Text = (Math.Round(size, 1)).ToString() MessageBox.Show("Gambar telah berhasil disimpan", "Simpan",
MessageBoxButtons.OK, MessageBoxIcon.Information) End If
End Sub
Private Sub DekripsiElgamal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DekripsiElgamal.Click
Dim m As Integer Dim ax As BigInteger
Dim sw As New Stopwatch
Dim gbr_Asli As Bitmap = New Bitmap(PictureBox3.Image) Dim gbr_Elgamal As Bitmap = New Bitmap(PictureBox3.Image) Dim w As Integer = gbr_Elgamal.Width
Dim h As Integer = gbr_Elgamal.Height Dim bR, bG, bB As Integer
p = keyp.Text a = keya.Text x = keyx.Text
waktuElgamal.Text = "Lama Proses Dekripsi : " sw.Start()
ax = BigInteger.ModPow(a, p - 1 - x, p) For i = 0 To h - 1
For j = 0 To w - 1
m = gbr_Elgamal.GetPixel(j, i).R bR = m * ax Mod p
If bR Mod 257 = 256 Then bR = 255
(4)
m = gbr_Elgamal.GetPixel(j, i).G bG = m * ax Mod p
If bG Mod 257 = 256 Then bG = 255
End If
m = gbr_Elgamal.GetPixel(j, i).B bB = m * ax Mod p
If bB Mod 257 = 256 Then bB = 255
End If
gbr_Asli.SetPixel(j, i, Color.FromArgb(255, bR, bG, bB)) Next
Next
PictureBox4.Image = gbr_Asli
Dim mse As Double = hitungMSE(PictureBox3.Image, PictureBox4.Image) MSEelgamal.Text = Math.Round(mse, 4)
LDekrip_Elgamal.Text = gbr_Asli.Width PDekrip_Elgamal.Text = gbr_Asli.Height sw.Stop()
Dim detik As Double
detik = Math.Round(sw.ElapsedMilliseconds / 1000, 3)
waktuElgamal.Text += sw.ElapsedMilliseconds.ToString() + " ms / " + detik.ToString() + " s"
MessageBox.Show("Proses Dekripsi telah selesai", "Dekripsi",
MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub
Function hitungMSE(ByVal imageAsli As Bitmap, ByVal imageHasil As Bitmap) As Double
Dim sum As UInt64 = 0
Dim r1, r2, g1, g2, b1, b2 As Double Dim MSE As Double
For i = 0 To imageAsli.Height - 1 For j = 0 To imageAsli.Width - 1 r1 = imageAsli.GetPixel(j, i).R r2 = imageHasil.GetPixel(j, i).R sum += Math.Pow(r1 - r2, 2) g1 = imageAsli.GetPixel(j, i).G g2 = imageHasil.GetPixel(j, i).G sum += Math.Pow(g1 - g2, 2) b1 = imageAsli.GetPixel(j, i).B b2 = imageHasil.GetPixel(j, i).B sum += Math.Pow(b1 - b2, 2) Next
Next
MSE = sum / (imageAsli.Height * imageAsli.Width) Return MSE
End Function
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
keyp.Text =
Application.OpenForms("Form2").Controls("GroupBox2").Controls("GroupBox4").Cont rols("keyp").Text
keya.Text =
Application.OpenForms("Form2").Controls("GroupBox2").Controls("GroupBox4").Cont rols("keya").Text
(5)
keyx.Text =
Application.OpenForms("Form2").Controls("GroupBox2").Controls("GroupBox4").Cont rols("keyx").Text
Catch ex As Exception
End Try
End Sub
Private Sub btnKunci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKunci.Click
If txtZ0.Text <> "" Then
Dim z0 As Integer = txtZ0.Text Form1.getKunci(z0)
txtKunci.Text = Form1.strKunci Else
MessageBox.Show("Masukkan Kunci Playfair") End If
End Sub End Class
(6)