Perancangan Aplikasi Kombinasi Algoritma Steganografi Least Significant Bit dan Alagoritma Kriptografi Kanpsack Merkle-Hellman pada Citra Bitmap

(1)

PERANCANGAN APLIKASI KOMBINASI

ALGORITMASTEGANOGRAFI LEAST SIGNIFICANT BIT

DAN

ALGORITMA KRIPTOGRAFI KNAPSACK

MERKLE-HELLMAN PADA

CITRA BITMAP

SKRIPSI

JUWITA ADELINA PASARIBU 081401035

PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2012


(2)

PERANCANGAN APLIKASI KOMBINASI ALGORITMASTEGANOGRAFI LEAST SIGNIFICANT BIT DANALGORITMA KRIPTOGRAFI

KNAPSACK MERKLE-HELLMAN PADA CITRA BITMAP

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

JUWITA ADELINA PASARIBU 081401035

PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2012


(3)

PERSETUJUAN

Judul : PERANCANGAN APLIKASI KOMBINASI

ALGORITMA STEGANOGRAFI LEAST

SIGNIFICANT BIT DAN ALGORITMA

KRIPTOGRAFI KNAPSACK MERKLE-HELLMAN

PADA CITRA BITMAP

Kategori : SKRIPSI

Nama : JUWITA ADELINA PASARIBU

Nomor Induk Mahasiswa : 081401035

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan,22 Mei 2012 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Amer Sharif, S.Si,M.Kom M.Andri B., ST,M.Comp.Sc,MEM

NIP - NIP 197510082008011001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP 196203171991021001


(4)

PERNYATAAN

PERANCANGAN APLIKASI KOMBINASI ALGORITMA STEGANOGRAFI

LEAST SIGNIFICANT BIT DAN ALGORITMA KRIPTOGRAFI

KNAPSACK MERKLE-HELLMAN PADA CITRA BITMAP SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 22 Mei 2012

Juwita Adelina Pasaribu 081401035


(5)

PENGHARGAAN

Puji dan syukur saya ucapkan kehadirat Tuhan Yang Maha Esa yang selalu memberikan berkat dan perlindunganNya, sehingga saya dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada:

1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Departemen Ilmu Komputer dan yang telah bersedia menjadi dosen penguji pertama.

2. Bapak M. Andri Budiman, ST, M.CompSc, MEM selaku pembimbing pertama dan Bapak Amer Sharif S.Si, M.Kom selaku pembimbing kedua yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.

3. BapakAde Candra, ST, M.Kom yang telah bersedia menjadi dosen penguji kedua.

4. Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

5. Semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU.

6. Kedua orang tua yang telah memberikan dukungan dan motivasi, ayahanda Jonggi Pasaribu dan ibunda Sondang Sitorusyang selalu sabar dalam mendidik saya.

7. Kakak, abang serta adik saya, Martina Uly Sartika Pasaribu, Dessy Natalya Pasaribu, Daniel Septian Pasaribu, Monalisa Pasaribu serta Pascal yang selalu memberikan dorongan kepada saya selama menyelesaikan skripsi ini.

8. Tri Bagus Purbaatas motivasi, perhatian dan semangat yang selalu diberikan kepada saya.

9. Rosalina Situmorang, Yenni Tarigan, Ria Marpaung, Novalia, Dedy Darwin dan teman-teman angkatan 2008 serta senior dan junior yang selalu memberikan dukungan,sama-sama berjuang dalam penyusunan skripsi.


(6)

Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi yang diberikan.

Penulis


(7)

PERANCANGAN APLIKASI KOMBINASI ALGORITMA STEGANO LSBDAN ALGORITMA KRIPTOGRAFIKNAPSACK MERKLE

HELLMAN PADA CITRA BITMAP

ABSTRAK

Kriptografi adalah suatu teknik yang digunakan untuk menyandikan pesan atau informasi agar isi pesan tidak dapat dengan mudah dibaca oleh pihak lain yang tidak berhak. Sedangkan steganografi adalah teknik penyembunyian pesan dalam suatu objek penampung. Teknik yang digunakan untuk mengamankan pesan pada skripsi ini adalah sistem kripto kunci publik Knapsack Merkle-Hellman, dimana kunci yang digunakan untuk mengenkripsi dan mendekripsi pesan berbeda, serta steganografi Least Significant Bit dengan citra Bitmap sebagai cover object. Ukuran citra BMP maksimum yang dapat ditampung oleh program adalah 400x400 piksel dengan kedalaman 24-bit. Hasil yang diperoleh pada skripsi ini adalah pesan yang disisipkan pada citra Bitmap dapat diungkap kembali tanpa mengalami kerusakan dan citra yang menjadi cover object tidak mengalami perbedaan kualitas secara visual.

Kata kunci: Least Significant Bit, Knapsack Merkle-Hellman, Steganografi, Kriptografi, Bitmap


(8)

THE DESIGN OF APPLICATION FOR COMBININGLEAST SIGNIFICANT BITSTEGANOGRAPHY ALGORITHM

ANDKNAPSACK MERKLE-HELLMAN CRYPTOGRAPHY ALGORITHM

ON BMP IMAGE

ABSTRACT

Cryptography is a technique for encrypting message or information so that it cannot be read easily by unauthorized parties. Meanwhile, steganography is a technique for hiding message in a cover object. Cryptography algorithm which is used in this paper to encrypt the message is public key cryptosystem Knapsack Merkle-Hellman, which uses different keysfor encryption and decryption, and steganography algorithm Least Significant Bitwith BMP image as the cover object. The maximum dimension which can be handled by the program is a BMP image with 400x400 pixels and the depth is 24-bit. Theresult of this study is the message, which is embedded in a BMP image, can be extracted without any change, and also the process does not change the coverobjectvisually.

Keyword:Least Significant Bit, Knapsack Merkle-Hellman, Steganography, Kriptography, Bitmap


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan

1.1Latar Belakang 1

1.2Rumusan Masalah 3

1.3Batasan Masalah 3

1.4Tujuan Penelitian 4

1.5Manfaat Penelitian 4

1.6Metode Penelitian 5 1.7Sistematika Penulisan 5

Bab 2 Landasan Teori 2.1 Kriptografi 7

2.1.1 Sejarah dan Konsep Kriptografi 7

2.1.2 Terminologi Kriptografi 8

2.1.3 Penggunaan Kriptografi 10

2.1.4 Kriptografi Kunci Publik 10

2.1.5 Kriptografi Knapsack Merkle-Hellman 11

2.2 Algoritma Euclidean 14

2.3 Steganografi 16

2.3.1 Sejarah Steganografi 16

2.3.2 Kategori Steganografi 17

2.3.3 Penggunaan Steganografi 18

2.3.4 Metode Least Significant Bit 20

2.4 Citra Bitmap 20

Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 24 3.2 Perancangan Sistem 25

3.2.1 Diagram Use Case 25

3.2.2 Diagram Sequence 26

3.2.3 Diagram Class 27


(10)

3.2.5Flowchart Sistem 29 3.2.5.1 Flowchart Algoritma Kriptografi Knapsack

Merkle-Hellman 30

3.2.5.2 Flowchart Algoritma Steganografi Least Significant Bit 35

3.2.6Kamus Data 37

3.2.7Perancangan Antarmuka 37

Bab 4 Implementasi dan Pengujian 4.1 Tampilan Antarmuka Sistem 43

4.2 Pengujian Sistem 47

4.2.1 Pembangkitan Pasangan Kunci Privat dan Publik 47

4.2.2 Proses Embedding 50

4.2.3 Proses Extracting 55

4.2.4 Pengujian Jumlah Karakter Maksimum 57

Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 59

5.2 Saran 60

Daftar Pustaka 61


(11)

DAFTAR TABEL

No. Tabel

Judul Halaman

2.1 3.1 4.1

Perhitungan Invers Kamus Data

Hasil Uji Proses Penyisipan

12 37 54


(12)

DAFTAR GAMBAR

No. Gambar

Judul Halaman

2.1 2.2 2.3 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 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

Citra Bitmap 24bit Citra Bitmap 8bit Citra Bitmap 1bit

Diagram Konteks Sistem Diagram Use Case Sistem Diagram Sequence Sistem Diagram Class

Diagram Activity Flowchart Sistem

Flowchart Pembangkitan Kunci Privat

Flowchart Kunci Publik

Flowchart Proses Enkripsi

Flowchart Proses Dekripsi

Flowchart Proses Embedding Flowchart Proses Extracting

Tampilan Rancangan Form Menu Utama Tampilan Rancangan Form Penyisipan Tampilan Rancangan Form Pengekstrakan Tampilan Rancangan Form Pembangkit Kunci Tampilan Rancangan Form About

Tampilan Rancangan Form Help

Tampilan Awal Program

Kotak Dialog Pilihan Embed dan Extract

Tampilan Form Enkripsi dan Penyisipan Pesan Tampilan Form Ekstrak dan Dekripsi Pesan

Tampilan Form Pembangkitan Kunci Privat dan Kunci Publik Tampilan Form About

Tampilan Form Help

Form Pembangkitan Kunci Privat dan Kunci Publik untuk Proses Pengujian

Tampilan Berhasil Menyimpan Kunci Privat Tampilan Berhasil Membangkitkan Kunci Publik Tampilan Gagal Validasi Kunci M dan N

Tampilan Gagal Jumlah Kunci Privat

Form Enkripsi dan Penyisipan Pesan Tampilan Pilih Citra Sebagai Cover Object Cover Object

Message Box Berhasil

Message Box Gagal

Tampilan Citra Asli dan Stegano Image

Hasil Ekstrak dan Dekripsi Pesan

Tampilan Gagal untuk Mendekripsi Pesan

21 22 23 24 26 27 27 28 29 31 32 33 34 35 36 38 39 40 41 41 42 43 44 44 45 45 46 46 48 48 49 49 49 50 52 52 53 53 54 55 56


(13)

4.21 4.22

Tampilan Gagal Eksekusi untuk Citra 500x500Piksel Tampilan Berhasil untuk Citra 400x400Piksel

56 57


(14)

PERANCANGAN APLIKASI KOMBINASI ALGORITMA STEGANO LSBDAN ALGORITMA KRIPTOGRAFIKNAPSACK MERKLE

HELLMAN PADA CITRA BITMAP

ABSTRAK

Kriptografi adalah suatu teknik yang digunakan untuk menyandikan pesan atau informasi agar isi pesan tidak dapat dengan mudah dibaca oleh pihak lain yang tidak berhak. Sedangkan steganografi adalah teknik penyembunyian pesan dalam suatu objek penampung. Teknik yang digunakan untuk mengamankan pesan pada skripsi ini adalah sistem kripto kunci publik Knapsack Merkle-Hellman, dimana kunci yang digunakan untuk mengenkripsi dan mendekripsi pesan berbeda, serta steganografi Least Significant Bit dengan citra Bitmap sebagai cover object. Ukuran citra BMP maksimum yang dapat ditampung oleh program adalah 400x400 piksel dengan kedalaman 24-bit. Hasil yang diperoleh pada skripsi ini adalah pesan yang disisipkan pada citra Bitmap dapat diungkap kembali tanpa mengalami kerusakan dan citra yang menjadi cover object tidak mengalami perbedaan kualitas secara visual.

Kata kunci: Least Significant Bit, Knapsack Merkle-Hellman, Steganografi, Kriptografi, Bitmap


(15)

THE DESIGN OF APPLICATION FOR COMBININGLEAST SIGNIFICANT BITSTEGANOGRAPHY ALGORITHM

ANDKNAPSACK MERKLE-HELLMAN CRYPTOGRAPHY ALGORITHM

ON BMP IMAGE

ABSTRACT

Cryptography is a technique for encrypting message or information so that it cannot be read easily by unauthorized parties. Meanwhile, steganography is a technique for hiding message in a cover object. Cryptography algorithm which is used in this paper to encrypt the message is public key cryptosystem Knapsack Merkle-Hellman, which uses different keysfor encryption and decryption, and steganography algorithm Least Significant Bitwith BMP image as the cover object. The maximum dimension which can be handled by the program is a BMP image with 400x400 pixels and the depth is 24-bit. Theresult of this study is the message, which is embedded in a BMP image, can be extracted without any change, and also the process does not change the coverobjectvisually.

Keyword:Least Significant Bit, Knapsack Merkle-Hellman, Steganography, Kriptography, Bitmap


(16)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Seiring dengan perkembangan teknologi, tingkat keamanan terhadap suatu informasi yang bersifat rahasia pun semakin tinggi. Hal ini merupakan aspek yang paling penting dalam permasalahan privasi, agar informasi tidak jatuh kepada pihak yang tidak bertanggung jawab. Berbagai tindak kejahatan maupun ancaman yang merupakan masalah dari segi keamanan yang timbul dapat berupa interupsi, penyadapan, maupun modifikasi. Salah satu cara yang dapat digunakan untuk mengatasi permasalahan ini adalah dengan menggunakan teknik kriptografi. Kriptografi berperan sebagai suatu sistem pengamanan dengan menggunakan teknik enkripsi data dengan menggunakan kunci (key) tertentu menjadi serangkaian kode yang disebut dengan ciphertext.

Ide awal kriptografi adalah pemakaian algoritma yang bersifat rahasia untuk mengenkripsi data. Ini yang disebut dengan algoritma kriptografi klasik. Namun, lama-kelamaan cara ini dianggap tidak efisien dengan alasan bahwa lebih baik merahasiakan key untuk mengenkripsi ataupun mendekripsi data daripada merahasiakan algoritma yang digunakan. Sehingga algoritma kriptografi kunci publik mulai diperkenalkan sebagai suatu perbaikan yang masih tetap mengacu kepada kriptografi klasik.

Salah satu bentuk kriptografi kunci publik adalah kriptografi yang memakai kunci asimetri, yang berarti kunci yang dipakai untuk mengenkripsi dan


(17)

mendekripsi berbeda. Kunci yang dipakai untuk mengenkripsi disebut kunci publik sedangkan kunci yang dipakai untuk mendekripsi disebut kunci privat.

Algoritma Knapsack Merkle-Hellman adalah salah satu teknik kriptografi kunci asimetri. Aspek keamanan pada algoritma ini didasarkan pada sulitnya memecahkan persoalan knapsack. Masalah knapsack merupakan suatu permasalahan bagaimana memilih objek dari sekian banyak dan berapa besar objek tersebut akan disimpan sehingga diperoleh suatu penyimpanan yang optimal. Pada algoritma knapsack Merkle-Hellman, persoalan knapsack terdapat pada proses dekripsi, yaitu bagaimana deretan ciphertext yang telah ditransformasi dengan rumus dekripsi diubah ke dalam bentuk biner dengan menggunakan konsep knapsack.

Proses yang terjadi adalah sebagai berikut. Apabila jumlah deretan

ciphertext adalah S. Diketahui n buah ciphertext yang masing-masing bilangannya adalah w1, w2, …, wn. Maka ditentukan nilai b yaitu faktor pengali sedemikian sehingga

S = b1w1 + b2w2+ … + bnwn

yang dalam hal ini, bi bernilai 0 atau 1. Jika bi= 1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan, dengan i

merupakan indeks pada deretan ciphertext[15]. Deretan ciphertext yang berupa deretan biner selanjutnya dapat dikonversi kembali menjadi bilangan dengan basis sepuluh dan dikonversi ke ASCII sehingga akan menghasilkan plaintext.

Namun, kebutuhan masyarakat terhadap keamanan informasi yang semakin meningkat mengakibatkan timbulnya masalah lain dalam kriptografi, yaitu keberadaan ciphertext yang berupa serangkaian kode tidak bermakna dapat menimbulkan kecurigaan akan adanya suatu pesan rahasia yang terkandung di dalamnya. Oleh karena itu, untuk lebih menyempurnakan kriptografi, muncul suatu ilmu baru yaitu steganografi. Steganografi merupakan ilmu menyembunyikan data rahasia sehingga keberadaan data tidak terdeteksi oleh indera manusia. Steganografi dapat diimplementasikan pada media digital


(18)

yang dipakai adalah algoritma Least Significant Bit. Cara kerja algoritma ini adalah dengan mengganti setiap bit terakhir pada citra dengan setiap bit pesan rahasia dan dilakukan secara berurutan.

Salah satu implementasi algoritma Kriptografi Knapsack Merkle-Hellman

terdapat pada jurnal yang ditulis oleh [1], dimuat dalam IJCSNS International Journal of Computer Science and Network Security, VOL.11 No.5, yang berjudul “Encrypting Messages using the Merkle-Hellman Knapsack Cryptosystem”. Penelitian ini berkaitan dengan penggunaan sistem kripto Merkle-Hellman untuk mengkripsi pesan sehingga hanya pihak penerima pesan yang dituju yang dapat mendekripsi ciphertext.

Teknik steganografi juga diimplementasikan oleh [7], dalam skripsinya yang berjudul “Perlindungan Pesan Rahasia Pada Citra Digital Menggunakan Metode Least Significant Bit Steganografi”. Pada skripsi tersebut, hanya menggunakan citra dengan kedalaman 24-bit sebagai media penampung.

1.2 Rumusan Masalah

Secara umum, inti dari permasalahan yang dikaji dalam penelitian ini adalah adalah bagaimana merancang dan membangun sebuah perangkat lunak berbasis

desktop yang dapat menyisipkan pesan yang telah dienkripsi sebelumnya pada sebuah file digital. Dalam hal ini, media yang digunakan adalah citra Bitmap.

1.3 Batasan Masalah

Dalam suatu penelitian diperlukan adanya pembatasan masalah agar persoalan tidak menyimpang dari hal-hal yang telah ditentukan sebelumnya. Disamping itu, batasan masalah dapat membuat penelitian lebih terarah dan memudahkan pembahasan sehingga tujuan penelitian dapat tercapai.


(19)

Adapun batasan masalah yang harus diperhatikan dalam penelitian ini adalah:

1. File yang digunakan sebagai media penyisipan data adalah file image

berformat Bitmap.

2. Proses enkripsi menggunakan kripto Knapsack Merkle-Hellman dan teknik penyisipannya menggunakan metode Least Significant Bit.

3. Perangkat lunak yang dibangun juga memiliki fungsi untuk mengembalikan data ke bentuk aslinya (ekstraksi dan dekripsi).

4. Data yang akan dienkripsi berupa teks dengan karakter ASCII 7 bit. Pemilihan ASCII 7 bit didasarkan pada pertimbangan untuk menghemat

memory/space yang digunakan pada proses penyisipan pesan.

5. Bahasa pemrograman yang dipakai dalam membangun perangkat lunak ini adalah Matlab R2007b.

1.4 Tujuan Penelitian

Penelitian ini dilaksanakan dengan tujuan:

1. Untuk mengetahui bagaimana cara kerja algoritma kriptografiKnapsack Merkle-Hellman dalam mengenkripsi data serta penyisipan data menggunakan metode Least Significant Bit.

2. Untuk merancang dan membangun sebuah perangkat lunak yang dapat mengenkripsi pesan berbentuk teks serta menyisipkannya dalam citra Bitmap.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah menghasilkan suatu aplikasi berbasis desktop


(20)

sehingga kerahasiaan pesan semakin terjaga serta pihak penerima pesan dapat mengekstrak dan mendekripsinya.

1.6 Metode Penelitian

Metode penelitian yang digunakan dalam skripsi ini adalah: 1. Studi literatur

Metode ini dilakukan studi kepustakaan melalui hasil penelitian lain yang relevan serta buku maupun artikel yang diperoleh melalui internet.

2. Analisis dan Perancangan

Metode ini dilaksanakan dengan menganalisis permasalahan yang ada, batasan masalah yang dimiliki serta berbagai kebutuhan yang diperlukan.

3. Implementasi dan Pengujian

Metode ini dilaksanakan dengan melakukan implementasi perangkat lunak yang bertujuan untuk meningkatkan keamanan data menggunakan kripto

Knapsack Merkle-Hellman dan metode Least Significant Bit serta pengujian terhadap perangkat lunak yang telah dibangun.

4. Dokumentasi

Metode ini dilaksanakan dengan penyusunan laporan serta hal-hal yang berhubungan dengan tugas akhir ini.

1.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri atas beberapa bagian, yaitu:

BAB 1 : PENDAHULUAN

Bab ini berisi pembahasan dasar penyusunan tugas akhir yang meliputi latar belakang pemilihan judul skripsi “Perancangan Aplikasi Kombinasi Algoritma Steganografi Least Significant Bit dan Algoritma Kriptografi Knapsack


(21)

Merkle-Hellman pada citra Bitmap”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini berisi tentang dasar teori yang digunakan sebagai sumber atau acuan dalam memahami permasalahan penelitian yang berkaitan dengan kriptografi, steganografi, algoritma Knapsack Merkle-Hellman, metode Least Significant Bitdan citra Bitmap.

BAB 3 : ANALISIS DAN PERANCANGAN

Bab ini berisi proses analisis kebutuhan perangkat lunak serta langkah-langkah dalam perancangan aplikasi secara fungsional. Bagian analisis memuat uraian tentang metode yang digunakan untuk merancang aplikasi, sedangkan pada proses peracangan dihasilkan perancangan flowchart dan antar muka.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi proses implementasi dan pengujian aplikasi terhadap pesan dan citra Bitmap sebagai inputannya.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang berupa rangkuman dari keseluruhan hasil analisis bagian sebelumnya dan saran yang perlu diperhatikan agar dapat bermanfaat pada proses pengembangan selanjutnya.


(22)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Dewasa ini, kriptografi menjadi suatu syarat yang paling penting dalam keamanan informasi. Berbagai aspek keamanan seperti kerahasiaan data, keabsahan data, integritas data, dan autentifikasi merupakan hal yang dicakup sebagai tujuan kriptografi. Ketika suatu pesan akan dikirimkan, isi pesan tersebut mungkin disadap oleh pihak yang tidak berhak. Agar pesan tidak dapat dibaca oleh penyadap, maka kriptografi berperan sebagai suatu teknik yang dapat mengubah pesan menjadi serangkaian kode yang tidak dimengerti oleh pihak lain.

2.1.1 Sejarah dan Konsep Kriptografi

Kriptografi berasal dari bahasa Yunani yang terdiri dari kata kryptos, yang artinya rahasia dan graphein, yang artinya tulisan. Para sejarawan percaya bahwa hieroglif Mesir, yang dimulai sekitar tahun 1900, merupakan contoh pengenkripsian yang paling awal. Kunci yang dapat memecahkan rahasia hieroglif adalah Rosetta Stone, ditemukan tahun 1799 di Mesir dan sekarang ditempatkan di British Museum, London. Francois Champollion, menggunakan Rosetta Stone, mendekripsi hieroglif pada tahun 1822 [9].

Kriptografi adalah ilmu yang berfokus pada cara untuk memproteksi data menggunakan teknik enkripsi dan proses lain yang berhubungan. Matematika merupakan hal yang penting dalam dunia kriptografi, karena hanya dengan pengetahuan matematis dapat dikembangkan prosedur yang dibutuhkan untuk mengenkripsi data secara aman. Hal penting lainnya adalah komputer. Komputer


(23)

menjalankan prosedur enkripsi dan melakukan layanan lainnya dengan mencoba kelemahan metode kriptografi [14].

Ide utama dari sebuah sistem kriptografi adalah untuk menyamarkan informasi rahasia dengan cara yang tidak dapat dipahami oleh pihak yang tidak berhak. Dua kegunaan umum kriptografi adalah untuk menyimpan data secara aman dikomputer dan untuk mengirimkan data melalui saluran yang tidak aman seperti internet. Faktanya adalah bahwa pesan yang terenkripsi tidak mencegah pihak lain untuk mengakses pesan tersebut, tetapi dapat dipastikan bahwa pihak lain tidak dapat mengerti apa yang mereka lihat [12].

Dasar dari kriptografi adalah pemakaian teknik enkripsi. Pesan yang akan dikirimkan – berupa teks, data numerik, dan data jenis lain – disebut dengan

plaintext. Setelah melalui proses enkripsi, plaintext tersebut berubah menjadi

ciphertext. Proses untuk mengembalikan ciphertext menjadi plaintext disebut dengan proses dekripsi. Untuk melakukan proses dekripsi diperlukan adanya suatu kunci rahasia[5].

2.1.2 Terminologi Kriptografi

Beberapa istilah umum atau terminologi yang berhubungan dengan kriptografi dapat ditemukan pada standar internasional RCF 2828 yaitu [18]:

1. Confidentiality, secrecy: suatu jaminan bahwa informasi tidak dapat diakses oleh pihak yang tidak berhak.

2. Privacy: suatu kemampuan yang dimiliki oleh seseorang untuk mengontrol bagaimana informasi pribadinya menyebar dalam suatu komunitas. Istilah ini merupakan sinonim dari secrecy.

3. Code: sekumpulan simbol yang merepresentasikan informasi.

4. Coding theory: ilmu tentang transformasi kode yang memungkinkan adanya pengiriman informasi melalui saluran komunikasi dengan cara yang dapat


(24)

diandalkan. Biasanya teori ini berfokus pada saluran yang ramai dan mencoba membuat agar informasi dapat diungkap oleh semua orang (istilah ini merupakan kebalikan dari kriptografi, dimana informasi hanya untuk pihak yang berhak). 5. Encode, Decode: proses dasar pada coding theory; suatu proses untuk

mentransformasi informasi menjadi kode, dan mengembalikan informasi dari kode tersebut.

6. Cryptography: ilmu tentang kode rahasia memungkinkan adanya kerahasiaan komunikasi melalui saluran yang tidak aman. Kriptografi juga didefinisikan sebagai suatu ilmu tentang pengamanan informasi terhadap pihak yang tidak berhak. Algoritma kriptografi merupakan algoritma matematis yang menghasilkan suatu proteksi.

7. Cipher: kode rahasia, suatu kode publik yang berhubungan dengan informasi rahasia.

8. Cryptography system: kumpulan algoritma kriptografi yang terdiri atas sandi dan pola kriptografi.

9. Cryptosystem: singkatan dari cryptography system yang sering digunakan pada istilah ”public-key cryptosystem” yang merupakan algoritma kriptografi yang memiliki sepasang kunci.

10. Cleartext: informasi yang dapat disandikan menggunakan kode publik. 11. Plaintext: masukan pada algoritma enkripsi (biasanya merupakan cleartext). 12. Ciphertext, cryptogram: informasi yang disandikan dengan menggunakan sistem

kriptografi.

13. Encryption, encipherment, decryption, decipherment: proses dasar kriptografi yaitu mentransformasi plainteks menjadi ciphertext dan sebaliknya.

14. Cryptanalysis, cryptographic analysis, cryptoanalysis: toeri tentang analisis keamanan sistem kriptografi.

15. Breaking a cryptosystem: suatu pembuktian kelemahan sistem kriptografi dengan memaparkan cara mendekripsi pesan.


(25)

2.1.3 Penggunaan Kriptografi

Menurut [14], terdapat beberapa media yang menggunakan teknik kriptografi melalui jalur internet. Diantaranya adalah:

1. E-mail. Hingga saat ini, surat elektronik yang telah disandikan menjadi daya tarik utama dalam dunia internet.

2. World Wide Web. WWW tidak hanya menjadi arena bermain bagi para pengguna internet. WWW telah banyak digunakan sebagai alat untuk mengakses basis data, administrasi sistem komputer, dan pusat perbelanjaan. Pada masing-masing keadaan tersebut, terknik enkripsi sangat dibutuhkan.

3. Koneksi klien server. Perkembangan sistem komputer berdampak pada perkembangan komunikasi dan adanya aliran yang besar tentang informasi rahasia.

4. Jaringan rahasia virtual. Perusahaan dengan beberapa cabang sering mengelompokan jaringan lokal dengan koneksi seperti ISDN. Semua data akan dienkripsi apabila berada diluar jaringan perusahaan dan kemudian akan didekripsi apabila telah berada di wilayah perusahaan.

5. Sistem pembayaran. Kriptografi menjaga keamanan dalam melakukan transaksi berupa transfer uang melalui internet.

6. Remote access. Beberapa layanan seperti Telnet atau Rsh berfungsi untuk mengakses komputer dari jarak jauh menggunakan internet. Kriptografi berperan dalam mengenkripsi data selama proses berlangsung.

2.1.4 Kriptografi Kunci Publik

Suatu sistem kriptografi yang terdiri atas kumpulan transformasi enkripsi dan dekripsi disebut dengan sistem kriptografi kunci publik atau suatu sistem kriptografi asimetrik jika sepasang kunci yaitu kunci untuk proses enkripsi dinamakan kunci publik, disebarkan kepada publik, dan kunci untuk proses dekripsi dinamakan kunci privat, dijaga kerahasiaannya.


(26)

Beberapa aspek penting pada sistem kriptografi kunci publik dapat dijelaskan sebagai berikut [10]:

1. Keamanan. Dengan adanya sistem kriptografi kunci publik, hanya kunci privat yang harus dijaga kerahasiaannya sedangkan kunci publik disebarkan dengan bebas.

2. Usia pemakaian. Sistem kriptografi kunci publik memiliki pasangan kunci yang dapat digunakan tanpa perlu adanya perubahan dalam waktu yang lama.

3. Manajemen kunci. Pada jaringan multiuser, lebih sedikit kunci privat yang dibuuthkan.

4. Pertukaran kunci. Pada Sistem kriptografi kunci publik, tidak dibutuhkan adanya pertukaran kunci privat antar entitas.

2.1.5 Kriptografi Knapsack Merkle-Hellman

Sistem kripto Knapsack Merkle-Hellman mengambil masalah super-increasing knapsack sebagai kunci privat dan membentuknya menggunakan suatu transformasi. Hasil transformasi ini yang kemudian menjadi kunci publik. Transformasi dapat diselesaikan dengan mengambil nilai integer N dan M (nilai

greatest commod divisor ataugcd), yaitu

gcd(N,M) = 1

dan mengalikan semua nilai deretan super-increasing dengan N (mod M). Contohnya adalah sebagai berikut:

Deretan super-increasing knapsack {2,6}

N = 31 dan M = 105.

Proses transformasi yang terjadi adalah:

(2*31) mod 105 = 62 (6*31) mod 105 = 81

Maka kunci publik yang dihasilkan adalah {62,81}. Hasil ini merupakan kunci publik dengan maksud bahwa hanya pihak yang mengetahui nilai N dan M saja yang dapat mentransformasi kembali ke bentuk super-increasing knapsack[15].


(27)

Proses enkripsi algoritma ini dapat dijelaskan dengan contoh berikut. Misalkan plaintext adalah 011110, kunci publik yang digunakan adalah seperti contoh diatas, yaitu {62,81}. Kemudian plaintext dibagi menjadi blok-blok dengan ukuran 6 dan setiap bit di dalam blok dikalikan dengan elemen yang berkoresponden pada kunci publik.

Blok 1 : 01  0*62 + 1*81 = 81 Blok 2 : 11  1*62 + 1*81 = 143 Blok 3 : 10  1*62 + 0*81 = 62 maka ciphertext yang dihasilkan adalah 81,143,62.

Proses dekripsi dapat dilakukan dengan mengalikan masing-masing deretan ciphertext dengan WB-1 kemudian hasilnya dimodulokan dengan

NB,keduanya adalah parameter rahasia. WB-1 merupakan invers dari bilangan integer N yang telah ada sebelumnya dan NB merupakan bilangan integer yang relatif prima terhadap N. Artinya adalah suatu modular akan memiliki invers apabila kedua bilangan memiliki nilai greatest common divisor sama dengan satu [17].

Konsep balikan modular dapat dirumuskan dengan a. a-1≡1 (mod n), dengan keterangan a dan n adalah bilangan integer dan a-1adalah invers dari a

[10]. Pada contoh diatas, nilai N = 31, M = 105, maka nilai untuk mencari nilai N

-1

, dengan konsep modular yaitu N. N-1≡ 1 (mod M). Untuk itu kita lakukan percobaan agar N. N-1 (mod M) ≡ 1, dimulai dari N-1 = 0.

Tabel 2.1 Perhitungan invers N-1 N. N-1(mod M)

0 0

1 31

2 61

3 93

4 19

5 50


(28)

61 1

Pada table diatas, terlihat bahwa N. N-1 (mod M) akan sama dengan satu pada nilai N-1 ke 61. Dengan menggunakan konsep modulo bahwa apabila:

a (mod b) = 1 a = 1 + k * b,

dengan a dan b adalah bilangan integer dan k adalah faktor pengali, sehingga konsep modular diatas dapat menjadi:

N. N-1 (mod M) ≡ 1

N. N-1≡ 1 + k * M N-1≡ (1 + k * M) div N

Untuk memperoleh nilai N-1, maka perhitungan dimulai dengan nilai k sama dengan nol.

Proses dekripsi dilakukan dengan mengalikan masing-masing nilai

plaintext dengan N-1 dan kemudian dimodulokan dengan M. Ciphertext = {81,143,62}. Nilai N adalah 31 dan M adalah 105. Maka nilai N-1adalah 61 pada k

= 18. Dengan demikian didapat nilaiplaintext: 61*81 (mod 105) = 6 61*143 (mod 105) = 8

61*62 (mod 105) = 2

Maka nilai plaintext= {6, 8, 2}. Masing-masing ciphertext dikonversi kedalam bentuk biner dengan menggunakan konsep persoalan knapsack dengan algoritma berikut [15]:

Algoritma 2.1 : Penyelesaian persoalan super-increasing knapsack

Step 1: for i = n downto 1 do

Step 1a: if S >= wi then

Step 1b: bi = 1 ;

Step 1c: S = S - wi ;

end

Step 1d: else bi = 0 ;

Step 2: end

Step 3: if S = 0 then return (b1,b2,…,bn) ; else return (“No Solution”) ;


(29)

dengan n adalah banyaknya bilangan kunci privat, i adalah indeks, S adalah target (bilangan ciphertext setelah ditransformasi dengan rumusan dekripsi), w adalah bilangan pada deretan kunci privat, b adalah plaintext dalam bentuk biner.

Pada contoh diatas, nilai untuk n adalah 2, S = {6,8,2}, dan w = {2,6}. Selanjutnya, untuk masing-masing S, dilakukan proses dengan algoritma 8.1, menghasilkan S = {61 0, 81 1, 20 1}. Sehingga diperoleh nilai b yang merupakan biner plaintext yaitu 1 0 1 1 0 1. Selanjutnya nilai b disusun dimulai dari indeks pertama sampai ke n. Maka nilai biner plaintext menjadi 0 1 1 1 1 0.

Deretan super-increasing adalah sebuah urutan bilangan real positif S1,

S2, ... jika setiap elemen dari urutan lebih besar dari jumlah dari semua elemen

sebelumnya dalam urutan [17].

Dapat diformulasikan, untuk 1 ≤k n dan 1 ≤i n,

� �� < �−1

�=1 ��

dengan keterangan:

k dan i : indeks pada deretan super-increasing a : bilangan dalam deretan super-increasing

2.2 Algoritma Euclidean

Bentuk pertama algoritma Euclidean berasal dari Cina pada dinasti Han, antara tahun 200 SM dan 200 M. Algoritma ini digunakan untuk menyederhanakan pecahan dengan membagikan pembilang dan penyebut dengan faktor persekutuan terbesarnya, dan juga untuk mencari penyelesaian bilangan bulat dari persamaan linear [16].


(30)

Algoritma Euclidean adalah suatu algoritma untuk menentukan faktor persekutuan terbesar dari dua bilangan bulat [3]. Algoritma ini menghasilkan suatu nilai yang dapat membagi nilai a dan b, berupa integer tanpa menghasilkan sisa. Dua buah bilangan disebut relatif prima apabila nilai faktor persekutuan terbesar kedua bilangan itu sama dengan satu.

Berikut ini adalah pseudocode untuk Algoritma Euclidean yang dapat menghitung faktor persekutuan terbesar dari dua buah bilangan bulat.

Algoritma 2.2 : Algoritma Euclidean

function gcd(int m, int n){ r = m mod n;

if r=0 return n; else return gcd(n,r); }

Misalkan m = 11 dan n=7, maka langkah-langkah atau perhitungan yang dilakukan adalah sebagai berikut.

1. Dihitung nilai r, yaitu m mod n, adalah 11 mod 7 = 4. Karena r tidak sama dengan nol, maka fungsi gcd dipanggil kembali dengan parameter n,r = gcd(7,4). 2. Dihitung nilai r, yaitu 7 mod 4 = 3. Karena r tidak sama dengan nol, maka fungsi

gcd dipanggil kembali dengan parameter n,r = gcd(4,3).

3. Dihitung nilai r, yaitu 4 mod 3 = 1. Karena r tidak sama dengan nol, maka fungsi gcd dipanggil kembali dengan parameter n,r = gcd(3,1).

4. Dihitung nilai r, yaitu 3 mod 1 = 0. Karena r sama dengan nol, maka akan menghasilkan nilai n yaitu 1. Karena gcd(11,7) sama dengan satu, maka kedua bilangan ini adalah relatif prima.

Algoritma Euclidean sangat efisien, bahkan pada deretan angka yang panjang dan sering digunakan pada kriptografi kunci publik. Jumlah iterasi hampir sama dengan jumlah inputan [11].


(31)

2.3 Steganografi

Teknik yang digunakan pada steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan suatu pesan yang bersifat rahasia dapat berupa teks, gambar, atau audio. Sama halnya dengan kriptografi, steganografi berfungsi untuk meningkatkan keamanan informasi. Tetapi steganografi memiliki suatu kelebihan dibandingkan dengan kriptografi, yaitu keberadaan pesan tidak diketahui oleh pihak lain karena pesan disembunyikan pada sebuah media.

2.3.1 Sejarah Steganografi

Penemu kata steganografi adalah Trithemius, pengarang terbitan awal kriptografi: Polygraphia dan Steganographia. Istilah teknisnya berasal dari bahasa Yunani yaitu kata steganos yang berarti tersembunyi dan graphia yang artinya tulisan. Steganografi adalah seni komunikasi tersembunyi. Keberadaan pesan adalah rahasia. Selain tinta tidak kelihatan, contoh steganografi yang paling sering adalah cerita kuno Herodotus [192], yang memberitahukan seorang budak telah dikirim oleh pemiliknya, Histiaeus, ke kota Ionian Miletus dengan sebuah pesan rahasia yang ditato dikulit kepalanya. Setelah ditato, budak tersebut menumbuhkan kembali rambutnya untuk menyembunyikan pesan. Kemudian budak tersebut dirimkan ke Miletus dan setelah sampai, rambut kepalanya dicukur untuk menampakkan pesan kepada bupati kota yaitu Aristagoras. Pesannya berisi dorongan agar Aristagoras memulai pemberontakan melawan raja Persia [4].

Bangsa Cina menggunakan steganografi selama masa dinasti Yuan untuk pemberontakan ketika Cina diperintah oleh bangsa Mongolia. Pemimpin pada saat itu merasa tidak senang dengan pengajuan aturan asing, yang kemudian menciptakan suatu metode yang berhubungan dengan pemberontakan tanpa diketahui. Pemimpin pemberontakan yang mengetahui bahwa festival bulan akan


(32)

segera dilaksanakan, memerintahkan untuk membuat kue khusus yang disebut kue bulan. Didalam masing-masing kue tersebut terdapat sebuah pesan yang berisi skema penyerangan. Pada malam festival bulan, kue tersebut disebarkan dan para pemberontak dengan sukses menyerang pemerintahan [13].

Steganografi juga digunakan pada perang dunia pertama. Salah satu metodenya disebut dengan istilah Turning Grille, yang berbentuk seperti terali biasa, selembar kertas karton persegi yang dibagi menjadi sel-sel dengan beberapa sel menjorok keluar. Untuk menggunakan Turning Grille, sipembuat pesan harus menuliskan huruf-huruf pada barisan pertama pesan dan kemudian merotasi terali tersebut 90 derajat dan menuliskan barisan berikutnya sampai barisan terakhir. Bangsa Jerman menyediakan terali yang berbeda untuk pasukannya yang dapat digunakan pada pesan yang memiliki panjang berbeda. Bangsa Perancis dapat menemukan serangan untuk sistem ini dan terali hanya bertahan selama empat bulan. Pemakaian lain juga ditemukan ketika seorang wanita yang dicurigai bekerja untuk bangsa Jerman. Pada tapak sepatu wanita itu ditemukan selembar kertas kosong, dan setelah diketahui terdapat pesan rahasia yang ditulis dengan tinta yang tidak tampak [8].

2.3.2 Kategori Steganografi

Pada semua metode steganografi, suatu cara dilakukan untuk menyembunyikan pesan; secara umum teknik tersebut dapat dibedakan dan dianalisa agar diketahui apa yang terjadi selama proses berlangsung. Menurut [8], terdapat enam kategori pada steganografi yaitu:

1. Teknik sistem substitusi. Teknik ini menggantikan tempat dari bit yang berlebihan pada cover object dengan bit pesan rahasia.

2. Teknik transformasi domain. Contohnya adalah pengiriman dan penerimaan citra berformat JPEG melalui internet. JPEG merupakan citra yang terkompresi. Selama proses kompresi, citra JPEG akan membuat suatu perkiraan agar


(33)

ukurannya semakin kecil, perubahan dan perkiraan itu adalah ruang transformasi dan dapat digunakan untuk menyembunyikan informasi.

3. Teknik penyebaran spektrum. Teknik ini terbagi atas dua jenis yaitu direct sequence dan frequency hopping.

4. Teknik metode statistik. Teknik ini menyisipkan satu bit informasi hanya pada sebuah digital carier hingga menghasilkan suatu perubahan statistik walaupun perubahan tersebut kecil. Teknik ini didasarkan pada kemampuan penerima yang dibedakan menjadi cover object yang dapat dimodifikasi dan yang tidak dapat dimodifikasi.

5. Teknik distorsi. Metode ini menghasilkan perubahan pada cover object untuk menyembunyikan informasi. Pesan rahasia dapat terungkap ketika algoritma membandingkan adanya perubahan, antara cover object dengan aslinya.

6. Metode cover generation. Metode ini merupkan metode yang paling unik, karena menghasilkan suatu cover object sebagai tujuan utama penyembunyian informasi.

Metode steganografi Least Significant Bit termasuk pada kategori teknik sistem substitusi.

2.3.3 Penggunaan Steganografi

Terdapat banyak alasan mengapa dibutuhkan komunikasi secara rahasia. Contohnya adalah ketika dua orang ingin menyembunyikan hubungan mereka. Atau dalam bidang politik dalam kasus ketika suatu organisasi ingin berkomunikasia antar anggotanya atau dengan organisasi yang dilarang diluar negara mereka. Dapat pula ditemukan pada tindak kriminal, seperti organisasi teroris. Steganografi yang berhasil tidak dapat dideteksi, maka kebanyakan aplikasinya tidak disebarluaskan kepada publik. Berikut adalah dua penggunaan steganografi menurut [4].

1. Steganografi untuk pemberontak.

Banyak negara yang tidak menyetujui pemberontakan. Terdapat tiga cara yang digunakan oleh para pemberontak untuk menyembunyikan komunikasi mereka,


(34)

antara lain dengan teknik enkripsi, pesan tanpa nama, dan steganografi. Enkripsi dapat menjaga keamanan komunikasi para pemberontak dan jika kunci yang digunakan cukup besar, maka kemungkinan teknik dekripsi dapat ditiadakan. Namun disayangkan, ketika dua orang sedang bertukar pesan yang telah disandikan menunjukan bahwa mereka memiliki sesuatu yang disembuyikan. Musuh mungkin dapat menangkap mereka dan mendapatkan kunci dekripsi dengan menggunakan siksaan. Cara berikutnya, yaitu pengiriman pesan tanpa nama, memungkinkan dua orang untuk berkomunikasi tanpa diketahui. Akan tetapi musuh dapat memantau proses pengiriman. Karena alamat IP pengirim tanpa nama diketahui, musuh dapat memutus semua komunikasi pada alamat tersebut. Hal ini mungkin terjadi karena pemerintah memiliki kontrol yang penuh atas jaringan komunikasi nasional. Steganografi merupakan cara teraman bagi para pemberontak untuk berkomunikasi karena keberadaannya yang sulit untuk diketahui.

2. Steganografi pada tindak kriminal

Pada era demokrasi, negara memiliki hak untuk memantau para penduduknya berdasarkan hukum nasional. Contohnya di Amerika, penyadapan telepon dijinkan dengan alasan perintah oleh pemerintah pusat. Selama masa itu setiap orang berada dibawah pengwasan. Badan keamanan seperti FBI, biasanya menyembunyikan segala bentuk operasi pengawasan. Teknik enkripsi dapat digunakan untuk menjamin kerahasiaan komunikasi bagi anggota organisasi kriminal. Namun FBI dapat mengindentifikasi penerima pesan terenkripsi tersebut dan para konspirator. Pengirim pesan tanpa nama juga dapat membantu komunikasi antar anggota komunikasi. Penggunaan cara ini tidak termasuk pelanggaran dan FBI tidak memiliki wewenang untuk meniadakan akses surat-menyurat. Namun badan peleksana undang-undang menuntut akses terhadap informasi yang berasal dari pengirim tanpa nama. Oleh karena itu, steganografi dianggap sebagai alternatif untuk menggantikan cara berkomunikasi secara rahasia lainnya. Salah satu kelemahan steganografi adalah kedua pihak yang berkomunikasi harus mempunyai program steganografi di komputer mereka.


(35)

Salah satu sistem steganografi substitusi adalah Least Significant Bit (LSB). LSB bekerja sebagai berikut: di dalam coverdigital (file gambar, audio, atau video), terdapat banyak pixel; bit terakhir pada tiap pixel merupakan bit yang digunakan menyembunyikan pesan rahasia, dengan cara menggantikan tempat bit terakhir tersebut dengan pesan rahasia [8].

Contoh steganografi memakai metode LSB adalah sebagai berikut. Pesan rahasia yang akan kita sisipkan adalah 1100. Bit file sampul yang akan menjadi media penyembunyi pesan adalah

11001100 11011011 11110001 11110101 maka hasil steganonya adalah

11001101 11011011 11110000 11110100.

2.4 Citra Bitmap

Bit merupakan elemen primitif dalam dunia digital. Bit menunjuk pada angka biner, sedangkan map merupakan matriks dua dimensi dari bit ini. Bitmap berarti matriks sederhana dari titik-titik kecil yang membentuk sebuah citra dan ditampilkan dilayar komputer atau dicetak [2]. Citra Bitmap memiliki ekstensi .bmp dan mendukung warna RGB dengan kedalaman 1, 4, 8, 16, atau 24 bit. Citra Bitmap tidak mendukung adanya animasi [6].

Struktur sebuah citra Bitmap terdiri atas header Bitmap, header informasi Bitmap, tabel warna dan data citra atau byte array yang mendefinisikan sebuah citra Bitmap [19].

1. HeaderBitmap terdiri atas informasi yang meliputi tipe, ukuran, dan layout sebuah citra Bitmap.

2. Header informasi Bitmap terdiri atas dimensi, tipe kompresi, dan format warna untuk citra Bitmap.

3. Tabel warna terdiri atas elemen array yang sama dengan warna yang ditampilkan pada citra Bitmap.


(36)

4. Data citra merupakan byte array yang terdiri atas informasi warna masing-masing piksel.

Berikut adalah contoh citra Bitmap dengan berbagai bit depth.

Gambar 2.1 Citra Bitmap 24bit

Citra diatas memiliki bit depth (kedalaman)24-bit, artinya citra memiliki tiga layer. Citra ini disebut juga dengan citra true color dengan rentang warna dimulai dari nol sampai 224 atau 16777215.


(37)

Gambar 2.2 Citra Bitmap 8bit

Citra diatas memiliki bit depth (kedalaman)8-bit, artinya citra memiliki rentang warna dimulai dari nol sampai 28 atau 255.


(38)

Gambar 2.3 Citra Bitmap 1bit

Citra diatas memiliki bit depth (kedalaman)1-bit, artinya citra ini hanya memiliki dua warna yaitu 0 dan 1 yang direpresentasikan dengan hitam dan putih.


(39)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Pada tahap analisis sistem, hal-hal yang dianalisis mencakup analisis permasalahan dan analisis kebutuhan sistem.

a. Analisis Permasalahan

Berikut ini adalah diagram analisis permasalahan dari sistem yang dibangun dengan menggunakan diagram Konteks yang merupakan model untuk menunjukkan bagaimana sistem berinteraksi dengan data input dan output.


(40)

Pada bagan diatas, dapat terlihat bahwa terdapat empat proses yang menjadi fungsi utama sistem yang terbagi atas dua bagian, yaitu dari sisi sender dan

receiver. Pada sisi sender, proses pertama melibatkan data inputan berupa

plaintext dan publicKey. Proses ini menghasilkan suatu ciphertext. Selanjutnya pada proses kedua yang melibatkan ciphertext dan citra Bitmap sebagai inputan yang menghasilkan sebuah stegano image. Pada sisi receiver, proses pertama memiliki steganoimage sebagai data inputan dan menghasilkan sebuah ciphertext. Proses kedua melibatkan ciphertext dan

secretKey sebagai data inputan dan menghasilkan sebuah plaintext.

b. Analisis Kebutuhan Sistem

Aspek fungsional yang terdapat pada sistem meliputi adanya fungsi enkripsi, dekripsi, penyisipan, ekstraksi, pembangkitan kunci, serta bantuan untuk pemakaian sistem.

Aspek non fungsional meliputi adanya fungsi untuk pengecekan validitas setiap nilai serta penyimpanan pasangan kunci.

3.2 Perancangan Sistem

Tahap perancangan sistem menggunakan UML yang mencakup diagram use case, sequence, class, dan activity. Tahap perancangan juga mencakup perancangan

flowchart dan antarmuka.

3.2.1 Diagram Use Case

Diagram use case menunjukkan interaksi aktor terhadap sistem. Pada diagram ini, terdapat dua actor yang berperan yaitu sender (pengirim) dan receiver (penerima).

Use case yang terdapat pada sisi sender adalah encrypt dan embed. Hasil dari

embed kemudian akan digunakan receiver untuk melakukan proses berikutnya.

Receiver berinteraksi dengan sistem dengan extract dan decrypt. Berikut ini adalah diagram use case sistem yang dibangun.


(41)

System

SENDER RECEIVER

encrypt

Gambar 3.2 Diagram Use Case Sistem

3.2.2 Diagram Sequence

DiagramSequence menggambarkan proses atau langkah-langkah yang dilakukan oleh masing-masing aktor dalam menggunakan sistem. Sender terlebih dahulu melakukan proses enkripsi dengan memasukkan data berupa plaintext dan

publicKey, kemudian dilanjutkan dengan proses penyisipan dengan memasukkan data berupa citra berformat Bitmap. Receiver yang telah memiliki stegano image

akan melakukan proses ekstraksi yang menghasilkan ciphertext dan dilanjutkan dengan proses dekripsi agar diperoleh plaintext. Berikut ini adalah diagram


(42)

SENDER

publicKey

Gambar 3.3 Diagram SequenceSistem

3.2.3 Diagram Class

Diagram class menggambarkan keadaan atribut dari masing-masing proses yang terdapat pada sistem, yaitu enkripsi, penyisipan, ekstraksi, dan dekripsi. Pada proses enkripsi terdapat tiga atribut, yaitu publicKey, plaintext, dan Knapsack Merkle-Hellman. Pada proses penyisipan terdapat dua atribut, yaitu citra Bitmap dan Least Significant Bit. Proses ekstraksi memiliki dua atribut, yaitu steganoImg dan Least Significant Bit. Proses terakhir, yaitu proses dekripsi, terdapat atribut

secretKey dan Knapsack Merkle-Hellman. Berikut ini adalah diagram class

sistem, masing-masing memiliki relasi one to one, karena merupakan pasangan proses yang tidak dapat dipisahkan dan hanya melibatkan objek yang sama untuk tiap prosesnya.


(43)

Gambar 3.4 Diagram Class 3.2.4 Diagram Activity

Diagram activity menggambarkan segala aktivitas yang terdapat pada sistem. Terdapat dua aktivitas utama, yaitu aktivitas pada sender dengan melibatkan proses enkripsi dan penyisipan, dan aktivitas pada receiver yang melibatkan proses ekstraksi dan dekripsi.


(44)

Setelah sender memilih sebuah citra Bitmap, akan terlihat jumlah maksimum karakter sesuai dengan ukuran citra. Selanjutnya sender menginputkan

plaintext dan publicKey agar proses enkripsi dapat berlangsung. Proses ini menghasilkan ciphertext dan ciphertext disisipkan kedalam citra BMP yang telah dipilih sebelumnya agar dihasilkan sebuah stegano image.

Receiver memilih stegano image yang akan diekstrak. Proses ekstraksi menghasilkan ciphertext, dan kemudian akan mengalami proses dekripsi dengan menggunakan secretKey yang merupakan pasangan dari publicKey yang dimiliki

sender. Proses dekripsi akan menghasilkan plaintext.

3.2.5 Flowchart Sistem


(45)

Terdapat dua pilihan saat memulai program, yaitu apakah user akan melakukan penyisipan dan pengekstrakan pesan. Apabila tidak satupun dari kedua pilihan dipilih oleh user maka program berhenti. Pilihan penyisipan akan membawa user pada proses enkripsi terlebih dahulu dengan menggunakan algoritma Knapsack Merkle-Hellman yang akan menghasilkan ciphertext. Dilanjutkan dengan proses penyisipan dengan masukkan berupa ciphertext dan citra Bitmap. Proses ini akan menghasilkan sebuah citra yang telah disisipkan

ciphertext (stegano image).

Pilihan selanjutnya yaitu apakah user ingin melakukan proses ekstraksi pesan. Pesan yang telah diekstrak dari stegano image akan didekripsi agar didapat pesan asli karena dalam hal ini pesan yang disembunyikan dalam stegano image

adalah berupa ciphertext.

3.2.5.1 Flowchart Algoritma Kriptografi Knapsack Merkle-Hellman

Sebelum dilakukan proses enkripsi, terlebih dahulu dibangkitkan kunci privat untuk menghasilkan kunci publik. Adapun langkah-langkahnya adalah sebagai berikut.

1. Diinputkan nilai integer untuk suku pertama dan suku kedua kunci privat. Diinputkan pula nilai pertambahan untuk membangkitkan kunci privat dan jumlah kunci privat.

2. Untuk mendapatkan suku ketiga dan suku berikutnya, dipastikan bahwa nilainya harus lebih besar dari jumlah suku-suku sebelumnya. Nilai suku tersebut didapat dengan cara menjumlahkan semua suku sebelumnya dan menambahkannya dengan nilai pertambahan yang telah diinputkan.

Contohnya adalah:

Jumlah kunci = 5, suku pertama = 1, suku kedua = 3, nilai pertambahan = 2 Maka akan didapat kunci privat:


(46)

Suku kedua = 3

Suku ketiga = (1+3+2) = 6 Suku keempat = (1+3+6+2) = 12 Suku kelima = (1+3+6+12+2) = 24 Kunci privat = 1 3 6 12 24

Gambar 3.7 Flowchart pembangkitan kunci privat

Setelah didapatkan kunci privat, selanjutnya akan diciptakan kunci publik dengan terlebih dahulu menginputkan nilai n dan m. Syaratnya adalah bahwa nilai

m harus lebih besar dari total kunci privat, dan nilai n lebih kecil dari nilaim.Kedua bilangan ini harus relatif prima, yaitu nilai faktor persekutuan terbesarnya sama dengan satu. Kunci publik didapatkan dengan cara mengalikan masing-masing nilai kunci privat dengan n dan dimodulokan dengan m.


(47)

Gambar 3.8 Flowchart kunci publik

Berikut ini adalah langkah-langkah proses enkripsi dan dekripsi dengan menggunakan algoritma kriptografi Knapsack Merkle-Hellman.

a. Proses enkripsi

1. Plaintext dikonversi terlebih dahulu ke bentuk biner.

2. Plaintext dibagi menjadi beberapa blok sesuai dengan ukuran kunci publik. Dalam contoh diatas, ukuran kunci publik adalah lima. Maka setiap blok plaintext terdiri atas lima bit.

3. Setiap bit didalam blok dikalikan dengan elemen yang berkoresponden pada kunci publik sehingga menghasilkan ciphertext.


(48)

Gambar 3.9Flowchart proses enkripsi

b. Proses dekripsi

1. Ditentukan terlebih dahulu nilai n invers dengan rumus: ((1+k)*m)/n, dengan nilai k dimulai dari nol.

2. Ditentukan nilai transformasi masing-masing ciphertext dengan rumus: (n invers*ciphertext) mod m.

3. Dengan menggunakan algoritma penyelesaian persoalan super-increasing knapsack akan didapatkan plaintext dalam bentuk biner.


(49)

(50)

3.2.5.2 Flowchart Algoritma Steganografi Least Significant Bit

a. Proses embedding

1. Nilai warna citra untuk masing-masing piksel dikonversi kebentuk biner.

2. Masing-masing bit pesan rahasia disisipkan dengan cara memasukkannya pada bit terakhir setiap piksel citra.

3. Matriks yang berbentuk biner dikonversi menjadi sebuah citra Bitmap.


(51)

b. Proses extracting

1. Warna untuk masing-masing piksel dikonversi menjadi matriks bertipe integer 2. Nilai warna untuk masing-masing piksel stegano image dikonversi kebentuk

biner.

3. Diambil bit terakhir masing-masing piksel citra secara berurutan. Deretan bit ini berupa bilangan biner.


(52)

3.2.6Kamus Data

Keseluruhan proses yang terdapat pada perancangan sistem memiliki beberapa data yang merupakan data inputan ataupun data keluaran. Perincian dari data yang digunakan dapat dilihat pada tabel berikut.

Tabel 3.1 Kamus Data

Nama Tipe Data Keterangan

Plaintext string Pesan yang akan

disisipkan ke citra

Ciphertext string Pesan yang telah

dienkripsi

Private key integer Kunci untuk mengekstrak

pesan dari stegano image

Public key integer Kunci untuk penyisipan

Stegano image file Citra Bitmap yang telah

disisipkan pesan rahasia

Image file Citra asli Bitmap

m, n integer Bagian dari secret key

Secret Key integer Kunci rahasia yang terdiri

atas private key dan nilai n dan m

3.2.7 Perancangan Antarmuka

Terdapat enam form pada perancangan antarmuka sistem, yaitu form menu utama,

form penyisipan, form pengekstrakan, form about, form help danform


(53)

1. Form menu utama

Gambar 3.13 Tampilan Rancangan Form Menu Utama

Form ini akan muncul pertama sekali ketika user menjalankan sistem. Terdapat empat tombol yaitu: run program, help, about, dan exit. Apabila user

menekan tombol run program maka akan muncul kotak pilihan apakah ingin menyisipkan atau mengekstrak citra. Pilihan menyisipkan akan membawa user

pada form penyisipan dan pilihan pengekstrakan akan membawa user pada form

ekstraksi. Tombol help akan mengarahkan user pada form bantuan, tombol about

akan mengarahkan user pada form yang berisi data yang berhubungan dengan sitem dan tombol exit membawa user keluar dari program.


(54)

2. Form penyisipan

Gambar 3.14 Tampilan Rancangan Form penyisipan

Sebelum proses penyisipan dilakukan, user harus menginputkan citra berformat Bitmapsebagai cover object. Selain itu, user juga harus menginputkan kunci publik dan pesan yang akan dienkripsi.


(55)

3. Form pengekstrakan

Gambar 3.15 Tampilan Rancangan Form pengekstrakan

Form ini berfungsi untuk mengekstrak pesan dari sebuah stegano image. User

harus menginputkan stegano image dan kunci rahasia agar dapat diperoleh kembali pesan asli.


(56)

4. Form pembangkit kunci

Gambar 3.16 Tampilan Rancangan Form pembangkit kunci

Form ini berfungsi sebagai pembangkit kunci privat dan kunci publik. Untuk menghasilkan suatu kunci publik, maka kunci privat harus ditentukan terlebih dahulu. User harus menginputkan nilai n, m, dan suatu nilai pertambahan.

5. Form about

Gambar 3.17 Tampilan Rancangan Form about

Form ini berisi data yang berhubungan dengan sistem, seperti nama sistem, tahun pembuatan dan lain sebagainya.


(57)

6. Form help

Gambar 3.18 Tampilan Rancangan Form help


(58)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

Tahap implementasi merupakan lanjutan dari tahap analisis dan perancangan sistem. Tools yang digunakan adalah Matlab R2007b, dan sistem berjalan pada sistem operasi windows.

4.1 Tampilan Antarmuka Sistem

Pada tahap perancangan, sistem diberi judul “Message Security Application”. Ketika program dijalankan, maka tampilan yang akan muncul pertama sekali adalah sebagai berikut:


(59)

Apabila tombol run program di klik, maka muncul sebuah kotak dialog yang berisi pilihan embed dan extract.

Gambar 4.2 Kotak Dialog Pilihan Embed dan Extract

Form kedua adalah form yang berisi proses enkripsi dan penyisipan pesan.

Form ketiga, yaitu form ekstrak dan dekripsi pesan, digunakan apabila user ingin mendapatkan pesan asli dari sebuah stegano image. Form keempat adalah form

untuk membangkitkan kunci privat serta kunci publik. Form kelima berisi keterangan tentang sistem dan form keenam berisi tentang cara penggunaan sistem.


(60)

Gambar 4.4 Tampilan Form ekstrak dan dekripsi pesan


(61)

Gambar 4.6 Tampilan Form About


(62)

4.2 Pengujian

Pengujian yang dilakukan terhadap algoritma kriptografi Knapsack Merkle-Hellman adalah berupa pengujian batas maksimum karakter yang dapat dienkripsi berdasarkan banyaknya jumlah piksel dan banyaknya elemen kunci publik. Selain itu, dilakukan pula pengujian terhadap citra yang menjadi cover object dari segi kualitas ataupun ukuran yang tidak dapat dibedakan sebelum dan sesudah disisipi pesan rahasia.

Pengujian ini menggunakan kriteria sebagai berikut:

1. Berkas citra yang berformat Bitmap 24bit dengan ukuran 200x228 piksel, 134Kb. 2. Pesan rahasia yang diinputkan adalah sebagai berikut.

Isi BBM AR. 20E342D9: Rosa aku maaf banget..mendadak aku dipanggil Anas.. dan pasti sampe malem kalo rapat... bsk aja ya..pagi jam 11 juga ok di senci. 256FF48D: Ok bu.Tp skdr info aman ya yg kemarin?Biar sy ksh kbr ke masing2 yg akan dpt kbr baik ini. Mereka menanyakan terus. 20E342D9: So far yg punya lalu aman, yg baru sdg fight, makanya perlu pelumas. 256FF48D: Cuma kita perlu ketemu berkaitan temuan bpk.

3. Kunci publik yang dipakai untuk mengenkripsi adalah 141, 230 225, 210, 120. 4. Spesifikasi perangkat keras yang digunakan untuk pengujian adalah laptop yang

memiliki prosesor Intel Atom N550, 1.5 GHz, 1 GB DDR3 Memory.

4.2.1 Pembangkitan Pasangan Kunci Privat dan Publik

Sebelum proses penyisipan maupun pengekstrakan dilakukan, terlebih dahulu dibangkitkan pasangan kunci privat dan kunci publik yang kemudian disimpan di direktori yang ditentukan user.


(63)

Gambar 4.8 Form Pembangkitan Kunci Privat dan Kunci Publik untuk Proses Pengujian

Apabila proses berhasil ataupun gagal dapat dilihat dari pesan yang terdapat pada yang ditampilkan message box. Syarat agar proses berhasil adalah sebagai berikut.

1. Suku kedua kunci privat harus lebih besar dari suku pertama. 2. Total elemen kunci privat minimal 3.

3. Nilai kunci M harus lebih besar dari total jumlah kunci privat.

4. Nilai kunci N lebih kecil dari kunci M dan keduanya harus relatif prima.

Berikut ini adalah tampilan message box untuk proses berhasil ataupun gagal dalam membangkitkan pasangan kunci privat dan public.


(64)

Gambar 4.10 Tampilan Berhasil Membangkitkan Kunci Publik

Gambar 4.11 Tampilan Gagal Validasi Kunci M dan N

Gambar 4.12 Tampilan Gagal Jumlah Kunci Privat

Pada pengujian ini kunci privat dan kunci publik berhasil dibangkitkan dan disimpan dalam file teks yang berbeda, dengan inputan berupa 3 dan 10 sebagai suku pertama dan kedua kunci privat, nilai pertambahan 2, total elemen kunci privat 6, kunci M adalah 240 dan kunci N adalah 47.


(65)

4.2.2 Proses Embedding

Pilihan embed akan menampilkan form yang memiliki fungsi untuk proses penyisipan pesan. Berikut adalah tampilan form setelah semua inputan telah dimasukkan.

Gambar 4.13 Form Enkripsi dan Penyisipan Pesan

Hasil ciphertext yang diperoleh dari plaintext dan kunci publik yang telah disebutkan sebelumnya adalah:

351 806 926 405 180 330 180 531 366 225 555 345 665 141 575 435 225 666 555 366 551 321 615 740 410 180 471 876 716 596 440 390 510 740 701 230 755 665 615 510 435 141 491 455 785 761 965 525 581 740 525 696 756 740 785 351 371 716 435 615 696 120 261 701 926 440 390 530 530 371 371 896 576 986 965 530 576 230 230 785 761 510 531 756 740 225 435 531 510 665 141 596 455 845 965 530 410 141 716 596 785 876 300 405 141 761 596 785 531 740 635 141 701 596 785 531 926 120 551 371 806 435 735 350 665 756 740 225 435 740 735 620 141 371 776 576 405 300 671 261 740 525 756


(66)

390 510 735 486 230 635 576 615 701 0 491 455 366 555 740 740 735 261 230 755 926 635 300 345 486 230 665 806 756 896 510 486 740 225 390 530 560 696 390 441 555 510 210 350 581 141 651 776 581 390 525 546 756 546 665 210 510 735 740 351 716 225 555 615 896 555 876 230 455 785 756 510 665 141 806 596 440 510 651 615 141 701 716 785 756 510 471 486 881 735 596 620 651 300 551 230 665 1106 405 300 740 671 581 225 555 845 525 351 141 701 716 440 390 881 300 671 581 896 576 896 345 120 716 671 366 435 615 876 300 756 230 575 615 510 350 120 666 491 665 351 390 525 300 486 701 366 555 615 896 410 756 230 530 665 876 525 525 666 371 366 555 756 740 785 261 881 845 665 615 876 300 756 230 785 435 876 525 666 671 740 225 390 530 180 405 671 635 435 366 441 471 581 141 486 896 581 390 755 300 551 230 845 665 776 300 261 701 881 845 665 405 300 575 261 761 785 440 390 510 755 261 881 525 210 510 651 615 141 491 455 845 740 560 120 671 551 575 581 390 755 530 651 581 785 330 321 300 755 261 701 596 785 881 651 180 141 596 575 845 620 671 546 141 596 575 785 651 740 755 261 716 666 351 300 345 546 761 441 350 531 441 321 225 776 230 230 986 756 881 180 141 701 776 845 531 330 120 371 551 806 696 651 560 120 666 551 926 435 756 881 546 141 491 575 845 620 876 300 486 776 455 785 551 300 486 471 761 926 665 615 716 120 321 596 635 701 371

Jumlah ciphertext yang dihasilkan adalah 479 elemen yang setara dengan 3353 bit. Dalam hal ini dibutuhkan sebanyak 3353 piksel sedangkan piksel yang tersedia adalah 200 x 228 x 3 = 136800 div 2 = 68400 piksel. Maka sisa piksel yang tidak terpakai adalah 68400 – 3353 = 65047 piksel.


(67)

Sebelum melakukan proses penyisipan, user harus memilih citra yang akan dijadikan cover object. Berikut adalah tampilan untuk memilih citra.

Gambar 4.14 Tampilan Pilih Citra Sebagai Cover Object


(68)

Didalam form enkripsi dan penyisipandiatas, terdapat tombol untuk mengecek validitas pesan yang akan dienkripsi. Hal ini berkaitan dengan jumlah karakter pesan yang tidak boleh lebih dari jumlah maksimum karakter yang telah tertera. Berikut adalah Message Box berisi pesan berhasil dan gagal.

Gambar 4.16 Message Box Berhasil

Gambar 4.17 Message Box Gagal

Proses pengecekan jumlah karakter pesan menampilkan message box

berhasil karena jumlah karakter pesan yang telah diinputkan lebih kecil dari jumlah maksimum karakter. Setelah proses penyisipan selesai, stegano image

disimpan. User dapat langsung melihat kedua citra yaitu citra asli dan citra setelah disisipkan pesan.


(69)

Gambar 4.18 Tampilan Citra Asli dan Stegano Image

Berikut ini adalah table hasil uji proses penyisipan yang membandingkan kedua citra, yaitu Mona Lisa.bmp sebagai citra asli dan SteganoImage.bmp sebagai citra yang telah disisipkan pesan.

Tabel 4.1 Hasil Uji Proses Penyisipan

Citra Asli Stegano image

Dimensi 200 x 228 200 x 228

Lebar 200 piksel 200 piksel

Tinggi 228 piksel 228 piksel

Bit depth 24 bit 24 bit

Size 136,854 bytes 136,854 bytes


(70)

4.2.3 Proses Extracting

Apabila user ingin mengekstrak pesan yang terdapat pada stegano image maka

user harus menginputkan stegano image dan kunci rahasia yaitu kunci privat dan nilai m dan n. Berikut ini adalah tampilan hasil ekstrak dan dekripsi dari citra yang berupa stegano image dan kunci rahasia yang dimasukkan merupakan pasangan dari kunci publik yang dipakai untuk mengenkripsi pesan.

Gambar 4.19 Hasil Ekstrak dan Dekripsi Pesan

Untuk menguji apakah program akan memunculkan pesan gagal saat mendekripsi pesan rahasia yang terdapat dalam citra, maka diinputkan kunci rahasia yang bukan pasangan dari kunci publik yang digunakan untuk mengenkripsi pesan.


(71)

Gambar 4.20 Tampilan Gagal untuk Mendekripsi Pesan

Pengujian proses ektraksi juga dilakukan untuk citra yang lebih besar, yaitu berukuran 500x500 piksel dengan bit depth 24-bit. Proses penyisipan berhasil dilakukan. Namun pada proses pengekstrakan, program gagal untuk dieksekusi. Berikut adalah tampilannya.


(72)

Untuk itu, pengujian ekstraksi dilakukan lagi untuk citra yang berukuran lebih kecil, yaitu 400x400 piksel dengan bit depth 24 bit, dengan pesan yang berbeda. Proses berhasil dilakukan namun membutuhkan waktu sekitar 5 menit.

Gambar 4.22 Tampilan Berhasil untuk citra 400x400 piksel

4.2.4 Pengujian Jumlah Karakter Maksimum

Dalam menentukan jumlah karakter maksimum yang dapat ditampung oleh sebuah citra, berkaitan dengan jumlah ciphertext yang dihasilkan, terdapat perhitungan yang dilakukan sebagai berikut. Misalkan citra yang menjadi cover object berukuran 5x5 piksel 24 bit.

Jumlah piksel = 5x5x3 = 75 piksel, maka jumlah piksel yang dapat menampung pesan adalah 37 piksel. Karena memakai karakter ASCII 7 bit, maka jumlah karakter maksimum adalah 37 div 7 = 5 karakter. Jumlah bit untuk 5 karakter adalah 35 bit. Misalkan kunci publik yang dimiliki adalah 6 elemen. Dengan algoritma enkripsi Knapsack Merkle-Hellman, jumlah karakter ciphertext


(73)

round(35 div 6) = 6 blok. Jumlah karakter ciphertext tidak dapat ditampung seluruhnya oleh citra karena jumlah piksel yang dapat menampung pesan adalah 37 piksel, tetapi ciphertext membutuhkan 6x7 = 42 piksel.

Untuk mengatasi hal tersebut, maka muncul suatu kondisi bahwa apabila jumlah kunci publik lebih kecil dari 7, maka dilakukan perhitungan:

1. Hitung jumlah karakter maksimum awal: jumlah piksel yang tersedia div 7. 2. Hitung jumlah karakter ciphertext.

3. Kurangkan jumlah karakter ciphertext dengan jumlah karakter maksimum awal, misalkan disebut sisa.

4. Jumlah karakter maksimum = jumlah karakter maksimum awal – sisa.

Dengan demikian, didapat jumlah karakter maksimum adalah 6 – 5, yaitu 4 karakter (membutuhkan 28 piksel dan valid karena nilainya lebih kecil dari jumlah piksel yang tersedia). Tetapi apabila jumlah kunci publik lebih besar dari 7, maka jumlah karakter maksimum cukup dihitung dengan jumlah piksel yang tersedia div 7.


(74)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah melakukan serangkaian proses yang meliputi studi literatur, analisis dan perancangan, serta implementasi dan pengujian pada algoritma kriptografi

Knapsack Merkle-Hellman dan metode steganografi Least Significant Bit, dapat diambil kesimpulan sebagai berikut:

1. Algoritma Kriptografi Knapsack Merkle-Hellman melakukan proses enkripsi dan dekripsi menggunakan pasangan kunci publik dan kunci privat. Proses dekripsi dilakukan dengan menggunakan algoritma penyelesaian masalah super increasing Knapsack. Sedangkan algoritma steganografi

Least Significant Bit dilakukan dengan mengganti tiap bit terakhir dari masing-masing komponen warna piksel dengan bit-bit pesan rahasia.

2. Kelebihan dari metode Least Significant Bit adalah stegano image yang dihasilkan memiliki ukuran yang tidak berbeda dari citra asli dan keberadaan pesan rahasia sulit untuk dilihat oleh indera penglihatan karena secara visual kedua citra tampak sama. Berdasarkan pengujian terbukti bahwa metode Least Significant Bit memiliki kriteria imperceptible

(keberadaan pesan rahasia tidak dapat dipersepsi), fidelity (mutu coverobject

tidak berubah akibat proses penyisipan), dan recovery (data yang disembunyikan dapat diungkapkan kembali).

3. Kekurangan dari kombinasi algoritma Knapsack Merkle-Hellman dan metode Least Significant Bit yang diimplementasikan pada penelitian ini, berdasarkan kriteria pengujian, adalah ukuran maksimum citra yang menjadi


(75)

400x400 piksel dengan kedalaman 24 bit, dengan waktu untuk mengekstrak pesan kurang lebih 5 menit.

4. Setelah pesan rahasia diekstrak dari stegano image, citra tidak kembali kebentuk citra asli karena sistem yang dibangun memiliki tujuan untuk mendapatkan pesan asli dan bukan untuk mendapatkan citra asli.

5. Jumlah maksimum karakter yang dapat disisipkan dalam citra adalah jumlah piksel citra dibagi dua, selanjutnya dibagi tujuh. Namun, apabila jumlah kunci publik lebih besar daripada jumlah maksimum karakter yang telah dihitung sebelumnya, maka jumlah maksimum karakter akan mengalami perubahan karena ukuran ciphertext akan lebih besar dari jumlah maksimum karakter sehingga citra tidak dapat menampung keseluruhan ciphertext.

5.1 Saran

Berikut ini adalah saran-saran untuk pengembangan terhadap sistem agar dapat disempurnakan lebih lanjut.

1. Sistem ini hanya dapat menyisipkan pesan kedalam citra berformat Bitmap. Untuk pengembangan selanjutnya dapat ditambahkan fungsi agar semua citra dengan format apapun dapat digunakan.

2. Untuk menambah keamanan maka pada pengembangan selanjutnya digunakan suatu algoritma kriptografi untuk mengenkripsi kunci rahasia. 3. Sistem ini memakai karakter ASCII 7bit sehingga diharapkan untuk


(76)

DAFTAR PUSTAKA

[1] Agarwal, Ashish. 2011. Encrypting Messages Using the Merkle-Hellman Knapsack Cryptosystem. InternationalJournalof Computer Science and Network Security, VOL.11 No.5. Halaman 12-14.

[2] Iwan Binanto. 2010. Multimedia Digital - Dasar Teori dan Pengembangannya.

Yogyakarta: Penerbit ANDI.

[3] Bishop, Matt. 2005. Introduction to Computer Security. Canada: Pearson Education, Inc.

[4] Cox, Ingermar J;Matthew L. Miller; Jeffrey A. Bloom; Jessica Fridrich; dan Ton

Kalker. 2008. Digital Watermarking and Steganography Second Edition. Unites State of America: Morgan Kaufman Publishers.

[5] Delfs, Hans dan Helmut Knebl. 2007. Introduction to Cryptography: Principles

and Application. Heidelberg: Springer.

[6] Desai, Apurva A. 2008. Computer Graphics. New Delhi: Asoke K. Ghosh, PHI

Learning Private Limited.

[7] Hidayat, Wildan, 2010. Perlindungan Pesan Rahasia Pada Citra Digital Menggunakan Metode Least Significant Bit Steganografi. Medan: Universitas


(77)

[8] Kipper, Greg. 2004. Investigator's Guide to Steganography. United State of America: CRC Press LLC.

[9] Konheim, Alan G. 2007. Computer Security and Cryptography. New Jersey: John

Wiley & Sons,Inc.

[10] Mollin, Richard A. 2007. An Introduction to Cryptography Second Edition. USA: Taylor & Francis Group, LLC.

[11] Paar , Christof dan Jan Pelzl. 2010. Understanding Cryptography: A text book for Students and Practitioners. Berllin: Springer.

[12] Piper, Fred dan Sean Murphy. 2002. Cryptography: A Very Short Introduction.

New York: Oxford Univertsity Press, Inc.

[13] Reyes, Anthony dan Jack Wiles. 2007. The Best Damn Cybercrime and Digital Forensics Book Period. USA: Syngress Publishing, Inc.

[14] Schmeh, Klaus.2003. Cryptography and Public Key Infrastructure on the Internet. West Sussex: John wiley & sons Ltd.

[15] Smart, Neigel. 2004. Cryptography: An Introduction (3rd Edition). New York:

McGraw-Hill.

[16] Stillwell, John. 2010. Mathematics and Its History Third Edition. USA: Springer.


(78)

Professional Reference and Interactive Tutorial. United States of America: Kluwer Academic Publishers.

[18] Vaudenay, Sergei.2006. A Classical Introduction to Modern Cryptography. New York: Springer.

[19] Whitrow, Robert. 2008. OpenGL Graphics through Application. London: Springer.


(79)

LAMPIRAN A LISTINGPROGRAM

1. Form Utama (myProgram.fig)

function varargout = myProgram(varargin) gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @myProgram_OpeningFcn, ... 'gui_OutputFcn', @myProgram_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

function myProgram_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject; guidata(hObject, handles);

function varargout = myProgram_OutputFcn(hObject, eventdata, handles, varargin)

frontImage = imread('image1.jpg'); axes(handles.axes2);

imshow(frontImage);

varargout{1} = handles.output;

function help_btn_Callback(hObject, eventdata, handles, varargin) open Help.fig;

close(gcbf);

function run_btn_Callback(hObject, eventdata, handles) selection = questdlg(['WHAT WOULD YOU LIKE TO DO ?'],['MSA'],'ENCRYPT','DECRYPT','ENCRYPT'); if strcmp(selection,'ENCRYPT') encrypt; close(gcbf); elseif strcmp(selection,'DECRYPT') decrypt; close(gcbf); end


(1)

selection = questdlg(['BACK TO MAIN MENU ?'],['MSA'],'YES','NO','YES');

if strcmp(selection,'NO') return;

else

myProgram; close(gcbf); end

% --- Executes on button press in reset_btn.

function reset_btn_Callback(hObject, eventdata, handles, varargin) set(handles.privateKey_edit,'String','');

set(handles.nKey_edit,'String',''); set(handles.mKey_edit,'String',''); set(handles.pk1_edit,'String',''); set(handles.pk2_edit,'String',''); set(handles.total,'String','');

% --- Executes during object creation, after setting all properties.

function val_btn_CreateFcn(hObject, eventdata, handles, varargin)

% --- Executes on button press in pubKey_btn.

function pubKey_btn_Callback(hObject, eventdata, handles, varargin)

PK = str2num(get(handles.privateKey_edit,'String')); nKey = str2num(get(handles.nKey_edit,'String')); mKey = str2num(get(handles.mKey_edit,'String')); [line sizePK] = size(PK);

for i = 1:1:sizePK

pubKey(i) = mod((PK(i)*nKey),mKey); end

thedir=uigetdir();%'C:\Users\User\Desktop';

dlmwrite(fullfile(thedir, 'myPublicKey.txt'), pubKey, ' '); warndlg('PublicKey has been created as

[myPublicKey.txt]!','Information');

function total_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function total_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');


(2)

% --- Executes during object creation, after setting all properties.

function generate_btn_CreateFcn(hObject, eventdata, handles)

5.

FormView Image

(view.fig)

function varargout = view(varargin)

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @view_OpeningFcn, ... 'gui_OutputFcn', @view_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before view is made visible.

function view_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

% Update handles structure guidata(hObject, handles);

function varargout = view_OutputFcn(hObject, eventdata, handles, varargin)

global imageFile fullname axes(handles.before); imshow(imageFile); axes(handles.after); imshow(fullname);

varargout{1} = handles.output;

% --- Executes on button press in BACK.

function BACK_Callback(hObject, eventdata, handles, varargin) %encrypt;

close(gcbf);


(3)

% --- Executes during object creation, after setting all properties.

function asli_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function hasil_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function hasil_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

6.

FormHelp

(help.fig)

function varargout = help(varargin)

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @help_OpeningFcn, ... 'gui_OutputFcn', @help_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before Help is made visible.

function help_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% --- Outputs from this function are returned to the command line. function varargout = help_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;


(4)

function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) myProgram;

close(gcbf);

7.

FormAbout

(about.fig)

function varargout = about(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @about_OpeningFcn, ... 'gui_OutputFcn', @about_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

function about_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = about_OutputFcn(hObject, eventdata, handles) A21


(5)

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles, varargin)

myProgram; close(gcbf);


(6)

CURRICULUM VITAE

Nama

: Juwita Adelina Pasaribu

Alamat Sekarang

: Jl. Tuba II Gg. Tapanuli No. 11b Medan

Alamat Orang Tua : Jl. Tuba II Gg. Tapanuli No. 11b Medan

Telp/HP

: 0856 619 2245

Email

: wiezzard@gmail.com

Riwayat Pendidikan

SDN 068084 Medan dari Tahun 1996 s/d Tahun 2002

SMPN 3 Medan dari Tahun 2002 s/d Tahun 2005

SMAN5 Medan dari Tahun 2005 s/d Tahun 2008

Universitas Sumatera Utara dari Tahun 2008 s/d Tahun 2012

Keahlian/Kursus yang diikuti

1. English Course at International Language Program 2. Office Application: Word, Excel, Powerpoint, Access 3. Programming: Delphi, MySQL