IMPLEMENTASI ALGORITMA KRIPTOGRAFI MASSEY OMURA
DENGAN TEKNIK STEGANOGRAFI KOMBINASI
END OF FILE (EOF) DAN FIRST OF FILE (FOF) UNTUK KEAMANAN DATA
SKRIPSI
NADYA SORAYA HARDIYANA 091401077
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI ALGORITMA KRIPTOGRAFI MASSEY OMURA
DENGAN TEKNIK STEGANOGRAFI KOMBINASI
END OF FILE (EOF) DAN FIRST OF FILE (FOF) UNTUK KEAMANAN DATA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
NADYA SORAYA HARDIYANA 091401077
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA KRIPTOGRAFI
MASSEY OMURA DENGAN TEKNIK
STEGANOGRAFI KOMBINASI END OF FILE
(EOF) DAN FIRST OF FILE (FOF) UNTUK KEAMANAN DATA
Kategori : SKRIPSI
Nama : NADYA SORAYA HARDIYANA
Nomor Induk Mahasiswa : 091401077
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 17 Desember 2013
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Herriyance, ST. M.Kom Maya Silvi Lydia, B.Sc, M.Sc NIP. 198010242010121002 NIP. 197401272002122001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
IMPLEMENTASI ALGORITMA KRIPTOGRAFI MASSEY OMURA DENGAN TEKNIK STEGANOGRAFI KOMBINASI
END OF FILE (EOF) DAN FIRST OF FILE (FOF) UNTUK KEAMANAN DATA
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 17 Desember 2013
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT, yang hanya dengan rahmat dan izin-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembanding.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing serta Dosen Pembimbing Akademik.
5. Bapak Herriyance, ST, M.Kom selaku Dosen Pembimbing yang telah membimbing dan memberikan kritik serta sarannya dalam penyempurnaan skripsi ini.
6. Ibu Dian Rachmawati S.Kom, M.Kom selaku Dosen Pembanding yang telah memberikan kritik dan sarannya dalam penyempurnaan skripsi ini.
7. Bapak M. Andri Budiman, ST, M.CompSc, MEM selaku Dosen S-1 Ilmu Komputer yang telah berkenan membimbing dan memberikan kritik serta saran kepada penulis.
8. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruh tenaga pengajar dan pegawai di Program Studi S1Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara.
9. Ayahanda H. Suhardi dan Ibunda Mursiah Nasution, serta kakak-kakak tersayang Ade Rahmi Fadilah, Dewi Kurnia, Rika Mahardika, Bella Almeida Fuaddhilah, Abangda Muhammad Hidayat Wibowo yang selalu memberikan kasih sayang, do’a serta dukungannya kepada penulis.
11. Abangda Muhammad Ridho Nasution, S.Kom yang selalu memberikan semangat, do’a dan perhatiannya kepada penulis.
12. Rekan-rekan S-1 Ilmu Komputer Stambuk 2009, khususnya Pocut Rizky Azhari, Fithri Rizqi Khairani Nasution, Dewi Ayu Pratami, Lidya Andiny Nasution, Nurul Khairina, dan Ismail Fata Lubis yang selalu memberikan do’a, semangat, bantuan, kritik dan saran kepada penulis selama proses penyelesaian skripsi ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Medan, 17 Desember 2013
ABSTRAK
Kemudahan yang dihasilkan dari perkembangan teknologi saat ini, ternyata menimbulkan masalah lain dalam keamanan pesan, seperti jalur pendistribusian kunci yang menjadi tidak aman. Keamanan pesan dapat dilakukan melalui kriptografi yaitu dengan cara mengacak pesan, sedangkan melalui steganografi dengan cara menyembunyikan pesan. Konsep kriptografi dan steganografi dapat dikombinasikan sehingga menghasilkan sistem keamanan pesan yang lebih baik. Dalam penelitian ini digunakan algoritma kriptografi Massey-Omura yang merupakan pengembangan dari
Three-Pass Ptotocol yaitu suatu kerangka kerja yang memungkinkan tidak ada proses distribusi kunci sehingga dapat mengurangi terjadinya kebocoran pesan. Tahap pertama yaitu dengan membangkitan bilangan prima menggunakan metode Fermat’s Little Theorem dan melakukan pencarian bilangan relatif prima menggunakan algoritma Euclidean GCD. Selanjutnya pesan teks yang berformat *.txt di enkripsi dan menghasilkan ciphertext yang kemudian akan disembunyikan pada citra bitmap berformat *.bmp dengan teknik steganografi kombinasi metode End Of File dan First Of File yaitu dengan menyisipkan pesan pada baris awal dan akhir dari matriks pixel
suatu citra. Proses penyembunyian pesan (embedding) pada cover image
menghasilkan stego image yang selanjutnya akan melalui proses extracting untuk mendapatkan pesan yang tersembunyi (ciphertext) dan kemudian akan di dekripsi sehingga mendapatkan plaintext semula.
IMPLEMENTATION OF MASSEY OMURA’S CRYPTOGRAPHY ALGORITHM WITH STEGANOGRAPHY TECHNIQUE COMBINATION OF “END OF FILE” AND “FIRST OF FILE”
FOR DATA SECURITY
ABSTRACT
Ease resultant from developments of current’s technology actually causes other problems in security of message like key distribution channels which become unsafe. security message can be done through a cryptography by randomizing message, while through a steganography by hiding message. Concepts of cryptography and steganography can be combined to produce a better message security system. In this research is used Massey Omura algorithm which is the development of Three Pass Protocol namely framework which allow there is no process of key distribution so as to reduce the occurrence of message leaks. The first stage is generating primes using a method of Fermat’s Little Theorem and searching relatively prime number using
Euclidean GCD. Furthermore the text message in format *.txt will encrypted and produce a ciphertext which will be hidden in the bitmap image in format *.bmp by steganography technique combination of End Of File and First Of File with inserting a message at the beginning and end of matrix pixel of image. The process of hiding message(embedding) in cover image produced stego image and through process of
extracting to get the hidden message (ciphertext) which will decrypted and getting the
plaintext.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran xiv
Bab I 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 4
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Bab II Landasan Teori
2.1 Kriptografi 6
2.1.1 Definisi Kriptografi 6
2.1.2 Enkripsi dan Dekripsi 6
2.1.3 Sejarah Kriptografi 7
2.1.4 Jenis Algoritma Kriptografi 8
2.1.5 Tujuan Kriptografi 9
2.2 Three Pass Protocol 10
2.3 Aritmatika Modulo 11
2.4 Greatest CommonDivisor (GCD) 11
2.5 Algoritma Euclidean 12
2.6 Relatif Prima 12
2.7 Inversi Modulo 13
2.8 Fermat Little’s Theorem 13
2.9 Algoritma Massey Omura 14
2.10 Steganografi 15
2.10.1 Definisi Steganografi 15 2.10.2 Sejarah Steganografi 17 2.10.3 Teknik Steganografi Kombinasi End Of File dan First Of File 18
2.11 Citra Bitmap 18
Bab III Analisis dan Perancangan
3.1 Analisis Sistem 21
3.1.1 Analisis Masalah 21
3.2 Perancangan Sistem 56
3.2.1 Home 56
3.3.1 Tahapan Sistem Algoritma Kriptografi Massey Omura 65 3.3.2 Tahapan Sistem Teknik Steganografi Kombinasi End Of File 69 dan First Of File
Bab IV Implementasi dan Pengujian
4.1 Implementasi Sistem 73
4.1.1 Form home_application 73
4.1.2 Form About 74
4.1.3 Form Help 74
4.1.5 Form Encryption2(Recipient) 76 4.1.6 Form Decryption1(Sender) 76
4.1.7 Form Decryption2(Recipient) 77
4.2 Pengujian Sistem 78
4.2.1 Pengujian Proses Encryption1 78
4.2.2 Pengujian Proses Encryption2 84
4.2.3 Pengujian Proses Decryption1 88
4.2.4 Pengujian Proses Decryption2 90
4.2.5 Hasil Pengujian Proses Embedding dan Extracting 94
Bab V Kesimpulan dan Saran
5.1 Kesimpulan 96
5.2 Saran 97
DAFTAR TABEL
Nomor
Tabel Nama Tabel Halaman
2.1
Spesifikasi Use Case untuk Prime Generator
Spesifikasi Use Case untuk Key Generator A Spesifikasi Use Case untuk Encryption1
Spesifikasi Use Case untuk Embedding1
Spesifikasi Use Case untuk Extracting1
Spesifikasi Use Case untuk Key Generator B Spesifikasi Use Case untuk Encryption2
Spesifikasi Use Case untuk Embedding2
Spesifikasi Use Case untuk Extracting2
Spesifikasi Use Case untuk Decryption1
Spesifikasi Use Case untuk Embedding3
Spesifikasi Use Case untuk Extracting3
Spesifikasi Use Case untuk Decryption2
Kode ASCII
Perhitungan nilai dA Perhitungan nilai dB
Matriks Citra Bewarna 4 x 6 pixel
Matriks Citra yang Disisipi Pesan dengan Metode End Of File
Matriks Citra yang Disisipi Pesan dengan Metode First Of File
Matriks Citra yang Disisipi Pesan dengan Kombinasi Metode
End Of File dan First Of File
Hasil Enkripsi Ciphertext1 untuk Plaintext ‘NADYA’ Hasil Ciphertext2 dari proses Encryption2
Hasil Ciphertext3 dari proses Decryption1
Hasil Nilai Plaintext Awal dari Proses Decryption2
Hasil Pengujian Proses Embedding dan Extracting Berdasarkan Implementasi Sistem
DAFTAR GAMBAR
Nomor
Gambar Nama Gambar Halaman
2.1
Pesan Ditulis Secara Horizontal Baris per Baris Skema Kriptografi Simetri
Skema Kriptografi Asimetri Skema Three Pass Protocol
Skema Prosedur Pengiriman Pesan Alice-Bob Model Dasar Embedding pada Steganografi Contoh Citra Bitmap
Diagram Ishikawa Analisis Masalah
Use Case Diagram Sistem
Activity Diagram untuk Prime Generator Activity Diagram untuk Key Generator A
Activity Diagram untuk Encryption1 Activity Diagram untuk Embedding1 Activity Diagram untuk Extracting1 Activity Diagram untuk Key Generator B
Activity Diagram untuk Encryption2 Activity Diagram untuk Embedding2 Activity Diagram untuk Extracting2 Activity Diagram untuk Decryption1 Activity Diagram untuk Embedding3 Activity Diagram untuk Extracting3 Activity Diagram untuk Decryption2 Flowchart Keseluruhan Sistem
FlowchartPrime Generator FlowchartKey Generator A
3.35
Hasil Plaintext yang dipilih Hasil Ciphertext1
Pop-up Windows Open Image
Hasil Pemilihan Cover Image1
Hasil Embedding1 dan Message box Informasi “Embedding Succeed”
Pop-up Windows Save Stego Image Message Box “Stego Image Saved”
Message Box Informasi “No Hidden Message” Hasil Proses Extract1
Hasil Generate Key (Recipient) dan Encryption2
Hasil Embedding2
Hasil Extracting2 dan Decryption1 Hasil Embedding3
Hasil Extracting3
Hasl Decryption2
Pop-up Windows Save File Message Box Warning informasi “Message is over limit of image pixel”
DAFTAR LAMPIRAN
Halaman
A. Listing Program 100
ABSTRAK
Kemudahan yang dihasilkan dari perkembangan teknologi saat ini, ternyata menimbulkan masalah lain dalam keamanan pesan, seperti jalur pendistribusian kunci yang menjadi tidak aman. Keamanan pesan dapat dilakukan melalui kriptografi yaitu dengan cara mengacak pesan, sedangkan melalui steganografi dengan cara menyembunyikan pesan. Konsep kriptografi dan steganografi dapat dikombinasikan sehingga menghasilkan sistem keamanan pesan yang lebih baik. Dalam penelitian ini digunakan algoritma kriptografi Massey-Omura yang merupakan pengembangan dari
Three-Pass Ptotocol yaitu suatu kerangka kerja yang memungkinkan tidak ada proses distribusi kunci sehingga dapat mengurangi terjadinya kebocoran pesan. Tahap pertama yaitu dengan membangkitan bilangan prima menggunakan metode Fermat’s Little Theorem dan melakukan pencarian bilangan relatif prima menggunakan algoritma Euclidean GCD. Selanjutnya pesan teks yang berformat *.txt di enkripsi dan menghasilkan ciphertext yang kemudian akan disembunyikan pada citra bitmap berformat *.bmp dengan teknik steganografi kombinasi metode End Of File dan First Of File yaitu dengan menyisipkan pesan pada baris awal dan akhir dari matriks pixel
suatu citra. Proses penyembunyian pesan (embedding) pada cover image
menghasilkan stego image yang selanjutnya akan melalui proses extracting untuk mendapatkan pesan yang tersembunyi (ciphertext) dan kemudian akan di dekripsi sehingga mendapatkan plaintext semula.
IMPLEMENTATION OF MASSEY OMURA’S CRYPTOGRAPHY ALGORITHM WITH STEGANOGRAPHY TECHNIQUE COMBINATION OF “END OF FILE” AND “FIRST OF FILE”
FOR DATA SECURITY
ABSTRACT
Ease resultant from developments of current’s technology actually causes other problems in security of message like key distribution channels which become unsafe. security message can be done through a cryptography by randomizing message, while through a steganography by hiding message. Concepts of cryptography and steganography can be combined to produce a better message security system. In this research is used Massey Omura algorithm which is the development of Three Pass Protocol namely framework which allow there is no process of key distribution so as to reduce the occurrence of message leaks. The first stage is generating primes using a method of Fermat’s Little Theorem and searching relatively prime number using
Euclidean GCD. Furthermore the text message in format *.txt will encrypted and produce a ciphertext which will be hidden in the bitmap image in format *.bmp by steganography technique combination of End Of File and First Of File with inserting a message at the beginning and end of matrix pixel of image. The process of hiding message(embedding) in cover image produced stego image and through process of
extracting to get the hidden message (ciphertext) which will decrypted and getting the
plaintext.
BAB 1 PENDAHULUAN
1.1. Latar belakang
Seiring berkembangnya zaman, diikuti juga dengan perkembangan teknologi sampai saat ini, sebagian besar masyarakat melakukan pertukaran atau saling membagi informasi dengan mudah. Seperti informasi penting suatu perusahaan ataupun individu yang menuntut keamanan atau kerahasiaan sehingga informasi tersebut tidak diketahui pihak luar. Untuk itu, dikembangkanlah ilmu yang mempelajari tentang pengamanan informasi tersebut yang dikenal dengan Kriptografi.
Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari suatu tempat ke tempat lain[9]. Konsep umum kriptografi yaitu enkripsi dan dekripsi. Dimana enkripsi adalah proses mengubah plaintext (informasi) menjadi ciphertext (pesan dalam bentuk rahasia). Sedangkan dekripsi adalah proses mengembalikan ciphertext pada proses enkripsi menjadi
plaintext semula. Kriptografi memiliki berbagai macam algoritma, salah satunya adalah algoritma Massey Omura. Pada algoritma Massey Omura sekuritas terletak pada kesulitan logaritma diskrit dan algoritma ini merupakan pengembangan dari
Three Pass Protocol, yaitu melakukan suatu kerangka kerja yang memungkinkan satu pihak untuk aman mengirim pesan ke pihak kedua tanpa perlu untuk bertukar atau mendistribusikan kunci enkripsi. Penelitian terdahulu oleh Muhammad Reza dilakukan proses enkripsi-dekripsi pesan menggunakan Massey Omura
Pengetahuan dibidang kriptografi semakin berkembang, dan menimbulkan pihak-pihak yang berusaha mengganggu sistem keamanan kriptografi. Seperti yang diketahui, kriptografi melakukan pengamanan dengan mengacak pesan agar pihak luar tidak mengerti pesan tersebut, namun pihak luar kemudian memiliki cara untuk mengganggu sistem keamanan yaitu dengan merusak pesan sehingga pesan tersebut tidak sampai secara utuh. Maka untuk mengatasi keadaan ini, digunakan teknik steganografi.
Steganografi secara khusus adalah suatu ilmu, teknik dan seni bagaimana menyembunyikan data rahasia didalam sebuah media digital sehingga keberadaan data rahasia tersebut tidak diketahui oleh orang lain[6]. Proses Steganografi yaitu melakukan penyembunyian data (embedding) pada suatu media, kemudian melalui proses ekstraksi (extracting), dapat menampilkan data asli yang disembunyikan. Steganografi juga memiliki berbagai teknik penyembunyian, salah satunya adalah Teknik End Of file (EOF). Telah dilakukan penelitian oleh Krisnawati yang mengimplementasikan teknik steganografi Least Significant Bit (LSB) dan End Of file
(EOF) untuk menyisipkan teks ke dalam citra grayscale. Metode LSB bekerja dengan mengganti bit terakhir kode biner citra dengan kode biner pesan, sedangkan metode EOF bekerja dengan dengan menambahkan teks sebagai nilai derajat keabuan citra pada akhir citra. Kelebihan metode LSB adalah ukuran citra yang mengandung pesan tidak berubah sedangkan metode EOF mempunyai kelebihan dapat menyisipkan pesan dalam jumlah yang tidak terbatas[4].
Walaupun steganografi sering dikaitkan dengan kriptografi, sebenarnya kedua ilmu ini memiliki metode yang berbeda. Kriptografi mengacak pesan asli menjadi tidak dimengerti dan menimbulkan kecurigaan, sedangkan steganografi melakukan penyembunyian pesan di dalam file sehingga tidak diketahui.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas, maka yang menjadi rumusan masalah adalah bagaimana penerapan algoritma kriptografi Massey Omura dengan teknik steganografi kombinasi End Of file dan First Of File dalam pengamanan pesan.
1.3 Batasan Masalah
Batasan masalah dalam penelitian adalah sebagai berikut :
1. File citra yang digunakan untuk menyisipkan pesan adalah file bitmap dengan format *.bmp dan maksimal ukuran citra 2592 x 1944 pixel.
2. File yang disisipkan adalah pesan teks dengan format *.txt atau pesan teks yang diinputkan langsung oleh user serta panjang teks terbatas hanya sampai ukuran ( (2592 x 3 x 2) – 2 ).
3. Metode yang digunakan untuk membantu membangkitkan bilangan prima adalah metode Fermat’s Little Theorem.
4. Algoritma yang digunakan untuk mencari dua buah bilangan bulat yang relatif prima adalah Euclidean GCD.
5. Karakter yang digunakan berdasarkan tabel ASCII 256.
6. Bahasa pemrograman yang digunakan adalah Microsoft Visual Studio 2010 (C#).
1.4 Tujuan Penelitian
1.5 Manfaat penelitian
Manfaat dari penelitian ini adalah, melalui implementasi algoritma kriptografi Massey Omura dengan teknik steganografi kombinasi End Of file dan First Of File, maka pesan rahasia yang di distribusikan akan terjaga keamananya.
1.6 Metode Penelitian
Tahapan yang dilakukan dalam penelitian ini adalah:
1. Studi Literatur
Pada tahap ini dilakukan pencarian dan pengumpulan referensi yang berhubungan dengan algoritma Massey-Omura dan teknik steganografi kombinasi End Of file serta First Of File. Baik dalam bentuk buku ataupun e-book, jurnal, dan makalah yang di dapat dari internet.
2. Analisis dan Perancangan Sistem
Pada tahap ini dilakukan perancangan flowchart, interface dan perancangan sistem yang menggunakan algoritma Massey-Omura dan teknik steganografi kombinasi End Of file serta First Of File sesuai dengan tujuan dan batasan masalah.
3. Implementasi Sistem
Pada tahap ini akan dibuat sistem dengan melakukan pengkodean (coding) pada bahasa pemrograman Microsoft Visual Studio (C#) untuk implementasi algoritma Massey-Omura dan teknik steganografi kombinasi End Of file serta
First Of File.
4. Pengujian Sistem
Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibangun untuk mengetahui kesalahan ataupun kekurangan di dalam sistem berdasarkan keberhasilan proses enkripsi-dekripsi dan keberhasilan proses penyisipan dan ekstraksi.
5. Dokumentasi
1.7 Sistematika Penulisan
Untuk membuat penulisan lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, yaitu sebagai berikut :
BAB 1 : PENDAHULUAN
Pada bab ini berisi penjelasan mengenai latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
BAB 2 : LANDASAN TEORI
Pada bab ini berisi penjelasan mengenai teori yang berhubungan dengan penelitian, diantaranya yaitu teori kriptografi, algoritma Massey-Omura, teori steganografi, metode End Of file dan First Of File dan teori lainnya yang berkaitan.
BAB 3 : ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini berisi penjelasan mengenai analisis masalah dan segala hal yang berkaitan dengan sistem yang dibangun, serta menjelaskan cara kerja sistem, kemudian dilanjutkan dengan perancangan antarmuka sistem.
BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada bab ini berisi penjelasan mengenai implementasi sistem dengan menggunakan bahasa pemrograman Microsoft Visual Studio 2010 (C#) berdasarkan tahapan perancangan sistem, kemudian dilakukan pengujian sistem untuk mengetahui keberhasilan dan kesesuaian sistem dengan perancangan yang dilakukan sebelumnya.
BAB 5 : KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret
(rahasia) dan graphia berarti writing (tulisan)[10].
Beberapa definisi Kriptografi yaitu, Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the art and science of keeping message secure). Sebagai pembanding, terdapat juga definisi kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi[12].
Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi[11].
2.1.2 Enkripsi dan Dekripsi
Enkripsi (encryption) adalah proses yang dilakukan untuk mengamankan sebuah pesan (disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext).
Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption)[14].
Enkripsi, dekripsi dan kunci tersebut diatas merupakan dasar penting dari algoritma kriptografi. Algoritma kriptografi disebut juga cipher yaitu fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi dapat dimisalkan P menyatakan plainteks dan C
menyatakan chiperteks, maka fungsi enkripsi E memetakan P ke C,
E(P) = C ………. (2.1)
Dan fungsi dekripsi D memetakan C ke P,
D(C) = P ………. (2.2)
Pada Gambar 2.1 menjelaskan lebih lengkap tentang proses enkripsi-dekripsi dalam kriptografi.
Gambar 2.1 Proses Enkripsi Dekripsi[12]
2.1.3 Sejarah Kriptografi
Kriptografi mempunyai sejarah yang panjang, sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana[12].
Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara Sparta di Yunani permulaan tahun 400 SM. Mereka menggunakan alat yang bernama
scytale (Gambar 2.2a). Scytale terdiri dari sebuah kertas panjang dan daun papyrus
yang dililitkan pada sebuah silinder dari diameter tertentu. Pesan ditulis secara
Enkripsi
Plainteks Dekripsi
Cipherteks
Plainteks
horizontal, baris per baris (Gambar 2.2b). Bila pita dilepaskan, maka huruf-huruf di dalamnya menjadi tersusun acak membentuk pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali kertas tersebut ke silinder yang sama[12].
(a) (b)
Gambar 2.2. (a) Sebuah scytale;
(b) Pesan ditulis secara horizontal, baris per baris[12]
2.1.4 Jenis Algoritma Kriptografi
Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis, yaitu sebagai berikut[6] :
1. Algoritma Simetris
Gambar 2.3 Skema kriptografi simetri [12]
2. Algoritma Asimetri
Berbeda dengan algoritma kunci simetris, kriptografi algoritma asimetris mempunyai dua kunci yang berbeda pada proses enkripsi dan dekripsinya (Gambar 2.4). Nama lain dari algoritma ini adalah kriptografi kunci publik (public key cryptography). Kunci enkripsi pada kriptografi ini tidak bersifat rahasia (publik), sedangkan kunci untuk dekripsi bersifat rahasia (privat). Algoritma kriptografi yang asimetris seperti algoritma RSA, ElGamal,
Massey-Omura dll.
Gambar 2.4 Skema Kriptografi Asimetri [12]
2.1.5 Tujuan Kriptografi
Adapun empat tujuan mendasar dari kriptografi adalah[12]:
1. Confidentiality, adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. Data integrity, adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.
4. Non-repudiation, adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
2.2 Three-Pass Protocol
Dalam kriptografi, Three-Pass Protocol dalam pengiriman pesan merupakan suatu kerangka kerja yang memungkinkan satu pihak untuk aman mengirim pesan ke pihak kedua tanpa perlu untuk bertukar atau mendistribusikan kunci enkripsi. Disebut dengan Three-Pass Protocol karena pengirim dan penerima pesan melakukan pertukaran sebanyak tiga tahap untuk mengenkripsi pesan tersebut. Three-Pass Protocol pertama kali dikembangkan oleh Adi Shamir pada sekitar tahun 1980. Konsep dasar Three-Pass Protocol adalah bahwa masing-masing pihak memiliki kunci enkripsi pribadi dan sebuah kunci dekripsi pribadi. Kedua belah pihak menggunakan kunci mereka masing-masing untuk mengenkripsi pesan dan kemudian untuk mendekripsi pesan[5].
Gambar 2.5 Skema Three-Pass Protocol
Cara kerja skema Three-Pass Protocol [5]:
1. Pengirim (Alice) memilih sebuah kunci sandi pribadi s dan kunci dekripsi
t. Pengirim pesan mengenkripsi pesan m dengan kunci s dan mengirimkan pesan terenkripsi E(s, m) untuk penerima (Bob) .
3. Pengirim (Alice) mendekripsi pesan kedua dengan kunci t. Karena dari sifat komutatif dimana D(t, E(r, E(s,m))) = E(r,m) merupakan pesan yang dienkripsi dengan hanya menggunakan private key penerima (Bob). Lalu pengirim mengirimkan pesan tersebut kepada penerima (Bob) dan di dekripsi dengan D(q, E(r,m)) = m yaitu sebagai pesan asli.
2.3 Aritmatika Modulo
Aritmatika modulo sangat berperan dalam kriptografi karena banyak digunakan dalam algoritma enkripsi, baik untuk enkripsi simetris maupun untuk public key cryptography.[11]
Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m memberikan sisa jika a dibagi dengan m. Bilangan m disebut modulo, dan hasil aritmatika modulo m terletak di dalam himpunan {0,1,2,…,m-1}. Sehingga dinotasikan [12] :
a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m. Contoh:
23 mod 5 = 3 (23 = 5 x 4 + 3)
2.4 Greatest Common Divisor (GCD)
Greatest Common Divisor (GCD) disebut juga Pembagi Bersama Terbesar (PBB). Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Maka GCD dari a dan b
adalah bilangan bulat terbesar d sedemikian sehingga d | a dan d | b. Dalam hal ini kita nyatakan bahwa GCD(a,b) = d [12].
Contoh :
Faktor pembagi 45: 1,3,5,9,15,45 Faktor pembagi 36: 1,2,3,4,9,12,18,36
2.5 Algoritma Euclidean
Algoritma Euclidean adalah algoritma untuk mencari Pembagi Bersama Terbesar (PBB atau GCD) dari dua buah bilangan bulat. Euclid, penemu algoritma Euclidean, adalah seorang matematikawan Yunani yang menuliskan algoritmanya tersebut dalam bukunya yang terkenal, Element [12].
Diberikan dua buah bilangan bulat tak-negatif m dan n ( m ≥ n ). Algoritma
Euclidean berikut mencari pembagi bersama terbesar dari m dan n[12].
Algoritma Euclidean[12]:
1. Jika n = 0maka m adalah PBB (m,n); stop. Kalau tidak (yaitu n ≠0) lanjutkan ke langkah 2. 2. Bagilah m dengan n dan misalkan r adalah sisanya
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.
Contoh:
Misalkan m = 88 , n = 36 dan dipenuhi syarat ( m ≥ n ), maka PBB(88,36) dihitung dengan cara sebagai berikut:
88 mod 36 = 16 36 mod 16 = 4
16 mod 4 = 0 (STOP)
Sisa pembagian terakhir sebelum 0 adalah 4, maka PBB (88,36) = 4
2.6 Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Jika a dan
b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga[12]
ma + nb = 1 ………. (2.3) Contoh:
2.7 Inversi Modulo
Jika a dan m relatif prima dan m > 1, maka dapat diketahui inversi dari a modulo m. Inversi dari a (mod m), disebut juga inversi perkalian, adalah bilangan bulat �−1 sedemikian sehingga[12].
��−1 ≡ 1 (mod �) ………. (2.4)
Contoh :
Berapa inversi modulo dari 5 (mod 12) ? Diketahui m = 5 , n = 12
Tabel 2.1 Proses Perhitungan Invers Modulo
�−1 �−1 x �(����)
1 1 x 5 (mod 12) = 5 2 2 x 5 (mod 12) = 10 3 3 x 5 (mod 12) = 3 4 4 x 5 (mod 12) = 8 5 5 x 5 (mod 12) = 1
Maka invers modulo dari 5 (mod 12) adalah �−1= 5
2.8 Fermat’s Little Theorem
Pierre De Fermat lahir di Beaumont-de-Lomagne, Tarn-et-Garonne, Prancis. Ia memberikan banyak sekali kontribusi pada ilmu teori bilangan. Salah satu teoremanya yang terkenal adalah Fermat’s Little Theorem. Teorema ini pertama kali dinyatakannya pada sebuah surat untuk temannya, Frencle de Bessy, pada tanggal 18 Oktober 1640 [3].
Secara formal, Fermat’s Little Theorem ini dapat ditulis[3]:
Misalkan a suatu bilangan bulat positif dan p suatu bilangan prima, maka Untuk ��� (�,�) = 1, berlaku
Contoh, kalkulasikan 258 (mod 19). Karena 19 adalah bilangan prima dan 2 tidak dapat dibagi 19, maka teorema ini dapat digunakan untuk mengkalkulasi
218≡ 219−1 (mod 19) ≡ 1 (mod 19) Jadi
258 = (218)3 x (24)≡ 13 x 24≡ 16 (mod 19)
Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptografi, peran terpenting dari Fermat's little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris[11].
2.9 Algoritma Massey-Omura
Massey-Omura Cryptosystem adalah salah satu cryptosystem kunci publik yang berdasarkan pada logaritma diskrit. Diusulkan oleh James Massey dan Jim K. Omura pada tahun 1982 sebagai pengembangan atas Three Pass Protocol oleh Shamir pada tahun 1980, dimana pengirim dan penerima tidak bertukar kunci namun protocol ini memerlukan pengirim dan penerima yang memiliki dua kunci untuk mengenkripsi dan mendekripsi pesan[16].
Berikut cara kerja dari Algoritma Massey-Omura[5]:
a. Semua pengguna telah mensepakati sebuah bilangan prima p berdasarkan
Fermat’s Little Theorem.
b. Setiap pengguna secara rahasia memilih acak bilangan bulat e antara 0
hingga p–1 berdasarkan GCD (e, p–1) = 1, dan menghitung
d =�−1 mod (p–1) ………. (2.6) dengan menggunakan algoritma Euclidean GCD.
c. Alice ingin mengirim pesan M yang aman untuk Bob, kemudian mereka ikuti prosedur berikut :
Alice Bob
Bob
Bob Alice
Alice
2. Pada saat menerima pesan, Bob menambahkan kunci lagi yaitu �� sehingga mengirimkan pesan ����� kembali ke Alice (perhatikan bahwa saat ini, Bob tidak bisa membaca pesan Alice M).
3. Setelah menerima pesan dari Bob, Alice melakukan dekripsi dengan memakai �� sehingga didapat ������� = ��� kemudian dikirim kembali kepada Bob.
4. Bob menerima ��� dan melakukan dekripsi pesan sehingga didapat
����� = M, dan terbukalah pesan asli Alice yaitu M.
Gambar 2.6 Skema Prosedur Pengiriman Pesan Alice-Bob [5]
Keterangan:
M = Pesan yang akan dikirimkan
�� = Kunci enkripsi Alice
�� = Kunci enkripsi Bob
�� = Kunci dekripsi Alice
�� = Kunci dekripsi Bob
2.10 Steganografi
2.10.1 Definisi Steganografi
data digital dalam file komputer. Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi[1].
Steganografi sering berkaitan dengan kriptografi. Namun terdapat perbedaan mendasar antara steganografi dengan kriptografi terletak pada proses penyembunyian data dan hasil akhir dari proses tersebut. Kriptografi melakukan proses pengacakan data asli sehingga dihasilkan data terenkripsi yang benar-benar acak dan berbeda dengan aslinya. Sementara itu steganografi menyembunyikan data dalam data lain dengan cara menumpanginya tanpa mengubah data yang ditumpanginya tersebut sehingga tampilan data tetap terlihat sama[10].
Gambar 2.7 Model dasar embedding pada steganografi [6]
Keterangan:
�� = fungsi steganografi “embedding” ��−1 = fungsi steganografi “extracting”
Sampul(cover) = cover data sebagai media untuk penyisipan pesan Isi pesan = pesan yang akan disisipkan
Key = parameter ��
media stego = cover data dengan pesan yang telah disisipkan
Kriteria yang harus diperhatikan dalam penyembunyian pesan adalah[12]:
a. Imperceptibility
Keberadaan pesan rahasia tidak dapat dipersepsi oleh inderawi. Misalnya jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext
sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext
berupa audio, maka indera telinga tidak dapat mendeteksi perubahan pada
audio stegotext-nya. b. Fidelity
Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan tersebut tidak dapat dipersepsi oleh inderawi. Misalnya jika
covertext berupa citra, maka penyisipan pesan membuat citra stegotext
sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext
berupa audio, maka audio stegotext tidak rusak dan indera telinga tidak dapat mendeteksi perubahan tersebut.
c. Recovery
Pesan yang disembunyikan harus dapat diungkap kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu pesan rahasia di dalam stegotext harus dapat diambil kembali untuk digunakan lebih lanjut.
2.10.2 Sejarah Steganografi
2.10.3 Teknik Steganografi Kombinasi End Of File dan First Of File
Teknik EOF atau End Of File merupakan salah satu teknik yang digunakan dalam steganografi. Teknik ini digunakan dengancara menambahkan data atau pesan rahasia pada akhir file citra[9]. Untuk mengenal data yang disisipkan pada akhir file, diperlukan suatu tanda pengenal atau simbol pada awal dan akhir data yang akan disisipkan[8]. Dengan metode ini pesan yang disisipkan jumlahnya tak terbatas. Akan tetapi efek sampingnya adalah ukuran file menjadi lebih besar dari ukuran semula[4]. Sedangkan untuk teknik FOF atau First Of File merupakan kebalikannya, yaitu data atau pesan rahasia ditambahkan pada awal file.
2.11 Citra Bitmap
Citra bitmap sering disebut juga dengan citra raster. Dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain[15]. File bitmap merupakan format file citra yang tidak mengalami proses kompresi sehingga kualitas gambar yang dihasilkan baik daripada file citra dengan format lain.
Gambar 2.8 Contoh Citra Bitmap
yang terdiri dari nilai red, green dan blue (RGB). Untuk mendapatkan nilai RGB setiap pixel dilakukan dengan membaca nilai pixel dan mengkonversikan dari nilai biner ke nilai desimal[8].
Terdapat beberapa format dari citra bitmap, salah satunya format .bmp merupakan format penyimpanan standar tanpa kompresi yang umum dapat digunakan untuk menyimpan citra biner hingga citra warna yang dikembangkan oleh Microsoft[13].
2.12 Penelitian Terdahulu
Berikut ini beberapa penelitian yang terkait dengan algoritma Massey- Omura dan teknik steganografi End Of File :
1. Penelitian yang dilakukan oleh Muhammad Reza, Muhammad Andri Budiman, dan Dedy Arisandi yaitu membangun sistem untuk mengenkripsi dan mendekripsi pesan teks menggunakan algoritma
Massey-Omura. Dimana Algoritma Massey-Omura ini juga membutuhkan metode The Sieve of Eratosthenes untuk membantu membangkitkan bilangan prima, algoritma Euclidean GCD untuk mencari dua buah bilangan bulat yang relatif prima dan untuk proses enkripsi menggunakan algoritma Modulo Exponential yang berfungsi menghitung nilai perpangkatan modulo bilangan besar serta algoritma
Modulo Invers untuk proses dekripsi[5].
2. Penelitian oleh Krisnawati membahas bagaimana menyisipkan teks ke dalam citra grayscale dengan menggunakan dua metode yaitu metode
mempunyai kelebihan dapat menyisipkan pesan dalam jumlah yang tidak terbatas, sedangkan kekurangannya adalah kapasitas file citra akan bertambah[4].
3. Penelitian yang dilakukan oleh Henny Wandani, mengimplementasikan Teknik steganografi End Of file dengan algoritma Rabin Public Key. Dilakukan proses enkripsi data atau pesan rahasia yang berupa data teks angka dengan jumlah maksimum yang dimasukkan adalah 24 digit angka, kemudian hasil enkripsi (ciphertext) akan disembunyikan ke dalam suatu file gambar yang berformat bitmap dengan ukuran minimum 25 x 25. Selanjutnya, dilakukan proses ekstraksi dan dekripsi ciphertext,
sehingga diperoleh kembali plaintext yang berupa data teks angka[8].
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem merupakan fase awal untuk pengembangan sistem. Tahap ini mempelajari sebuah sistem dengan menguraikan komponen-komponen di dalamnya dan bagaimana semuanya berinteraksi sehingga sistem yang dibangun dapat mencapai tujuan yang diharapkan.
3.1.1 Analisis Masalah
Perkembangan komunikasi data yang semakin pesat mendorong para pelaku dibidangnya berusaha untuk menemukan cara yang aman untuk mengirimkan suatu pesan. Salah satunya adalah dengan teknik kriptografi yang menyandikan pesan sebagai kode aneh yang membuat pihak luar penasaran dan berusaha untuk mengetahui kode tersebut[4].
Sehingga untuk meningkatkan pengamanan pesan, di lakukanlah penggabungan kriptografi dengan steganografi. Algoritma kriptografi yang digunakan adalah algoritma Massey-Omura dengan teknik steganografi yang mengkombinasikan metode End Of File dan First Of File.
Algoritma Kriptografi
Of File dan First Of File
Gambar 3.1 Diagram Ishikawa Analisis Masalah
3.1.2 Analisis Persyaratan
Analisis persyaratan merupakan tahap yang penting, yaitu menentukan persyaratan dari sistem seperti kebutuhan dari pengguna. Analisis persyaratan terbagi dua, yaitu analisis fungsional dan analisis nonfungsional
3.1.2.1Analisis Fungsional
Analisis fungsional dilakukan untuk dapat mendeskripsikan tentang aktivitas dan layanan apa saja yang harus disediakan oleh sebuah sistem. Berikut adalah aktivitas yang dapat dilakukan oleh sistem.
1. File citra yang digunakan untuk menyisipkan pesan adalah file bitmap dengan
Format *.bmp dan maksimal ukuran citra 2592 x 1944 pixel.
2. File pesan yang akan dienkripsi adalah pesan teks dengan format *.txt dan terbatas hanya sampai ( (2592 x 3 x 2) – 2 ).
3. Metode yang digunakan untuk membantu membangkitkan bilangan prima adalah metode Fermat’s Little Theorem.
4. Algoritma yang digunakan untuk mencari dua buah bilangan bulat yang relatif prima adalah Euclidean GCD.
5. Karakter yang digunakan berdasarkan tabel ASCII 256.
3.1.2.2 Analisis Nonfungsional
Analisis nonfungsional dilakukan untuk dapat mendeskripsikan mengenai fitur, karakteristik dan batasan lainnya yang menentukan kepuasan pengguna terhadap sistem.
1. Performa
Sistem yang dibangun harus dapat menunjukkan hasil dari Enkripsi-Embedding dan Dekripsi-Extracting.
2. Mudah dipelajari dan digunakan
Sistem yang akan dibangun harus memiliki tampilan yang user friendly dan juga memiliki respon yang baik dalam proses penggunaannya.
3. Hemat biaya
Sistem yang dibangun bebas digunakan dan tidak membutuhkan perangkat lain. 4. Dokumentasi
Sistem yang dibangun dapat menyimpan pesan dari hasil enkripsi sesuai algoritma kriptografi serta dapat menyimpan citra hasil penyisipan sesuai metode steganografi. 5. Manajemen kualitas
Sistem yang dibangun akan memiliki kualitas yang baik. 6. Kontrol
3.1.3 Pemodelan Persyaratan Sistem Dengan Use Case
Pada dasarnya use case adalah urutan langkah-langkah yang saling terkait untuk satu tujuan. Sedangkan use case diagram adalah suatu diagram yang menggambarkan interaksi antara sistem dengan pengguna. Pemodelan use case merupakan pemodelan yang baik untuk menentukan, mendokumentasikan dan memahami persyaratan fungsional.
Use case diawali oleh pengguna yang disebut Actor yang menginisiasi kegiatan sistem yaitu sebuah use case. Yang berperan sebagai Actor dalam sistem ini terdiri dari pengirim pesan (Sender) dan penerima pesan (Recipient). Proses yang dilakukan Sender yaitu Prime Generator, Key GeneratorA, Encryption1, Embedding1,
Extracting2, Decryption1, Embedding3. Sedangkan Recipient melakukan proses
Extracting1, Key GeneratorB, Encryption2, Embedding2, Extracting3, Decryption2.
Use Case diagram sistem ini dapat dilihat pada Gambar 3.2
System
Prime Generator
Key Generator A
Encryption 1
Embedding 1
Extracting 1
Encryption 2
Embedding 2
Extracting 2
Decryption 1
Embedding 3
Extracting 3
Decryption 2 Key Generator
B
Gambar 3.2 Use Case Diagram Sistem 3.1.3.1Spesifikasi Use Case
Spesifikasi UseCase Prime Generator dapat dilihat pada Tabel 3.1
Tabel 3.1 Spesifikasi Use CasePrime Generator
Name Prime Generator
Actors Sender
Trigger Sender memilih menu Start
Preconditions Sender mengeksekusi tombol Generate Postconditions Sender mendapatkan nilai bilangan prima p
Success Scenario 1. Sender memilih menu Start
2. Sistem menampilkan halaman Encryption 1 3. Sender mengeksekusi tombol Generate
4. Sistem membangkitkan bilangan prima p dan menampilkan nilai bilangan prima p
5. Sender dapat melihat nilai bilangan prima p
Alternative Flows Sender dapat mengeksekusi tombol Generate kembali jika sistem menampilkan nilai bilangan prima p yang tidak diinginkan
Activity Diagram untuk Prime Generator dapat dilihat pada Gambar 3.3
Sender
System
Memilih menu Start
Mengeksekusi tombol Generate
Melihat nilai bilangan prima P
Menampilkan halaman Encryption1
Gambar 3.3 Activity Diagram untuk Prime Generator
Spesifikasi Use Case Key Generator A dapat dilihat pada Tabel 3.2
Tabel 3.2 Spesifikasi Use Case untuk Key Generator A
Name Key Generator
Actors Sender
Trigger Sender memiliki bilangan prima p
Preconditions Sender mengeksekusi tombol Generate
Postconditions Sender mendapatkan nilai kunci Enkripsi eA dan nilai kunci Dekripsi dA
Success Scenario 1. Sender memiliki bilangan prima p yang sesuai 2. Sender mengeksekusi tombol Generate
3. Sistem membangkitkan kunci enkripsi eA dan kunci dekripsi dA dan menampilkannya
4. Sender dapat melihat nilai eA dan dA
Alternative Flows
-Activity Diagram untuk Key Generator A yang dapat dilihat pada Gambar 3.4
Sender
System
Memiliki bilangan P
Mengeksekusi tombol Generate Membangkitkan kunci enkripsi eA dan
kunci dekripsi dA
Menampilkan eA dan dA Melihat nilai eA dan dA
Spesifikasi Use Case Encryption1 dapat dilihat pada Tabel 3.3
Tabel 3.3 Spesifikasi Use Case untuk Encryption1
Name Encryption1
Actors Sender
Trigger Sender mendapatkan nilai kunci enkripsi eA dan nilai kunci dekripsi dA
Preconditions Sender telah memilih Plaintext yang akan di enkripsi dari direktori atau input langsung
Postconditions Sender dapat melihat Ciphertext1 hasil Encryption1
Success Scenario 1. Sender mendapatkan nilai kunci enkripsi eA dan nilai kunci dekripsi dA
2. Sender memilih Plaintext yang ingin di enkripsi dari direktori atau input langsung
3. Sender mengeksekusi tombol Encypt1
4. Sistem melakukan proses Encyption1 terhadap Plaintext
5. Sender dapat melihat Ciphertext1 hasil Encyption1 Alternative Flows
-Activity Diagram untuk Encryption1 yang dapat dilihat pada Gambar 3.5
Sender System
Memiliki nilai eA dan dA
Memilih/input langsung Plaintext Menampilkan Plaintext
Mengeksekusi tombol encrypt1
Melakukan proses enkripsi
Gambar 3.5 Activity Diagram untuk Encryption1
Spesifikasi Use Case Embedding1 dapat dilihat pada Tabel 3.4 Tabel 3.4 Spesifikasi Use Case untuk Embedding1
Name Embedding1
Actors Sender
Trigger Sender memiliki Ciphertext1 yang akan di Embed
Preconditions Sender telah memilih Cover Image1 sebagai media penampung
Ciphertext1
Postconditions Sender mendapatkan Stego Image1
Success Scenario 1. Sender memiliki Ciphertext1 yang akan di Embed
2. Sender mengeksekusi tombol Open Cover Image1 dan memilih Image
3. Sistem menampilkan Cover Image1 yang dipilih 4. Sender mengeksekusi tombol Embed1
5. Sistem melakukan proses Embedding1 dan menampilkan hasil StegoImage1
6. Sender dapat melihat StegoImage1dari hasil Embedding1 dan
mengeksekusi tombol Save Stego Image1
7. Sistem menyimpan hasil Stego Image1 Alternative Flows -
Berikut adalah Activity Diagram untuk Embedding1
Sender System
Memiliki Ciphertext1
Mengeksekusi tombol Open Cover Image1
Memilih Image Menampilkan Cover Image1 yang dipilih
Mengeksekusi tombol Embed1
Melakukan proses Embedding1
Menampilkan Stego Image1 Melihat Stego Image1
Gambar 3.6 Activity Diagram untuk Embedding1
Spesifikasi Use CaseExtracting1 dapat dilihat pada Tabel 3.5
Tabel 3.5 Spesifikasi Use Case untuk Extracting1
Name Extracting1
Actors Recipient
Trigger Recipient menerima Stego Image1
Preconditions Recipient membuka Stego Image1 yang telah dikirim Sender Postconditions Recipient dapat melihat Chipertext1 hasil Extracting1 Success Scenario 1. Recipient mengeksekusi tombol Open Stego Image1 dan
memilih Image
2. Sistem menampilkan Stego Image1 yang dipilih 3. Recipient mengeksekusi tombol Extract1
4. Sistem melakukan Extracting1 dan menampilkan Ciphertext1
5. Recipient dapat melihat Ciphertext1 Alternative Flows
-Activity Diagram untuk Extracting1 dapat dilihat pada Gambar 3.7
Recipient
System
Mengeksekusi tombol Open Stego Image1
Memilih Image Menampilkan Stego Image1 yang dipilih
Mengeksekusi tombol Extract1
Melakukan proses Extracting1
Gambar 3.7 Activity Diagram untuk Extracting1
Spesifikasi Use Case Key Generator B dapat dilihat pada Tabel 3.6
Tabel 3.6 Spesifikasi Use Case untuk Key Generator B
Name Key Generator B
Actors Recipient
Trigger Recipient memiliki Ciphertext1 yang ingin di enkrip
Preconditions Recipient mengeksekusi tombol Generate
Postconditions Recipient mendapatkan nilai kunci Enkripsi eB dan nilai kunci Dekripsi dB
Success Scenario 1. Recipient memiliki Ciphertext1 yang ingin di enkrip 2. Recipient mengeksekusi tombol Generate
3. Sistem membangkitkan kunci Enkripsi eB dan kunci Dekripsi dB kemudian menampilkannya
4. Recipient dapat melihat nilai eA dan dA
Alternative Flows
-Activity Diagram untuk Key Generator B dapat dilihat pada Gambar 3.8
Recipient
System
Memiliki Ciphertext1
Mengeksekusi tombol Generate Membangkitkan kunci enkripsi eB dan
kunci dekripsi dB
Menampilkan eB dan dB Melihat nilai eB dan dB
Spesifikasi Use Case Encryption2 dapat dilihat pada Tabel 3.7
Tabel 3.7 Spesifikasi Use Case untuk Encryption2
Name Encryption2
Actors Recipient
Trigger Recipient memiliki Ciphertext1 dan mendapatkan nilai kunci enkripsi eB dan nilai kunci dekripsi dB
Preconditions Recipient mengeksekusi tombol Encrypt2
Postconditions Recipient dapat melihat Ciphertext2 hasil Encryption2
Success Scenario 1. Recipient telah memiliki Ciphertext1 dan mendapatkan nilai
kuncienkripsi eB dan nilai kunci dekripsi dB 2. Recipient mengeksekusi tombol Encrypt2
3. Sistem melakukan proses Encyption2 terhadap Ciphertext1 dan menampilkan Ciphertext2
4. Recipient dapat melihat Ciphertext2 hasil Encyption2 Alternative Flows
-Activity Diagram untuk Encryption2 dapat dilihat pada Gambar 3.9
Recipient
System
Memiliki Ciphertext1 dan kunci eB dan dB
Mengeksekusi tombol encrypt2 Melakukan Encryption2
Gambar 3.9 Activity Diagram untuk Encryption2
Spesifikasi Use Case Embedding2 dapat dilihat pada Tabel 3.8
Tabel 3.8 Spesifikasi Use Case untuk Embedding2
Name Embedding2
Actors Recipient
Trigger Recipient memiliki Ciphertext2 yang akan di Embed
Preconditions Recipient telah memilih Cover Image2 sebagai media penampung
Ciphertext2
Postconditions Recipient mendapatkan Stego Image2
Success Scenario 1. Recipient memiliki Ciphertext1 yang akan di Embed
2. Recipient mengeksekusi tombol Open Cover Image2 dan memilih Image
3. Sistem menampilkan Cover Image2 yang dipilih 4. Recipient mengeksekusi tombol Embed2
5. Sistem melakukan proses Embedding2 dan menampilkan hasil StegoImage2
6. Recipient dapat melihat StegoImage2 yang merupakan hasil dari Embedding2 dan mengeksekusi tombol Save Stego Image2
7. Sistem menyimpan hasil Stego Image2 Alternative Flows
-Activity Diagram untuk Embedding2 dapat dilihat pada Gambar 3.10 Recipient System
Memiliki Ciphertext2
Mengeksekusi tombol Open Cover Image2
Memilih Image Menampilkan Cover Image2Yang dipilih
Mengeksekusi tombol embed2
Melakukan proses Embedding2
Menampilkan Stego Image2 Melihat Stego Image1
Gambar 3.10 Activity Diagram untuk Embedding2
Spesifikasi Use Case Extracting2 dapat dilihat pada Tabel 3.9
Tabel 3.9 Spesifikasi Use Case untuk Extracting2
Name Extracting2
Actors Sender
Trigger Sender menerima Stego Image2
Preconditions Sender membuka Stego Image2 yang telah dikirim Recipient Postconditions Sender dapat melihat Chipertext2 hasil Extracting2
Success Scenario 1. Sender mengeksekusi tombol Open Stego Image2 dan
memilih Image
2. Sistem menampilkan Stego Image2 yang dipilih 3. Sender mengeksekusi tombol Extract2
4. Sistem melakukan Extracting2 dan menampilkan Ciphertext2
5. Sender dapat melihat Ciphertext2 Alternative Flows
-Activity Diagram untuk Extracting2 dapat dilihat pada Gambar 3.11
Sender
System
Mengeksekusi tombol Open Stego Image2
Memilih Image Menampilkan Stego Image2 yang dipilih
Mengeksekusi tombol extract2
Melakukan proses Extracting2
Gambar 3.11 Activity Diagram untuk Extracting2
Spesifikasi Use Case Decryption2 dapat dilihat pada Tabel 3.10
Tabel 3.10 Spesifikasi Use Case untuk Decryption1
Name Decryption1
Actors Sender
Trigger Sender memiliki Ciphertext2
Preconditions Sender mengeksekusi tombol Decrypt1
Postconditions Sender dapat melihat Ciphertext3 hasil Encryption2 Success Scenario 1. Sender memiliki Ciphertext2
2. Sender mengeksekusi tombol Decrypt1
3. Sistem melakukan proses Decryption1 dan menampilkan Ciphertext3
4. Sender dapat melihat Ciphertext3 hasil dari proses Encyption1 Alternative Flows
-Activity Diagram untuk Decryption1dapat dilihat pada Gambar 3.12
Sender
System
Memiliki Ciphertext2
Mengeksekusi tombol decrypt1 Melakukan Decryption1
Menampilkan Ciphertext3 Melihat Ciphertext3
Spesifikasi Use Case Embedding3 dapat dilihat pada Tabel 3.11
Tabel 3.11 Spesifikasi Use Case untuk Embedding3
Name Embedding3
Actors Sender
Trigger Sender memiliki Ciphertext3 yang akan di Embed
Preconditions Sender telah memilih Cover Image3 sebagai media penampung
Ciphertext3
Postconditions Sender mendapatkan Stego Image3
Success Scenario 1. Sender memiliki Ciphertext3 yang akan di Embed
2. Sender mengeksekusi tombol Open Cover Image3 dan memilih Image
3. Sistem menampilkan Cover Image3 yang dipilih 4. Sender mengeksekusi tombol Embed3
5. Sistem melakukan proses Embedding3 dan menampilkan hasil StegoImage3
6. Sender dapat melihat StegoImage3 yang merupakan hasil dari
Embedding3 dan mengeksekusi tombol Save Stego Image3
7. Sistem menyimpan hasil Stego Image3 Alternative Flows
-Activity Diagram untuk Embedding3 dapat dilihat pada Gambar 3.13
Sender System
Memiliki Ciphertext3
Mengeksekusi tombol Open Cover Image3
Memilih Image Menampilkan Cover Image3 Yang dipilih
Mengeksekusi tombol embed3
Melakukan proses Embedding3
Menampilkan Stego Image3 Melihat Stego Image3
Gambar 3.13 Activity Diagram untuk Embedding3
Spesifikasi Use Case Extracting3 dapat dilihat pada Tabel 3.12
Tabel 3.12 Spesifikasi Use Case untuk Extracting3
Name Extracting3
Actors Recipient
Trigger Recipient menerima Stego Image3
Preconditions Recipient membuka Stego Image3 yang telah dikirim Sender Postconditions Recipient dapat melihat Chipertext3 hasil Extracting3 Success Scenario 1. Recipient mengeksekusi tombol Open Stego Image3 dan
memilih Image
2. Sistem menampilkan Stego Image3 yang dipilih 3. Recipient mengeksekusi tombol Extract3
4. Sistem melakukan Extracting3dan menampilkan Ciphertext3
5. Recipient dapat melihat Ciphertext3 Alternative Flows
-Activity Diagram untuk Extracting3 dapat dilihat pada Gambar 3.14
Recipient
System
Mengeksekusi tombol Open Stego Image3
Memilih Image Menampilkan Stego Image3
Yang dipilih
Mengeksekusi tombol extract3
Melakukan proses Extracting3
Gambar 3.14 Activity Diagram untuk Extracting3
Spesifikasi Use Case Decryption2 dapat dilihat pada Tabel 3.13
Tabel 3.13 Tabel Spesifikasi Use Case untuk Decryption2
Name Decryption2
Actors Recipient
Trigger Recipient memiliki Ciphertext3
Preconditions Recipient mengeksekusi tombol Decrypt2
Postconditions Recipient dapat melihat Ciphertext3 hasil Encryption2 Success Scenario 1. Recipient memiliki Ciphertext3
2. Recipient mengeksekusi tombol Decrypt2
3. Sistem melakukan proses Decryption2 dan menampilkan Plaintext
4. Recipient dapat melihat Plaintext awal hasil dari proses
Encyption2 dan mengeksekusi tombol Save Plaintext
5. Sistem menyimpan Plaintext Alternative Flows
-Activity Diagram untuk Decryption2 dapat dilihat pada Gambar 3.15
Recipient
System
Memiliki Ciphertext3
Mengeksekusi tombol decrypt2
Melakukan Decryption2
Menampilkan Plaintext awal Melihat Plaintext awal
Mengeksekusi tombol Save Palintext
Gambar 3.15 Activity Diagram untuk Decryption2
3.1.4 Pseudocode
Pseudocode adalah kode atau bentuk penulisan algoritma dengan struktur pemrograman yang sederhana dan dapat dimengerti manusia sehingga memudahkan dalam memahami suatu algoritma.
3.1.4.1Pseudocode Proses Generate Prime
Berikut adalah Pseudocode untuk proses Generate Prime ulang:
Random rndp = new Random()
p ← rndp.Next(257, 1000)
if (Fermat(p))
prima.Text ← Convert.ToString(p)
else
goto ulang end if
Proses Generate Prime dilakukan dengan cara melakukan random nilai bilangan prima p mulai dari 257 hingga 1000 dan selanjutnya nilai p yang dirandom diperiksa sesuai proses Fermat. Jika nilai p sesuai dengan proses Fermat maka nilai p akan didapatkan.
3.1.4.2Pseudocode Proses Fermat
Berikut adalah Pseudocode Proses Fermat
BigInteger a = 0;
for (int i = 0; i <= p.ToString().Length; i++) Random rnda = new Random();
a = rnda.Next(2, (int)p);
if (!(BigInteger.ModPow(a, p - 1, p).IsOne)) return false
end if
Proses Fermat dilakukan untuk mencari bilangan prima yang akan digunakan untuk membangkitkan nilai kunci. Bilangan prima didapatkan dengan melakukan random
nilai bilangan bulat a dengan bilangan prima p dalam rentang 1 < �< � dan selanjutnya mengikuti Fermat Little’s Theorem yaitu ��−1 ≡(����).
3.1.4.3Pseudocode Proses Euclidean GCD
Berikut adalah Pseudocode untuk proses Euclidean GCD
BigInteger r ← m % n
if (r = 0) return n
return cariGCD(n, r)
Pada proses Euclidean GCD digunakan pada saaat mencari nilai kunci enkripsi. Untuk memeriksa apakah nilai kunci enkripsi relatif prima dengan p-1 dimana p adalah bilangan prima.
3.1.4.4Pseudocode Proses Generate Key
Berikut adalah Pseudocode untuk proses Generate Key
ulange:
Random rnde = new Random()
e ← rnde.Next(2, (int)p - 1)
if (cariGCD(e, p) = 1)
nilaie.Text ← Convert.ToString(e)
BigInteger hasil = 0; d = 0;
while (hasil != 1) dA++
hasil ← ((d * e) % (p - 1));
if (d > 100000) goto ulange
end if
nilaid.Text ← d.ToString()
else
Pada proses Generate Key dilakukan random nilai kunci enkripsi e dalam rentang 1 < � < � −1 dan dilakukan pengecekan berdasarkan algoritma Euclidean
GCD. Jika sesuai, maka didapatkan nilai e yang selanjutnya digunakan untuk mencari nilai kunci dekripsi dengan cara melakukan modulo invers terhadap kunci e atau
��� ≡1 (���� −1). Selanjutnya nilai d dibatasi sampai nilai 100000 untuk mengurangi proses yang terlalu lama pada generate key. Jika nilai d yang didapatkan lebih besar dari 100000 maka akan mengulangi proses random nilai kunci enkripsi.
3.1.4.5Pseudocode Proses Enkripsi
Berikut adalah Pseudocode untuk proses Enkripsi
string plaintext = plain.Text
cipher1enkrip1.Text = "" string pA = ""
foreach (char c in plaintext)
pA += System.Convert.ToInt32(c).ToString() + " " end foreach
string[] temp = pA.Split(' ')
Cipher ← new BigInteger[temp.Length]
for (int i = 0; i < Cipher.Length - 1; i++)
Cipher[i] ← BigInteger.Pow(BigInteger.Parse(temp[i]),
(int)eA) % (int)p
cipher1enkrip1.Text += Cipher[i].ToString() + " "
end for
SCipher ← new int[(temp.Length * 2) - 2]
string mb = "" string cip
for (int i = 0, j = 0; i < Cipher.Length - 1; i++, j+=2)
cip ← Cipher[i].ToString()
if (cip.Length = 1) cip ← "000" + cip
else if (cip.Length = 2) cip ← "00" + cip
else if (cip.Length = 3) cip ← "0" + cip
SCipher[j] ← Convert.ToInt32(cip.Substring(0, 2))
SCipher[j + 1]←Convert.ToInt32(cip.Substring(2,2))
mb += SCipher[j].ToString() + " " +
SCipher[j +1].ToString() + " "