Implementasi Algoritma Kriptografi Massey Omura Dengan Teknik Steganografi Kombinasi End Of File (EOF) Dan First Of File (FOF) Untuk Keamanan Data

(1)

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

MEDAN 2013


(2)

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

MEDAN 2013


(3)

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,

Dr. Poltak Sihombing, M.Kom NIP.196203171991031001


(4)

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

Nadya Soraya Hardiyana 091401077


(5)

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.

10. Keponakan tersayang Tsabitah, Khalisah, Erol, Naumi, Athallah, Nazwa, Syifa, dan Putra yang selalu mendukung dan menghibur selama proses penyelesaian skripsi ini.


(6)

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


(7)

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.

Kata Kunci: Kriptografi, Three-Pass Protocol, Massey-Omura, Fermat’s Little Theorem, Euclidean GCD, Steganografi, End Of File, First Of File.


(8)

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.

Keyword: Cryptography, Three-Pass Protocol, Massey-Omura, Fermat’s Little Theorem, Euclidean GCD, Steganography, End Of File, First Of File.


(9)

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 Common Divisor (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


(10)

Bab III Analisis dan Perancangan

3.1 Analisis Sistem 21

3.1.1 Analisis Masalah 21

3.1.2 Analisis Persyaratan 22

3.1.2.1 Analisis Fungsional 22 3.1.2.2 Analisis Nonfungsional 23 3.1.3 Pemodelan Persyaratan Sistem dengan Use Case 23 3.1.3.1 Spesifikasi Use Case 25

3.1.4 Pseudocode 38

3.1.4.1 Pseudocode Proses Generate Prime 38 3.1.4.2 Pseudocode Proses Fermat 38 3.1.4.3 Pseudocode Proses Euclidean GCD 39 3.1.4.4 Pseudocode Proses Generate Key 39

3.1.4.5 Pseudocode Proses Enkripsi 40 3.1.4.6 Pseudocode Proses Embedding 41

3.1.4.7 Pseudocode Proses Extracting 43 3.1.4.8 Pseudocode Proses Dekripsi 45

3.1.5 Flowchart Sistem 45

3.1.5.1 Flowchart Prime Generator 46 3.1.5.2 Flowchart Key Generator (Sender) 47 3.1.5.3 Flowchart Encryption1 (Sender) 48 3.1.5.4 Flowchart Embedding1 (Sender) 49 3.1.5.5 Flowchart Extracting1(Recipient) 50 3.1.5.6 Flowchart Encryption2 (Recipient) 50 3.1.5.7 Flowchart Embedding2 (Recipient) 51 3.1.5.8 Flowchart Extracting2 (Sender) 52 3.1.5.9 Flowchart Decryption1 (Sender) 53 3.1.5.10 Flowchart Embedding3 (Sender) 54 3.1.5.11 Flowchart Extracting3 (Recipient) 54 3.1.5.12 Flowchart Decryption2 (Recipient) 55

3.2 Perancangan Sistem 56

3.2.1 Home 56

3.2.2 About 57

3.2.3 Help 57

3.2.4 Encryption1 58

3.2.5 Encrypion2 60

3.2.6 Decryption1 61

3.2.7 Decryption2 63

3.3 Tahapan Sistem 65

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


(11)

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


(12)

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

2.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 4.1 4.2 4.3 4.4 4.5 4.6

Proses Perhitungan Invers Modulo

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

Hasil Pengujian Proses Embedding dan Extracting dengan Beberapa Ukuran 13 25 26 27 28 29 30 31 32 33 34 35 36 37 65 67 68 70 70 71 72 80 86 88 91 94 95


(13)

DAFTAR GAMBAR

Nomor

Gambar Nama Gambar Halaman

2.1 2.2 (a) 2.2 (b) 2.3 2.4 2.5 2.6 2.7 2.8 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34

Proses Enkripsi Dekripsi Sebuah Scytale

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 Flowchart Prime Generator Flowchart Key Generator A Flowchart untuk Encryption1 Flowchart Embedding1 Flowchart Extracting1 Flowchart Encryption2 Flowchart Embedding2 Flowchart Extracting2 Flowchart Decryption1 Flowchart Embedding3 Flowchart Extracting3 Flowchart Decryption2

Perancangan Form home_application Perancangan Form about

Perancangan Form help

Perancangan Form encryption1 Perancangan Form encryption2 Perancangan Form decryption1

7 8 8 9 9 10 15 16 18 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 45 46 47 48 49 50 50 51 52 53 54 54 55 56 57 57 58 60 62


(14)

3.35 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27

Perancangan Form decryption2 Tampilan Form home_application Tampilan Form about

Tampilan Form help

Tampilan Form encryption1 Tampilan Form encryption2 Tampilan Form decryption1 Tampilan Form decryption2 Hasil Proses Generate Prime Hasil Proses Generate Key (Sender) Pop-up Windows Open Text

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”

64 73 74 75 75 76 77 78 78 79 79 80 81 81 82 83 83 84 85 85 86 87 89 90 91 92 92 93


(15)

DAFTAR LAMPIRAN

Halaman

A. Listing Program 100


(16)

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.

Kata Kunci: Kriptografi, Three-Pass Protocol, Massey-Omura, Fermat’s Little Theorem, Euclidean GCD, Steganografi, End Of File, First Of File.


(17)

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.

Keyword: Cryptography, Three-Pass Protocol, Massey-Omura, Fermat’s Little Theorem, Euclidean GCD, Steganography, End Of File, First Of File.


(18)

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 menggunakan 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].


(19)

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.

Berdasarkan latar belakang yang telah diuraikan, maka penulis melakukan penelitian dengan judul “Implementasi Algoritma Kriptografi Massey Omura dengan Teknik Steganografi Kombinasi End Of file (EOF) dan First Of File (FOF) untuk Keamanan Data”.


(20)

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

Tujuan dari penelitian ini adalah memperoleh aplikasi yang menerapkan algoritma kriptografi Massey Omura dengan teknik steganografi kombinasi End Of file dan First Of File dalam mengamankan pesan.


(21)

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

Pada tahap ini dilakukan penyusunan laporan dari hasil analisis dan perancangan sistem dalam format penulisan penelitian.


(22)

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

Pada bab ini berisi kesimpulan yang diperoleh dalam penelitian dan saran yang diberikan untuk pengembangan lebih lanjut.


(23)

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). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah.


(24)

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


(25)

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

Dalam algoritma simetris, kunci yang digunakan untuk proses enkripsi dan dekripsi sama (Gambar 2.3). Istilah lain dari kriptografi ini adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Dalam kriptografi kunci simetri dapat diasumsikan bahwa si penerima dan pengirim pesan telah terlebih dahulu bertukar kunci sebelum pesan dikirim. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya. Semua kriptografi klasik menggunakan sistem kunci simetri ini, dan ada beberapa algoritma kriptografi modern yang juga menggunakan sistem kunci simetri seperti DES (Data Encryption Stamdard), Triple-DES, dan One Time Pad.


(26)

Gambar 2.3Skema 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.

3. Authentication, adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication or entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication).


(27)

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) .

2. Penerima memilih sebuah kunci pribadi r dan kunci dekripsi q dan mengenkripsi pesan pertama E(s,m) dengan kunci r lalu, mengirimkan kembali kunci enkripsi ganda E(r, E(s,m)) kepada pengirim (Alice) .


(28)

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

Faktor pembagi bersama dari 45 dan 36 adalah 1,3,9 Sehingga GCD(45,36) = 9


(29)

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 = 0 maka 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:

20 dan 3 relatif prima karena GCD(20,3) = 1, dengan m = 2 dan n = -13. Maka dapat ditulis 2 x 20 + (-13) x 3 = 1


(30)

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


(31)

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 :

1. Alice menambahkan kunci �� pada pesan M sehingga Alice mengirimkan pesan ��� kepada Bob.


(32)

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

Kata steganografi berasal dari bahasa Yunani steganos, yang artinya tersembunyi atau terselubung, dan graphein artinya menulis. Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Kini, istilah steganografi termasuk penyembunyian


(33)

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

Proses embedding atau sering disebut penyembunyian pesan ini, dilakukan dengan cara menciptakan suatu proses stego medium dengan cara menggantikan atau menyisipkan bit-bit dari sampul media dengan bit-bit dari pesan yang disembunyikan[6]. Sedangkan proses yang digunakan untuk menampilkan pesan rahasia yang ada dalam image disebut (extracting).


(34)

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

Steganografi sudah dikenal oleh bangsa Yunani sejak lama. Herodatus, seorang penguasa Yunani, mengirimkan pesan rahasia menggunakan kepala budak atau prajurit sebagai medai. Caranya, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Setelah rambut budak tumbuh cukup banyal (yang berarti menutupi pesan rahasia), budak tersebut dikirim ketempat tujuan untuk membawa pesan rahasia dikepalanya. Di tempat penerima kepala budak dibotaki kembali untuk membaca pesan yang tersembunyi dibalik rambutnya. Pesan tersebut berisi peringatan tentang invasi dari Bangsa Persia[12].


(35)

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 dengan cara 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

Pada file bitmap, nilai intensitas pixel dalam citra dipetakan ke dalam sejumlah bit tertentu yang umumnya panjang setiap pixel adalah 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255. Nilai intensitas citra pada data bitmap terdiri dari bilangan biner. Untuk citra true color jumlah bit per pixel sebanyak 24 bit


(36)

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 Least Significant Bit (LSB) dan metode End Of File (EOF). Alasan digunakannya citra grayscale adalah karena citra ini bentuk digital yang lebih sederhana dibandingkan dengan citra RGB. Dalam penelitiannya, diperoleh bahwa, kelebihan metode LSB adalah ukuran citra yang mengandung pesan tidak berubah, sedangkan kekurangannya adalah kapasitas pesan yang akan disisipkan terbatas. Sebaliknya metode EOF


(37)

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].

4. Penelitian yang dilakukan oleh Arfiyah membandingkan Teknik Steganografi First Of File, End Of File, dan kombinasi keduanya . Untuk teknik kombinasi End Of File dan First Of File dilakukan secara vertikal sehingga proses nilai desimal pesan disisipkan pada bagian atas dan bawah pixel matriks citra RGB[2].


(38)

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.

Dalam analisis masalah, dapat digambarkan lebih jelas melalui Diagram Ishikawa (fishbone Diagram) yang dapat dilihat pada Gambar 3.1.


(39)

Algoritma Kriptografi

Algoritma Kriptografi

Methods

Methods

People

People

Pengamanan Pesan

Pengamanan Pesan Kekhawatiran akan

pembobolan pesan

Proses enkripsi dan dekripsi dilakukan dengan

Algoritma Massey omura yang tidak ada pendistribusian kunci

Sudah banyak algoritma kriptografi

yang tidak aman

Teknik Steganografi

Teknik Steganografi

Hanya menggunakan satu teknik untuk menyembunyikan

pesan

Proses embedding dan extracting dilakukan dengan

Teknik Steganografi dikombinasikan antara End

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.


(40)

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

Sistem yang dibangun akan menampilkan kotak pesan error untuk setiap input yang tidak sesuai dengan sistem.


(41)

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


(42)

Gambar 3.2 Use Case Diagram Sistem 3.1.3.1Spesifikasi Use Case

Spesifikasi Use Case Prime Generator dapat dilihat pada Tabel 3.1

Tabel 3.1 Spesifikasi Use Case Prime 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

Membangkitkan bilangan prima p Dan menampilkan nilai p


(43)

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


(44)

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

Menampilkan Ciphertext1 Melihat hasil Ciphertext1


(45)

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

Menyimpan Stego Image1 Mengeksekusi tombol Save Stego Image1


(46)

Gambar 3.6 Activity Diagram untuk Embedding1

Spesifikasi Use Case Extracting1 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

Menampilkan Ciphertext1 Melihat Ciphertext1


(47)

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


(48)

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 kunci enkripsi 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

Menampilkan Ciphertext2 Melihat hasil Ciphertext2


(49)

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 Yang dipilihCover Image2

Mengeksekusi tombol embed2

Melakukan proses Embedding2

Menampilkan Stego Image2 Melihat Stego Image1

Menyimpan Stego Image2 Mengeksekusi tombol Save Stego Image2


(50)

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

Menampilkan Ciphertext2 Melihat Ciphertext2


(51)

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

Gambar 3.12 Activity Diagram untuk Decryption1


(52)

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

Menyimpan Stego Image3 Mengeksekusi tombol Save Stego Image3


(53)

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 Extracting3 dan 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

Menampilkan Ciphertext3 Melihat Ciphertext3


(54)

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


(55)

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 end for return true


(56)

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

goto ulange end if


(57)

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() + " "


(58)

Proses enkripsi dilakukan setelah memiliki nilai bilangan prima dan nilai kunci enkripsi melalui perhitungan � =������ dengan M adalah nilai karakter berdasarkan Tabel ASCII. Kemudian setelah didapatkan nilai C (Ciphertext) dalam bentuk angka, dilakukan pengecekan jumlah digit angka yang dihasilkan per karakter. Jika kurang dari 4 digit, maka akan ditambah digitnya sampai memenuhi syarat 4 digit. Kemudian dilakukan pemisahan (split) setiap 2 digit untuk mendapatkan nilai pesan yang akan disisip pada citra.

3.1.4.6Peseudocode Proses Embedding

Berikut adalah Pseudocode untuk proses Embedding

int limit ← plain.TextLength

Bitmap image ← new Bitmap(pictureBox1.Image)

int x ← image.Width

int y ← image.Height

if ((x * 3) - 2 < limit)

MessageBox.Show("Message is over limit of image

pixel\r\nPlease choose another image,", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)

else

Bitmap output ← new Bitmap(image.Width, 1)

Bitmap output2 ← new Bitmap(image.Width, 1)

for (int i = 0; i < 1; i++)

for (int j = 0; j < x; j++)

output.SetPixel(j, i, Color.FromArgb(255, 0, 0, 0))

output2.SetPixel(j, i, Color.FromArgb(255, 0, 0, 0))

end for end for

int x1 = 0, x2 = 0, index = 0, count = 0 for (int i = 0; i < y; i++)

for (int j = 0; j < x * 2; j++)

if (index = SCipher.Length) goto habis

if (count % 2 = 0)

if (index + 2 = SCipher.Length)


(59)

output.SetPixel(x1, i,Color.FromArgb (255, (int)SCipher[index], (int)SCipher[index + 1], 0))

index += 2 x1++

count++

else if (index + 1 = SCipher.Length)

output.SetPixel(x1, i, Color.FromArgb (255, (int)SCipher[index], 0, 0))

index++ x1++ count++ else

output.SetPixel(x1, i, Color.FromArgb (255, (int)SCipher[index], (int)SCipher[index + 1],

(int)SCipher[index + 2]))

index += 3 x1++ count++ end if end if else

if (index + 2 = SCipher.Length)

output2.SetPixel(x2, i,Color.FromArgb (255, (int)SCipher[index],

(int)SCipher[index + 1], 0))

index += 2 x2++

count++

else if (index + 1 = SCipher.Length)

output2.SetPixel(x2, i,Color.FromArgb (255, (int)SCipher[index], 0, 0))

index++ x2++ count++ else output2.SetPixel(x2, i,Color.FromArgb (255, (int)SCipher[index],

(int)SCipher[index + 1], (int)SCipher[index + 2]))

index += 3 x2++ count++ end if end for end for end if habis:


(1)

using (Graphics graphics = Graphics.FromImage(outputImage)) {

graphics.DrawImage(output, new Rectangle(new Point(), output.Size),

new Rectangle(new Point(), output.Size), GraphicsUnit.Pixel);

graphics.DrawImage(image, new Rectangle(new Point(0, output.Height + 1), image.Size), new Rectangle(new Point(), image.Size), GraphicsUnit.Pixel);

graphics.DrawImage(output2, new Rectangle

(new Point(0, image.Height + 1), output2.Size), new Rectangle(new Point(), output2.Size),

GraphicsUnit.Pixel); }

pictureBox2.Image = outputImage; sw.Stop();

label12.Text = "Waktu Embed :\r\n " + sw.Elapsed; DialogResult dialog = MessageBox.Show("Embedding succeed\rplease save stego image", "Info",

MessageBoxButtons.OK, MessageBoxIcon.Information); SaveSI3.Enabled = true;

} }

private void SaveSI3_Click_1(object sender, EventArgs e) {

SaveFileDialog saveDialogDekrip1 = new SaveFileDialog(); saveDialogDekrip1.Title = "Save Stego Image";

saveDialogDekrip1.Filter = "Image Files(*.bmp)|*.bmp"; if (DialogResult.OK == saveDialogDekrip1.ShowDialog()) {

pictureBox2.Image.Save(saveDialogDekrip1.FileName, ImageFormat.Bmp);

{

MessageBox.Show("Stego Image Saved", "Info", MessageBoxButtons.OK,MessageBoxIcon.Information); }

} }

private void next3_Click(object sender, EventArgs e) {

this.Hide();

Form7 fr7 = new Form7(); fr7.ShowDialog();

} } }


(2)

Kode Program Form decryption2 :

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.IO;

using System.Drawing.Imaging; using System.Numerics;

using System.Diagnostics; namespace kriptostegano {

public partial class Form7 : Form {

Bitmap newBitmap; Image gambar; public Form7() {

InitializeComponent(); }

private void homeToolStripMenuItem_Click(object sender, EventArgs e) {

this.Hide();

Form1 fr1 = new Form1(); fr1.ShowDialog();

}

private void aboutToolStripMenuItem_Click(object sender, EventArgs e) {

this.Hide();

Form2 fr2 = new Form2(); fr2.ShowDialog();

}

private void helpToolStripMenuItem_Click(object sender, EventArgs e) {

this.Hide();

Form3 fr3 = new Form3(); fr3.ShowDialog();

}

private void startToolStripMenuItem_Click(object sender, EventArgs e) {

this.Hide();

Form4 fr4 = new Form4(); fr4.ShowDialog();

}


(3)

{

DialogResult dialog = MessageBox.Show("Are you sure to exit this application?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (dialog == DialogResult.Yes) {

Application.Exit(); }

}

private void Form7_Load(object sender, EventArgs e) {

GroupBox grup = Application.OpenForms["Form4"]. Controls["groupBox1"] as GroupBox;

TextBox nilaiP = grup.Controls["prima"] as TextBox; prima3.Text = nilaiP.Text;

GroupBox grup2 = Application.OpenForms["Form5"]. Controls["groupBox3"] as GroupBox;

GroupBox grup3 = grup2.Controls["groupBox2"] as GroupBox; TextBox dB = grup3.Controls["nilaidB"] as TextBox;

textBox3.Text = dB.Text;

btnExtract3.Enabled = false; btnDecrypt2.Enabled = false; saveplainawal.Enabled = false; }

private void opnSI3_Click_1(object sender, EventArgs e) {

OpenFileDialog openDialogDekrip2 = new OpenFileDialog(); openDialogDekrip2.Title = "Open Stego Image";

openDialogDekrip2.Filter = "Image Files(*.bmp)|*.bmp"; DialogResult dr = openDialogDekrip2.ShowDialog(); if (dr == DialogResult.OK)

{

gambar = Image.FromFile(openDialogDekrip2.FileName); newBitmap = new Bitmap(openDialogDekrip2.FileName); pictureBox3.Image = gambar;

btnExtract3.Enabled = true; }

}

private void btnExtract3_Click(object sender, EventArgs e) {

Stopwatch sw = new Stopwatch(); sw.Start();

Bitmap image = new Bitmap(pictureBox3.Image); int x = image.Width;

int y = image.Height; string px = "";

int r, g, b;

string strR, strG, strB; for (int i = 0; i < x; i++) {


(4)

for (int j = 0; j < y; j++) {

if (j == 0 || j == y - 1) {

r = image.GetPixel(i, j).R; if (r.ToString().Length == 1) strR = "0" + r;

else

strR = r.ToString(); g = image.GetPixel(i, j).G; if (g.ToString().Length == 1) strG = "0" + g;

else

strG = g.ToString(); b = image.GetPixel(i, j).B; if (b.ToString().Length == 1) strB = "0" + b;

else

strB = b.ToString();

px += strR + " " + strG + " " + strB + " "; }

} }

int count = 1;

for (int i = 0; i < px.Length; i++) {

if (px[i] == ' ') {

if (count % 2 != 0)

px = px.Remove(i, 1); count++;

} }

int index = px.IndexOf(" 0000 0000"); if (index < 0)

{

DialogResult dialognohidden = MessageBox.Show("no hidden message\rplease input another image", "Info", MessageBoxButtons.OK, MessageBoxIcon.Warning);

} else {

px = px.Substring(0, index); string[] temp = px.Split(' '); px = "";

for (int i = 0; i < temp.Length; i++) {

px += Convert.ToInt32(temp[i]) + " "; }

cipher3dekrip2.Text = px; sw.Stop();

label1.Text = "Waktu Extract :\r\n " + sw.Elapsed; DialogResult dialogextract =

MessageBox.Show("Extracting succeed\rplease input p and dB", "Info", MessageBoxButtons.OK,

MessageBoxIcon.Information); btnDecrypt2.Enabled = true; }


(5)

private void btnDecrypt2_Click(object sender, EventArgs e) {

BigInteger dB = BigInteger.Parse(textBox3.Text); string tes = cipher3dekrip2.Text;

string[] temp = tes.Split(' ');

BigInteger[] Cipher = new BigInteger[temp.Length]; string ascii;

for (int i = 0; i < Cipher.Length - 1; i++) {

Cipher[i] = BigInteger.Pow(BigInteger.Parse(temp[i]), (int)Convert.ToInt32(textBox3.Text)) %

(int)Convert.ToInt32(prima3.Text);

ascii =char.ConvertFromUtf32(Convert.ToInt32 (Cipher[i].ToString()));

plainawal.Text += ascii; { saveplainawal.Enabled = true;

} }

MessageBox.Show("Decryption succeed", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); }

private void saveplainawal_Click(object sender, EventArgs e) {

SaveFileDialog saveFileDekrip2 = new SaveFileDialog(); saveFileDekrip2.Title = "Save text Files";

saveFileDekrip2.Filter = "txt files (*.txt)|*.txt"; if (saveFileDekrip2.ShowDialog() == DialogResult.OK) {

using (Stream s = File.Open(saveFileDekrip2.FileName, FileMode.CreateNew))

using (StreamWriter sw = new StreamWriter(s)) {

sw.Write(plainawal.Text);

MessageBox.Show("plaintext saved", "Info",

MessageBoxButtons.OK,MessageBoxIcon.Information);

} }

} } }


(6)

CURRICULUM VITAE

Nama

: Nadya Soraya Hardiyana

Tempat/Tanggal Lahir : Jakarta, 29 Juli 1991

Agama

: Islam

Alamat Sekarang

: Jl. Gaharu No. 69/71 Kel. Gaharu Kec. Medan Timur 20235

Alamat Orang Tua

: Jl. Gaharu No. 69/71 Kel. Gaharu Kec. Medan Timur 20235

Telp/ Hp

: 085297166373

Email

: nadyasorayah@gmail.com

Riwayat Pendidikan

2009 – 2013

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2006 – 2009

: SMA Negeri 3 Medan

2003 – 2006

: SMP Negeri 75 Jakarta Barat

1997 – 2003

: SD Negeri 01 Kedoya Utara, Jakarta Barat

Pengalaman Organisasi dan Kegiatan Ilmiah

Anggota Departemen Jurnalistik Ikatan Mahasiswa S1 Ilmu Komputer

(IMILKOM), 2010-2011

Ketua Departemen Jurnalistik Ikatan Mahasiswa S1 Ilmu Komputer (IMILKOM),

2011-2012

Anggota Departemen Humas Pemerintahan Mahasiswa Fakultas Ilmu Komputer

dan Teknologi Informasi (PEMA FASILKOM-TI) 2012-2013


Dokumen yang terkait

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

23 143 153

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

0 0 14

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

0 0 2

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

0 0 4

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

0 0 15

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

0 0 2

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

0 2 31

Implementasi Algoritma Kriptografi Massey Omura Dengan Teknik Steganografi Kombinasi End Of File (EOF) Dan First Of File (FOF) Untuk Keamanan Data

0 0 28

BAB 2 LANDASAN TEORI 2.1 Kriptografi 2.1.1 Definisi Kriptografi - Implementasi Algoritma Kriptografi Massey Omura Dengan Teknik Steganografi Kombinasi End Of File (EOF) Dan First Of File (FOF) Untuk Keamanan Data

0 0 15

Implementasi Algoritma Kriptografi Massey Omura Dengan Teknik Steganografi Kombinasi End Of File (EOF) Dan First Of File (FOF) Untuk Keamanan Data

0 0 15