Implementasi Kriptografi Algoritma Elgamal Dengan Steganografi Teknik Least Significant Bit (LSB) Berdasarkan Penyisipan Menggunakan Fungsi Linier

(1)

IMPLEMENTASI KRIPTOGRAFI ALGORITMA ELGAMAL DENGAN STEGANOGRAFI TEKNIK LEAST SIGNIFICANT BIT (LSB)

BERDASARKAN PENYISIPAN MENGGUNAKAN FUNGSI LINIER

DRAFT SKRIPSI

LIDYA ANDINY NASUTION 091401083

PROGRAM STUDI S- 1 I LMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNI VERSI TAS SUMATERA UTARA


(2)

IMPLEMENTASI KRIPTOGRAFI ALGORITMA ELGAMAL DENGAN STEGANOGRAFI TEKNIK LEAST SIGNIFICANT BIT (LSB) BERDASARKAN

PENYISIPAN MENGGUNAKAN FUNGSI LINIER SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

LIDYA ANDINY NASUTION 091401083

PROGRAM STUDI S- 1 I LMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNI VERSI TAS SUMATERA UTARA


(3)

PERSETUJUAN

Judul : IMPLEMENTASI KRIPTOGRAFI ALGORITMA

ELGAMAL DENGAN STEGANOGRAFI TEKNIK

LEAST SIGNIFICANT BIT (LSB) BERDASARKAN

PENYISIPAN MENGGUNAKAN FUNGSI LINIER

Kategori : SKRIPSI

Nama : LIDYA ANDINY NASUTION

Nomor Induk Mahasiswa : 091401083

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

Diluluskan di Medan, Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dian Rachmawati, S.Si, M.Kom Drs. Partano Siagian,M.Sc NIP. 198307232009122004 NIP. 195112271980031001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA KRIPTOGRAFI ELGAMAL DENGAN TEKNIK STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) BERDASARKANPENYISIPAN

MENGGUNAKAN FUNGSI LINIER

SKRIPSI

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

Medan, November 2013

Lidya Andiny Nasution 091401083


(5)

PENGHARGAAN

Dengan mengucapkan puji dan syukur kehadirat Allah SWT atas segala rahmat, hidayah serta karunianya sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar– besarnya kepada :

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, Msc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. 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 Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak Drs. Partano Siagian,M.Sc yang telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini.

6. Ibu Dian Rachmawati,S.Si,M.Kom selaku Dosen Pembimbing II yang dengan sabar telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini.

7. Bapak Syahriol Sitorus,S.Si,MIT selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

8. Ayahanda M. Yusuf Nasution dan Ibunda Fatimah Dalimunthe yang selalu memberikan doa dan dukungan serta kasih sayang kepada penulis yang terus memberikan dukungan dan dorongan bagi penulis untuk menyelesaikan skripsi ini. 9. Abangda Nandar Afriza atas semangat, dukungan, perhatian dan pengertian

terhadap penulis selama proses penyelesaian skripsi ini.

10. Teman-teman terdekat, terutama Nadya Soraya Hardiyana, Fithri Rizqi Khairani Nst, Pocut Rizky, dan Dewi Ayu Pratami atas semangat dan dorongannya sehingga penulis dapat menyelesaikan skripsi ini. Dan juga untuk Ismail Fata Lubis, Dessy Winda sari Manurung, dan teman-teman seangkatan 2009 lainnya yang telah membantu penulis dalam menyelesaikan skripsi ini.


(6)

11. Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan satu-persatu.

Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan pahala yang melimpah dari Allah SWT.

Medan, November 2013


(7)

ABSTRAK

Kerahasiaan pesan atau data yang dimiliki oleh seseorang merupakan suatu hal yang penting. Pengamanan kerahasian pesan dapat menggunakan pengamanan pesan seperti kriptografi dan steganografi. Pada penelitian ini digunakan algoritma kriptografi ElGamal dan teknik Steganografi Least Significant Bit (LSB).

Algoritma ElGamal menggunakan fermat’s little theorem untuk pengecekan

bilangan prima yang digunakan. Teknik steganografi least significant bit (LSB)

menggunakan fungsi linier untuk menentukan letak pixel yang akan disisipkan pesan rahasia. Proses dari sistem ini adalah pesan rahasia berformat *.txt atau input langsung dari sistem dan kunci publik dan private yang diinput langsung

dari sistem, kemudian kunci publik y dihitung dengan menggunakan kunci publik p, g dan k serta kunci private x yang digunakan pada proses enkripsi untuk menghasilkan ciphertext. Ciphertext digunakan sebagai pesan yang akan

disisipkan (embedding) dengan menggunakan teknik least significant bit (LSB)

berdasarkan fungsi linier ke dalam coverimage berformat *.bmp dan

menghasilkan stegoimage. Kemudian stegoimage diekstraksi dan mengeluarkan

pesan rahasia (ciphertext) yang disisip pada citra. Pesan rahasia yang diperoleh

dari proses ektraksi didekripsi untuk mendapatkan pesan asli dari pesan rahasia dengan menggunakan kunci publik p dan kunci private x. Pada proses pengujian

enkripsi menggunakan teks dengan panjang karakter 115, 8 dan 6 menghasilkan jumlah ciphertext dua kali lebih besar dari plaintext yaitu 230, 16 dan 12,

sedangkan pada proses embedding digunakan citra berukuran 2,14 MB, 81,2 KB dan 2,82 MB menghasilkan citra yang berukuran lebih besar yaitu 2,86 MB, 1,47 MB dan 30,4 MB.

Katakunci : Kriptografi, ElGamal, Steganografi, Least Significant Bit, Fermat’s Little Theorem, Fungsi Linier.


(8)

ABSTRACT

Confidentiality of messages or data is owned by a person is an important thing. Safeguarding of confidentiality of the message can use a security message like Cryptography and steganography. This research used ElGamal algorithms for cryptographic and Least Significant Bit (LSB) techniques for Steganography. ElGamal algorithm use fermat's little theorem for checking prime numbers are used. Techniques least significant bit (LSB) of Steganography using a linear function to determine the location of the pixel to be inserted the secret message. The process of this system is the secret message format *.txt or input directly from the system and the public and private keys that are input directly from the system, then the public key y is computed using the public key p, g, k and private key x used in encryption process to produce ciphertext. Ciphertext is used as the message will be inserted (embedding) using the technique of least significant bit (LSB) based on a linear function into coverimage format *. bmp and produces stegoimage. Secret message obtained from the extraction process is decrypted to get the original message of the secret message using the public key p and private key x. In the process of testing the encryption using the text with character length 115, 8 and 6 produce amount of ciphertext two times bigger than the plaintext that is 230, 16 and 12, while in the process of embedding used image size of 2.14 MB, 81.2 KB and 2.82 MB produce much larger image size is 2.86 MB, 1.47 MB and 30.4 MB.

Keyword: Cryptography, ElGamal, Steganography, Least Significant Bit, Fermat’s Little Theorem, Liniear Function.


(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 1 Pendahuluan

1.1Latar Belakang 1

1.2Rumusan Masalah 2

1.3Batasan Masalah 2

1.4Tujuan Penelitian 3

1.5Manfaat Penelitian 3

1.6Metode Penelitian 3

1.7Sistematika Penulisan 4

Bab 2 Landasan Teori 2.1 Kriptografi 6 2.2 Enkripsi dan Dekripsi 7 2.3 Tujuan Kriptografi 7 2.4 Jenis Algoritma Kriptografi Berdasarkan Jenis Kunci 8 2.4.1 Algoritma Simetris 8

2.4.2 Algoritma Asimetris 9

2.4.3 Algoritma ElGamal 9

2.5 Bilangan Prima 11

2.6 Aritmatika Modulo 12 2.7 Fermat’s Little Theorem 12

2.8 Citra Digital 13 2.8.1 Bitmap 13

2.8.2 PNG 14

2.8.3 JPEG 14

2.9 Steganografi 15

2.10Least Significant Bit 17


(10)

Bab 3 Analisis dan Perancangan Sistem

3.1 Analisis Sistem 19

3.1.1 Analisis Masalah 19

3.1.2 Analisis Kebutuhan 19

3.1.3 Analisis Proses 21

3.2 Pemodelan Sistem 31

3.2.1. Use Case Diagram 31

3.2.2 ActivityDiagram 41

3.2.3 SequenceDiagram 42

3.3 Pseudocode 44

3.3.1 Pseudocode Enkripsi 44

3.3.2 Pseudocode Dekripsi 45

3.3.3 PsedocodeEmbedding 45

3.3.4 PseudocodeExtraction 46

3.4 Flowchart 47

3.4.1 Flowchart Gambaran Umum Sistem 47

3.4.2 Flowchart Proses Enkripsi pada Algoritma ElGamal 48

3.4.3 Flowchart Proses Dekripsi pada Algoritma ElGamal 49

3.4.4 Flowchart Proses Embedding pada Metode LeastSignificant

Bit (LSB) dengan Fungsi Linier 50

3.4.5 Flowchart Proses Extraction pada Metode LeastSignificant

Bit (LSB) dengan Fungsi Linier 51

3.5 Perancangan Antar Muka (Interface) 52

3.5.1 Halaman Utama (Home) 53

3.5.2 Halaman EncryptionEmbedding 54

3.5.3 Halaman ExtractionDecryption 56

3.5.4 Halaman About 58

3.5.5 Halaman Help 58

Bab 4 Implementasi dan Pengujian

4.1Implementasi 60

4.1.1 Halaman Utama (Home) 60

4.1.2 Halaman EncryptionEmbedding 61

4.1.3 Halaman ExtractionDecryption 63

4.1.4 Halaman About 65

4.1.5 Halaman Help 66

4.2 Pengujian Sistem 66

4.2.1 Pengujian Proses Enkripsi (Encryption) 66

4.2.2 Pengujian Proses Penyisipan (Embedding) 69

4.2.3 Pengujian Proses Ekstraksi (Extraction) 71

4.2.4 Pengujian Proses Dekripsi (Decryption) 73

4.2.5 Hasil Pengujian Proses Enkripsi (Encryption) 74

4.2.6 Hasil Pengujian Proses Penyisipan (Embedding) 76

4.2.7 Hasil Pengujian Proses Ekstraksi (Extraction) 77


(11)

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 82

5.2. Saran 82


(12)

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

2.1 2.2 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 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14

Tabelcontoh dari Hiddentext, Coverimage dan Stegoimage

Proses Penyisipan Least Significant Bit (LSB)

Biner Ciphertext

Biner Pixel Penyisipan Pesan Pengubahan Biner Pixel

Desimal Ciphertext

Spesifikasi UseCaseEncryption - Embedding

Spesifikasi UseCaseInput Kunci Kriptografi

Spesifikasi UseCaseInputPlaintext

Spesifikasi UseCaseEncryption

Spesifikasi UseCaseInput Kunci Steganografi

Spesifikasi UseCaseInputCoverimage

Spesifikasi UseCaseEmbedding

Spesifikasi UseCaseSaveStegoimage

Spesifikasi UseCaseExtractionDecryption

Spesifikasi UseCaseInput Kunci Steganografi

Spesifikasi UseCaseInputStegoimage

Spesifikasi UseCaseExtraction

Spesifikasi UseCase Input Kunci Kriptografi

Spesifikasi UseCaseDecryption

Spesifikasi UseCaseSave

Pengujian Proses Encryption tezt 2.txt

Pengujian Proses Encryption nama.txt

Pengujian Proses Encryption komA.txt

Pengujian Proses Embedding 1000x750.bmp

Pengujian Proses Embedding image2.bmp

Pengujian Proses Embedding IMG_4881.bmp

Pengujian Proses Extraction pengujian1000x750.bmp

Pengujian Proses Extraction penguimage2.bmp

Pengujian Proses Extraction hasilnya2.bmp

Pengujian Proses Decryption tezt 2.txt

Pengujian Proses Decryption nama.txt

Pengujian Proses Decryption komA.txt

Perbandingan Panjang Teks Plaintext dan Ciphertext

Perbanndingan Ukuran Citra Coverimage dan Stegoimage

16 17 25 26 27 29 30 32 33 33 34 34 35 36 36 37 37 38 38 39 40 40 74 75 75 76 76 77 78 78 79 80 80 81 81 81


(13)

DAFTAR GAMBAR

Nomor

Gambar Nama Gambar Halaman

2.1 2.2 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 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 (a) 4.9 (b) 4.9 4.10 4.11 4.12 4.13 4.14 4.15

Proses Umum Kriptografi Skema Kriptografi Simetris

Skema Kriptografi Asimetris

Sistem Kriptografi Algoritma ElGamal Contoh File Citra Bitmap

Contoh File Citra PNG

Contoh File Citra JPEG

Diagram Penyisipan dan Ekstraksi Pesan

Diagram Ishikawa

Use Case Diagram Sistem

Activity Diagram Proses Encryption-Embedding Activity Diagram Proses Extraction-Decryption

Sequence Diagram Proses Encryption-Embedding

Sequence Diagram Proses Encryption-Embedding

Flowchart Gambaran Umum Sistem

Flowchart Proses Enkripsi pada Algoritma ElGamal Flowchart Proses Dekripsi pada Algoritma ElGamal

Flowchart Proses Embedding pada Metode Least Significant Bit (LSB) dengan Fungsi Linier

Flowchart Proses Extraction pada Metode LeastSignificantBit

(LSB) dengan Fungsi Linier

Interface Halaman Utama

InterfaceMenuEncryption-Embedding InterfaceMenuExtraction-Decryption

InterfaceMenuAbout

InterfaceMenuHelp

InterfaceForm Halaman Utama (Home)

Submenu Halaman Utama (Home)

Halaman Encryption-Embedding

Halaman Extraction-Decryption

Halaman MenuAbout

Halaman MenuHelp

Hasil Pemilihan FileText Pada Proses Enkripsi

MessageBoxInvalidPrimeNumber Bukan Prima;

Message Box Invalid Prime Number Harus Lebih Besar dari

255

MessageBoxInvalidRandomNumberg

MessageBoxInvalidRandomNumberx

MessageBoxInvalidRandomNumberk

Tampilan Hasil Proses Enkripsi

Hasil Pemilihan Citra Sebagai Coverimage

Tampilan Hasil Proses Penyisipan (Embedding)

MessageBox Tidak Bisa Dilakukan Penyisipan Gambar

7 8 9 10 13 14 15 16 19 31 41 42 43 44 48 49 50 51 52 53 54 56 58 59 60 61 62 64 65 66 67 67 67 68 68 68 69 70 71 71


(14)

4.16 4.17 4.18 4.19

Tampilan Hasil Pemilihan Stegoimage

Tampilan Hasil Proses Ekstraksi (Extraction)

Message Box yang Menyatakan Nilai m dan b Tidak Sama

dengan Proses Penyisipan (Embedding)

Tampilan Hasil Proses Dekripsi (Decryption)

72 73 73 74


(15)

DAFTAR LAMPIRAN

Halaman A. Listing Program A-1


(16)

ABSTRAK

Kerahasiaan pesan atau data yang dimiliki oleh seseorang merupakan suatu hal yang penting. Pengamanan kerahasian pesan dapat menggunakan pengamanan pesan seperti kriptografi dan steganografi. Pada penelitian ini digunakan algoritma kriptografi ElGamal dan teknik Steganografi Least Significant Bit (LSB).

Algoritma ElGamal menggunakan fermat’s little theorem untuk pengecekan

bilangan prima yang digunakan. Teknik steganografi least significant bit (LSB)

menggunakan fungsi linier untuk menentukan letak pixel yang akan disisipkan pesan rahasia. Proses dari sistem ini adalah pesan rahasia berformat *.txt atau input langsung dari sistem dan kunci publik dan private yang diinput langsung

dari sistem, kemudian kunci publik y dihitung dengan menggunakan kunci publik p, g dan k serta kunci private x yang digunakan pada proses enkripsi untuk menghasilkan ciphertext. Ciphertext digunakan sebagai pesan yang akan

disisipkan (embedding) dengan menggunakan teknik least significant bit (LSB)

berdasarkan fungsi linier ke dalam coverimage berformat *.bmp dan

menghasilkan stegoimage. Kemudian stegoimage diekstraksi dan mengeluarkan

pesan rahasia (ciphertext) yang disisip pada citra. Pesan rahasia yang diperoleh

dari proses ektraksi didekripsi untuk mendapatkan pesan asli dari pesan rahasia dengan menggunakan kunci publik p dan kunci private x. Pada proses pengujian

enkripsi menggunakan teks dengan panjang karakter 115, 8 dan 6 menghasilkan jumlah ciphertext dua kali lebih besar dari plaintext yaitu 230, 16 dan 12,

sedangkan pada proses embedding digunakan citra berukuran 2,14 MB, 81,2 KB dan 2,82 MB menghasilkan citra yang berukuran lebih besar yaitu 2,86 MB, 1,47 MB dan 30,4 MB.

Katakunci : Kriptografi, ElGamal, Steganografi, Least Significant Bit, Fermat’s Little Theorem, Fungsi Linier.


(17)

ABSTRACT

Confidentiality of messages or data is owned by a person is an important thing. Safeguarding of confidentiality of the message can use a security message like Cryptography and steganography. This research used ElGamal algorithms for cryptographic and Least Significant Bit (LSB) techniques for Steganography. ElGamal algorithm use fermat's little theorem for checking prime numbers are used. Techniques least significant bit (LSB) of Steganography using a linear function to determine the location of the pixel to be inserted the secret message. The process of this system is the secret message format *.txt or input directly from the system and the public and private keys that are input directly from the system, then the public key y is computed using the public key p, g, k and private key x used in encryption process to produce ciphertext. Ciphertext is used as the message will be inserted (embedding) using the technique of least significant bit (LSB) based on a linear function into coverimage format *. bmp and produces stegoimage. Secret message obtained from the extraction process is decrypted to get the original message of the secret message using the public key p and private key x. In the process of testing the encryption using the text with character length 115, 8 and 6 produce amount of ciphertext two times bigger than the plaintext that is 230, 16 and 12, while in the process of embedding used image size of 2.14 MB, 81.2 KB and 2.82 MB produce much larger image size is 2.86 MB, 1.47 MB and 30.4 MB.

Keyword: Cryptography, ElGamal, Steganography, Least Significant Bit, Fermat’s Little Theorem, Liniear Function.


(18)

BAB 1 PENDAHULUAN

1. Latar Belakang

Kerahasiaan pesan atau data yang dimiliki oleh seseorang merupakan hal penting dalam pengiriman pesan agar pesan tersebut hanya dapat diberikan oleh orang tertentu saja yang dapat mengakses informasi tersebut. Untuk menjaga kerahasiaan pesan diperlukan pengamanan data atau dikenal sebagai kriptografi.

Kriptografi merupakan ilmu yang mempelajari cara pengamanan data dengan tujuan mencegah dari orang lain yang ingin mengetahui isinya, dengan menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya sehingga hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya. Salah satu algoritma kriptografi adalah algoritma ElGamal. Algoritma ElGamal termasuk dalam kriptografi modern yang menggunakan plainteks, cipherteks dan kunci untuk melakukan proses enkripsi

dan dekripsi dalam pengamanan data.

Dengan berkembangnya kriptografi, ada pihak-pihak yang dapat merusak algoritma kriptografi itu sendiri. Untuk mengatasi masalah ini dapat dilakukan penggabungan pengaman pesan dengan menggunakan kriptografi dan steganografi. Steganografi merupakan seni dan ilmu menyembunyikan pesan tersembunyi dengan cara menyisipkan pesan ke dalam sebuah gambar dengan tujuan tidak ada seorang pun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia selain pengirim dan penerima pesan. Ada beberapa teknik steganografi salah satuya least significant bit

(LSB).

Steganografi dengan teknik Least Significant Bit (LSB) menggunakan cara

penyisipan pada bit rendah atau bit yang paling kanan pada data pixel yang menyusun file tersebut pada akhir file. Pada teknik LSB dapat dimodifikasi menggun


(19)

akan teknik penyisipan sesuai fungsi linier, dengan fungsi linier menjadi acuan untuk menentukan lokasi penyisipan pesan pada gambar.

Kelebihan dari algoritma ElGamal adalah terletak pada keamanannya yaitu sulitnya perhitungan logaritma ketika bilangan yang dipilih adalah bilangan prima yang besar sehingga algoritma ElGamal mempunyai kekurangan yaitu membutuhkan resource yang besar dan processor yang mampu melakukan perhitungan besar.

Kelebihan dari teknik least significant bit (LSB) yaitu menghasilkan ukuran

citra yang tidak jauh berubah dari ukuran semula tetapi teknik least significant bit

(LSB) memiliki kekurangan yaitu terbatasnya penyisipan pesan atau data yang sesuai dengan ukuran citra.

Dengan melihat kelebihan dan kekurangan dari algoritma ElGamal dan teknik

least significant bit (LSB), penulis menggabungkan keduanya untuk mengamankan

pesan atau data sehingga tingkat keamanan dan kerahasian data menjadi lebih baik. Berdasarkan latar belakang yang telah diuraikan diatas, maka penulis membuat judul penelitian “Implementasi Kombinasi Kriptografi Algoritma ElGamal dengan Steganografi Teknik Least Significant Bit (LSB) berdasarkan Penyisipan

Menggunakan Fungsi Linier.”

1.2Rumusan Masalah

Berdasarkan latar belakang maka yang menjadi rumusan masalah adalah bagaimana penerapan implementasi kriptografi algoritma ElGamal dengan steganografi teknik

Least Significant Bit (LSB) berdasarkan penyisipan menggunakan fungsi linier untuk

pengamanan data.

1.3Batasan Masalah

Batasan masalah dalam penelitian implementasi kriptografi algoritma ElGamal dengan steganografi teknik least significant bit (LSB) berdasarkan penyisipan

menggunakan fungsi linier ini adalah sebagai berikut : 1. Teks yang akan disisipkan hanya berjenis file txt.


(20)

2. Jenis citra yang akan disisipkan teks yaitu file bmp.

3. Pengujian bilangan prima yang dipakai adalah Fermat’s Little Theorem dengan

bilangan prima lebih besar dari 255.

4. Bilangan prima p , nilai x, k dan g di inputkan oleh user.

5. nilai m dan b diinputkan oleh user dengan nilai m dan b harus bernilai positif.

6. Hasil ciphertext tidak lebih besar dari 255.

7. Nilai x dan hasil fx tidak dapat lebih besar dari nilai lebar dan panjang pixel citra. 8. Implementasi algoritma ini dibangun dengan C# Microsoft Visual Studio 2010.

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah memperoleh aplikasi kriptografi algoritma ElGamal dengan steganografi teknik least significant bit (LSB) yang melakukan penyisipan

berdasarkan fungsi linier pada pengaman pesan atau data untuk menjaga kerahasian atau keamanan data.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah dengan menggunakan algoritma ElGamal dan steganografi teknik least significant bit (LSB) berdasarkan penyisipan dengan fungsi

linier pada pesan atau data yang bersifat rahasia menjadi aman dari pihak yang tidak berhak atau pihak lain.

1.6 Metodelogi Penelitian

Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur

Penelitian ini terlebih dahulu dipelajari litelatur yang didapat melalui buku, jurnal, artikel, makalah maupun situs internet yang membahas kriptografi algoritma ElGamal dengan steganografi teknik least significant bit (LSB) berdasarkan

penyisipan menggunakan fungsi linier. 2. Analisis dan Perancangan Sistem

Pada tahap ini dilakukan analisis terhadap permasalahan yang ada dan kebutuhan yang diperlukan untuk membuat sistem serta dilakukan perancangan system dengan flowchart, data flow diagram (DFD), dan antar muka (interface).


(21)

3. Implementasi Sistem

Pada tahap ini akan dilakukan pembuatan program aplikasi berdasarkan perancangan sistem yang telah dirancang sebelumnya.

4. Pengujian Sistem

Dalam tahap ini dilakukan pengujian terhadap sistem yang telah dibangun, seperti melakukan uji coba proses enkripsi dan dekprisi penyandian teks dengan algoritma ElGamal serta embedding dan extraction pesan metode least significant bit (LSB)

dengan penyisipan menggunakan fungsi linier. 5. Dokumentasi

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

1.7 Sistematika Penulisan

Untuk membuat penulisan lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, yaitu :

BAB 1 : PENDAHULUAN

Pada bab ini berisi penjelasan mengenai latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodeologi penelitian dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Pada bab ini berisi penjelasan mengenai teori – teori yang terkait dengan penelitian ini diantaranya adalah teori kriptografi, Fermat’s Little Theorem, algoritma ElGamal ,

teori steganografi, least significant bit, fungsi linier dan teori pendukung lainnya.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini berisi penjelasan tentang analisis masalah yang dibangun dalam sistem dan menganalisis tentang hal – hal yang dibutuhkan dalam membangun sistem ini, kemudian dilanjutkan dengan tahapan perancangan sistem yang berupa perancangan interface sistem.


(22)

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini berisi tentang implementasi sistem yang berdasarkan tahapan perancangan dengan menggunakan bahasa pemrograman Matlab R2009A. Kemudian dilanjutkan dengan tahapan pengujian sistem untuk menguji apakah sistem sudah berjalan sesuai dengan perancangan.

BAB 5 : KESIMPULAN DAN SARAN

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


(23)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman.

(Cryptography is the art and science of keeping messages secure) “Crypto” berarti

secret” (rahasia) dan “graphy” berarti “writing” (tulisan). [4]

Kriptografi merupakan metode untuk mengamankan data, baik itu data teks maupun data gambar. Metode ini dilakukan dengan penyandian atau pengacakan data asli, sehingga pihak lain yang tidak mempunyai hak akses atas data tersebut tidak dapat memperoleh informasi yang ada di dalamnya.[3]

Sistem kriptografi terdiri dari 5 bagian yaitu:

1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca.

2. Secret Key: merupakan masukan bagi algoritma enkripsi yang berupa nilai

bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.

3. Ciphertext: keluaran algoritma enkripsi yang dianggap sebagai pesan dalam

bentuk tersembunyi.

4. AlgoritmaEnkripsi: algoritma enkripsi memiliki 2 masukan yaitu teks asli dan teks kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.[13]


(24)

2.2 Enkripsi dan Dekripsi

Proses menyadikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau

enciphering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan

ciphertext menjadi plaintext semula dinamakan dekripsi (decryption) atau deciphering

(standard nama menurut ISO 7498-2). [12]

Secara matematis, proses umum enkripsi dijelaskan sebagai berikut:

� (�) = �

Jadi, proses enkripsi E plaintext P akan menghasilkan ciphertext C. Sedangkan

proses umum deskripsi adalah sebagai berikut:

� (�) = �

Proses dekripsi D ciphertext C, akan menghasilkan plaintext P. Proses umum

yang terjadi pada kriptografi dapat dilihat pada Gambar 2.1.

Gambar 2.1 Proses Umum Kriptografi [7]

Gambar 2.1 merupakan proses umum kriptografi. Plaintext dienkripsi dengan

menggunakan kunci enkripsi untuk menghasilkan ciphertext. Untuk mengubah ciphertext menjadi plaintext, ciphertext didekripsi menggunakan kunci dekripsi untuk

menghasilkan plaintext.

2.3 Tujuan Kriptografi

Tujuan dari kriptografi adalah memberi layanan keamanan yang disebut juga dengan aspek keamanan. Aspek-aspek keamanan kriptografi sebagai berikut:

1. Kerahasian (confidentiality), layanan yang ditujukan untuk menjaga agar pesan


(25)

2. Integritas data (data integrity), layanan yang menjamin bahwa pesan masih

asli/utuh atau belum pernah dimanipulasi selama pengiriman.

3. Otentikasi (authentication), layanan yang berhubungan dengan identifikasi, baik

mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication

atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan

(data origin authentication).

4. Penyangkalan (non-repudiation), layanan untuk mencegah entitas yang

berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.[12]

2.4 Jenis Algoritma Kriptografi Berdasarkan Jenis Kunci

Berdasarkan jenis kunci yang dipakai terdapat 2 (dua) jenis algoritma kriptografi yaitu algoritma simetris dan algoritma asimetris.

2.4.1 Algoritma Simetris

Sistem kriptografi simetris menggunakan kunci yang sama pada proses penyandian dan proses pemulihan sandi seperti yang ditunjukan pada Gambar 2.2. [13]

Gambar 2.2Skema Kriptografi Simetris

Gambar 2.2 menunjukan bagaimana cara kerja kriptografi simetris. Plaintext

dienkripsi dengan kunci kemudian menghasilkan ciphertext, kemudian untuk

mendekripsi ciphertext menggunakan kunci yang sama pada proses enkripsi untuk


(26)

Kriptografi yang termasuk algoritma simetris adalah DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES, IDEA, Serpent, Affine, Playfair, AES (Advanced Encryption Standard), dan sebagainya.

2.4.2 Algoritma Asimetris

Sistem kriptografi asimetris menggunakan kunci yang berbeda pada proses penyandian dan proses pemulihan sandi seperti yang ditunjukan pada Gambar 2.3.[13]

Gambar 2.3Skema Kriptografi Asimetris

Gambar 2.3 menunjukan bagaimana cara kerja kriptografi asimetris. Plaintext

dienkripsi dengan kunci publik kemudian menghasilkan ciphertext, kemudian untuk

mendekripsi ciphertext membutuhkan kunci private yang menghasilkan pesan asli

atau plaintext.

Kriptografi yang termasuk algoritma asimetris adalah RSA, ElGamal, DSA dan sebagainya.

2.4.3 Algoritma ElGamal

Algoritma kriptografi ElGamal merupakan salah satu algoritma kunci asimetris yang didasarkan pada logaritma diskrit. Algoritma kriptografi ElGamal ditemukan oleh Taher ElGamal pada tahun 1984[13]. Skema sistem kriptografi ElGamal dapat dilihat pada Gambar 2.4.


(27)

Gambar 2.4 Sistem Kriptografi Algoritma ElGamal

Gambar 2.4 menunjukkan cara kerja algoritma ElGamal yaitu plainteks di

enkripsi dengan menggunakan kunci publik p, g dan y. y didapat dari rumus �=

����� dengan menggunakan kunci private x. Kemudian plainteks dienkripsi

dengan rumus 1 = ������ dan �2 = ( ���)���� dan menghasilkan chipertext. Chipertext didekripsi dengan menggunakan kunci privated dan menggunakan rumus

dekripsi = [�2× (�1�)−1����] untuk menghasilkan plainteks.

Berikut pembangkit kunci ElGamal: 1. Bilangan prima p > 255.

2. Dua bilangan acak g dan x dengan syarat � < �dan � < �.

3. Bilangan acak k dengan syarat 0≤ � ≤ � −2.

4. =������. 5. ������� = (�,�,�). 6. �������� = �.

Untuk mengenkripsi pesan dibutuhkan k, C1, C2, dan P. Untuk C1 dan C2 dapat

dihasilkan menggunakan rumus:

�1 = ������ ..... (1) �2 = ( ��� )���� ... (2)

Untuk mendekripsi pesan dapat menggunakan rumus:

�= �2

�1� ����

�= [�2× (�1�)−1����] ... (3)


(28)

(�1�)−1 =�1�−1−����� ... (4)

dimana:

k = kunci publik bilangan acak c1 = hasil cipherteks 1

c2 = hasil cipherteks 2 m = pesan atau teks asli

Sebagai contoh penggunaan algoritma ElGamal, untuk melakukan enkripsi diambil bilangan prima = 257, bilangan acak � = 3, � = 4 dan � = 7. Hitung

�=������ → � = 81. Pengirim ingin mengirim huruf “A” maka nilai dari

setiap huruf dapat diambil dari tabel ASCII. Maka enkripsi dapat dilakukan seperti berikut:

1. A dalam ASCII bernilai 65.

2. Hitung 1 = ������→ �1 = 37��� 257→ �1 = 131.

3. Hitung 2 = ( ��� )����→ �2 = ( 817× 65)��� 257→ �2 = 210

Pengirim akan mengirim 1 dan 2 kepada penerima pesan rahasia. Untuk melakukan dekripsi dibutuhkan nilai x, 1 dan 2. Maka enkripsi dapat dilakukan seperti berikut:

1. Hitung (�1�)−1= �1�−1−����� → (�1�)−1 = 131257−1−4��� 252

→(�1�)−1 = 190.

2. Hitung =�2× (�1�)−1����→ � = 210 × 190 ��� 257→ m = 65.

3. Kemudian bilangan 65 diubah ke ASCII menjadi huruf “A”.

Setelah melakukan dekripsi, penerima menemukan pesan rahasia yaitu teks asli yang sebelum dilakukan enkripsi oleh pengirim pesan rahasia. Maka didapat

plainteks “A” dan tersampaikan pesan rahasia.

2.5 Bilangan Prima

Bilangan positif p (�> 1) disebut bilangan prima jika pembaginya hanya 1 dan p.

Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan 23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima


(29)

dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali dua yang merupakan bilangan genap. [12]

2.6 Aritmatika Modulo

Aritmatika modulo merupakan sisa hasil pembagian 2 (dua) bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan a adalah bilangan bulat dibagi dengan m adalah bilangan bulat > 0 , maka akan menghasilkan sisa bagi r

dengan q adalah hasil bagi. Sehingga dapat dinotasikan sebagai berikut[7] :

����� = � sedemikian sehingga � = �� + �, dengan 0 ≤ � < �

Contoh :

16 ��� 6 = 4, dimana 16 = (4 × 3) + 4 2.7 Fermat’s Little Theorem

Fermat’s little theorem adalah suatu metode yang digunakan untuk menguji

keprimaan suatu bilangan bulat. Teorema Fermat ditemukan oleh Pierre De Fermat merupakan seorang matematikawan Perancis pada tahun 1640. Fermat's Little Theorem digunakan jika bilangan prima p dan bilangan bulat a adalah bilangan bulat

yang tidak habis dibagi oleh p, yaitu PBB(�,�) = 1, maka ��−1≡ 1 (mod p)[12].

Untuk nilai a rentang dalam 1 <� <�.

Sebagai contoh diambil bilangan prima = 7. Sehingga nilai a dalam rentang 1 <� < 7 adalah � = 2, . . . , 7. Misalkan �= 2, maka:

2�−1≡ 1(����) 27−1 ≡26(��� 7)

≡64(��� 7)

≡1(��� 7)

Didapatkan hasil dari 27 ≡1 (��� 7), dapat disimpulkan bahwa 7 adalah


(30)

Meskipun dapat digunakan untuk mempermudah kalkulasi dalam kriptografi, peran terpenting dari Fermat's little theorem adalah sebagai dasar dari berbagai teknik

enkripsi asimetris.[10]

2.8 Citra Digital

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. Citra digital adalah citra yang dapat diolah komputer[14]. Beberapa format citra digital yang banyak ditemui adalah BMP, JPEG, GIF, PNG, dan lain-lain.

2.8.1. BITMAP

File citra bitmap merupakan format file citra yang tidak mengalami proses kompresi

sehingga kualitas gambar yang dihasilkan baik daripada file citra dengan format lain.

Pada file citra 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.[7]

File citra bitmap menyimpan data kode citra secara digital dan lengkap (cara

penyimpanannya adalah per pixsel). Citra ini memiliki kelebihan untuk memanipulasi

warna, tetapi mengubah objek lebih sulit.[14] File citra bitmap dapat dilihat pada

Gambar 2.5.


(31)

2.8.2. PNG

PNG adalah kependekam dari Portable Network Grapihics dan merupakan format standar terbuka format image raster yang didukung oleh W3C dan IETF. Format PNG bukan merupakan format baru karena telah dikembangkan pada tahun 1995 untuk mengganti format GIF (Graphics Interchange Format) dan format TIFF (Tagged Image File Format). PNG memiliki tiga mode warna, yaitu paletted (8 bit), grayscale (16 bit), truecolor (hingga 48 bit). [11] File citra PNG memiliki fitur transparansi

seperti yang terlihat pada Gambar 2.6.

Gambar 2.6 Contoh File Citra PNG

2.8.3. JPEG

Joint Photograpic Experts (JPEG , dibaca jay-peg) di rancang untuk kompresi beberapa full-color atau gray-scale dari suatu gambar yang asli, seperti pemandangan asli di dunia ini. JPEG sudah mendukung untuk 24-bit color depth atau sama dengan 16,7 juta warna (224 = 16.777.216 warna). JPEG adalah algoritma kompresi secara lossy. JPEG bekerja dengan merubah gambar spasial dan merepresentasikan kedalam pemetaan frekueunsi. [6]

JPEG dirancang untuk mengeksploitasi tingkatan dari mata kita yakni bahwa mata kita tidak akan dapat mebedakan perubahan yang lambat terang dan warna dibandingkan dengan perbedaan suatu jarak apakah jauh atau dekat. Untuk itu JPEG sangat baik digunkan pada fotografi dan monitor 80-bit. JPEG sebenarnya hanyalah algoritma kompresi, bukan merupakan nama format file. File yang biasa disebut JPEG pada jaringan sebenarnya adalah JFIF (JPEG File Interchange Format). [6] File citra


(32)

Gambar 2.7 Contoh File Citra JPEG

2.9 Steganografi

Kata steganografi berasal dari bahasa Yunani steganos yang artinya

“tersembunyi/terselubung” dan graphein “menulis” sehingga kurang lebih artinya

“menulis (tulisan) terselubung”. [2]

Steganografi merupakan seni untuk menyembunyikan pesan di dalam media digital sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu pesan didalam media tersebut.[15]

Steganografi menggunakan dua properti, yaitu wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, audio, teks dan video.[14]

Terdapat beberapa istilah yang berkaitan dengan steganografi: 1. Hiddentext atau embedded message: pesan yang disembunyikan.

2. Coverimage: citra yang digunakan untuk menyembunyikan embedded message.

3. Stegoimage: citra yang sudah berisi embedded message.

4. Stegokey: kunci rahasia.[5]

5. Embedding : proses menyisipkan pesan pada citra sebagai medium penyisipan

pesan.


(33)

Pada teknik steganografi terdapat dua proses, yaitu proses penyisipan pesan (embedding) pada cover image dan pengembalian pesan (extraction) seperti yang

ditunjukan pada Gambar 2.8.

Embedding Extraction Coverimage

Hiddentext

Stegoimage

Key Key

Hiddentext

Gambar 2.8 Diagram Penyisipan dan Ekstrasi Pesan[6]

Gambar 2.8 menunjukkan proses penyisipan (embedding) dan ekstrasi

(extraction) pesan. Untuk menyisipkan pesan (hiddentext) dilakukan proses

penyisipan (embedding) pada sebuah citra (coverimage) memerlukan kunci rahasia

(stego key) untuk menghasilkan stegoimage atau pesan yang sudah disisipakan pesan

rahasia. Untuk melakukan extraction dibutuhkan kunci rahasia untuk mengambil

pesan yang terdapat pada coverimage. Berikut contoh hiddentext, coverimage dan stegoimage yang ditunjukan pada Tabel 2.1.

Tabel 2.1 Tabelcontoh dari Hiddentext, Coverimage dan Stegoimage[12]

Hiddentext Cover Image Stego Imagw

Istilah keilmuan serumpun terasa memberikan distorsi

persepsi pada maksud sebenarnya. Persepsi yang segera terbentuk dengan istilah

tesrebut adalah eprtumbuhan dari akar-akar ilmu membentuk suatu rumpun, yang berarti bahwa nuansa historis organisasi/ kelompok/


(34)

Kriteria steganografi yang bagus sebagai berikut:

1. Fidelity, mutu citra yang menampung data tidak jauh berubah.

2. Robustness, pesan yang disembunyikan harus tahan (robust) terhadap berbagai

operasi manipulasi yang dilakukan pada stego-object, seperti pengubahan kontras,

penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan cropping,

enkripsi dan sebagainya.

3. Recovery, data yang disembunyikan harus dapat diungkapkan kembali (recovery).

[14]

2.10 Least Significant Bit

Metode least significant bit, digunakan citra digital sebagai media penyamar atau cover-object. Pada setiap byte dari piksel citra, terdapat bit yang paling kecil bobotnya

(Least Significant Bit atau LSB).[2]

Metode ini bekerja dengan cara mengganti bit terakhir dari masing-masing

pixel dengan pesan yang akan disisipkan. LSB mempunyai kelebihan yakni ukuran

gambar tidak akan jauh berubah. Sedangkan kekurangannya adalah pesan/data yang akan disisipkan terbatas, sesuai dengan ukuran citra.[1]

Sebagai contoh akan disisipkan A kedalam sebuah sebuah citra. Nilai A dalam ASCII adalah 65. Kemudian nilai ASCII A diubah menjadi biner yaitu 01000001. Piksel citra yang akan disisipkan teks yaitu 00000001, 00000110, 00000101, 00000011, 00000111, 00000100, 00000111, 00000100. Tabel 1 menunjukkan hasil dari penyisipan.

Tabel 2.2. Tabel proses penyisipan Least Significant Bit (LSB)

Biner Piksel Citra Biner Huruf A Piksel Citra Yang berubah

00000001 0 00000000

00000110 1 00000111

00000101 0 00000100

00000011 0 00000010


(35)

00000100 0 00000100

00000111 0 00000110

00000100 1 00000101

2.11 Fungsi Linier

Suatu korespondensi (�,�) antara dua himpunan bilangan yang memasangkan

sebarang bilangan x dari himpunan pertama sengan tepat satu bilangan y dari

himpunan kedua disebut suatu fungsi.[8]

Untuk rumus umum persamaan linier ditulis sebagai berikut [9]:

�(�) =��+� ...(5)

kemiringan garis adalah m , b merupakan perpotongan sumbu y.[9]

Sebagai contoh, misalkan nilai m= 1 dan b=2, sehingga:

�(�) =��+�

�(�) = 1�+ 2


(36)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem merupakan tahapan awal yang digunakan untuk mengetahui kebutuhan sistem. Pada tahapan analisis sistem memilih kebutuhan yang paling sesuai untuk sistem yang sangat penting dalam pengembanga sistem tersebut.

3.1.1. Analisis Masalah

Analisis masalah yang akan dilakukan adalah bagaimana cara mengenkripsi pesan rahasia dengan format *txt dengan menggunakan algoritma ElGamal, kemudian pesan rahasia disisipkan ke dalam gambar dengan format *bmp dengan menggunakan teknik penyisipan least significant bit (LSB) berdasarkan fungsi linier. Masalah pada

penelitian ini secara umum ditunjukkan dengan menggunakan diagram Ishikawa pada

Gambar 3.1.

Gambar 3.1 Diagram Ishikawa

3.1.2. Analisis Kebutuhan

Analisis kebutuhan pada suatu sistem terdiri dari 2 (dua) macam yaitu analisis kebutuhan fumgsional dan analisis kebutuhan non fungsional.


(37)

a. Analisis Kebutuhan Fungsional

Pada analisis kebutuhan berisikan proses-proses apa saja yang terdapat pada sistem. Dalam aplikasi pengamanan pesan rahasia dengan menggunakan algoritma kriptografi Elgamal dan teknik steganografi least significant bit

berdasarkan fungsi linier ini memiliki analisis kebutuhan fungsional sebagai berikut:

1. Melakukan proses enkripsi dan dekripsi. Pada proses ini dibutuhkan pesan rahasia berformat *txt dan input langsung dari sistem serta kunci publik dan kunci private untuk melakukan enkripsi dan dekripsi pada pesan

rahasia.

2. Melakukan proses embedding (penyisipan) dan extraction (pengembalian

pesan). Pada proses ini dibutuhkan gambar berformat *bmp yang digunakan sebagai cover image untuk penyisipan pesan ke dalam gambar.

3. Algoritma yang digunakan dalam melakukan proses enkripsi dan dekripsi adalah algoritma kriptografi ElGamal, sedangkan teknik yang digunakan dalam penyisipan pesan ke dalam gambar adalah teknik steganografi least significant bit (LSB) berdasarkan fungsi linier.

4. Menyimpan file baru yaitu hasil dari prosese embedding dan dekrtpsi.

Setelah melakukan enkripsi maka hasil pesan yang dienkripsi disisipkan ke dalam sebuah citra kemudian disimpan dalam format *bmp atau setelah melakukan extraction (pengembalian pesan) maka pesan tersebut

didekripsi untuk mendapatkan pesan asli yang kemudian disimpan dengan format *txt.

b. Analisis Kebutuhan Non Fungsional

Pada analisis kebutuhan non fungsional tidak secara langsung terkait dengan fitur yang terdapat pada sistem. analisis kebutuhan non fungsional memberikan batasan-batasan pada sistem. Analisis kebutuhan non fungsional terdapat pada sistem ini meliputi:

1. Perfomance, aplikasi yang dibangun dapat melakukan proses enkripsi dan

dekripsi dengan algoritma ElGamal serta dapat melakukan proses

embedding dan extraction dengan teknik steganografi least significant bit


(38)

2. Documentacy, apllikasi dapat menyimpan hasil penyisipan dengan format

*bmp dan menyimpan hasil dekripsi dengan format *txt.

3. User friendly, aplikasi yang dibangun harus mudah digunakan oleh

pengguna (user) dan responsif.

4. Cost, aplikasi yang dibangun tidak memerlukan biaya tambahan karena

tidak memerlukan perangkat tambahan pendukung seperti perangkat keras pendukung atau layanan internet dan lain sebagainya.

3.1.3. Analisis Proses

Dalam sistem ini terdapat empat proses utama yaitu enkripsi (penyandian pesan), dekripsi (pemulihan pesan) , embedding (penyisipan pesan), dan extraction

(pengembalian pesan). Pada teknik steganografi least significant bit dimodifikasi

dengan menggunakan fungsi linier dalam pemilihan letak pixel yang akan disisipkan pesan rahasia. Begitupula dalam melakukan pengembalian pesan, fungsi linier digunakan untuk menentukan letak pixel dari gambar yang akan diekstrak.

a. Analisis Proses Enkripsi dengan Algoritma ElGamal

Untuk melakukan proses enkripsi dengan algoritma ElGamal dibutuhkan kunci-kunci yang digunakan untuk penyadian pesan rahasia. Berikut ini adalah proses pembangkitan kunci pada algoritma ElGamal:

1. Pilih sembarang bilangan prima > 255. Misalkan nilai bilangan prima

yang dipilih adalah 257.

2. Pilih dua bilangan acak g dan x, dengan syarat < �dan � < �.

Contoh: = 3 dan �= 4.

3. Hitunglah nilai =������ dengan nilai x adalah kunci private.

Contoh:

�= ������

�= 34��� 257

�= 81 ��� 257


(39)

Setelah melakukan pembangkitan kunci dapat dilakukan proses enkripsi. Proses Enkripsi ElGamal menggunakan kunci publik �,� dan �.

Berikut proses enkripsi algoritma ElGamal:

1. Susunlah plainteks menjadi blok-blok 1,2,3,…. Kemudian setiap blok

huruf diubah menjadi bilangan ASCII. Contoh:

Plaintext :

DINY →�1 =� → ubah menjadi bilangan ASCII yaitu 68

�2 =� → ubah menjadi bilangan ASCII yaitu 73 �3 =� → ubah menjadi bilangan ASCII yaitu 78 �4 =� → ubah menjadi bilangan ASCII yaitu 89

2. Pilih Bilangan acak k dengan syarat 0≤ � ≤ � −2, maka 0≤ � ≤257− 2 → 0≤ � ≤255.

Contoh: = 7.

3. Setiap blok m dienkripsikan dengan rumus:

�1 = ������ �2 = ( ��� )����

Contoh:

�1 = ������ �1 = 37��� 257 �1 = 2187 ��� 257 �1 = 131

�2 = ( ��� )����

21 = ( ���1 )����= ( 817× 68 ) ��� 257

= (22876792454961 × 68)��� 257 = 1555621886937348 ��� 257 = 22

22 = ( ���2 )����= ( 817× 73 ) ��� 257

= (22876792454961 × 73)��� 257 = 1670005849212153 ��� 257


(40)

= 137

23 = ( ���3 )����= ( 817× 78 ) ��� 257

= (22876792454961 × 78)��� 257 = 1784389811486958 ��� 257 = 252

24 = ( ���4 )����= ( 817× 89 ) ��� 257

= (22876792454961 × 89)��� 257 = 2036034528491529 ��� 257 = 248

b. Analisis Proses Dekripsi dengan Algoritma Elgamal

Proses dekripsi ElGamal menggunakan kunci publik dan kunci private �.

Berikut proses dekripsi algoritma ElGamal: 1. Hitunglah (�1�)−1 dengan rumus:

(�1�)−1= �1�−1−�����

Contoh:

(�1�)−1= �1�−1−����� = 131257−1−4��� 256 = 131252��� 257 = 190

2. Gunakan kunci private� dan kunci publik � untuk mendekripsi ciphertext

� dan menjadi plaintext� dengan rumus:

�= [�2 × (��)−1����]

Contoh:

�1 = ��21× (��)−1�����

= [22 × 190 ��� 257] = 4180 ��� 257 = 68

�2 =��22× (��)−1�����

= [137 × 190 ��� 257] = 26030 ��� 257 = 73

�3 =��23× (��)−1�����


(41)

= 47880 ��� 257 = 78

�4 =��24× (��)−1�����

= [248 × 190 ��� 257] = 47120 ��� 257 = 89

3. Ubahlah plaintext � menjadi huruf alfabet dengan menggunakan tabel

ASCII.

�1 = 68 → dalam ASCII yaitu D �2 = 73 → dalam ASCII yaitu I �3 = 78→ dalam ASCII yaitu N �4 = 89 → dalam ASCII yaitu Y

c. Analisis Proses Embedding dengan Fungsi Linier

Dalam melakukan proses embedding diperlukan sebuah citra yang berformat *bmp sebagai coverimage untuk penyisipan pesan. Dikarenakan penyisipan

pesan yang dilakukan sesuai dengan titik pixel yang didapat dari perhitungan fungsi linier maka citra yang digunakan memerlukan batasan untuk ukuran pixelnya. Ukuran pixel minimum dapat dihitung dengan cara:

�����ℎ���ℎ������ = ( �����ℎ�������ℎ������ + 1 ���������� ) × 8

����������������� =�����ℎ���ℎ��������� 3

���������������� =�(�����ℎ���ℎ������ − �����������������) ÷ 3�

������������ = ( �����ℎ������������ + 2 ����������)

Misalkan blok ciphertext “ 131 22 131 137 131 252 131 248 ” akan

membutuhkan resolusi cover image sebesar:

�����ℎ���ℎ������ = ( 8 + 1 ) × 8 = 72

����������������� = 72 ��� 3 = 0

�����ℎ�������������������� = ( 72−0) ÷ 3 = 24

Didapat jumlah pixel yang akan disisip yaitu 24, maka pixel minimum adalah 24 + 2 = 26.


(42)

Berikut ini contoh proses embedding berdasarkan fungsi linier:

1. Ubah nilai ciphertext ke biner yang ditunjukkan pada Tabel 3.1.

Tabel 3.1 Biner Ciphertext

�1 �2 Biner �1 Biner �2

131 22 10000011 00010110 131 137 10000011 10001001 131 252 10000011 11111100 131 248 10000011 11111000

Ciphertext yang disisipkan ditambahkan tanda “*” pada akhir

ciphertext sebagai pembatas pada proses penyisipan sehingga pada saat

proses ektraksi dapat diketahui batas proses ekstrasi. Nilai desimal dari “*” adalah 42 dengan nilai biner 00101010.

2. Pilih sembarang nilai m dan b. Misalkan nilai = 1 dan � = 1, maka

hitung (��) = ��+�. Karena jumlah pixel yang akan disisipkan

sebanyak 34 maka nilai x yang digunakan rentang dari 0 sampai 33.

�= 0→ �(�) =��+�= 1.�+ 1 = 2 →(0,1)

�= 1→ �(�) =��+�= 1.�+ 1 = 2 →(1,2)

�= 2→ �(�) =��+�= 1.�+ 1 = 2 →(2,3)

�= 3→ �(�) =��+�= 1.�+ 1 = 2 →(3,4)

�= 4→ �(�) =��+�= 1.�+ 1 = 2 →(4,5)

�= 5→ �(�) =��+�= 1.�+ 1 = 2 →(5,6)

�= 6→ �(�) =��+�= 1.�+ 1 = 2 →(6,7)

�= 7→ �(�) =��+�= 1.�+ 1 = 2 →(7,8)

�= 8→ �(�) =��+�= 1.�+ 1 = 2 →(8,9)

�= 9→ �(�) =��+�= 1.�+ 1 = 2 →(9,10)

�= 10→ �(�) =��+�= 1.�+ 1 = 2 →(10,11)

�= 11→ �(�) =��+�= 1.�+ 1 = 2 →(11,12)

�= 12→ �(�) =��+�= 1.�+ 1 = 2 →(12,13)

�= 13→ �(�) =��+�= 1.�+ 1 = 2 →(13,14)


(43)

�= 15→ �(�) =��+�= 1.�+ 1 = 2 →(15,16)

�= 16→ �(�) =��+�= 1.�+ 1 = 2 →(16,17)

�= 17→ �(�) =��+�= 1.�+ 1 = 2 →(17,18)

�= 18→ �(�) =��+�= 1.�+ 1 = 2 →(18,19)

�= 19→ �(�) =��+�= 1.�+ 1 = 2 →(19,20)

�= 20→ �(�) =��+�= 1.�+ 1 = 2 →(20,21)

�= 21→ �(�) =��+�= 1.�+ 1 = 2 →(21,22)

�= 22→ �(�) =��+�= 1.�+ 1 = 2 →(22.23)

�= 23→ �(�) =��+�= 1.�+ 1 = 2 →(23,24)

3. Misalkan terdapat citra berukuran 30 x 30 pixel, diambil nilai pixel sesuai dengan (fx) yang telah dihitung. Nilai pixel tersebut ditunjukan pada Tabel

3.2.

Tabel 3.2 Biner Pixel

Titik pixel

Nilai RGB

Biner RGB Titik pixel

Nilai RGB

Biner RGB (0,1) R:124

G:57 B:92

R: 01111100 G: 00111001 B: 01011100

(12,13) R:106 G:109 B:119

R: 01101010 G: 01101101 B: 01110111 (1,2) R:45

G:54 B:50

R: 00101101 G: 00110110 B: 00110010

(13,14) R:109 G:90 B:93

R: 01101101 G: 01011010 B: 01011101 (2,3) R:47

G:61 B:49

R: 00101111 G: 00111101 B: 00110001

(14,15) R:148 G:118 B:118

R: 10010100 G:0 1110110 B: 01110110 (3,4) R:66

G:74 B:64

R: 01000010 G: 01001010 B: 01000000

(15,16) R:225 G:180 B:168

R: 11100001 G: 10110100 B: 10101000 (4,5) R:72

G:81 B:70

R: 01001000 G: 01010001 B: 01000110

(16,17) R:223 G:179 B:160

R: 11011111 G: 10110011 B: 10100000 (5,6) R:84 R: 01010100 (17,18) R:233 R: 11101001


(44)

G:93 B:82 G: 01011101 B: 01010010 G:186 B:160 G: 10111010 B: 10100000 (6,7) R:95

G:102 B:88

R: 01011111 G: 01100110 B: 01011000

(18,19) R:141 G:142 B:122

R: 10001101 G: 10001110 B: 01111010 (7,8) R:110

G:113 B:101

R: 01101110 G: 01110001 B: 01100101

(19,20) R:149 G:149 B:132

R: 10010101 G: 10010101 B: 10000100 (8,9) R:108

G:110 B:95

R: 01101100 G: 01101110 B: 01011111

(20,21) R:155 G:155 B:139

R: 10011011 G: 10011011 B: 10001011 (9,10) R:46

G:48 B:38

R: 00101110 G: 00110000 B: 00100110

(21,22) R:107 G:108 B:94

R: 01101011 G: 01101100 B: 01011110 (10,11) R:28

G:29 B:20

R: 00011100 G: 00011101 B: 00010100

(22,23) R:30 G:34 B:24

R: 00011110 G: 00100010 B: 00011000 (11.12) R:108

G:115 B:130

R: 01101100 G: 01110011 B: 10000010

(23,24) R:31 G:36 B:26

R: 00011111 G: 00100100 B: 00011010 4. Kemudian sisipkan biner ciphertext pada biner pixel. Setelah biner

ciphertext disisipkan ke biner pixel dari gambar, kemudian biner hasil

penyisipan tersebut di ubah kembali ke desimal yang tunjukan pada Tabel 3.3.

Tabel 3.3 Penyisipan Pesan

Titik pixel

Biner RGB Nilai RGB

Titik pixel

Biner RGB Nilai RGB (0,1) R: 01111101

G: 00111000 B: 01011100

R:125 G:56 B:92

(12,13) R: 01101010 G: 01101100 B: 01110111

R:106 G:108 B:119


(45)

(1,2) R: 00101100 G: 00110110 B: 00110010

R:44 G:54 B:50

(13,14) R: 01101101 G: 01011011 B: 01011101

R:109 G:91 B:93 (2,3) R: 00101111

G: 00111101 B: 00110000

R:47 G:61 B:48

(14,15) R: 10010101 G: 01110111 B: 01110111

R:149 G:119 B:119 (3,4) R: 01000010

G: 01001010 B: 01000001

R:66 G:74 B:65

(15,16) R: 11100001 G: 10110100 B: 10101000

R:225 G:180 B:168 (4,5) R: 01001000

G: 01010001 B: 01000111

R:72 G:81 B:71

(16,17) R: 11011111 G: 10110010 B: 10100000

R:223 G:178 B:160 (5,6) R: 01010100

G: 01011101 B: 01010010

R:84 G:93 B:82

(17,18) R: 11101000 G: 10111010 B: 10100000

R:232 G:186 B:160 (6,7) R: 01011110

G: 01100110 B: 01011000

R:94 G:102

B:88

(18,19) R: 10001101 G: 10001111 B: 01111011

R:141 G:143 B:123 (7,8) R: 01101110

G: 01110001 B: 01100101

R:110 G:113 B:101

(19,20) R: 10010101 G: 10010101 B: 10000101

R:149 G:149 B:133 (8,9) R: 01101101

G: 01101110 B: 01011110

R:109 G:110 B:94

(20,21) R: 10011010 G: 10011010 B: 10001011

R:154 G:154 B:139 (9,10) R: 00101110

G: 00110001 B: 00100110

R:46 G:49 B:38

(21,22) R: 01101011 G: 01101100 B: 01011110

R:107 G:108 B:94 (10,11) R: 00011100

G: 00011101 B: 00010101

R:28 G:29 B:21

(22,23) R: 00011111 G: 00100010 B: 00011001

R:31 G:34 B:25 (11.12) R: 01101100

G: 01110010

R:108 G:114

(23,24) R: 00011110 G: 00100101

R:30 G:37


(46)

B: 10000010 B:130 B: 00011010 B:26 d. Analisis Proses Extraction dengan Fungsi Linier

Berikut ini proses extraction dengan fungsi linier:

1. Pilih bilangan untuk nilai m dan b. Misalkan = 1 dan �= 1.

Kemudian dilakukan perhitungan (��) = �� + �. Untuk

mendapatkan titik pixel yang telah disisip. Titik pixel dihitung sebanyak jumlah pixel dari gambar.

2. Kemudian pixel yang telah disisip diubah ke dalam bilangan biner seperti yang ditunjukan pada Tabel 3.4.

Tabel 3.4 Pengubahan Biner Pixel

Titik pixel

Nilai RGB

Biner RGB Titik pixel

Nilai RGB

Biner RGB (0,1) R:125

G:56 B:92

R: 01111101 G: 00111000 B: 01011100

(12,13) R:106 G:108 B:119

R: 01101010 G: 01101100 B: 01110111 (1,2) R:44

G:54 B:50

R: 00101100 G: 00110110 B: 00110010

(13,14) R:109 G:91 B:93

R: 01101101 G: 01011011 B: 01011101 (2,3) R:47

G:61 B:48

R: 00101111 G: 00111101 B: 00110000

(14,15) R:149 G:119 B:119

R: 10010101 G: 01110111 B: 01110111 (3,4) R:66

G:74 B:65

R: 01000010 G: 01001010 B: 01000001

(15,16) R:225 G:180 B:168

R: 11100001 G: 10110100 B: 10101000 (4,5) R:72

G:81 B:71

R: 01001000 G: 01010001 B: 01000111

(16,17) R:223 G:178 B:160

R: 11011111 G: 10110010 B: 10100000 (5,6) R:84

G:93 B:82

R: 01010100 G: 01011101 B: 01010010

(17,18) R:232 G:186 B:160

R: 11101000 G: 10111010 B: 10100000


(47)

(6,7) R:94 G:102 B:88 R: 01011110 G: 01100110 B: 01011000

(18,19) R:141 G:143 B:123

R: 10001101 G: 10001111 B: 01111011 (7,8) R:110

G:113 B:101

R: 01101110 G: 01110001 B: 01100101

(19,20) R:149 G:149 B:133

R: 10010101 G: 10010101 B: 10000101 (8,9) R:109

G:110 B:94

R: 01101101 G: 01101110 B: 01011110

(20,21) R:155 G:154 B:138

R: 10011011 G: 10011010 B: 10001010 (9,10) R:46

G:49 B:38

R: 00101110 G: 00110001 B: 00100110

(21,22) R:106 G:108 B:94

R: 01101010 G: 01101100 B: 01011110 (10,11) R:28

G:29 B:21

R: 00011100 G: 00011101 B: 00010101

(22,23) R:31 G:34 B:25

R: 00011111 G: 00100010 B: 00011001 (11.12) R:108

G:114 B:130

R: 01101100 G: 01110010 B: 10000010

(23,24) R:30 G:37 B:26

R: 00011110 G: 00100101 B: 00011010 3. Kemudian diambil angka terakhir dari biner pixel untuk mengetahui

pesan yang telah disisip yaitu 10000011, 00010110, 10000011, 10001001, 10000011, 11111100, 10000011, 11111000, 00101010. 4. Setelah nilai biner yang disisip diperoleh, maka nilai biner tersebut

diubah kedalam bentuk desimal seperti yang ditunjukan pada Tabel 3.5.

Tabel 3.5 Desimal Ciphertext

Biner 1 Biner 2 1 2 10000011 00010110 131 22 10000011 10001001 131 137 10000011 11111100 131 252 10000011 11111000 131 248


(48)

Pada biner 00101010 didapat nilai desimal yaitu 42, maka proses ekstraksi selesai.

3.2. Pemodelan Sistem

3.2.1. Use Case Diagram

Use case diagram merupakan model diagram yang digunakan untuk menampilkan

dialog yang ada pada sistem. Use case diagram pada sistem ini ditunjukan pada

Gambar 3.2.

Pengirim

Encryption - Embedding

Extraction - Decryption

Input kunci kriptografi

Input plaintext

Encryption

Input kunci steganografi

Input cover image

Embedding

Input Kunci Steganografi

Input stego image

Extraction

Input kunci kriptografi

Decryption

Penerima

<<uses>>

<<extends>> <<extends>>

<<extends>>

<<extends>> <<uses>>

<<uses>>

<<uses>>

<<uses>>

<<uses>>

<<uses>>

Save Stegoimage <<uses>>

<<uses>>

Save


(49)

a. Use Case Encryption – Embedding

Spesifikasi untuk proses use case encryption – embedding yang terdapat dalam

diagram use case dijabarkan pada Tabel 3.6.

Tabel 3.6 Spesifikasi Use CaseEncryption-Embedding

Name Encryption – Embedding

Actors Pengguna

Trigger Pengguna memilih submenu Enkripsi – Embedding.

Preconditions Pengguna menggunakan aplikasi sistem keamanan

data.

Post Conditions 1. Pengguna dapat melihat kunci publik dan kunci

private.

2. Pengguna dapat melihat hasil penyisipan pesan ke dalam gambar.

Success Scenarion 1. Pengguna mengeksekusi menu file.

2. Pengguna memilih submenu Encryption – Embedding.

3. Sistem menampilkan halaman Encryption – Embedding

4. Pengguna menginputkan kunci publik p, g, k dan kunci private x.

5. Pengguna menginputkan pesan (plaintext) dan

menekan tombol Encryption untuk melakukan

Enkripsi.

6. Pengguna melihat hasil enkripsi yaitu ciphertext.

7. Pengguna menginputkan nilai m dan b yang digunaka untuk letak penyisipan pesan ke dalam gambar.

8. Pengguna memilih coverimage, kemudian

pengguna menekan tombol Embed untuk

melakukan embedding.


(50)

b. Use Case Input Kunci Kriptografi

Spesifikasi untuk proses use case input kunci kriptografi yang terdapat dalam diagram use case dijabarkan pada Tabel 3.7.

Tabel 3.7 Spesifikasi Use Case Kunci Kriptografi

Name Input Kunci Kriptografi

Actors Pengguna

Trigger Pengguna memilih submenu Enkripsi – Embedding.

Preconditions Pengguna melihat menggunakan aplikasi sistem

keamanan data.

Post Conditions Pengguna dapat melihat kunci publik dan kunci

private.

Success Scenarion 1. pengguna menginputkan kunci publik p, g, k dan

kunci private x.

2. Pengguna dapat melihat kunci publik dan kunci

private.

Alternatif Flows -

c. Use Case InputPlaintext

Spesifikasi untuk proses use case inputplaintext yang terdapat dalam diagram use case dijabarkan pada Tabel 3.8.

Tabel 3.8 Spesifikasi Use CaseInput Plaintext

Name Input Plaintext

Actors Pengguna

Trigger Pengguna telah menginputkan kunci publik dan kunci

private.

Preconditions Pengguna memilih submenu Enkripsi – Embedding.

Post Conditions Pengguna dapat melihat hasil pesan yang akan

dienkripsikan.

Success Scenarion 1. Pengguna menginputkan pesan (plaintext) dan


(51)

Enkripsi.

2. Sistem menampilkan hasil encryption yaitu ciphertext.

3. Pengguna dapat melihat ciphertext.

Alternatif Flows -

d. UseCaseEncyption

Spesifikasi untuk proses use case encryption yang terdapat dalam diagram use case

dijabarkan pada Tabel 3.9.

Tabel 3.9 Spesifikasi Use CaseEncryption

Name Encryption

Actors Pengguna

Trigger Pengguna telah menginputkan pesan yang akan di

enkripsi.

Preconditions Pengguna memilih submenu Enkripsi – Embedding

Post Conditions Pengguna dapat melihat hasil pesan yang dienkripsi.

Success Scenarion 1. pengguna telah menginputkan pesan yang akan

dienkripsi.

2. Pengguna menekan tombol Encryption dan sistem

menampilkan hasil enkripsi yaitu ciphertext.

3. Pengguna dapat melihat hasil enkripsi.

Alternatif Flows -

e. Use Case Input Kunci Steganografi

Spesifikasi untuk proses use case input kunci steganografi yang terdapat dalam

diagram use case dijabarkan pada Tabel 3.10.

Tabel 3.10 Spesifikasi Use CaseInput Kunci Steganografi

Name Input Kunci Steganografi

Actors Pengguna


(52)

Preconditions Pengguna memilih submenu Enkripsi – Embedding.

Post Conditions Pengguna dapat melihat kunci steganografi yaitu nilai

m dan b.

Success Scenarion 1. Pengguna telah melakukan enkripsi.

2. Pengguna menginputkan nilai m dan b untuk melakukan embedding.

3. Pengguna menekan tombol Embed dan sistem

menampilkan hasil penyisipan gambar (stegoimage).

4. Pengguna melihat stegoimage.

Alternatif Flows -

f. Use Case Input Coverimage

Spesifikasi untuk proses use case inputcover image yang terdapat dalam diagram use case dijabarkan pada Tabel 3.11.

Tabel 3.11 Spesifikasi Use CaseInput Cover Image

Name InputCoverimage

Actors Pengguna

Trigger Pengguna telah menginputkan kunci steganografi.

Preconditions Pengguna memilih submenu Enkripsi – Embedding.

Post Conditions Pengguna dapat melihat coverimage yang dipilih.

Success Scenarion 1. Pengguna telah menginputkan nilai m dan b.

2. Pengguna memilih coverimage, kemudian

menekan tombol Embed dan sistem menampilkan

hasil embedding.

3. Pengguna melihat hasil embedding yaitu stegoimage.

Alternatif Flows -

g. Use Case Embedding

Spesifikasi untuk proses use case embedding yang terdapat dalam diagram use case


(53)

Tabel 3.12 Spesifikasi Use CaseEmbedding

Name Embedding

Actors Pengguna

Trigger Pengguna telah memilih coverimage.

Preconditions Pengguna memilih submenu Enkripsi – Embedding.

Post Conditions Pengguna dapat melihat hasil penyisipan pesan ke

dalam gambar.

Success Scenario 1. Pengguna telah memilih coverimage.

2. Pengguna menekan tombol Embed dan sistem

menampilak hasil embedding yaitu stego image.

3. Pengguna melihat hasil embedding yaitu stego image.

Alternatif Flows -

h. Use Case Save Stegoimage

Spesifikasi untuk proses use case embedding yang terdapat dalam diagram use case

dijabarkan pada Tabel 3.13.

Tabel 3.13 Spesifikasi Use CaseSave Stegoimage

Name Embedding

Actors Pengguna

Trigger Pengguna telah melakukan proses embeddinng.

Preconditions Pengguna memilih submenu Enkripsi – Embedding.

Post Conditions Pengguna dapat melihat hasil embedding.

Success Scenario 4. Pengguna telah melakukan proses embedding.

5. Pengguna menekan tombol Save Stegoimgae.

6. Sistem melakukan proses penyimpan hasil

embedding (stegoimage).

Alternatif Flows -

i. UseCaseExtraction–Decryption

Spesifikasi untuk proses use caseextraction-decryption yang terdapat dalam diagram use case dijabarkan pada Tabel 3.14.


(54)

Tabel 3.14 Spesifikasi Use CaseExtraction-Decryption

Name Encryption – Embedding

Actors Pengguna

Trigger Pengguna memilih submenu Extraction – Decryption.

Preconditions Pengguna menggunakan aplikasi sistem keamanan

data.

Post Conditions Pengguna dapat melihat hasil pengambilan pesan dari

gambar dan hasil dekripsi yaitu plaitext.

Success Scenario 1. Pengguna mengeksekusi menu file.

2. Pengguna memilih submenu Extraction Decryption.

3. Sistem menampilkan halaman Extraction – Decryption.

4. Pengguna menginputkan nilai m dan b untuk menentukan letak pixel yang akan diekstrak.

5. Pengguna memilih stegoimage kemudian

menekan tombol Extraction dan sistem

menampilkan hasil ekstrak yaitu ciphertext.

6. Pengguna menginputkan kunci publik p dan kunci

private x.

7. Pengguna menekan tombol Decryption dan sistem

menampilkan hasil dekripsi yaitu plaintext.

Alternatif Flows -

j. Use Case Input Kunci Steganografi

Spesifikasi untuk proses use case input kunci steganografi yang terdapat dalam

diagram use case dijabarkan pada Tabel 3.15.

Tabel 3.15 Spesifikasi Use CaseInput Kunci Steganografi

Name Extraction

Actors Pengguna


(55)

Preconditions Pengguna menggunakan aplikasi sistem keamanan

data.

Post Conditions Pengguna dapat melihat nilai m dan b.

Success Scenarion 1. Pengguna menginputkan nilai m dan b.

2. Pengguna dapat melihat nilai m dan b.

Alternatif Flows -

k. Use Case Input Stegoimage

Spesifikasi untuk proses use case inputstegoimage yang terdapat dalam diagram use case dijabarkan pada Tabel 3.16.

Tabel 3.16 Spesifikasi Use CaseInput Stego Image

Name Extraction

Actors Pengguna

Trigger Pengguna telah menginputkan nilai m dan b.

Preconditions Pengguna memilih submenu Enkripsi – Embedding.

Post Conditions Pengguna dapat melihat stegoimage yang dipilih.

Success Scenarion 1. Pengguna telah menginput nilai m dan b.

2. Pengguna memilih stegoimage dan sistem

menampilkan stegoimage yang dipilih.

3. Pegguna melihat stegoimage yang dipilih.

Alternatif Flows -

l. Use Case Extraction

Spesifikasi untuk proses use case extraction yang terdapat dalam diagram use case

dijabarkan pada Tabel 3.17.

Tabel 3.17 Spesifikasi Use CaseExtraction

Name Extraction

Actors Pengguna

Trigger Pengguna telah memilih stegoimage.


(1)

mark++; }

if (mark == biner.Length) goto selesai;

else {

bx = bx.Remove(7, 1).Insert(7, biner[mark]); mark++;

}

gbr_hasil.SetPixel(fx, nilaix,

Color.FromArgb(255, Convert.ToInt32(rx, 2),

Convert.ToInt32(gx, 2), Convert.ToInt32(bx, 2))); selesai:

gbr_hasil.SetPixel(fx, nilaix,

Color.FromArgb(255, Convert.ToInt32(rx, 2),

Convert.ToInt32(gx, 2), Convert.ToInt32(bx, 2))); pictureBox2.Image = gbr_hasil;

} else {

MessageBox.Show("Pixel size of the picture is not enough to do the process of embedding",

"Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

pictureBox1.Image = null; pictureBox2.Image = null; break;

} } } } }

Kode Program Menu

Extraction-Decryption

:

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;

namespace ElgamalLSB {

public partial class EktrakDekripsi : Form {

BigInteger c1x, plain; Image gambar;

Bitmap newBitmap;

string plainbiner = "";

int pixelr, pixelg, pixelb, fx, nilaix, korx, kory; public EktrakDekripsi()


(2)

{

InitializeComponent(); }

private void aboutToolStripMenuItem_Click(object sender, EventArgs e)

{

About formA = new About(); formA.Show();

}

private void homeToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Hide();

Home formH = new Home(); formH.Show();

}

private void

encryptionEmbeddingToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Hide();

EnkripsiEmbed formEE = new EnkripsiEmbed(); formEE.Show();

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit(); }

private void btnOpenStego_Click(object sender, EventArgs e) {

OpenFileDialog openDialogStego = new OpenFileDialog(); openDialogStego.Filter = "Bitmaps|*.Bmp";

DialogResult dr = openDialogStego.ShowDialog(); if (dr == DialogResult.OK)

{

gambar = Image.FromFile(openDialogStego.FileName); newBitmap = new Bitmap(openDialogStego.FileName); StegoImage.Image = gambar;

Location.Text = openDialogStego.FileName.ToString(); FileName.Text =

Path.GetFileNameWithoutExtension(openDialogStego.FileName); lebar.Text = gambar.Width.ToString();

panjang.Text = gambar.Height.ToString(); }

}

private void btnReset_Click(object sender, EventArgs e) {

keym.Text = ""; keyb.Text = ""; keyp.Text = "";


(3)

keyx.Text = "";

ciphertext.Text = ""; plaintext.Text = ""; FileName.Text = ""; Location.Text = ""; panjang.Text = ""; lebar.Text = ""; textBox2.Text = ""; textBox3.Text = ""; StegoImage.Image = null; keym.Focus();

}

private void helpToolStripMenuItem_Click(object sender, EventArgs e)

{

Help formHP = new Help(); formHP.Show();

}

private void btnSavePlaintext_Click(object sender, EventArgs e)

{

SaveFileDialog savedialog = new SaveFileDialog(); savedialog.Filter = "txt Files|*.txt";

savedialog.FileName = "*.txt";

if (savedialog.ShowDialog() == DialogResult.OK) {

string filename = savedialog.FileName;

FileStream fstream = new FileStream(filename, FileMode.OpenOrCreate);

StreamWriter sw = new StreamWriter(fstream); SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);

sw.WriteLine(plaintext.Text); sw.Flush();

} }

private void btnDekripsi_Click(object sender, EventArgs e) {

string s = ciphertext.Text; plaintext.Text = "";

string cipherteks = ""; int j = 0;

BigInteger[] c1 = new BigInteger[1000]; BigInteger[] c2 = new BigInteger[1000]; foreach (char c in s)

{

cipherteks += System.Convert.ToInt32(c).ToString() + " ";

}

string text = "";

string[] bitsplain = cipherteks.Split(' '); for (int i = 0; i < bitsplain.Length - 1; i+=2) {

c1[i] = Convert.ToInt32(bitsplain[i]); c2[i] = Convert.ToInt32(bitsplain[i + 1]);


(4)

c1x = BigInteger.Pow(c1[i],

(Convert.ToInt32(keyp.Text)) - 1 - (Convert.ToInt32(keyx.Text)) % Convert.ToInt32(keyp.Text));

plain = ((c2[i]) * c1x) % Convert.ToInt32(keyp.Text); text += char.ConvertFromUtf32((int)plain);

j++; }

plaintext.Text += text;

textBox2.Text = Convert.ToString(ciphertext.TextLength); textBox3.Text = Convert.ToString(plaintext.TextLength);

}

string getBiner(int str) {

string s = "";

for (int k = 0; k < 8; k++) {

s += (str & 0x80) > 0 ? "1" : "0"; str <<= 1;

}

return s; }

int binToAscii(string str) {

int hasil = 1; int Ascii = 0;

for (int i = str.Length - 1; i >= 0; i--) {

Ascii += (Convert.ToInt32(str[i]) - 48) * hasil; hasil *= 2;

}

return Ascii; }

private void btnExtraction_Click(object sender, EventArgs e) {

plainbiner = "";

Bitmap gbr_asli = new Bitmap(StegoImage.Image); korx = gbr_asli.Width;

kory = gbr_asli.Height;

string rx = "", gx = "", bx = "";

for (nilaix = 0; nilaix < korx && nilaix< kory; nilaix++)

{

fx = (Convert.ToInt32(keym.Text) * nilaix) + Convert.ToInt32(keyb.Text);

if (fx >= korx || fx >= kory) break;

pixelr = gbr_asli.GetPixel(fx, nilaix).R; pixelg = gbr_asli.GetPixel(fx, nilaix).G; pixelb = gbr_asli.GetPixel(fx, nilaix).B; rx = getBiner(pixelr);


(5)

gx = getBiner(pixelg); bx = getBiner(pixelb);

plainbiner += rx.Substring(7, 1); plainbiner += gx.Substring(7, 1); plainbiner += bx.Substring(7, 1); }

string sisip, text = "";

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

if (plainbiner.Length - i < 8) break;

sisip = plainbiner.Substring(i, 8); int desimal = binToAscii(sisip);

text += char.ConvertFromUtf32(desimal); }

int batas;

string hasilextract;

batas = text.IndexOf("*"); if (batas > 0)

{

hasilextract = text.Substring(0, batas); ciphertext.Text = hasilextract;

} else {

MessageBox.Show("Value of m and b are not the same as embedding process", "Information",

MessageBoxButtons.OK, MessageBoxIcon.Information); }

} } }


(6)

CURRICULUM VITAE

Nama

: Lidya Andiny Nasution

Tempat/Tanggal Lahir : Meulaboh, 16 Juni 1991

Agama

: Islam

Alamat Sekarang

: Jl. Alfaka Raya No. 75 a Tanjung Mulia Medan Deli 20241

Alamat Orang Tua

: Jl. Alfaka Raya No. 75 a Tanjung Mulia Medan Deli 20241

Telp/ Hp

: 061-6623975 / 085760653535

Email

: andiny83@gmail.com

Riwayat Pendidikan

2009 – 2013

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2006 – 2009

: SMA Swasta Dharmawangsa Medan

2003 – 2006

: SMP Negeri 24 Medan

1997 – 2003

: SD Swasta Budi Mulia Medan

Pengalaman Organisasi dan Kegiatan Ilmiah

Bendahara Departemen Jurnalistik Ikatan Mahasiswa S1 Ilmu Komputer

(IMILKOM), 2010-2011

Anggota Departemen Jurnalistik Ikatan Mahasiswa S1 Ilmu Komputer

(IMILKOM), 2011-2012