analisis dan implementasi watermarking dengan …yang digunakan pada proses penyisipan dan ekstraksi...
TRANSCRIPT
i
ANALISIS DAN IMPLEMENTASI WATERMARKING
DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA
HAK CIPTA PADA FILE AUDIO Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer
Oleh :
Muhamad Soleh
103091029579
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA
2010 M/1431 H
ii
ANALISIS DAN IMPLEMENTASI WATERMARKING
DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA
HAK CIPTA PADA FILE AUDIO
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh
Gelar Sarjana Komputer
Pada Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh:
Muhamad Soleh
103091029579
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2010 M/1431 H
vi
ABSTRAK
Muhamad Soleh – 103091029579, Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio, dibimbing oleh Yusuf Durrachman, M.Sc, MIT dan Arini, MT.
Watermarking pada file audio telah menjadi fokus perhatian pada masa sekarang ini. Hal ini berhubungan dengan transmisi data yang lebih cepat melalui Internet, yang telah memungkinkan pertumbuhan file audio digital yang tidak sah. Watermarking memberikan kemampuan untuk melindungi hak cipta terhadap produk file audio. Yang menjadi masalah watermarking pada audio terletak pada kualitas file audio dan watermark yang disisipkan harus tetap ada setelah mengalami berbagai operasi file audio yang dapat merusak file audio tersebut. Penelitian ini membahas mengenai watermarking pada file audio dengan algoritma AES (Advanced Encryption Standard) – Rinjdael pada prosedur penyisipan dan ekstraksi yang bertujuan untuk proteksi. Metode watermarking yang digunakan pada proses penyisipan dan ekstraksi adalah metode low bit coding. Transformasi dari dan ke domain frekuensi pada proses penyisipan dan ekstraksi tidak dilakukan. Hasil pengujian menunjukkan bahwa kualitas file audio setelah disisipi data menunjukkan hasil tidak pasti dan data yang disisipkan kedalam sinyal audio sulit dideteksi oleh sistem pendengaran manusia.
Kata Kunci : Watermarking, AES (Advanced Encryption Standard), low bit coding, file audio, hak cipta
vii
KATA PENGANTAR
Dengan mengucapkan rasa syukur kehadirat Allah SWT, atas rahmat dan
karunia-Nya penulis dapat menyelesaikan laporan Tugas Akhir ini dengan judul
“Analisis dan Implementasi Watermarking dengan Algoritma AES untuk
Pemberian Data Hak Cipta pada File Audio”, yang sekaligus merupakan salah
satu syarat dalam menyelesaikan program studi Strata Satu (S1) pada jurusan
Teknik Informatika, Unicersitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta.
Berhasilnya penyusunan laporan Tugas Akhir ini tidak terlepas dari semua
pihak yang telah memberikan bimbingan, dukungan serta dorongan semangat
kepada penulis. Karena itu pada kesempatan ini penulis menyampaikan rasa
terima kasih kepada :
1. Dr. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains dan
Teknologi Universitas Islam Negeri (UIN) Jakarta.
2. Yusuf Durrachman, M.Sc, MIT, selaku Ketua Program Studi Teknik
Informatika dan Viva Arifin, MMSi, selaku Sekretaris Program Studi
Teknik Informatika.
3. Yusuf Durrachman, M.Sc, MIT, dan Arini, MT, selaku dosen pembimbing
I dan II, yang telah meluangkan perhatian dan waktu untuk membimbing
dan mendidik dalam penyusunan skripsi ini.
4. Bapak dan Ibu dosen Jurusan Teknik Informatika Universitas Islam Negeri
Syarif Hidayatullah Jakarta, yang telah memberikan ilmunya kepada
viii
penulis selama kulia di Universitas Islam Negeri Syarif Hidayatullah
Jakarta.
5. Seluruh staff Jurusan TI/SI dan staff Akademik FST yang telah membantu
peneliti dalam masa perkuliahan.
Penulis menyadari bahwa penulisan skripsi ini masih jauh dari sempurna,
oleh karena itu saran dan kritik yang membangun sangat penulis harapkan guna
penyempurnaan penulisan yang akan datang.
Akhir kata penulis mempersembahkan skripsi ini dengan segala kelebihan
dan kekurangannya, semoga dapat bermanfaat bagi kita semua, amien
Ciputat, September 2010
Muhamad Soleh
ix
LEMBAR PERSEMBAHAN
Betapa saya sangat menyadari bahwa hidup ini adalah perjuangan yang
bahan bakarnya adalah pengorbanan, ketulusan, kearifan, keistikomahan dan
keikhlasan. Skripsi ini adalah salah satu bagian dalam perjuangan hidup saya,
dimana tempat saya meletakan beberapa harapan dan citi-cita dalam hidup. Tidak
peduli seberapa banyak orang meragukan kemampuan saya untuk menyelesaikan
skripsi ini. Namun saya sangat yakin dan percaya tanpa seizin Allah SWT, skripsi
ini tidak akan terselesaikan dengan baik, karena Dialah yang Maha Berkehendak
dan Maha Memiliki segala kekuatan untuk menentukan sesuatu.
Dalam proses penyusunan skripsi ini banyak sekali masukan, pengalaman
serta motivasi yang menuntunku menuju proses pendewasaan berfikir dan
bertingkah laku. Alhamdulillah dan terima kasih Aku ucapkan kepada semua
pihak yang telah menjadi perantara Allah SWT, agar Aku terus bisa merasakan
karunia-Nya itu, diantaranya:
1. Ayahanda H. Asmat, Ibunda Hj. Taslimah, serta kakak-kakak yang tak
henti-hentinya memberikan dukungan baik moril maupun materil bagi
peneliti dalam menjalani hidup ini.
2. My Computer yang telah menemaniku dan menghiburku dalam
penyusunan skripsi ini, sampai selesainya skripsi ini.
3. Keluarga besar Teknik Informatika kelas C angkatan 2003, yang telah
melewati waktu bersama, terimakasih atas saran-saran serta dukungan
yang tidak pernah disadari menjadi tambahan semangat untuk penulis.
x
4. Andi, Ambon, Ardi ,Dimaz dan Yuni, yang telah memberikan banyak
fasilitas serta kemudahan, fasilitas dari kalian jadi suatu semangat
tersendiri untuk penulis.
5. Anwar, Iswan, Lukman, Oman, Rizki, Tri, Wuri dan teman-teman
seperjuangan yang telah memberikan banyak informasi dan telah bersedia
meluangkan waktu untuk berdiskusi dan selalu memberi penulis inspirasi
dan dukungan.
6. Teman-teman dari Prodi Teknik Informatika angkatan 2003 kelas A, B &
D.
7. Nurlela (Alm) terimakasih atas dukungan yang menjadi tambahan
semangat untuk penulis.
8. Teman-teman dari masa SMU, Farhan, Hari, Rindu dan Sidqi, terimakasih
atas dukungan yang tidak pernah disadari menjadi tambahan semangat
untuk penulis.
Dan kepada seluruh pihak dan teman-teman peneliti yang lain yang
tidak bisa disebutkan namanya satu per satu yang telah memberi dukungan
kepada peneliti sehingga skripsi ini dapat terselesaikan dengan baik.
Semoga Allah membalas semua kebaikan dan ketulusan hati kalian.
Ciputat, September 2010
Muhamad Soleh
xi
DAFTAR ISI
Halaman Sampul ............................................................................................. i
Halaman Judul ................................................................................................. ii
Lembar Pengesahan Pembimbing ................................................................... iii
Lembar Pengesahan Ujian ............................................................................. iv
Lembar Pernyataan ......................................................................................... v
Abstrak ............................................................................................................ vi
Kata Pengantar ................................................................................................ vii
Lembar Persembahan ...................................................................................... ix
Daftar Isi ........................................................................................................ xi
Daftar Gambar ................................................................................................ xvi
Daftar Tabel ................................................................................................... xx
Daftar Lampiran .............................................................................................. xxi
Daftar Istilah .................................................................................................. xxii
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah ....................................................... 1
1.2. Rumusan Masalah ................................................................. 3
1.3. Batasan Masalah ................................................................... 3
1.4. Tujuan Penelitian .................................................................. 4
1.5. Manfaat Penelitian ................................................................ 4
1.6. Metode Penelitian ................................................................ 5
1.7. Sistematika Penulisan .......................................................... 6
xii
BAB II LANDASAN TEORI
2.1. Pengertian Analisis ................................................................. 8
2.2. Hak Cipta …………………………………………………….. 9
2.3. Watermarking ........................................................................ 9
2.3.1. Tujuan Penggunaan Watermarking ............................ 10
2.3.2. Karakteristik Watermarking ....................................... 11
2.3.3. Cara Kerja Watermarking ........................................... 12
2.3.4. Trade-Off dalam Watermarking ................................. 14
2.3.5. Metode Watermarking ................................................ 15
2.4. Wave Audio Format (WAV) ................................................ 18
2.5. Kriptografi ............................................................................. 19
2.5.1. Pengertian Kriptografi ................................................ 20
2.5.2. Istilah-istilah dalam kriptografi .................................. 21
2.5.3. Tujuan Kriptografi .................................................... 24
2.5.4. Kriptografi Kunci-Simetri dan Nirsinetri .................. 26
2.5.4.1. Kriptografi Kunci-Simetri ................................ 26
2.5.4.2. Kriptografi Kunci-Nirsimetri .......................... 27
2.6. Advanced Encryption Standard (AES) ................................ 28
2.6.1. Representasi Data ....................................................... 29
2.6.2. Algoritma AES ........................................................... 31
2.6.2.1. Enkripsi ........................................................... 31
2.6.2.1.1. SubBytes ........................................... 32
xiii
2.6.2.1.2. ShiftRows .......................................... 33
2.6.2.1.3. MixColumns ..................................... 34
2.6.2.1.4. AddRoundKey ................................... 35
2.6.2.2. Dekripsi ........................................................... 35
2.6.2.2.1. InvShiftRows ..................................... 36
2.6.2.2.2. InvSubBytes ...................................... 37
2.6.2.2.3. InvMixColumns ................................ 37
2.6.2.2.4. Inverse AddRoundKey ...................... 38
2.6.2.3. Ekspansi Kunci ................................................ 38
2.7. Bahasa Pemrograman C# ..................................................... 40
2.7.1. Mengenal Struktur Program C# .................................. 43
2.7.2. Eksekusi Program ...................................................... 45
2.8. Perancangan Program ........................................................... 46
2.8.1. Rapid Application Development (RAD) .................... 46
2.8.2. State-Transition Diagram (Diagram) ......................... 48
2.8.3. Flow-Chart ................................................................. 49
2.9. Studi Literatur ...................................................................... 53
BAB III METODE PENELITIAN
3.1. Metode Pengumpulan Data .................................................. 58
3.1.1. Studi Pustaka .............................................................. 58
3.1.2. Studi Literatur ............................................................. 59
3.2. Metode pengembangan Sistem .............................................. 59
3.2.1. Fase Perencanaan Syarat-Syarat ................................. 60
xiv
3.2.2. Fase Perancangan ........................................................ 60
3.2.2.1. Perancangan Proses ........................................ 61
3.2.2.2. Perancangan Antar Muka Pemakai
(User Interface) ............................................... 62
3.2.3. Fase Konstruksi .......................................................... 62
3.2.4. Fase Pelaksanaan ........................................................ 63
BAB IV ANALISIS DAN PERANCANGAN
4.1. Fase Perencanaan Syarat-syarat ............................................ 65
4.2.1. Analisis Kebutuhan ..................................................... 65
4.2.2. Menentukan Tujuan .................................................... 66
4.2.3. Menentukan Syarat-syarat .......................................... 66
4.2. Fase Perancangan ................................................................... 68
4.2.1. Perancangan Proses .................................................... 68
4.2.1.1. Proses Penyisipan ............................................ 69
4.2.1.2. Proses Ekstraksi .............................................. 69
4.2.1.3. Flow-chart Proses Penyisipan
dan Ekstraksi Pesan ....................................... 70
4.2.2. Perancangan Antar Muka ........................................... 75
4.2.2.1. Perancangan Form Utama ............................. 75
4.2.2.2. Perancangan Form Ekstrak ........................... 79
4.2.2.3. Perancangan Form About .............................. 80
4.2.2.4. Perancangan Form Bantuan .......................... 81
4.3. Fase Konstruksi ..................................................................... 82
xv
4.4. Fase Pelaksanaan .................................................................... 83
4.4.1. Implementasi ................................................................ 83
4.4.1.1. Cara Penggunaan Aplikasi ............................ 83
4.4.1.2. Proses Penyisipan ......................................... 84
4.4.1.3. Proses Ekstraksi ............................................ 89
4.4.1.4. Form About ................................................... 93
4.4.1.5. Form Bantuan ............................................... 94
4.4.2. Pengujian Aplikasi ...................................................... 95
4.4.2.1. Pengujian Spesifikasi Sistem ........................ 98
4.4.2.2. Pengujian Ukuran File Terhadap File Carrier 104
4.4.2.3. Pengujian Ketahanan Data ............................ 105
4.4.3. Analisis Hasil Pengujian Aplikasi .............................. 108
4.4.3.1. Analisis Hasil Uji Spesifikasi Sistem ........... 108
4.4.3.2. Analisis Hasil Uji Ukuran File Terhadap
File Carrier .................................................... 111
4.4.3.3. Analisis Hasil Uji Ketahanan Data ............... 113
BAB V PENUTUP
5.1. Kesimpulan ............................................................................ 115
5.2. Saran ....................................................................................... 116
DAFTAR PUSTAKA ................................................................................... 117
LAMPIRAN
xvi
DAFTAR GAMBAR
Gambar 2.1 Proses pemberian Watermark pada dokumen ......................... 13
Gambar 2.2 Trade-Off dalam watermarking .............................................. 14
Gambar 2.3 Susunan bit .............................................................................. 18
Gambar 2.4 Cabang-cabang bidang ilmu kriptografi .................................. 24
Gambar 2.5 Skema kriptografi kunci-Simetri ............................................. 26
Gambar 2.6 Skema kriptografi kunci Nir-Simetri ....................................... 27
Gambar 2.7 Masukan dan keluaran Array State ......................................... 30
Gambar 2.8 Diagram alir proses enkripsi ................................................... 32
Gambar 2.9 Transformasi SubBytes ............................................................ 33
Gambar 2.10 Transformasi ShiftRows .......................................................... 34
Gambar 2.11 Diagram alir proses dekripsi ................................................... 36
Gambar 2.12 Transformasi InvShiftRows ..................................................... 36
Gambar 2.13 Pseudcode proses ekspansi kunci ............................................ 39
Gambar 2.14 Komposisi bahasa C# .............................................................. 41
Gambar 2.15 Tampilan visual C# ................................................................. 42
Gambar 2.16 Console Application ................................................................ 43
Gambar 2.17 Sintakis kode program ............................................................ 44
Gambar 2.18 Contoh penamaan fungsi class ................................................ 45
Gambar 2.19 Hasil eksekusi dari gambar 2.18 ............................................. 45
Gambar 2.20 Fase-fase RAD James Martin ................................................. 46
Gambar 2.21 Pengembangan sistem model RAD ......................................... 48
xvii
Gambar 2.22 State Transition Diagram yang disederhanakan untuk
untuk software foto kopi .......................................................... 49
Gambar 2.23 Contoh diagram alir ................................................................. 52
Gambar 3.1 Metodologi penelitian pengembangan aplikasi watermarking
dengan algoritma AES pada file audio .................................... 64
Gambar 4.1. Proses penyisipan ................................................................... 69
Gambar 4.2. Proses ekstraksi ........................................................................ 70
Gambar 4.3. Flow-chart proses penyisipan pesan ....................................... 71
Gambar 4.4. Flow-chart proses enkripsi dengan metode AES di sebelah
kiri dan flow-chart proses penyisipan pesan menggunakan
metode LSB di sebelah kanan .................................................. 72
Gambar 4.5. Flow-chart proses ekstraksi pesan ........................................... 73
Gambar 4.6. Flow-chart proses pengambilan pesan menggunakan
metode LSB di sebelah kiri dan flow-chart proses dekripsi
dengan metode AES di sebelah kanan ..................................... 74
Gambar 4.7. Rancangan form utama ........................................................... 77
Gambar 4.8a. State Transition Diagram ........................................................ 78
Gambar 4.8b. State Transition Diagram ........................................................ 79
Gambar 4.9. Rancangan form extract Message ........................................... 80
Gambar 4.10. Rancangan form about ............................................................ 81
Gambar 4.11. Rancangan form help .............................................................. 81
Gambar 4.12. Tampilan aplikasi AudioWater ............................................... 84
xviii
Gambar 4.13. Tampilan form utama .............................................................. 85
Gambar 4.14. Tampilan open file audio ........................................................ 86
Gambar 4.15. Tampilan save output .............................................................. 87
Gambar 4.16. Tampilan cari audio ................................................................. 90
Gambar 4.17. Tampilan form extract ............................................................ 90
Gambar 4.18. Tampilan file save output ........................................................ 91
Gambar 4.19. Tampilan form about ............................................................... 94
Gambar 4.20. Tampilan form help ................................................................. 95
Gambar 4.21. Spectrum suara file rocketrockers hari untukmu.wav asli ...... 98
Gambar 4.22. Spectrum suara file rocketrockers hari untukmu.wav
setelah disisipi pesan ................................................................ 99
Gambar 4.23. Spectrum suara hari untukmu.wav asli
dengan filter bandstop ............................................................... 99
Gambar 4.24. Spectrum suara hari untukmu.wav yang sudah disispi pesan
dengan filter bandstop .............................................................. 100
Gambar 4.25. Spectrum suara file rocketrockers hari untukmu.wav Asli ...... 100
Gambar 4.26. Spectrum suara file rocketrockers hari untukmu.wav
Setelah disisipi pesan .............................................................. 101
Gambar 4.27. Spectrum suara hari untukmu.wav Asli
dengan filter bandstop ............................................................... 101
Gambar 4.28. Spectrum suara hari untukmu.wav yang sudah disispi pesan
dengan filter bandstop ................................................................ 102
Gambar 4.29. Pesan asli .................................................................................. 103
xix
Gambar 4.30. Pesan asli yang telah di enkripsi pada file audio hari untukmu
asli ......................................................................................... 103
Gambar 4.31. File pesan yang diambil dari file audio hari untukmu ............. 103
Gambar 4.32. Tampilan aplikasi xilisoft ........................................................ 106
Gambar 4.33. Tampilan add file .................................................................... 106
Gambar 4.34. Tampilan menu list file profile ................................................ 107
Gambar 4.35. Tampilan proses encode .......................................................... 107
xx
DAFTAR TABEL
Tabel 2.1. Tiga buah versi AES .................................................................. 31
Tabel 2.2. Tabel S-box dalam transformasi Subbytes () .............................. 32
Tabel 2.3. Tabel Inverse S-box dalam transformasi InvSubbytes () ........... 37
Tabel 2.4. Bagian-bagian halaman kerja visual C# 2005 ............................ 42
Tabel 2.5. Perbandingan metode RAD, Sekuensial Linear, Prototype
dan Spiral .................................................................................... 46
Tabel 2.6. Simbol-simbol program flow-chart menurut ANSI
(American National Standard Institute) ...................................... 50
Tabel 2.7. Studi literature yang digunakan ................................................. 53
Tabel 4.1. Tabel spesifikasi file carrier yang akan diuji ............................ 97
Tabel 4.2. Pengujian proses dan kesesuaian data ........................................ 104
Tabel 4.3. Tabel uji ukuran file pesan terhadap file carrier ........................ 104
Tabel 4.4. Tabel uji ketahanan data ............................................................. 108
Tabel 4.5. Tabel hasil uji spesifikasi sistem ................................................ 109
Tabel 4.6. Tabel hasil uji Ukuran file pesan terhadap file carrier ............... 112
Tabel 4.7. Tabel hasil uji ketahanan data wav to mp3 ................................ 113
Tabel 4.8. Tabel hasil uji ketahanan data wav to aac .................................. 114
Tabel 4.9. Tabel hasil uji ketahanan data wav to midi ................................ 114
xxi
DAFTAR LAMPIRAN
LAMPIRAN I …………………..……………………………………………. 120
GRAFIK SINYAL SUARA WAV…………………..………………………. 120
LAMPIRAN II ………...……………..………………………..………..….... 124
FILE INPUT ………...……………..…………………………..………..….... 124
LAMPIRAN III ………...……………..………………………….……..….... 128
LISTING PROGRAM …………………………...……………..………….... 128
xxii
DAFTAR ISTILAH
Istilah Arti
Analisis
Penyelidikan terhadap suatu peristiwa (karangan, perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya (sebab-musabab, duduk perkaranya, dan sebagainya.)
Algoritma Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis
Data
Data adalah fakta berupa angka, karakter, symbol, gambar, tanda-tanda, isyarat, tulisan, suara, bunyi yang merepresentasikan keadaan sebenarnya yang selanjutnya digunakan sebagai masukan suatu Sistem Informasi.
Hak cipta
Hak eksklusif bagi pencipta atau penerima hak untuk mengumumkan atau memperbanyak ciptaannya atau memberikan izin untuk itu dengan tidak mengurangi pembatasan-pembatasan menurut peraturan perundang-undangan yang berlaku
Hardware
Perangkat keras (hardware) mengacu kepada obyek memungkinkan untuk disentuh, seperti disket, disk drive, layar monitor, keybord, printer, scanner dan chip.
Internet
Suatu jaringan komputer global terbentuk dari jaringan-jaringan komputer lokal dan regional, memungkinkan komunikasi data antar komputer-komputer yang terhubung ke jaringan tersebut.
Kualitas Tingkat baik buruknya atau taraf atau derajat sesuatu.
WAV merupakan format standar berkas audio yang dikembangkan Microsoft dan IBM.
PCM File wave yang tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang.
Software
Perangkat Lunak (software) adalah perintah-perintah atau data komputer. Semua yang dapat disimpan secara elektronik adalah software. Software sering dibagi menjadi dua kaktegori: - Software sistem (system software): yang meliputi sistem operasi dan semua utilitas yang menjalankan komputer - Software aplikasi (application software): yang meliputi program yang digunakan oleh pengguna untuk melakukan pekerjaan tertentu, seperti pengolah kata (word processors), sehingga mudah untuk membuah
xxiii
dan menguji program-program sederhana. chipertext Bentuk pesan yang tidak dapat dibaca atau dipahami plaintext pesan yang dapat dibaca
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi komputer saat ini telah membawa
perubahan bagi kita untuk melakukan akses serta mendistribusikan
berbagai informasi dalam bentuk format digital. Sehingga saat ini sering
disebut sebagai era digital, atau dunia digital. Dengan perkembangan
komputer digital dan perangkat-perangkat lainnya yang serba digital dalam
hal ini audio digital, telah membuat data digital semakin banyak
digunakan dan mudah diduplikasi. Sehingga seringkali menimbulkan
konflik. Konflik yang sering timbul adalah adanya sengketa antara
beberapa pihak yang mengklaim bahwa pihaknya adalah pemilik sah dari
sebuah audio digital.
Konflik tersebut yang kemudian menyebabkan timbulnya
kebutuhan untuk melindungi hak kepemilikan (hak cipta) pada file audio
dengan memberikan data hak cipta pada audio digital untuk keaslian
(otentikasi) pemilik. Perlindungan hak cipta dengan pengontentifikasian
dari isi data audio dapat digunakan untuk membuktikan keaslian dari suatu
file audio yang disimpan atau beredar masih asli atau sudah mengalami
perubahan. Jika isi data audio yang diekstraksi tidak sama dengan isi data
audio asli, maka dapat disimpulkan file audio sudah otentik lagi.
Keontentikan kepemilikan juga dapat ditunjukan karena hanya pemilik
2
yang mengetahui kunci untuk mengestrak atau membuka informasi yang
disisipkan.
Salah satu cara untuk mengatasi permasalahan diatas dapat
menggunakan teknik audio watermarking dengan kriptografi.
Watermarking atau tanda air bisa diartikan sebagai suatu teknik
penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya
dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain
menyadari adanya data tambahan pada data host-nya (Doni Ariyus,
2007:92). Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan
pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat
dimengerti lagi maknanya (Rinaldi Munir, 2006:2). Berdasarkan kunci
yang dipakainya untuk enkripsi dan dekripsi, kriptografi terbagi dua
diantaranya algoritma kriptografi modern yang memakai sistem algoritma
kunci-simetri, yaitu : DES (Data Encryption Standard), Blowfish, Triple-
DES, IDEA, Serpent, AES dan lain-lain, dan algoritma kriptografi modern
yang menggunakan algoritma kunci nirsimetri, yaitu RSA, Diffle Hellman,
dan lain-lain. Penyisipan informasi watermark dengan algoritma AES ke
dalam audio dilakukan sedemikian, sehingga tidak merusak kualitas audio
yang telah disisipi informasi hak cipta. Informasi hak cipta ini harus dapat
diekstrak untuk pembuktian keaslian atas produk audio digital tersebut.
Penggunaan watermarking dan algoritma AES secara bersamaan
dimaksudkan untuk memberikan keamanan berlapis dalam pengamanan
audio. Berdasarkan latar belakang masalah diatas maka tema penulisan
3
skripsi ini, adalah “Analisis dan Implementasi Watermarking dengan
Algoritma AES untuk Penyimpanan Data Hak Cipta Pada File Audio”.
1.2. Rumusan Masalah
Berdasarkan latar belakang masalah diatas, penulis
mengidentifikasi masalah sebagai berikut :
1. Bagaimana menyisipkan atau menyimpan informasi watermark dengan
algoritma AES ke dalam suatu file audio.
2. Bagaimana mengestrak informasi watermark dari file audio.
3. Bagaimana ketahanan informasi watermark pada file audio.
4. Apakah terjadi perubahan kualitas dan besar ukuran data pada file
audio setelah melalui proses penyisipan dan ekstraksi pesan.
1.3. Batasan Masalah
Agar pembahasan dalam skripsi ini dapat mencapai hasil yang
optimal, maka penulis membatasi ruang lingkup pembahasan sebagai
berikut :
1. File audio yang akan disisipi informasi Watermark adalah file audio
yang berformat WAV yang mempunyai audio format berjenis PCM
(Pulse Code Modulation).
2. File audio berwatermark adalah dalam format WAV. File audio
berwatermark merupakan audio WAV yang telah disisipi informasi
watermark.
3. Data hak cipta yang akan disisipkan dan diekstrak ke dan dari file
audio berupa txt.
4
4. Proses penyisipan dan ekstraksi menggunakan metode low bit coding.
5. Algoritma yang digunakan untuk enkripsi menggunakan algoritma
enkripsi Rijndael (Advanced Encryption Standard (AES)).
6. Pokok objek penelitian adalah kualitas file dan besar file keluaran.
7. Program dibuat dengan menggunakan bahasa Visual C#, Microsoft
Visual Studio 2005.
1.4. Tujuan
Berdasarkan latar belakang, rumusan masalah, dan batasan
masalah, maka tujuan penelitian dari pembuatan aplikasi watermarking
dengan algoritma AES dalam menunjang penulisan skripsi ini adalah :
1. Mengimplementasikan proses penyisipan dan ekstraksi informasi
watermarking dengan algoritma AES.
2. Melakukan analisis perbandingan terhadap kualitas dan ukuran data
pada file audio sebelum dan sesudah melalui proses penyisipan dan
ekstraksi.
1.5. Manfaat
Sesuai dengan permasalahan dan tujuan penelitian yang telah
disebutkan di atas, maka manfaat penelitian dapat dirumuskan sebagai
berikut :
a. Bagi Penulis
1. Penulis bisa menerapkan dan mengembangkan ilmu keamanan data
digital watermarking dan kriptografi yang diperoleh selama penulis
kuliah.
5
2. Memahami penerapan watermarking pada data audio.
3. Untuk memenuhi salah satu syarat kelulusan starata satu (S1)
Program Studi Teknik Informatika Fakultas Sains dan Teknologi
UIN Syarif Hidayatulah Jakarta.
b. Bagi Akademik
1. Mengetahui kemampuan mahasiswa dalam menguasai materi teori
keamanan data digital watermarking dan kriptografi yang telah
diperoleh selama kuliah.
2. Mengetahui kemampuan mahasiswa dalam menerapkan ilmu
keamanan data digital watermarking dan kriptografi pada data
digital dalam hal ini audio digital dan sebagai bahan evaluasi.
c. Bagi Pengguna
1. Program aplikasi audio watermarking ini, dapat dijadikan sebagai
salah satu media alternatif untuk pemberian data hak cipta pada file
audio sebagai pembuktian keaslian file (otentikasi).
1.6. Metodologi Penelitian
Metode yang akan digunakan untuk menyelesaikan skripsi ini
adalah :
1. Metode Pengumpulan Data
Metode pengumpulan data yang akan digunakan yaitu :
a. Studi Pustaka
Studi pustaka yaitu metode pengumpulan data dan
informasi dengan mencari dan memperoleh data-data yang
6
diperlukan dari berbagai buku, e-book, website, serta sumber lainya
yang berkaitan dengan penelitian yang dapat dijadikan acuan
dalam penelitian ini.
b. Studi Literatur
Studi literatur merupakan pengembangan instrumen atau
penelitian sejenis yang sudah dibuat sebelumnya
2. Metode Pengembangan Sistem
Metode pengembangan sistem yang digunakan dalam
pembuatan skripsai ini menggunakan empat tahap siklus
pengembangan model Rapid Application Development (RAD),
Kendall & Kendall, (1998 & 2000) yang terdiri dari :
a. Fase menentukan syarat-syarat, yaitu menetukan tujuan dan
kebutuhan sistem.
b. Fase perancangan, yaitu perancangan proses-proses yang akan
terjadi dalam sistem dan perancangan antar muka.
c. Fase kontruksi, pada tahapan ini dilakukan pengkodean terhadap
rancangan-rancangan yang telah didefinisikan.
d. Fase pelaksana, pada tahapan ini dilakukan pengujian terhadap
sistem dan analisa pengujian terhadap sistem.
1.7. Sistematika Penulisan
Untuk memberikan gambaran yang lebih jelas dan sistematis,
skripsi ini dibagi menjadi lima bab dan tiap bab memiliki beberapa sub
bab. Berikut adalah sistematika dari skripsi ini:
7
BAB I Pendahuluan
Penguraian secara singkat mengenai latar belakang
masalah, rumusan masalah, batasan masalah, tujuan dan
manfaat penelitian, metodologi penelitian serta sistematika
penulisan.
BAB II Landasan Teori
Bab ini berisikan semua landasan teori yang digunakan
dalam penyusunan dan penulisan skripsi ini.
BAB III Metodologi Penelitian
Bab ini berisi uraian mengenai metodologi yang dipakai
penulis, metode pengumpulan data dan metode
pengembangan sistem.
BAB IV Analisa dan Perancangan
Bab ini menjelaskan spesifikasi perangkat keras dan
perangkat lunak yang digunakan, implementasi program,
pengujian, analisa pengujian serta tampilan layar hasil
program berikut cara penggunaannya.
BAB V Penutup
Pada bab ini akan berisi kesimpulan dari hasil pembahasan
bab-bab sebelumnya dan berisi saran-saran untuk
pengembangan lebih lanjut.
8
BAB II
LANDASAN TEORI
2.1. Pengetian Analisis
Analisis atau juga disebut dengan analisa menurut Kamus Besar
Bahasa Indonesia adalah Penyelidikan terhadap suatu peristiwa (karangan,
perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya
(sebab-musabab, duduk perkaranya, dan sebagainya.) (http : // pusat bahasa.
Diknes. Go. Id).
Analisis data merupakan upaya mencari dan menata data secara
sistematis untuk meningkatkan pemahaman peniliti tentang kasus yang
diteliti dan menyajikannya sebagai temuan bagi orang lain. Proses analisis
data dalam penelitian adalah sebagai berikut, (http : // www.um-pwr.ac.id) :
1. Menelaah seluruh data yang terkumpul dari berbagai sumber.
2. Mengadakan reduksi data dengan jalan membuat abstraksi.
3. Menyusun dalam satuan-satuan dan kategorisasi.
4. Menafsirkan dan atau memberikan makna terhadap data.
Analisis dapat diartikan sebagai proses atau tahapan dalam penelitian
atau penyelidikan dalam mengevaluasi data yang telah terkumpul untuk
meningkatkan pemahaman sehingga menhasilkan suatu kesimpulan ynag
dapat dipertanggungjawabkan.
9
2.2. Hak Cipta
Hak Cipta adalah hak eksklusif bagi pencipta atau penerima hak
untuk mengumumkan atau memperbanyak ciptaannya atau memberikan izin
untuk itu dengan tidak mengurangi pembatasan-pembatasan menurut
peraturan perundang-undangan yang berlaku (http://www.dgip.go.id). Hak
cipta merupakan hak eksklusif bagi pencipta atau pemegang hak cipta untuk
mengumumkan atau memperbanyak ciptaannya, yang timbul secara
otomatis, setelah suatu ciptaan dilahirkan tanpa mengurangi pembatasan
menurut peraturan perundang-undangan yang berlaku (Yusran Isnaini,
2009:11). Jadi hak cipta adalah hak eksklusif dari pada pencipta atau
pemegang hak cipta atau hasil ciptaanya untuk mengumumkan atau
memperbanyak ciptaannya tanpa mengurangi pembatasan-pembatasan
menurut peraturan perundang-undangan yang berlaku.
2.3. Watermarking
Watermarking atau tanda air bisa diartikan sebagai suatu teknik
penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya
dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain
menyadari adanya data tambahan pada data host-nya (Doni Ariyus,
2007:92). Disamping itu, data yang ter-watermark harus tahan (robust)
terhadap serangan-serangan, baik secara sengaja maupun tidak sengaja
untuk menghilangkan data watermark didalamanya.
Watermarking ini memanfaatkan kekurangan-kekurangan sistem
indera manusia seperti mata dan telinga (http://digitally1.paume.itb.ac.id).
10
Watermarking merupakan suatu cara untuk penyembunyian atau penanaman
data/informasi tertentu (baik hanya berupa catatan umum maupun rahasia)
ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh
indera manusia (indera penglihatan atau pendengaran), dan mampu
menghadapi proses-proses pengolahan sinyal digital sampai pada tahap
tertentu.
Jadi watermarking dapat juga diartikan sebagai suatu teknik
penyisipan atau penyembunyian data atau informasi “umum maupun
rahasia” ke dalam data digital lainnya (host data) tanpa diketahui adanya
data tambahan pada host datanya oleh indera manusia seperti mata dan
telinga .
2.3.1. Tujuan Penggunaan Watermarking
Dokumen merupakan representasi riwayat organisasi secara
eksplisit (Doni Ariyus, 2007:221). Dokumen dalam bentuk
elektronik dapat memudahkan pembukaan serta penelusuran isi dari
riwayat dokumen tersebut yang sebelumnya susah untuk dilakukan
pada dokumen dalam bentuk kertas, memungkinkan pembagian
informasi (information sharing) yang efektif, serta dapat
memberikan kontribusi pada penyebarluasan pengetahuan pada
lingkungan-lingkungan terkait. Dokumen elektronik mendukung
pengambilan kebijakan berbasis bukti yaitu dengan menyediakan
bukti dari aksi dan keputusan sebelumnya. Namun untuk
menghasilaknnya dokumen elektronik tersebut harus dikelola dengan
11
baik untuk menjamin integritas dan otentitasnya. Dokumen-dokumen
elektronik yang berisi transaksi elektronik yang otentik harus dijaga
sedemikian rupa sehingga tetap terjaga kualitas legal dan bobot
buktinya. Untuk itulah dipelukannya teknik watermarking.
Penyisipan watermark pada dokumen memiliki berbagai
macam tujuan (Doni Ariyus, 2007:222). Untuk aplikasi perlindungan
hak cipta, tanda yang disisipkan pada dokumen (gambar, teks, atau
audio) digunakan sebagai identifier yang menunjukan hak
kepimilikan atau hak penggunaan dokumen. Jenis tanda air
mempengaruhi keefektifan tanda air itu sendiri dalam setiap
aplikasinya. Baik tanda air perceptible maupun inperceptible,
keduanya dapat mencegah terjadinya penyalahgunaan, namun
dengan cara yang berbeda. Tanda air digital digunakan untuk
memberikan identifikasi sebuah dokumen atas informasi sumber
daya, penulis, creator, pemilik, distributor, dan konsumer yang
berhak atas dokumen tersebut.
2.3.2. Karakteristik Watermarking
Ada beberapa karakteristik yang diinginkan dari pengguna
watermark pada suatu dokumen, diantaranya tidak dapat terdeteksi
(imperceptible), robustness, dan security (Doni Ariyus, 2007:222).
1. Imperceptible : Memberikan karakteristik watermark agar sebisa
mungkin harus tidak dapat terlihat atau berbeda dengan dokumen
12
aslinya. Hal ini dimaksudkan untuk tidak merubah status
dokumen yang bernilai tinggi secara hukum maupun komersial.
2. Robustness : Karakteristik ini tergantung aplikasi dari watermark
itu sendiri. Apabila digunakan sebagai identifikasi
kepemilikan/copyright, watermark harus memilki ketahanan
terhadap berbagai macam modifikasi yang mungkin bisa
dilakukan untuk merubah/menghilangkan copyright. Jika
digunakan untuk mengautentifikasi content, watermark sebisa
mungkin bersifat fragile, sehingga apabila isinya telah
mengalami perubahan, maka watermark juga akan mangalamu
perubahan/rusak, sehingga dapat terdeteksi adanya usaha
modifikasi terhadap isi.
3. Security : Teknik watermark harus dapat mencegah usaha-usaha
untuk mendeteksi dan memodifikasi informasi watermark yang
disisipkan ke dalam dokumen. Kunci watermark menjamin
hanya orang yang berhak saja yang dapat melakukan hal tersebut.
Namun aspek ini tidak dapat mencegah siapapun untuk membaca
dokumen yang bersangkutan.
2.3.3. Cara Kerja Watermarking
Dalam watetmark digital, sebuah sinyal low-energy
disisipkan ke sinyal utama sebagai cover signal untuk
menyembunyikan sinyal low-energy tersebut (Doni ariyus,
2007:223). Pada gambar 2.1 diilustrasikan sinyal low-energy adalah
13
watermark, dan cover signal-nya adalah dokumen yang bisa berupa
gambar, video, suara, atau teks dalam format digital.
Gambar 2.1. Proses pemberian watermark pada dokumen (Sumber : Doni Ariyus, 2007:223)
Secara umum, sistem watermarking terdiri atas embedder dan
detector (Doni ariyus, 2007:223). Embedder berkerja untuk
menyisipkan watermark ke dalam dokumen (cover signal) dan
detector akan mendeteksi watermark yang ada di dalam dokumen.
Kunci watermark digunakan selama proses penyisipan dan
pendeteksian. Kunci tersebut bersifat privat dan hanya boleh
diketahui oleh pihak-pihak yang diberi otoritas untuk menyisipkan
atau mendeteksi watermark tersebut.
14
2.3.4. Trade-Off dalam Watermarking
Gambar 2.2. Trade-Off dalam watermarking (Sumber : http://digitally1.paume.itb.ac.id)
Parameter-parameter yang diperlukan dalam penerapan
watermarking (http://digitally1.paume.itb.ac.id) :
1. Jumlah data (bit rate) yang akan disembunyikan.
2. Ketahanan (robustness) terhadap pengolahan sinyal.
Terdapat suatu trade-off diantara kedua parameter (bitrate
dan robustness) tersebut dengan Invisibly (tidak tampak). Bila
diinginkan robustness yang tinggi maka bitrate akan menjadi rendah,
sedangkan akan semakin visible, dan sebaliknya semakin invisible
maka robustness akan menurun. Jadi harus dipilih nilai-nilai dari
parameter tersebut agar memberikan hasil yang sesuai dengan yang
kita inginkan (sesuai dengan aplikasi).
Hubungan Invisibility dengan Robustness dapat diterangkan
sebagai berikut : misalkan suatu data asli diubah (ditambah atau
dikurangi) sedikit mungkin dengan maksud memberikan efek
invisible yang semakin tinggi, maka dengan adanya sedikit proses
15
pengolahan digital saja, perubahan tadi akan berubah/hilang. Dengan
demikian dikatakan robustness rendah, tetapi invisibility tinggi.
2.3.5. Metode Watermarking
Beberapa buah metode watermarking pada suara digital yaitu
phase coding, spread spectrum, echo data hiding, dan low bit coding
(http://digilib.unikom.ac.id).
1. Phase Coding
Cara kerja metode ini adalah dengan mengganti fase
bagian awal sinyal suara dengan fase yang berhubungan yang
mewakili data. Fase bagian lain yang mengikuti diatur untuk
melindungi fase relatif antar bagian.
Phase coding merupakan metode yang paling efektif dari
segi perbandingan noise signal-to-perceived. Jika hubungan fase
antar setiap komponen frekuensi diubah secara dramatis, akan
terjadi dispresi fase yang tampak dengan jelas. Akan tetapi,
selama modifikasi fase cukup kecil (tergantung pada pengamat),
coding yang tidak mungkin terdengar dapat dilakukan.
2. Spread Spectrum
Pada saluran komunikasi normal, konsentrasi informasi
pada spektrum frekuensi yang sesempit mungkin sangat
diinginkan untuk menghemat bandwidth yang tersedia dan
mengurangi tenaga yang dibutuhkan. Dasar teknik spread
spectrum dirancang untuk mengkodekan aliran informasi dengan
16
menyebarkan data melalui spektrum frekuensi yang seluas
mungkin. Hal tersebut menyebabkan resepsi sinyal, walaupun
terdapat interferensi pada beberapa frekuensi.
Salah satu metode komunikasi spread spectrum adalah
Direct Sequence Spread Spectrum Encoding (DSSS). Metode ini
menyebarkan sinyal dengan melipatgandakan dengan sebuah
chip, panjang maksimum urutan pseudorandom yang dimodulasi
pada nilai yang diketahui. Karena sinyal penampung adalah suatu
bentuk waktu diskrit, nilai sampling dapat digunakan sebagai
nilai chip untuk coding.
3. Echo Data Hiding
Metode Echo data hiding dilakukan dengan
menambahkan data pada sinyal suara penampung dengan
memunculkan echo. Data yang akan disembunyikan dalam
bentuk echo dinyatakan dengan variasi dari tiga parameter, yaitu
amplitudo awal, decay rate, dan offset (delay). Amplitudo awal
menyatakan amplitudo asal dari data suara tersebut, decay rate
menyatakan seberapa besar echo yang akan diciptakan, dan offset
menyatakan jarak antara sinyal suara dengan echo dalam bentuk
fase sudut dalam persamaan analog. Jika offset dari sinyal asal
dan echo berkurang, maka kedua sinyal akan bercampur. Echo
ini akan terdengar sebagai resonansi.
17
Selanjutnya, untuk proses pengkodean, sinyal suara asal
dipecah menjadi beberapa bagian. Pada setiap bagian, echo
dimunculkan dengan menggunakan waktu tunda sesuai bit data
yang akan disembunyikan. Waktu tunda tersebut dinyatakan
dalam parameter offset, serta besarnya echo yang akan disisipkan
dinyatakan dengan decay rate. Setelah selesai, semua pecahan
sinyal digabungkan kembali sehingga menjadi sinyal utuh.
4. Low Bit Coding
Metode Low-bit-coding adalah cara yang paling
sederhana untuk menyimpan data kedalam data yang lain.
Dengan mengganti bit yang paling tidak penting atau least
significant bit (LSB) pada setiap titik sampling dengan string
berkode biner (coded binary string), kita dapat mengkode
sejumlah besar data kedalam suara digital. Secara teori, kapasitas
saluran adalah 1 kb per detik (1 kbps) per 1 kHz. Kelamahan
metode ini adalah lemahnya kekebalan terhadap manipulasi.
Least Significant Bit (LSB) termasuk ke dalam teknik
penyisipan data ranah spasial (waktu), yaitu dengan
memodifikasi langsung nilai byte dari covertext (nilai byte dapat
mempresentasikan intensitas atau warna pixel atau amplitudo).
Penyembunyian data dilakukan dengan mengganti bit-bit
data dalam segmen covertext dengan bit-bit dari data yang akan
disembunyikan. Pada susunan bit di dalam sebuah byte (1 byte =
18
8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB)
dan bit yang kurang berarti (Least Significant Bit atau LSB),
contoh:
Gambar 2.3. Susunan bit (Sumber : http://informatika.org)
Bit yang bisa diganti adalah bit LSB, karena
perubahannya hanya akan mengubah nilai byte satu lebih tinggi
atau satu lebih rendah dari nilai sebelumnya. Misalkan byte
tersebut menunjukan warna merah, maka perubahan byte tersebut
tidak memberi perubahan yang berarti pada warna merah
tersebut, karena mata manusia tidak dapat menangkap
perubahannya yang sedikit.
2.4. Waveform Audio Format (WAV)
WAV adalah singkatan dari istilah dalam bahasa inggris Waveform
Audio Format, merupakan format standar berkas audio yang dikembangkan
Microsoft dan IBM. Walaupun WAV dapat menampung audio dalam bentuk
terkompresi, umumnya format WAV merupakan audio yang tidak
terkompres (Telkom, 2009). Kualitas dari file wave ditentukan oleh bitrate,
samplerate, dan jumlah channel (UKP,20008).
19
Bitrate merupakan ukuran bit tiap sample-nya, dapat disimpan per 8-
bits, 16-bits, 32 bits. Makin banyak bitrate dalam satu sample suara makin
baik kualitas suara file tersebut, karena data yang disimpan semakin akurat.
Samplerate menyatakan banyaknya jumlah sample yang dimainkan
setiap detiknya. Samplerate yang umum dipakai adalah 8000Hz (suara yang
dihasilkan menyerupai suara telepon), 11025 Hz (untuk perkaman suara
manusia), 22050 Hz (untuk perekaman suara musik) dan 44100 Hz, (sering
dipakai dalam audio cd karena cocok untuk semua jenis suara).
Jumlah channel akan menentukan suara yang dihasilkan termasuk
mono atau stereo. Mono menggunakan 1 channel suara, sedangkan stereo
menggunakan lebih dari 1 chanel suara (umumnya 2). Suara manusia dapat
direkam secara mono, sedangkan file-file untuk kualitas cd direkam secara
stereo.
2.5. Kriptografi
Penggunaan teknik kriptografi yang bertujuan untuk menjaga
kerahasian pesan sudah banyak diterapkan dalam kehidupan manusia.
Diantaranya transaksi di mesin ATM (Anjungan Tunai Mandiri atau
Automatic Teller Machine), transaksi di bank dengan kartu kredit mengakses
internet sampai mengaktifkan peluru kendali pun menggunakan kriptografi.
Oleh karena itu, kriptografi merupakan seni pengamanan pesan yang
populer, terutama pengamanan pesan yang menggunakan media computer.
20
2.5.1. Pengertian Kriptografi
Kriptografi (cryptography) berasal dari dua kata dari bahasa
Yunani, yaitu “cryptos” yang berate “secret” (rahasia) dan
“graphein” yang berartin “writing” (tulisan), jadi kriptografi bisa
diartikan sebagai tulisan rahasia (secret writing). Menurut
terminologinya kriptografi adalah ilmu dan seni untuk menjaga
keamanan pesan yang dikirim dari suatu tempat ke tempat yang lain.
(Doni Ariyus 2006:9).
Definisi kriptografi yang banyak di buku-buku lama (sebelum
sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu
dan seni untuk menjaga kerahasian pesan dengan cara
menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi
maknanya (Rinaldi Munir, 2006:2). Definisi ini sudah tidak sesuai
lagi dengan dunia sekarang. Karena kriptograpi tidak hanya
memperhatikan privacy saja tetapi juga harus memperhatikan data
integrity, authentication, dan non-repudiation.
Definisi kriptograpi menurut Bruce Schneier adalah ilmu seni
untuk menjaga keamanan pesan. Sedangkan menurut Alfred j.
Menezes, Paul C. Van Ourschot dan Scott A. Vanstone, kriptografi
adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan keamanan informasi seperti kerahasian,
integritas data, serta otentikasi (Rinaldi Munir, 2006:2).
21
Kriptograpi juga bisa diartikan sebagai teknik mengamankan
pesan yang dianggap rahasia dengan cara mengubah pesan dari yang
dapat dibaca menjadi pesan yang tidak dapat dibaca dengan
memperhatikan aspek keamanan pesan seperti kerahasian, integritas
data, otentikasi dan tidak penyangkalan.
2.5.2. Istilah-Istilah Dalam Kriptograpi
Dalam kriptograpi kita akan sering menemukan berbagai
istilah atau terminologi yang harus kita ketahui dan kita pahami. Di
bawah ini merupakan beberapa istilah penting dalam kriptograpi
yang akan sering ditemukan (Rinaldi Munir, 2006:3):
1. Pesan, Plainteks dan Chiperteks
Pesan (message) adalah kumpulan data atau informasi
yang dapat dibaca dan dimengerti maknanya. Nama lain untuk
pesan adalah plainteks (plaintext) atau teks jelas (cleartext).
Pesan dapat berupa data atau informasi yang dikirim (melalui
kurir, saluran telekomunikasi, dan sebagainya) atau yang
disimpan di dalam media perekaman (kertas, storage, dan
sebagainya). Pesan yang tersimpan tidak hanya berupa teks
tetapi juga berbentuk citra (image), suara atau bunyi (audio),
video atau berkas biner lainnya (Rinaldi Munir, 2006:3).
Agar pesan tidak dapat dibaca oleh pihak lain, maka
pesan perlu disandikan ke bentuk lain yang tidak dapat dibaca
atau dipahami dengan menggunakan rumus atau aturan
22
tertentu. Bentuk pesan yang tidak dapat dibaca atau dipahami
disebut chiperteks (chipertext) atau kriptogram (cryptogram).
Melalui proses yang berkebalikan, chiperteks dapat diubah
kembali menjadi pesan yang dapat dibaca atau plainteks.
2. Pengirim dan Penerima
Untuk melakukan komunikasi dua arah kita
memerlukan adanya dua entitas, yaitu pengirim dan penerima
pesan. Pengirim (sender) adalah entitas yang mengirimkan
pesan ke entitas lainya. Sedangkan penerima (receiver) adalah
entitas yang menerima pesan.entitas yang dimaksud tidak
hanya terbatas pada manusia saja, tetapi bisa juga berupa mesin
(computer), kartu kredit, dan sebagainya.
3. Enkripsi dan Deskripsi
Pesan atau informasi yang dapat dibaca disebut sebagai
plaintext atau cleartext. Teknik untuk membuat pesan menjadi
tidak dapat dibaca disebut enkripsi. Pesan yang tidak dapat
dibaca disebut ciphertext. Proses yang merupakan kebalikan
dari enkripsi disebut sebagai deskripsi. Jadi deskripsi akan
membuat ciphertext mejadi plaintext (YusufKurniawan,
2004:1)
4. Cipher dan Kunci
Algotima kriptograpfi disebut juga cipher yaitu aturan
untuk enciphering dan deciphering, atau fungsi matematika
23
yang digunakan untuk enkripsi dan deskripsi (Rinaldi Munir,
2006:5). Sedangkan menurut Jack Febrian (2004:94), cipher
adalah algoritma kriptografi (cryptographic algorithm) berupa
persamaan matematika yang digunakan dalam proses enkripsi
dan dekripsi. Cipher adalah algoritma kriptografi yang
mengunakan konsep matematis dalam proses enkripsi dan
dekripsi pesan.
Kunci dalam kriptografidipakai untuk melakukan
enkripsi dan dekripsi, kunci terbagi menjadi dua jenis, yaitu
kunci pribadi (private key) dan kunci umum (public key) (Doni
Ariyus, 2006:13).
5. Sistem kriptografi
Kriptografi membentuk sebuah sistem yang dinamakan
sistem kriptografi. Sistem kriptografi (cryptosystem) adalah
kumpulan yang terdiri dari algoritma kriptografi, semua
plainteks dan chiperteks yang mungkin, dan kunci. Di dalam
sistem kriptografi, cipher hanya salah satu komponen saja
(Rinaldi Munir, 2006:7).
6. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba
menangkap pesan selama ditransmisikan. Tujuan penyadapan
adalah untuk mendapatkan informasi sebanyak-banyaknya
mengenai sistem kriptografi yang digunakan untuk
24
berkomunikasi dengan maksud untuk memecahkan cipherteks.
Nama lain untuk penyadap adalah enemy, adversary, intruder,
interceptor, bad guy (Rinaldi Munir, 2006:8).
7. Kriptologi dan Kriptanalis
Kriptologi merupakan bidang ilmu yang mempelajari
semua yang berkaitan dengan kriptografi dan kriptanalisis.
Kriptanalis (cryptanalyst) adalah ilmu untuk
mendapatkan plaintext pesan tanpa harus mengetahui kunci
secara wajar (Yusuf Kurniawan, 2004:4). Pelaku kriptanalisis
disebut kriptanalis. Gambar 2.4 akan memperlihatkan
hubungan antara kriptologi, kriptografi dan kriptoanalisis.
Gambar 2.4. Cabang-cabang bidang ilmu kriptologi (Sumber: Renaldi Munir, 2006:8)
2.5.3. Tujuan kriptografi
Penggunaan kriptografi bertujuan untuk memberikan solusi
perihal layanan keamanan suatu pesan yang mencakup aspek-aspek
dibawah ini (Rinaldi Munir, 2006:9) :
25
1. Kerahasian
Kerahasiaan adalah layanan yang ditunjukan untuk
menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang
tidak berhak. Di dalam kriptografi, layanan ini direalisasikan
dengan menyadikan pesan dari plainteks menjadi cipherteks.
2. Integritas Data (data Integrity)
Untuk menjaga intgeritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi pesan oleh pihak-
pihak yang tidak berhak, anatara lain penyisipan, penghapusan
dan pensubsitusian data lain ke pesan data yang sebenarnya.
3. Otentikasi (authentication)
Otentikasi adalah layanan yang berhubungan dengan
identifikasi, baik itu mengidentifikasi kebenaran pihak-pihak
yang berkumunikasi (user authentication atau entity
authentication) mau pun mengidentifikasi kebenaran sumber
pesan (data origin authentication).
4. Nirpenyangkalan (non-repudiation)
Kriptografi dapat mencegah salah satu pihak yang
berkomunikasi melakukan penyangkalan, yaitu pengirim pesan
menyangkal melakukan pengiriman begitu pun juga dengan
penerima pesan menyangkal telah menerima pesan.
26
2.5.4. Kriptografi Kunci-Simetri dan Nirsimetri
Berdasarkan kunci yang digunakan untuk enkripsi dan
dekripsi, kriptografi kunci-simetri dan kriptografi kunci nirsimetri.
Masing-masing mempunyai kelemahan dan keunggulan. Tetapi,
keduanya mempunyai tujuan yang sama yaitu mengamankan
kerahasiaan pesan.
2.5.4.1. Kriptografi Kunci-Simetri
Kriptografi kunci-simetri atau kriptografi simetri
adalah kriptografi yang memakai kunci yang sama, baik itu
untuk mengubah plainteks menjadi cipherteks atau proses
enkripsi. Juga digunakan untuk mengubah kembali
cipherteks menjadi plainteks atau proses dekripsi.
Kriptografi kunci simetri biasa juga disebut sebagai
kriptografi kunci privat.
Gambar 2.5. Skema kriptografi kunci-Simetri
(Sumber: http://www.ece.cmu.edu)
Kerahasian kunci dalam kriptografi kunci-simetri
sangatlah penting, karena jika kunci jatuh ke tangan yang
salah maka pesan dapat dengan mudah terbaca. Pemberi
27
dan penerima pesan biasanya sudah memastikan kunci yang
sama sebelum pesan dikirimkan.
Berikut merupakan contoh algoritma kriptografi
modern yang memakai sistem algoritma kunci-simetri,
yaitu : DES (Data Encryption Standard), Blowfish, Triple-
DES, IDEA, Serpent, AES dan lain-lain. Kriptografi simetri
dikenal sebagai satu-satunya jenis kriptografi sampai
dengan tahun 1976.
2.5.4.2. Kriptografi Kunci-Nirsimetri
Kriptografi kunci nirsimetri atau kunci public
adalah kriptografi yang memakai dua kunci. Dalam artian
sistem kriptografi ini memakai dua kunci yang berbeda
untuk mengenkripsi dan mendekripsi pesan.
Kunci unutk mengenkripsi pesan dan
mengirimkannya tidak bersifat rahasia atau bisa diketahui
oleh siapa saja. Sedangkan kunci untuk membuka pesan
hanya diketahui oleh pihak yang menerima saja.
Gambar 2.6. Skema kriptografi kunci Nir-Simetri (Sumber:http://www.ece.cmu.edu)
28
Kriptografi kunci publik mempunyai beberapa
keunggulan dibandingkan kunci privat. Pertama, keamanan
kunci lebih terjaga karena kunci yang didistribusikan
adalah kunci publik yang bisa diketahui oleh semua orang.
Kedua, jumlah kunci rahasia dapat ditekan, yaitu
pembuatan kunci rahasia tidak perlu dibuat sebanyak orang
yang melakukan komunikasi, cukup dengan dua kunci saja
kunci public dan privat saja.
Berikut merupakan contoh algoritma kriptografi
modern yang menggunakan algoritma kunci nirsimetri,
yaitu RSA, Diffle Hellman, dan lain-lain.
2.6. Advanced Encryption Standard (AES)
Advanced Encryption Standard (AES) dipublikasikan oleh NIST
(National Institute of Standards and Technology) pada tahun 2001. AES
merupakan simetri block cipher untuk menggantikan DES (Data Encryption
Standard) (Doni Ariyus,2006:84). DES adalah sebuah algoritma kriptografi
simetri dengan panjang kunci 56 bit dan blok data 64 bit (Rinaldi Munir,
2004:136). Pada tahun 1990 panjang kunci DES dianggap terlalu pendek
dan pada tahun 1998 algoritma DES sudah berhasil dipecahkan dalam 96
hari hingga akhirnya dibuatlah mesin khusus untuk memecahkan algoritma
DES (Doni Ariyus, 2006:84).
Dengan alasan tersebut maka, NIST mengadakan kompetisi untuk
standar kriptografi yang terbaru, yang dinamakan AES (Advanced
29
Encryption Standard). Dari hasil seleksi tahap pertama NIST memilih 15
algoritma, dan pada tahap kedua memilih 5 algoritma. NIST akhirnya
mengumumkan standar baru pada November 2001. NIST memilih algoritma
Rijndael yang dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen
kriptografer dari Belgia sebagai algoritma AES (Wiliam Stallings,
2003:140).
2.6.1. Representasi Data
Input dan output dari algoritma AES terdiri dair urutan data
sebesar 128 bit. Urutan data yang sudah terbentuk dalam satu
kelompok 128 bit tersebut disebut juga sebagai blok data atau
plaintext yang nantinya akan dienkripsi mnjadi ciphertext. Cipher key
dari AES terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit.
Urutan bit diberi nomor urut dari 0 sampai dengan n-1 dimana
n adalah nomor urutan. Urutan data 8 bit secara beruntun disebut
sebagai byte dimana byte ini adalah unit dasar dari operasi yang akan
dilakukan pada blok data.
Dalam algoritma AES, data sepanjang 128 bit akan dibagi-
bagi menjadi array byte dimana setiap array byte ini terdiri dari 8 bit
data input yang saling berurutan. Array byte ini direpsentasikan dalam
bentuk :
a0a1a2...a15 (2.1)
Dimana :
a0 = { input0, input1,..., input7 }
30
a1 = { input8, input9,..., input15 }
a15 = { input120, input121,..., input127 }
an = { input8n, input8n+1,..., input8n+7 }
Operasi algoritma AES dilakukan pada sebuah state dimana
state sendiri adalah sebuah array byte dua dimensi. Setiap state pasti
mempunyai jumlah baris yang tetap, yaitu 4 baris, sedangkan jumlah
kolom tergantung dari besarnya blok data. Baris pada state
mempunyai indeks nomor row (r) dimana 0 ≤ r < 4, sedangkan kolom
mempunyai indeks nomor coloumn (c) dimana 0 ≤ c < Nb. Nb sendiri
adalah besarnya blok data dibagi 32.
Pada saat permulaan, input bit pertama kali akan disusun
menjadi suatu array byte dimana panjang dari array byte yang
digunakan pada AES adalah sepanjang 8 bit data. Array byte inilah
yang nantinya akan dimasukan atau dikopi ke dalam state dengan
urutan :
s[r,c] = in[r + 4c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb (2.2)
Sedangkan dari state akan dikopi ke output dengan urutan :
out[r + 4c] = s[r,c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb (2.3)
Gambar 2.7. Masukan dan keluaran Array State
31
(Sumber: Renaldi Munir, 2006:158)
2.6.2. Algoritma AES
Rinjdael mendukung panjang kunci dari 128 sampai 256 bit
dengan step 32 bit. Karena AES menetapkan panjang kunci adalah
128, 192, dan 256, maka dikenal sebagai AES-128, AES-192, dan
AES-256, yang perbedaannya akan ditunjukan oleh table 2.1.
Tabel 2.1. Tiga buah versi AES (Sumber:Rinaldi Munir, 2006:158)
Panjang Kunci (Nk
words)
Ukuran Blok
(Nb words)
Jumlah Putaran
(Nr)
AES-128 4 4 10
AES-196 6 4 12
AES-256 8 4 14
2.6.2.1. Enkripsi
Proses enkripsi pada algoritma AES terdiri dari 4 jenis
transformasi bytes, yaitu SubBytes, ShiftRows, MixColumns,
dan AddRounkey. Pada awal proses enkripsi, input yang telah
dikopikan ke dalam state akan mengalami transformasi byte
AddRoundKey. Setelah itu state akan mengalami transformasi
SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara
berulang-ulang sebanyak Nr (jumlah putaran). Proses ini
dalam algoritma AES di sebut juga round function. Round
yang terakhir agak berbeda dengan round-round sebelumnya
32
dimana pada round terakhir state tidak mengalami
transformasi MixColumns.
Gambar 2.8. Diagram alir proses enkripsi (Sumber: http//www.cert.or.id)
2.6.2.1.1. SubBytes
Transformasi SubBytes() memetakan setiap
byte dari array state dengan menggunakan table
subsitusi S-box yang ditunjukkan oleh tabel 2.2.
Tabel2.2. Tabel S-box dalam transformasi Subbytes() (Sumber : Wiliam Stalling,2003:152)
33
Cara pensubsitusiannya adalah sebagai
berikut. Untuk setiap byte pada array state, misalkan
S[r, c] = xy adalah digit heksadesimal dari nilai S[r,
c], maka nilai subsitusi yang dinyatakan dengan S[r,
c], adalah elemen dalama S-box yang merupakan
perpotongan garis x dengan kolom y, gambar 2.12
memperlihatkan transformasi SubBytes.
Gambar 2.9. Transformasi SubBytes (Sumber : http://id.wikipedia.org/wiki /Berkas:AES-SubBytes.svg)
2.6.2.1.2. ShiftRows
Transformasi ShiftRows pada dasarnya adalah
proses pergeseran bit dimana bit paling kiri akan
dipindahkan menjadi bit paling kanan (rotasi bit).
Transformasi ini diterapkan pada baris 2, baris3, dan
baris 4. Baris 2 akan mengalami pergeseran bit
sebanyak satu kali, sedangkan baris 3 dan baris 4
masing –masing mengalami pergeseran bit sebanyak
dua kali dan tiga kali.
34
Gambar 2.10. Transformasi ShiftRows (Sumber : http://student.ceid.upatras.gr)
2.6.2.1.3. MixColumns
MixColumns mengoperasikan setiap elemen
yang berada dalam satu kolom pada state. Elemen
pada kolom dikalikan dengan suatu polinomial tetap
a(x) = {03}x3 + {01}x2 + {01}x + {02}. Secara lebih
jelas, transformasi MixColumnsdapayt dilihat pada
perkalian matriks berikut ini :
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
c
c
c
c
c
c
c
c
ssss
ssss
,3
,2
,1
,0
',3
',2
',1
',0
02010103030201010103020101010302
)}02({)}03({
)}03({)}02({
)}03({)}02({
)}03({)}02({
,3,2,1,0',3
,3,2,1,0',2
,3,2,1,0',1
,3,2,1,',0
ccccc
ccccc
ccccc
ccccoc
sssss
sssss
sssss
sssss
•¯¯¯•=
•¯•¯¯=
¯•¯•¯=
¯¯•¯•=
35
2.6.2.1.4. AddRoundKey
Pada proses AddRoundKey sebuah round key
ditambahkan pada state dengan operasi bitwise
XOR. Setiap round key terdiri dari Nb Word dimana
tiap word tersebut akan dijumlahkan dengan word
atau kolom yang bersesuaian dari state sehingga :
[ ] [ ] [ ]
Nbcwssssssss cNbroundcccccccc
0untuk ,,,,,, *,3,2,1,0
',3
',2
',1
',0
££
¯= + (2.5)
[wi] adalah word dari key yang bersesuaian
dimana i = round*Nb+c. Transformasi
AddRoundKey diimplementasikan pertama kali pada
round = 0, dimana key yang digunakan adalah initial
key (key yang dimasukan oleh kriptografer dan
belum mengalami proses key expansion).
2.6.2.2. Dekripsi
Transformasi cipher dapat dibalikan dan
diimplementasikan dalam arah yang berlawanan untuk
menghasilkan inverse cipher yang mudah dipahami untuk
algoritma AES. Transformasi byte yang digunakan pada
invers cipher adalah InvShiftRows, InvSubBytes,
InvMixColumns, dan AddroundKey. Algoritma dekripsi dapat
dilihat pada skema berkut ini :
36
Gambar2.11. Diagram alir proses dekripsi
(Sumber : http://www.cert.or.id)
2.6.2.2.1 InvShiftRows
InShiftRows adalah transformasi byte yang
berkebalikan dengan transformasi ShiftRows. Pada
transformasi InvShiftRows, dilakukan pergeseran bit
ke kanan sedangkan pada ShiftRows dilakukan
pergeseran bit ke kiri. Pada baris kedua, pergeseran
bit dilakukan sebanyak 3 kali, sedangkan pada baris
ketiga dan baris keempat, dilakukan pergeseran bit
sebanyak dua kali dan satu kali.
Gambar 2.12. Transformasi InvShiftRows (Sumber : http://student.ceid.upatras.gr)
37
2.6.2.2.2. InvSubBytes
InvSubBytes juga merupakan transformasi
bytes yang berkebalikan dengan transformasi
SubBytes. Pada InvSubBytes, tiap elemen pada state
dipetakan dengan menggunakan tabel inverse S-Box.
Tabel 2.3. Tabel Inverse S-box dalam transformasi InvSubbytes() (Sumber : William Stalling, 2003:152)
Perkalian invers yang dilakukan pada
transformasi InvSubBytes ini sama dengan perkalian
invers yang dilakukan pada transformasi SubBytes.
2.6.2.2.3. InvMix Columns
Pada InvMix Columns, kolom-kolom pada
tiap state (word) akan dipandang sebagai polinom
atas GF(28) dan mengalikan modulo x4 + 1 dengan
polinom tetap a-1(x) ang diperoleh dari :
a-1(x)= {0B}x3 + {0D}x2 + {09}x + {0E}. (2.6)
38
Atau dalam matriks :
)()()(' xsxaxs ˜= (2.7)
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
c
c
c
c
c
c
c
c
ssss
EDBBEDDBE
DBE
ssss
,3
,2
,1
,0
',3
',2
',1
',0
00900000900000909000
)}02({)}03({
)}03({)}02({
)}03({)}02({
)}03({)}02({
,3,2,1,0',3
,3,2,1,0',2
,3,2,1,0',1
,3,2,1,',0
ccccc
ccccc
ccccc
ccccoc
sssss
sssss
sssss
sssss
•¯¯¯•=
•¯•¯¯=
¯•¯•¯=
¯¯•¯•=
2.6.2.2.4. Inverse AddRoundKey
Transformasi Inverse AddRoundkey tidak
mempunyai perbedaan dengan transformasi
AddRoundKey karena pada tranformasi ini hanya
dilakukan operasi penambahan sederhana dengan
menggunakan operasi bitwise XOR.
2.6.2.3. Ekspansi Kunci
Algoritma AES mengambil kunci cipher, K, dan
melakukan rutin ekspansi kunci (key expansion) untuk
membentuk key schedule. Ekspansi kunci menghasilkan total
Nb(Nr+1) word. Algoritma ini membutuhkan set awal key
yang terdiri dari Nb word, dan setiap round Nr membutuhkan
39
data kunci sebanyak Nb word. Hasil key schedule terdiri dari
array 4 byte word linear yang dinotasikan dengan [wi].
SubWord adalah fungsi yang mengambil 4 byte word
input dan mengaplikasikan S-Box ke tiap-tiap data 4
byteuntuk menghasilkan word output. Fungsi RotWord
mengambil word [a0, a1, a2, a3] sebagai input, melakukan
pergeseran siklik, dan mengembalikan word [a1, a2, a3, a0].
Rcon[i] terdiri dari nilai-nilai yang diberikan oleh [xi-1, {00},
{00}, {00}], dengan xi-1 sebagai pangkat dari x (x dinotasikan
sebagai {02} dalam field GF(28)). Pseudocode dari proses
ekspansi key dapat dilihat seperti yang ada di bawah berikut
ini :
Gambar 2.13. Pseudcode proses ekspansi kunci
(Sumber : http://student.ceid.upatras.gr)
40
Dari pseudocode dapat dilihat bahwa word ke Nk
pertama pada ekspansi kunci berisi kunci cipher. Setiap word
berikutnya, w[i], sama dengan XOR dari word sebelumnya,
w[i-1] dan word Nk yang ada pada posisi sebelumnya, w[i-
Nk]. Untuk word pada posisi yang merupakan kelipatan Nk,
sebuah tranformasi diaplikasikan pada w[i-1] sebelum XOR,
lalu dilanjutkan oleh XOR dengan konstanta round, Rcon[i].
Transformasi ini terdiri dari pergeseran siklik dari byte data
dalam suatu word RotWord, lalu diikuti aplikasi dari lookup
tabel untuk semua 4 byte data dari word SubWord.
2.7. Bahasa Pemrograman C#
C# (dibaca “See-Sharp”) adalah bahasa pemrograman baru yang
diciptakan oleh Microsoft (dikembangkan dibawah kepemimpinan Andres
Heljsberg yang juga telah menciptakan berbagai macam bahasa
pemrograman termasuk Borland Turbo C++ dan Borland Delphi). C# pada
dasarnya bukan bahasa sulit karena intinya mengambil dari berbagai bahasa
pemrograman yang ada. Bahasa yang paling banyak digunakan adalah
bahasa Java. Untuk lebih jelas mengetahui komposisi bahasa C#, dapat
dilihat pada gambar 2.14.
41
Gambar 2.14. Komposisi bahasa C#
(Sumber : Jaenudin, 2006: 17)
Seperti halnya bahasa pemrograman yang lain, C# bias digunakan
untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis
windows (desktop), aplikasi berbasis web serta aplikasi berbasis web service.
Ada beberapa keuntungan menggunakan teknologi C# yang berada
di lingkungan .NET dalam membangun sebuah aplikasi, diantaranya
(Jaenudin, 2006: 18) :
1. Mudah, Visual C# yang sangat sederhana mudah digunakan dalam
mengimpementasikan pengembangan sebuah aplikasi.
2. Efisien, kemudahan saat pembuatan aplikasi sangat berpengaruh pada
efisiensi waktu pengerjaan aplikasi dan berdampak pada efisiensi biaya.
3. Produktivitas, kemudahan pengerjaan aplikasi akan berdampak besar
dalam menghasilkan produk yang berupa aplikasi.
4. Konsisten, kemudahan yang dihadirkan oleh visual C# akan berdampak
pada konsistensi program.
Untuk mengenal lebih dekat Visual C# lihat gambar 2.15 yang
menampilkan ruang kerja Visual C# 2005 dengan berbagai tools dan
fasilitas yang disediakan.
42
Gambar 2.15. Tampilan visual C#
(Sumber : Jaenudin, 2006: 21)
Pada gambar 2.15, bagian yang ditunjuk oleh panah bernomor adalah
bagian penting dari halaman kerja Visual C# dengan fungsi yang berbeda-
beda yang akan dijelaskan Tabel 2.4.
Tabel 2.4 Bagian-bagian halaman kerja visual C# 2005 (Sumber : Jaenudin, 2006:22)
NO NAMA BAGIAN KETERANGAN
1 MenuBar Berisi daftar menu (perintah) yang umum
digunakan oleh setiap aplikasi berbasis
windows, misalnya : Menu File.
2 ToolBar Berisi daftar perintah yang sering digunakan
dan dipresentasikan dalam bentuk tombol.
3 ToolBox Berisi daftar komponen yang dapat
digunakan untuk mendesain tampilan muka
sebuah aplikasi.
1
3 5
2
5
43
4 Solution Explorer Berisi daftar file, reference, dan project yang
sedang dikerjakan.
5 StartPage Merupakan halaman pertama yang tampak
ketika C# dibuka, dan disinilah daftar project
yang sedang dibangun dapat dilihat.
2.7.1. Mengenal Struktur Program C#
Untuk mengenal struktur program dalam C#, perhatikan
gambar 2.16 yang menampilkan beberapa sintakis yang secara
otomatis dibuat oleh Visual C#.
Gambar 2.16. Console Application
(Sumber : Jaenudin, 2006:25)
Untuk lebih jelasnya, perhatikan sintakis dari kode program
berikut ini :
44
using System ;
using System.Collection.Generic;
using System.Text;
namespace Contoh { class Program { static void main (string[] args) { Console.WriteLine(“Belajar Visual C#”); Console.ReadLine();
} } }
Gambar 2.17. Sintakis kode program (Sumber : Jaenudin,2006: 25)
Pada bagian awal program yang dimulai dengan keyword
using, berfungsi untuk memanggil class library yang dibutuhkan
aplikasi. Apabila membutuhkan class library yang lain, maka
Keyword using dapat ditambah sendiri oleh programmer.
Keword namespace menyatakan nama perintah dari paket
aplikasi (package) yang dibuat. Blok paket selalu diawali dengan
tanda “{“ dan diakhiri dengan tanda “}”.
Adanya keyword class menunjukan program telah memasuki
wilayah class. Class merupakan bagian terpenting dalam bahasa
pemrograman C#, karena aplikasi C# dibangun oleh satu atau
beberapa fungsi yang diletakkan di dalam sebuah Class.
Di dalam class terdapat fungsi, nama suatu fungsi pada C#
harus diawali dengan huruf, atau garis bawah “_” yang kemudian
bias diikuti oleh huruf, angka atau garis bawah. Pada bagian akhir
nama fungsi digunakan tanda kurung buka “(“ dan tanda kurung
45
class Program { NamaFungsi1( ) { } } atau class Program { NamaFungsi1( ) { }
}
tutup “)”. Penamaan fungsi tidak boleh mengandung spasi. Awal dan
akhir suatu fungsi di mulai dengan tanda “{“ dan diakhiri dengan
tanda “}”. Berikut contoh penamaan fungsi yang diletakkan di dalam
Class :
Gambar 2.18. Contoh penamaan fungsi class (Sumber : http://otak.csharpindonesia.net)
2.7.2. Eksekusi Program
Untuk mengesekusi program dilakukan perintah berikut ini :
Debug -> Start Debuging atau dengan menekan F5 dari keyboard
File eksekusi akan berekstensi .EXE.Gambar 2.20, memperlihatkan
hasil eksekusi program di gmabar2.17.
Gambar 2.19. Hasil eksekusi dari gambar 2.17 (Sumber : Jaenudin, 2006: 31)
46
2.8. Perancangan Program
Di dalam merancang suatu program, dapat digunakan beberapa alat
bantu diantaranya, metode pengembangan sistem Rapid Application
Development (RAD), Diagram state-transition (STD), dan Flow-chart.
2.8.1. Rapid Application Development (RAD)
Model pengembangan RAD diperkenalkan oleh James
Martin pada tahun 1991 (http://en.wikipedia.org). Adapun metode
pengembangan RAD (Rapid Application Development) menurut
James Martin melingkupi fase-fase sebagai berikut :
Gambar 2.20. Fase-fase RAD James Martin (Sumber : Kendall & Kendall, 2003: 238)
Model RAD digunakan untuk melakukan pendekatan
berorientasi objek terhadap pengembangan sistem yang mencakup
suatu metode pengembangan perangkat-perangkat lunak (Kendall &
Kendall, 2003:237). Pada table 2.5 akan dijelaskan mengenai
perbandingan antara metode RAD dengan metode pengembangan
sistem yang lain yaitu metode sekuensial linear, prototype dan spiral.
Tabel 2.5. Perbandingan metode RAD, Sekuensial Linear, Prototipe dan Spiral (Sumber : http://ilkom.unsri.ac.id)
Metode Kelebihan Kekurangan
RAD 1. Kecepatan adaptasi yg tinggi, dapat
dibuat dgn cepat dgn pendekatan
1. Model yang besar (skala proyek),
membutuhkan resources yg baik dan
47
pembangunan berbasis komponen
2. Jika data, analisa jelas, dan lingkup
kecil maka RAD dapat digunakan dgn
baik.
solid
2. Membutuhkan komitmen pengembang
dan user yang sama agar cepat selesai
sesuai dengan rencana.
Sekuensial
Linier
(Waterfall)
1. Memberikan template di mana metode
analisis, desain, pengkodean, pengujian
dan pemeliharaan bisa dilakukan.
2. Pendekatan pengembangan perangkat
lunak lebih jelas.
1. Iterasi sering terjadi menyebabkan
masalah baru.
2. Client kesulitan untuk menyatakan
semua ke inginannya secara eksplisit
diawal tahap pengembangan.
3. Hasil software yang dikembangkan
baru akan diketahui lama setelah
proyek pengembangan dimulai.
Prototipe 1. Pelanggan bisa langsung melihat sistem
yang sebenarnya.
2. Pengembang bisa membangun proyek
dengan cepat sesuai dengan identifikasi
kebutuhan.
1. Ketidaksadaran user bahwa ini hanya
suatu model awal bukan model akhir.
2. Pengembang kadang-kadang
membuat implementasi yang
sembarangan.
3. Teknik dan tools yang tidak optimal
pada prototipe yang akan tetap
digunakan pada software
sesungguhnya.
Spiral Metode ini dirancang secara revolusioner
dengan tahapan yang jelas, tetapi terbuka
bagi partisipasi pemesan untuk ikut serta
menentukan pemodelan sistem
Metode ini lambat dan mahal karena
setiap tahapan yang dilalui harus
mengikutsertakan pemesan.
48
Kendall & Kendall (2003: 240), mengilustrasikan model RAD seperti pada
Gambar 3.1 berikut :
Gambar 2.21. Pengembangan sistem model RAD
(Sumber : Kendall & Kendall, 2003:240)
2.8.2. State-Transition Diagram (STD)
State-transition Diagram (STD) adalah sebuah model tingkah
laku yang bertumpu pada definisi dari serangkaian keadaan sistem
dan digambarkan dengan persegi panjang yang merepresentasikan
keadaan sistem dan anak panah yang mempresentasikan transisi
antar antar keadaan (Roger S. Pressman, 2002:375). Gambar 2.22
akan memperlihatkan contoh diagram state-transition pada software
mesin foto kopi yang telah disederhanakan.
49
Gambar 2.22. State Transition Diagram yang disederhanakan untuk software foto kopi (Sumber : Roger S. Pressman, 2003: 375)
Notasi-notasi yang dipergunakan dalam diagram state-
transition (STD) adalah:
1. Keadaan sistem (state). Suatu kumpulan dari tingkah laku yang
dapat diobservasi.
2. Perubahan sistem. Untuk menghubungkan suatu keadaan lain,
digunakan jika sistem memiliki transisi dalam prilakunya.
3. Kondisi dan aksi. Kondisi (condition) adalah suatu keadaan pada
lingkungan luar (external environment) yang dapat dideteksi oleh
sistem. Sedangakan aksi (action) merupakan reaksi terhadap
kondisi bila terjadi perubahan state.
2.8.3. Flow-Chart
Bagan alir program (program flow-chart) adalah suatu bagan
yang menggambarkan arus logika dari data yang akan diproses
dalam suatu program dari awal hingga akhir (Jogiyanto Hartono,
2002:662). Bagan alir program merupakan alat yang berguna bagi
50
programmer untuk mempersiapkan program yang rumit. Bagan alir
terdiri dari simbol-simbol yang mewakili fungsi-fungsi langkah
program dan garis alir (flow lines) menunjukan urutan dari simbol-
simbol yang akan dikerjakan. Jadi, flow-chart adalah gambaran
aliran data suatu program dengan menggunakan simbol-simbol suatu
fungsi yang telah ditentukan.
Tabel 2.6. Simbol-Simbol program Flow-chart menurut ANSI (American National Standard Institute) (Sumber : Jogiyanto Hartono, 2002: 262)
SIMBOL NAMA FUNGSI
TERMINATOR Permulaan atau akhir program
GARIS ALIR
(FLOW LINE) Arah aliran program
PREPARATION
Proses inisialisasi atau
pemberian harga awal
PROSES
Proses perhitungan atau proses
pengolahan data
INPUT/OUTPUT
DATA
Proses input atau output data,
parameter, informasi
PREDEFINED
PROCESS
Permulaan sub program atau
proses menjalankan sub
program
51
(SUB PROGRAM)
DECISION
Perbandingan pernyataan,
penyeleksian data yang
memberikan pilihan untuk
langkah selanjutnya
ON PAGE
CONNECTOR
Penghubung bagian-bagian
flow-chart yang berada pada
satu halaman
OFF PAGE
CONNECTOR
Penghubung bagian-bagian
flow-chart yang berada pada
halaman berbeda
ANNOTATION
FLAG
Digunakan untuk memberikan
keterangan keterangan guna
memperjelas symbol-simbol
yang lain
Gambar 2.23. akan ditampilkan contoh bagan alir yang
didalamnya terdapat bentuk-bentuk dasar struktur logika.
52
Gambar 2.23. Contoh diagram alir (Sumber : Jogiyanto Hartono, 2002: 668)
mulai
for
selesai
Struktur seleksi IF-THEN-ELSE
ya
ya
ya
tidak
tidak
tidak
Struktur perulangan
DO-WHILE
Struktur perulangan DO-UNTIL
Struktur seleksi IF
Struktur perulangan
FOR
53
2.9. Studi Literatur
Studi literatur merupakan pengembangan instrumen atau penelitian
sejenis yang sudah dibuat sebelumnya. Hal ini dilakukan dengan melihat
hasil riset yang sudah ada kemudian mengembangkannya dengan melihat
kekurangan yang ada pada riset tersebut.
Studi literatur yang dilakukan dalam penelitian ini dapat dilihat
pada table 2.7.
Table 2.7. Studi literature yang digunakan.
No Abstraksi Uraian
1 Pada skripsi yang disusun oleh Marganda Papar
Sihombing (Mahasiswa Teknik Informatika
UNIKOM) dengan judul “PENYIMPANAN
DATA TEKS KEDALAM SUARA DIGITAL
DENGAN METODE LOW BIT CODING“ tahun
2004. Watermarking pada berkas suara telah
menjadi fokus perhatian pada masa sekarang ini.
Hal ini berhubungan dengan transmisi data yang
lebih cepat melalui Internet, yang telah
memungkinkan pertumbuhan berkas suara digital
yang tidak sah. Watermarking memberikan
kemampuan untuk melindungi hak cipta terhadap
produk berkas suara. Yang menjadi masalah
watermarking pada suara terletak pada kualitas
Pada studi diatas peneliti tersebut
menggunakan watermarking untuk
menyisipkan informasi pada hak cipta
sebagai bukti kepemilikan pada file audio
berformat WAV, dengan audio sebagai file
carrier dan file teks bartipe .txt sebagai
input yang berisi infmasi hak cipta. Pada
proses penyisipan dan ekstraksi peneliti
tersebut menggunakan metode low bit
coding. Pada algoritma peneliti
menggunakan algoritma bilangan acak
semu untuk proteksi file audio. Dan pada
tahap pembuatan peneliti menggunakan
bahasa pemograman C dan kopilator yang
54
berkas suara dan watermark yang disisipkan harus
tetap ada setelah mengalami berbagai operasi
berkas suara yang dapat merusak berkas suara
tersebut. Penelitian ini membahas mengenai
watermarking pada berkas suara dengan metode
low bit coding. Transformasi dari dan ke domain
frekuensi pada proses penyisipan dan ekstraksi
tidak dilakukan. Hasil pengujian menunjukkan
bahwa kualitas berkas suara setelah disisipi data
menunjukkan hasil tidak pasti dan data yang
disisipkan kedalam sinyal suara sulit dideteksi oleh
sistem pendengaran manusia.
dipakai adalah Borland C++ Builder.
2 Pada skripsi yang disusun oleh Ratih Purwasih
Sukandi (Mahasiswa Teknik Informatika, UIN)
dengan judul “PERANCANGAN
IMPLEMENTASI TEKNIK
WATERMARKING PADA CITRA DIGITAL”
tahun 2009. Terdapat dua kebutuhan yang
berkaitan dengan penggunaan citra digital, yaitu
kebutuhan verifikasi dan kebutuhan otentikasi
citra. Kebutuhan verifikasi yaitu kebutuhan untuk
mengetahui apakah suatu citra digital sudah
pernah dimanipulasi atau belum, dengan kata lain
untuk mengetahui keaslian suatu citra. Sedangkan
Pada studi diatas peneliti tersebut
menggunakan watermarking untuk
kebutuhan verifikasi dan kebutuhan
otentikasi citra pada file citra digital,
dengan citra digital sebagai file carrier dan
citra digital bertipe sama sebagai input
yang berisi infmasi hak cipta. Pada proses
penyisipan dan ekstraksi peneliti tersebut
menggunakan metode LSB (Least
Significant Bit). Pada algoritma peneliti
menggunakan algoritma AES untuk
proteksi citra digital. Dan pada tahap
55
kebutuhan otentikasi yaitu kebutuhan kepemilikan
(copyright) suatu citra digital. Digital
watermarking adalah teknik untuk menyisipkan
informasi tertentu ke dalam media digital,
penyisipan watermark dilakukan sedemikian rupa
sehingga tidak merusak media digital yang
dilindungi. Proses watermarking yang digunakan
adalah watermark yang bersifat fragile
watermarking, yaitu watermark yang rentan
perubahan/manipulasi. Sehingga ketika suatu citra
yang disisipi fragile watermark dimanipulasi
kemudian diekstrak akan menyebabkan hasil
ekstraksi menjadi citra yang rusak atau tidak valid.
Algoritma yang digunakan adalah AES (Advanced
Encryption Standard) – Rinjdael pada prosedur
penyisipan dan ekstraksi bertujuan untuk proteksi
citra. Algortma watermarking yang digunakan
adalah LSB modification yang sederhana. Aplikasi
ini menggunakan bahasa pemograman Visual
Basic .Net dalam pembuatannya. Untuk
pengembangan aplikasi penulis menggunakan
metode Rapid Application Development (RAD).
Hasil akhir aplkasi berupa aplikasi
WatermarkTools yang berdimensi 640 x 480 pixel
pembuatan peneliti menggunakan bahasa
pemograman visual basic .Net.
56
dan berbasis desktop installer.
3 Pada skripsi yang disusun oleh BAGUS SETHIA
RAHMATULLOH (Mahasiswa Teknik
Informatika UNIKOM) dengan judul
“WATERMARKING MENGGUNAKAN
KUNCI PUBLIK UNTUK VERIFIKASI
CITRA” tahun 2007. Terdapat dua kebutuhan
yang berkaitan dengan penggunaan citra digital,
yaitu kebutuhan verifikasi dan kebutuhan
otentikasi citra. Kebutuhan verifikasi yaitu
kebutuhan untuk mengetahui apakah suatu citra
dijital sudah pernah dimanipulasi atau belum,
dengan kata lain untuk mengetahui keaslian suatu
citra. Sedangkan kebutuhan otentikasi yaitu
kebutuhan kepemilikan (copyright) suatu citra
digital.Digital watermark adalah informasi
kepemilikan suatu arsip dijital. Informasi tersebut
dapat berupa citra, teks, audio, ataupun video.
Untuk kebutuhan verifikasi citra, digunakan
watermark yang bersifat fragile (fragile
watermark),yaitu watermark yang rentan
perubahan/manipulasi. Sehingga ketika suatu citra
yang sudah disisipi fragile watermark dimanipulasi
kemudian diekstrak, akan menyebabkan hasil
Pada studi diatas peneliti tersebut
menggunakan watermarking untuk
kebutuhan verifikasi dan kebutuhan
otentikasi citra pada file citra digital,
dengan citra digital sebagai file carrier dan
citra digital bertipe sama sebagai input
yang berisi infmasi hak cipta. Pada proses
penyisipan dan ekstraksi peneliti tersebut
menggunakan metode LSB (least
Significant Bit). Pada algoritma peneliti
menggunakan algoritma RSA untuk
proteksi citra digital.
57
ekstraksi menjadi citra yang tidak valid. Salah satu
cara agar untuk membuat fragile watermark adalah
dengan menggunakan algoritma RSA pada
prosedur penyisipan watermark dan ekstraksi
watermark. Algoritma watermarking yang
digunakan adalah LSB modification yang
sederhana. Pada prosedur penyisipan watermark,
pemilik citra menggunakan kunci rahasianya untuk
melakukan enkripsi pada citra berwatermark.
Sedangkan pada prosedur ekstraksi watermark,
setiap orang (publik) dapat menggunakan kunci
publik pemilik untuk melakukan dekripsi pada
citra berwatermark untuk mengekstrak watermark
yang disisipkan. Algoritma kriptografi kunci
publik yang digunakan adalah RSA. Sistem
mampu mengenali citra watermark asli apabila
tidak terdapat perubahan pada citra. Sistem dapat
mengekstrak pesan citra tersebut. Sistem mampu
menjaga keamanan suatu citra dan membuat
pegujian kepemilikan suatu citra (Verifikasi).
58
BAB III
METODE PENELITIAN
Untuk penyusunan skripsi ini dibutuhkan data-data serta informasi untuk
mendukung kebenaran materi dan pembahasan. Maka dari itu pada bab ini penulis
akan menguraikan tentang metode yang digunakan dalam penyusunan skripsi.
Seperti yang telah dibahas pada bab 1, dalam pembuatan aplikasi Watermarking
dengan Algoritma AES pada File audio ini, ada beberapa metode yang dilakukan,
yaitu di antaranya :
3.1. Metode Pengumpulan Data
Untuk memenuhi data yang diperlukan dalam penelitian ini, maka
diperlukan data-data dan informasi yang relatif lengkap sebagai bahan
yang dapat mendukung kebenaran materi uraian pembahasan. Adapun
metode pengumpulan data yang digunakan yaitu :
3.1.1. Studi Pustaka
Studi pustaka yaitu metode pengumpulan data dan
informasi dengan mencari dan memperoleh data-data yang
diperlukan dari berbagai buku, e-book, website, serta sumber lainya
yang berkaitan dengan penelitian yang dapat dijadikan acuan
dalam pembahasan ini. Adapun sumber buku-buku, dan website
yang dipakai dalam skripsi ini dapat dilihat pada daftar pustaka.
59
3.1.2. Studi Literatur
Studi literatur merupakan pengembangan instrumen atau
penelitian sejenis yang sudah dibuat sebelumnya. Hal ini dilakukan
dengan melihat hasil riset yang sudah ada kemudian
mengembangkannya dengan melihat kekurangan yang ada pada
riset tersebut.
Studi literatur ini penulis mengunakan tiga studi literatur
seperti yang telah di bahas pada bab II pada tabel 2.7.Berdasarkan
tiga studi literatur tersebut, yang membedakan aplikasi penulis
adalah :
1. Pada aplikasi penulis menggunakan file audio WAV berjenis
PCM sebagai file carrier.
2. Pada pada proses penyisipan dan ekstraksi aplikasi penulis
menggunakan metode low bit coding.
3. Pada enkripsi, algoritma yang digunakan pada aplikasi penulis
menggunakan algoritma AES.
4. Pada data hak cipta yang akan disispkan dan diekstrak berupa
file txt.
3.2. Metode Pengembangan Sistem
Dalam penelitian ini metode pengembangan sistem yang
digunakan adalah model pendekatan Pengembangan Aplikasi Cepat (PAC)
atau Rapid Application Development (RAD). Model RAD penulis gunakan
untuk melakukan pendekatan berorientasi objek terhadap pengembangan
60
sistem perangkat lunak karena model ini akan bekerja dengan baik apabila
diterapkan pada aplikasi berskala kecil. Tujuan yang lain adalah
mempersingkat waktu pengerjaan aplikasi serta proses yang dihasilkan
didapatkan secara cepat dan tepat.
Dalam pengembangan sistem ini penulis menggunakan empat
tahap siklus pengembangan model RAD (Rapid Application
Development). Berikut adalah tahapan-tahapan tersebut :
3.2.1. Fase Perencanaan Syarat-Syarat
Pada fase ini penulis melakukan analisis kebutuhan untuk
pengidentifikasian tujuan aplikasi atau sistem serta untuk
mengidetifikasi syarat-syarat informasi yang ditimbulkan dari
tujuan-tujuan tersebut. Apabila pengetahuan diformulasikan secara
lengkap, maka tahap implementasi dapat dimulai dengan membuat
garis besar masalah, kemudian memecahkan masalah ke dalam
modul-modul. Untuk memudahkan maka harus diidentifikasikan.
• Apa saja informasi yang diberikan.
• Bagaimana kelengkapan data, kelengkapan hardware dan
software yang digunakan.
• Apa yang menjadi output atau hasil kesimpulan.
3.2.2. Fase Perancangan
Pada tahap ini penulis melakukan perancangan proses dan
perancangan antar muka dari aplikasi.
61
3.2.2.1. Perancangan Proses
Pada tahap perancangan proses penulis akan
melakukan perancangan proses-proses yang terjadi dalam
sistem, evaluasi dan memperbaiki sistem agar sesuai
dengan kebutuhan. Agar sistem yang sedang di buat
dapat dimanfaatkan secara optimal. Pada perancangan
proses ini terdapat dua proses yaitu:
1. Proses penyisipan
Proses penyisipan yaitu proses untuk
menyisipkan file ke data audio digital.
2. Proses Ekstraksi
Proses Ekstraksi yaitu proses untuk
mengestrak atau mengambil pesan dalam file audio
berwatermark.
Perancangan proses pada aplikasi ini digambarkan
oleh flowchart. Flow chart merupakan alat yang cukup
efisien untuk menggambarkan proses sistem. Dengan
flow chart, proses digambarkan dengan sederhana
dengan menggunakan simbol-simbol yang mudah
dimengerti. Proses yang akan digambarkan dengan flow
chart adalah proses penyisipan dan ekstraksi.
62
3.2.2.2. Perancangan Antar Muka Pemakai (User Interface)
Antar muka pemakai memberikan fasilitas
komunikasi antar pemakai dan sistem, memberikan
berbagai fasilitas informasi dan berbagai keterangan
yang bertujuan untuk membantu mengarahkan alur
penelusuran masalah sampai ditemukan solusi. Pada
perancangan antar muka terdapat empat perancangan
sebagai berikut :
1. Perancangan form utama
2. Perancangan form ekstraksi
3. Perancangan form about
4. Perancangan menu help
Pada perancangan antar muka pemakai (user
interface) pada aplikasi ini akan digambarkan oleh state
transition diagram.
3.2.3. Fase Konstruksi
Pada tahapan ini penulis melakukan pengkodean terhadap
rancangan-rancangan yang telah didefinisikan ke dalam suatu
bahasa pemograman. Pengkodean yang dilakukan menggunakan
bahasa pemrograman C# yang dibuat dengan menggunakan Visual
Studio 2005.
63
3.2.4. Fase Pelaksanaan
Pada tahapan ini penulis melakukan pengimplementasian
aplikasi, pengujian aplikasi dan analisa hasil pengujian terhadap
aplikasi yang juga bertujuan untuk mengetahui tingkat
keberhasilan dari aplikasi dalam mencapai hasil yang diinginkan.
Pengujian dan analisa hasil pengujian dilakukan berdasarkan :
1. Pengujian spesifikasi sistem : Pengujian spesifikasi sistem yang
dilakukan meliputi pengujian kesesuaian proses, pengujian
kesesuaian data, dan pengujian kualitas file WAV.
2. Pengujian ukuran file terhadap file carrier.
3. Pengujian ketahanan data.
Skema dari Metodologi Penelitian yang dilakukan dalam pengembangan
aplikasi Watermarking dengan algoritma AES pada File Audio ini dapat dilihat
pada gambar 3.5.
64
Gambar 3.1. Metodologi penelitian pengembangan aplikasi watermarking dengan algoritma AES pada file audio.
65
BAB IV
ANALASIS DAN PERANCANGAN
Pada bab ini akan dibahas secara detail dan terperinci mengenai
pengembangan sistem aplikasi watermarking dengan algoritma AES pada file
audio. Dengan menerapkan metodologi penelitian yang telah penyusun uraikan
pada bab sebelumnya.
Pada bab sebelumnya telah dibahas bahwa metode pengembangan system
yang akan digunakan dalam penelitian adalah metode pengembangan system
Rapid Application Development (RAD), metode ini dilakukan dengan pedekatan
berorientasi objek terhadap pengembangan system perangakt lunak karena model
ini akan bekerja dengan baik apabila diterapkan pada aplikasi berskala kecil. Pada
penelitian ini dimulai dari perencanaan syarat-syarat, perancangan pengguna,
konstruksi dan pelaksanaan.
4.1. Fase Perencanaan Syarat-syarat
Perencanaan syarat-syarat terdiri dari analisis kebutuhan, tujuan dan
syarat-syarat. Proses ini dilakukan untuk mengetahui apa saja syarat-syarat
dan kebutuhan yang diperlukan dalam pembuatan aplikasi untuk memenuhi
tujuan dari pembuatan aplikasi ini.
4.1.1. Analisis kebutuhan
Pada tahap ini semua kebutuhan aplikasi didefinisikan sesuai
dengan sasaran yang ingin dicapai. Adapun analisis tersebut
menyangkut tentang masukan (input) dan keluaran (ouput) dari
aplikasi yang akan dibuat.
66
Adapun data-data yang menjadi masukan bagi aplikasi ini
merupakan file audio yang berekstensi .wav, sedangkan informasi hak
cipta yang akan dimasukkan merupakan file teks yang berekstensi .txt,
sedangkan informasi yang diharapkan sebagai keluaran dari aplikasi
ini merupakan file audio yang berekstensi .wav, yang telah disisipi
watermark dengan metode low bit coding yang telah di enkripsi
dengan algoritma AES.
4.1.2. Menentukan Tujuan
Tujuan dari perancangan aplikasi ini adalah membuat suatu
aplikasi watermarking pada file audio yaitu untuk pemberian data
hak cipta pada file audio sebagai pembuktian keaslian file
(otentikasi).
4.1.3. Menentukan Syarat-Syarat
Syarat-syarat untuk mencapai tujuan dalam pengembangan
aplikasi Watermarking dengan algoritma AES pada file audio,
meliputi hal-hal sebagai berikut :
1. Bahasa Pemrograman C#
Bahasa pemrograman C# adalah salah satu bahasa pemrograman
yang mampu membangun aplikasi berbasis desktop. Bahasa
pemrograman C# sudah didesain untuk memberikan kemudahan
bagi pengguna.
67
2. Microsoft Framework .NET 3.5
Microsoft Framework .NET menyediakan semua tool dan
teknologi yang diperlukan untuk membangun aplikasi. Bahasa
pemrograman yang dapat digunakan dan dijalankan diatas
flatform Framework .NET adalah : Visual Basic, C#, J#, C++ dan
lain-lain.
Spesifikasi perangkat lunak dan perangkat keras yang
digunakan penulis dalam perancangan aplikasi ini adalah sebagai
berikut :
Perangkat Lunak :
1. Microsoft Visual Studio 2005
2. Microsoft Framework .NET 3.5
3. DXperience 9.1.5
4. Microsoft Visio 2003
5. Easy CHM v3.78
6. Macromedia Fireworks MX
7. Sigview 2.2.1
8. Xilisoft 2.1.53.901b
9. Photoshop CS2
Perangkat Keras :
1. Processor Intel (R) Pentium (R) 4 CPU 2.80GHz
2. Harddisk 40 GB
3. Memory 512
68
4. Monitor dengan resolusi 1024x768 pixel
5. DVD RW
4.2. Fase Perancangan
Dalam perancangan aplikasi watermarking dengan algoritma AES ini
terdiri atas perancangan proses dan perancangan antar muka. Perancangan
proses dilakukan untuk merancang alur proses di dalam program sedangkan
perancangan antar muka dilakukan untuk mempermudah pengguna
menggunakan aplikasi ini. Tahap perancangan dilakukan untuk
perancangan, evaluasi, dan memperbaiki sistem sesuai dengan kebutuhan,
agar sistem yang sedang di buat dapat dimanfaatkan secara optimal.
4.2.1. Perancangan Proses
Dalam perancangan sistem aplikasi, aplikasi ini
menggabungkan dua teknik keamanan data yaitu watermark dan
Kriptografi. Penggunaan algoritma AES untuk kriptografi karena
algoritma AES mempunyai panjang kunci paling sedikit 128-bit,
maka AES akan tahan terhadap serangan kriptanalis. Dengan
panjang kunci 128-bit maka terdapat 2128 = 3,4x1038 kemungkinan
kunci, yang berarti dibutuhkan waktu bertahun-tahun untuk mencoba
keseluruhan kemungkinan kunci. Penggunaan metode Low Bit
Coding (LSB) untuk teknik watermark dalam aplikasi ini karena
metode yang paling sederhana untuk menyimpan data kedalam data
yang lain. Dengan mengganti bit yang paling tidak penting atau least
significant bit (LSB).
69
Pada perancangan proses aplikasi watermarking dengan
algoritma AES meliputi proses penyisipan pesan dan proses ekstraksi
pesan.
4.2.1.1. Proses Penyisipan
Pada proses penyisipan pesan, pesan di enkripsi
menggunakan algoritma kriptografi simetris yaitu algoritma
AES (Rinjdael), Kemudian cipherteks yang dihasilkan
disisipkan dengan teknik watermarking menggunakan
metode Low Bit Coding ke media penampung. Untuk
memperjelas gambaran proses penyisipan pesan dapat
dilihat pada gambar 4.1.
Gambar 4.1 Proses penyisipan
4.2.1.2. Proses Ekstraksi
Pada proses ekstraksi pesan cipherteks yang
disembunyikan dipisahkan dari media penampung dengan
70
menggunakan metode low bit coding, kemudian diubah
kembali menjadi informasi rahasia yang dapat di baca
melalui proses deskripsi menggunakan algoritma AES
(Rijndael). Untuk memperjelas gambaran proses ekstraksi
pesan dapat dilihat pada gambar 4.2.
Gambar 4.2 Proses ekstraksi
4.2.1.3. Flow-chart Proses Penyisipan dan Ekstraksi Pesan
Pada tahapan ini akan digambarkan alur proses
penyisipan dan ekstraksi pesan dengan menggunakan Flow-
chart. Proses yang akan digambarkan dengan flow chart
adalah proses penyisipan, ekstraksi, enkripsi dan ekstraksi.
72
Gambar 4.4. Flow-chart proses enkripsi dengan metode AES di sebelah kiri
dan flow-chart proses penyisipan pesan menggunakan metode low bit coding di sebelah kanan
74
Gambar 4.6. Flow-chart proses pengambilan pesan menggunakan metode low bit coding di sebelah kiri dan flow-chart proses dekripsi dengan metode AES di sebelah kanan
75
4.2.2. Perancangan Antar Muka
Dalam perancangan antar muka aplikasi watermark dengan
Algoritma AES pada file audio ini, dibuat beberapa halaman
tampilan yang akan ditampilkan.
4.2.2.1. Perancangan Form Utama
Form utama merupakan tampilan utama dalam
program AudioWater yang didalamnya terdapat 2 buah
buttonEdit, 2 buah button, 2 buah textEdit dan satu buah
memoEdit sebagai berikut :
1. Tombol Buka Audio (ButtonEdit) : Berfungsi untuk
mencari file lokasi media penampung (audio).
2. Tombol Simpan Audio (ButtonEdit) : Berfungsi untuk
menyimpan file media penampung (audio) yang telah
disisipi pesan.
3. Tombol Play (SimpleButton) : Berfungsi untuk
memainkan file audio yang akan dijadikan file carrier.
4. Tombol Stop (SimpleButton) : Berfungsi untuk
menghentikan file audio yang dimainkan.
5. Input Teks (MemoEdit1) : Berfungsi untuk menginput
teks yang ingin disisipkan.
Di dalam form utama terdapat juga menu bar dan
toolbar berisi shortcut ke sebuah menu atau sebuah perintah.
76
a. Menu Bar
Menu bar adalah jajaran menu yang berisikan aneka
menu atau sejumlah perintah. Fungsinya di mulai dari atas
ke bawah adalah sebagai beikut.
1. Open (BarButtonItem) : Menu untuk membuka berkas
WAV dan teks.
2. Save (BarButtonItem) : Menu untuk menyimpan file
audio yang akan disispi pesan.
3. About (BarButtonItem) : Menu tentang pejelasan
program secara singkat serta nama penulis.
4. Close (BarButtonItem) : Menu untuk keluar dari
aplikasi.
b. ToolBar
Menu toolbar adalah bar berisi shortcut ke sebuah
menu atau sebuah perintah.
1. Tombol Open (BarButtonItem) : Berfungsi untuk
mencari file lokasi media penampung (audio).
2. Tombol Sisip (BarButtonItem) : Berfungsi untuk
menjalankan proses penyisipan pesan.
3. Tombol Ekstrak (BarButtonItem) : Berfungsi untuk
membuka form ekstrak.
4. Tombol Set Font (BarButtonItem) : Berfungsi untuk
mengatur tampilan teks pada memoEdit
77
5. Tombol Bantuan (BarButtonItem) : Berfungsi untuk
membuka form bantuan untuk pengguna yang
membutuhkan.
6. Tombol Keluar (BarButtonItem) : Berfungsi untuk
keluar dari aplikasi.
Gambar 4.7. Rancangan form utama
79
Gambar 4.8b. State Trantition Diagram
4.2.2.2. Perancangan Form Ekstrak
Form ekstraks pesan berfungsi untuk mengambil
pesan dari media penampung dan menyimpan pesan yang
sudah dipisahkan dari media penampung. Form ekstraksi
pesan ini dilengkapi dengan dua buah tombol, yaitu:
80
Gambar 4.9. Rancangan form extrac message
1. Tombol Exstrac message (SimpleButton1) : Berfungsi
untuk menjalankan proses pemisahan pesan.
2. Tombol Play (SimpleButton) : Berfungsi untuk
memainkan file audio yang akan dijadikan file carrier.
3. Tombol Stop (SimpleButton) : Berfungsi untuk
menghentikan file audio yang dimainkan
4. Tombol Cancel (SimpleButton2) : Berfungsi untuk
membatalkan proses ekstraksi.
5. Tombol Save Extract Message (ButtonEdit1) :
Berfungsi untuk menyimpan file media penampung
(audio) yang telah disisipi pesan.
4.2.2.3. Perancangan Form About
Form ini berisi tentang pejelasan program secara
singkat serta profil penulis.
81
Gambar 4.10. Rancangan form about
4.2.2.4. Perancangan Form Bantuan
Form ini berfungsi sebagai menu bantuan bagi
pemakai yang belum mengerti tentang bagaimana cara
menggunakan aplikasi AudioWater.
Gambar 4.11. Rancangan form help
82
4.3. Fase Konstruksi
Pada tahap ini dilakukan pengkodean terhadap rancangan-rancangan
yang telah didefinisikan sebelumnya dengan menggunakan bahasa
pemograman C#. dalam melakukan penulisan kode penulis menggunakan
perangkat lunak Microsoft Visual Studio 2005, dan sebagaian kode penulis
mendapatkannya di http://www.codeproject.com.
Dalam pembuatan aplikasi ini terdapat sembilan buah class, yaitu
“EncryptDecrypt.cs”, “FormUtama.cs:, “FormExtract.cs”, “Program.cs”,
“WaveNative.cs”, ”WaveStream.cs”, “WaveUtility.cs”, ‘WaveOut.cs”, dan
“ColorBox.cs”. Class merupakan bagian terpenting pemrograman C# karena
pada intinya pemrograman berorientasi objek menggunakan struktur class
(Jaenudin 2005:27).
Implementasi proses pengkodean dalam aplikasi ini terbagi dua yaitu
tahap menyisipkan pesan ke dalam media penampung dan tahap
pengambilan kembali pesan dari media penampung. Tetapi sebelumnya
pesan harus sudah dienkripsi dulu. Class “EncryptDecrypt.cs” merupakan
class yang berfungsi untuk mengenkripsi pesan sebelum disembunyikan
kedalam media penampung dan medenkripsi kembali pesan setelah
dipisahkan dari media penampung.
Class “WaveNative.cs” berfungsi mengidentifikasi format WAV,
class “WaveStream.cs” untuk mengencode format WAV, class
“WaveOut.cs” berfungsi untuk memainkan file wav. Di dalam class
“WaveUtility.cs” terdapat fungsi untuk menyisipkan pesan rahasia ke dalam
83
media penampung dan fungsi mengambilnya kembali dari media
penampung.
Class “Program.cs”, berfungsi untuk menampilkan form utama pada
awal pemanggilan program. Class “ColorBox.cs” berfungsi untuk merubah
tampilan (skins) pada FormUtama. Calss “FormUtama.cs” dan
“FormExtract” berfungsi untuk mendesain antar muka untuk menghasilkan
program yang menarik. Source Code dapat dilihat di lampiran.
4.4. Fase Pelaksanaan
Dalam tahapan ini akan dilakukan implementasi, pengujian dan
analisis pengujian terhadap aplikasi yang bertujuan untuk mengetahui
tingkat keberhasilan dari aplikasi dalam mencapai hasil yang diinginkan.
4.4.1. Implementasi
Pada tahap ini akan dilakukan pengimplementasian proses
penyisipan dan ekstraksi informasi watermarking dengan agoritma
AES.
4.4.1.1. Cara Penggunaan Aplikasi
Untuk menggunakan aplikasi ini tidak diperlukan cara
instalasi yang khusus ke dalam komputer pengguna, dengan
alasan pengguna hanya mengikuti sedikit alur untuk proses
instalasinya.
Dibawah ini adalah langkah-langkah instalasi aplikasi
AudioWater ke dalam komputer pengguna :
84
1. Pilih program Setup.exe, kemudian akan ada tampilan pembuka
dari proses instalasi ini menggunakan bahasa inggris. Pilih tombol
install untuk melanjutkan instalasi, atau don’t install untuk
membatalkan instalasi.
2. Tampilan informasi proses installasi program, dan aplikasi
AudioWater akan muncul sebagai tanda bahwa proses instalasi
telah berhasil, maka akan terlihat bentuk tampilan seperti gambar
di bawah ini.
4.12. Tampilan aplikasi AudioWater
4.4.1.2. Proses Penyisipan
Untuk melakukan proses penyisipan pesan maka
pengguna harus di form utama. Form utama adalah halaman awal
yang muncul ketika program dijalankan.
85
Gambar 4.13. Tampilan form utama
Langkah-langkah untuk melakukan proses penyisipan
adalah sebagai berikut.
1. Pilih lokasi file audio yang akan dijadikan sebagai media
penampung dengan mengklik tombol open pada
menu toolbar atau pada menu bar.
86
Gambar 4.14. Tampilan open file audio
2. Masukan informasi yang akan disisipkan pada kolom input
teks.
3. Masukan password di kolom kata kunci. Kombinasi huruf
pada password harus unik sehingga tidak mudah ditebak oleh
orang yang tidak berkepentingan. Kemudian masukan kata
kunci yang sama dengan kolom passkey pada kolom confirm
passkey
4. Selanjutnya tentukan lokasi file akhir dengan memilih tombol
save pada menu file atau pada kolom file
87
output.
Gambar 4.15. Tampilan save output
5. Apabila semua kolom telah terisi maka pengguna cukup
menekan tombol insert pada menu toolbar.
6. Jika terdapat kolom yang belum terisi dan pengguna langsung
menekan menu penyisipan maka akan keluar pesan error
provider sebagai berikut :
a. Lokasi media penampung atau carrier belum di tentukan.
88
b. Kolom passkey belum diisi.
c. Kolom confirm passkey belum terisi
d. Kolom confirm passkey tidak sesuai dengan kolom passkey
e. Lokasi file akhir belum ditentukan.
89
7. Proses penyisipan file berakhir ditandai dengan keluarnya
message box yang menyatakan bahwa file telah sukses
disembunyikan.
8. Tombol bantuan berfungsi untuk memberikan bantuan
kepada pengguna. Untuk mendapatkan menu bantuan
pengguna juga dapat menekan tombol “F1” pada keyboard
atau tombol help pada menu toolbar.
9. Untuk keluar dari aplikasi program pengguna dapat menekan
menu keluar maupun tombol “X”
disebelah kanan atas form aplikasi.
4.4.1.3. Proses Ekstraksi
Untuk melakukan proses ekstraksi pesan maka pengguna
harus memilih tombol ekstraksi pada Form utama. Langkahnya
adalah sebagai berikut :
90
1. Tekan tombol ekstrasi pada toolbar dalam form
utama. Kemudian, pilih lokasi file audio yang telah disisipi
oleh pesan rahasia.
Gambar 4.16. Tampilan cari audio
Gambar 4.17. Tampilan form extract
91
2. Masukan password pada kolom passkey sesuai dengan
password penyisipan pesan. Kemudian masukan kata kunci
yang sama dengan kolom passkey pada kolom confirm
passkey.
3. Selanjutnya tentukan lokasi file akhir pesan dengan menekan
tombol pada kolom save extract message.
Gambar 4.18. Tampilan file save output
4. Apabila semua kolom telah terisi maka pengguna cukup
menekan tombol ekstrak message pada form
eksraksi.
5. Jika terdapat kolom yang belum diisi dan pengguna langsung
menekan menu ekstraksi maka akan keluar pesan error provider
seperti berikut :
a. Lokasi media penampung atau carrier belum di tentukan.
92
b. Kolom passkey belum terisi.
c. Kolom confirm passkey belum terisi.
d. Kolom confirm passkey tidak sesuai dengan kolom passkey
e. Lokasi file akhir pesan belum ditentukan.
93
6. Proses ekstraksi pesan berakhir ditandai dengan keluarnya
message box yang menyatakan bahwa file telah sukses
diekstraksi.
7. Tombol bantuan berfungsi untuk memberikan bantuan kepada
pengguna. Untuk mendapatkan menu bantuan pengguna juga
dapat menekan tombol “F1” pada keyboard atau tombol help
pada menu toolbar.
8. Untuk keluar dari aplikasi program pengguna dapat menekan
menu keluar maupun tombol “X” disebelah
kanan atas form aplikasi.
4.4.1.4. Form About
Form about akan muncul ketika pengguna menekan
tombol about pada menu bar. Form ini berisi tentang pejelasan
program secara singkat serta nama penulis.
94
Gambar 4.19. Tampilan form about
4.4.1.5. Form Bantuan
Form bantuan akan muncul ketika pengguna menekan
menu bantuan . Form bantuan juga dapat pengguna
buka dengan menekan tombol “F1” pada keyboard. Form
bantuan ini dibuat dengan menggunakan software HelpScribble.
Tanpilan form bantuan dapat dilihat pada gambar 4.22
95
Gambar 4.20. Tampilan form bantuan
4.4.2. Pengujian Program
Setelah melakukan proses penyembunyian dan ekstraksi file,
maka untuk melihat apakah hasil dari penyembunyian dan ekstraksi
file telah berhasil seperti yang diinginkan akan dilakukan pengujian.
Pengujian dilakukan berdasarkan spesifikasi sistem dan
pengujian ketahanan data. Pengujian spesifikasi sistem yang
dilakukan meliputi pengujian kesesuaian proses, pengujian
kesesuaian data, pengujian ukuran file, dan pengujian kualitas suara.
Pengujian berdasarkan spesifikasi sistem dan ketahanan data
diuraikan menjadi lima faktor pengujian sebagai berikut:
1. Kesesuaian proses, yaitu perangkat lunak dapat melakukan
proses penyisipan dan ekstraksi.
96
2. Kesesuaian data, yaitu pengujian kesesuaian antara data yang
berhasil diekstrak dengan data yang disisipkan.
3. Kualitas suara, yaitu pengujian sama tidaknya suara WAV
berlabel dengan suara WAV asli.
4. Ukuran file terhadap file carrier
5. Ketahanan data terhadap pemrosesan suara WAV berlabel.
Pengujian terhadap proses dilakukan untuk mengetahui
apakah sistem dapat melakukan proses penyisipan dan ekstraksi.
Kriteria pengujian adalah sistem dapat melakukan proses penyisipan
dan ekstraksi.
Pengujian terhadap kesesuaian data dilakukan untuk
mengetahui apakah data yang berhasil diekstrak dari suara WAV
berlabel bersesuaian dengan data yang disisipkan. Kriteria pengujian
adalah data yang berhasil diekstrak dari suara WAV berlabel
bersesuaian dengan data yang disisipkan.
Pengujian kualitas suara WAV berlabel dilakukan secara
subjektif dan objektif. Pengujian dengan cara subjektif, yaitu dengan
mendengarkan langsung suara WAV berlabel dan suara WAV asli
kemudian dibandingkan. Pengujian dengan cara objektif dilakukan
dengan membandingkan grafik sinyal suara WAV asli dengan grafik
sinyal suara WAV berlabel dan dengan melihat korelasi antara suara
WAV asli dengan suara WAV berlabel. Pengujian dengan korelasi
untuk melihat derajat atau hubungan antara suara WAV sebelum
97
disisipi data teks dengan suara WAV setelah disisipi data teks.
Kriteria pengujian adalah berhasil jika data yang telah disisipkan
kedalam suara WAV tidak dapat dideteksi oleh sistem pendengaran
manusia.
Pengujian ketahanan data dilakukan terhadap suara WAV
berlabel. Pengujian ketahanan data yang akan dilakukan dengan
pengujian kompresi, dengan menggunakan aplikasi xilisoft.
Pengujian dengan kompresi dilakukan untuk melihat apakah data
yang terdapat di dalam suara WAV berlabel masih dapat diekstrak
setelah mengalami kompresi. Pengujian kompresi dilakukan dengan
mengubah suara WAV berlabel menjadi suara dalam format (MP3,
AAC, dan midi) dengan ekstensi berkas (.mp3, .aac, dan .midi),
kemudian suara dalam format (MP3, AAC, dan midi) diubah
kembali menjadi suara dalam format WAV (dengan ekstensi berkas
.wav). Kriteria pengujian adalah berhasil jika data dapat diekstrak
setelah suara WAV berlabel dikompres.
Untuk melakukan pengujian, digunakan beberapa buah
berkas suara WAV dengan spesifikasi yang terdapat pada Tabel 6.1.
Tabel 6.1 Tabel spesifikasi file carrier yang akan diuji
No. Nama File Audio WAV Ukuran
Data (byte) Audio Format
1 Rocket Rockers – Hari Untukmu.wav 1321808 PCM
2 RadioHead – Creep.wav 20805150 PCM
98
3 Luna4Melo – First Time 27265582 PCM
4 Andra And The Backbone – Surrender 46886446 PCM
4.4.2.1. Pengujian Spesifikasi Sistem
Pengujian terhadap spesifikasi sistem yaitu pengujian
kesesuaian proses penyisipan dan ekstraksi, pengujian kualitas
dan pengujian kesesuaian data, maka untuk melihat apakah
hasil dari pengujian spesifikasi sistem telah berhasil seperti
yang akan dilakukan langkah-langkah dibawah ini.
1. Buka lokasi tempat file audio yang telah disisipi pesan.
2. File audio yang telah disisipi data masih dapat didengarkan
dengan baik oleh pengguna, tanpa disadari adanya pesan
yang disisipkan dalam file audio.
Gambar 4.21. Spectrum suara file rocketrockers hari untukmu.wav asli
Gambar 4.21 dan 4.22 memperlihatkan spectrum suara file
hari untukmu.wav sebelum disisipi pesan.
99
Gambar 4.22. Memperlihatkan spectrum suara hari untukmu setelah disisipi pesan ”rocket_rockers.txt”.
Dari Kedua gambar diatas tidak tampak adanya perubahan
dari spectrum suara antara file wav sebelum atau pun
sesudah penyisipan pesan. Akan tetapi Gambar 4.23 dan
4.24 akan memperlihatkan spectrum suara setelah
menggunakan filter bandstop yaitu dengan memindahkan
segmen frekuensi.
Gambar 4.23. Spectrum suara hari untukmu.wav dengan
filter bandstop
100
Gambar 4.24. Spectrum suara file hari untukmu.wav yang
sudah disisipi pesan dengan filter bandstop
Dari Gambar 4.23 dan 4.24 terlihat adanya penurunan
intensitas suara setelah disisipi pesan, dari 53 db menjadi -
18 db ditunjukan oleh garis horizontal biru. Untuk lebih
memperjelas, maka dilakukan perbandingan kembali antara
file first time.wav sebelum dan sesudah penyisipan pesan
yang spectrum suaranya akan ditunjukkan Gambar 4.25 dan
4.26.
Gambar 4.25. Spectrum suara file first time.wav asli
101
Gambar 4.26. Spectrum suara first time.wav setelah disisipi pesan
Sama seperti perbandingan sebelumnya kedua gambar
diatas tidak tampak adanya perubahan spektrum suara
antara file wav sebelum atau pun sesudah penyisipan pesan.
Gambar 4.27 dan 4.28 akan memperlihatkan spectrum
suara setelah menggunakan filter bandstop.
Gambar 4.27. Spectrum suara file first time.wav dengan filter
bandstop
102
Gambar 4.28. Spectrum suara first time.wav setelah disisipi
pesan dengan filter bandstop
Dari Gambar 4.27 dan 4.28 terlihat adanya kenaikan
intensitas suara setelah disisipi pesan, dari -720 db menjadi
-270 db ditunjukan oleh garis horizontal biru. Berdasarkan
gambar 4.23, 4.24, 4.27 dan 4.28, terlihat penyisipan pesan
mempengaruhi kualitas suara dengan adanya perubahan
(kenaikan atau penurunan) intensitas suara.
3. Untuk membuka file data yang telah diambil dari file audio,
pengguna bisa langsung membuka kembali seperti
biasanya. Gambar 4.29 menunjukan file pesan sebelum
disisipkan. Gambar 4.30 menunjukan file pesan yang di
enkripsi. Dan Gambar 4.31 menunjukan file pesan yang
diambil kembali dari file carrier.
103
Gambar 4.29. Pesan asli pada file audio hari untukmu
Gambar 4.30. Pesan asli yang telah di enkripsi pada file audio hari untukmu
Gambar 4.31. File pesan yang diambil dari file audio hari untukmu
Dari hasil pengamatan diatas terlihat tidak adanya
perubahan pesan sebelum dan sesudah penyisipan data ke
dalam file audio.
104
Tabel 4.2 Pengujian proses dan kesesuaian data Nama File Audio
WAV
Ukuran
Data (byte)
Secret File Size
(byte)
Penyisipan
Pesan
Ekstraksi
Pesan
Kesesuaian
Data
Rocket Rockers –
Hari Untukmu.wav 1321808
Hari Untuk
mu.txt
529 Berhasil Berhasil Sesuai
RadioHead –
Creep.wav 20805150
Creep.txt 1747 Berhasil Berhasil Sesuai
Luna4Melo – First
Time 27265582
First Time.txt
2068 Berhasil Berhasil Sesuai
Andra And The
Backbone –
Surrender
46886446
Surrender.txt 3490 Berhasil Berhasil Sesuai
4.4.2.2. Pengujian Ukuran File terhadap File Carrier
Pengujian ini bertujuan untuk mengetahui batasan
ukuran pesan yang dapat disisipkan ke dalam file carrier.
Tabel 4.3. Tabel uji ukuran file pesan terhadap file carrier
Nama File Audio WAV Ukuran
Data (byte)
Secret File Size
(byte)
Rocket Rockers – Hari
Untukmu.wav
1321808 Hari Untuk
mu.txt
529
Rocket Rockers – Hari
Untukmu.wav
1321808 Hari Untuk mu2.txt
1616
105
RadioHead – Creep.wav 20805150 Creep.txt 1747
RadioHead – Creep.wav 20805150 Creep2.txt 21674
Luna4Melo – First Time 27265582 First Time.txt 2068
Luna4Melo – First Time 27265582 First Time2.txt 28796
Andra And The Backbone –
Surrender 46886446
Surrender.txt 3490
Andra And The Backbone –
Surrender 46886446
Surrender2.txt 39305
4.4.2.3. Pengujian Ketahanan Data
Pengujian ketahanan data dilakukan untuk mengetahui
ketahanan data dalam file audio. Pengujian ketahanan data
dilakukan dengan mengkompresi menggunakan aplikasi
xilisoft, yaitu dengan mengkompresi suara dalam format WAV
menjadi (MP3, AAC, dan midi) dan kemudian suara dalam
format (MP3, AAC, dan midi) dikompresi kembali menjadi
format WAV, kemudian file suara yang telah kembali menjadi
format WAV diekstrak, untuk mengetahui apakah file suara
yang telah mengalami kompresi dapat diekstrak kembali.
Kriteria pengujian adalah berhasil jika data dapat diekstrak
setelah suara WAV berlabel dikompres.
Langkahnya adalah sebagai berikut :
106
Gambar 4.32. Tampilan aplikasi xilisoft
1. Tekan tombol add . Kemudian, pilih lokasi file audio
yang telah disisipi oleh data hak cipta.
Gambar 4.33. Tampilan add file
2. Apabila kolom telah terisi maka pengguna memilih menu list
pada kolom profile untuk merubah file wav menjadi file (mp3,
AAC, dan midi).
107
Gambar 4.34. Tampilan menu list file profile
3. Apabila semua kolom telah terisi maka pengguna cukup
menekan tombol encode untuk proses merubah file wav
menjadi file (mp3, AAC dan midi).
Gambar 4.35. Tampilan proses encode
4. Ulangi langkah 1 sampai 3 untuk merubah file mp3/midi/aac
menjadi file wav, kemudian file suara yang telah kembali
menjadi format WAV diekstrak, untuk melihat ketahanan data
hak cipta yang disimpan.
108
Tabel 4.4. Tabel uji ketahanan data Nama File Audio WAV Ukuran Data (byte)
R R.wav 1321808
R R_1.wav 1321808
RadioHead.wav 20805150
RadioHead_1.wav 20805150
Luna4Melo.wav 27265582
Luna4Melo_1.wav 27265582
Andra And The Backbone.wav 46886446
Andra And The Backbone_1.wav 46886446
4.4.3. Analisis Hasil Pengujian Program
Dari hasil pengujian yang telah dilakukan, dapat dilakukan
beberapa analisis terhadap hasil pengujian tersebut. Berikut ini
merupakan analisis terhadap hasil pengujian.
4.4.3.1. Analisis Hasil Uji Spesifikasi Sistem
109
Tabel 4.5. Tabel hasil uji spesifikasi sistem Nama File Audio
WAV
Ukuran
Data (byte)
Secret File Size
(byte)
Output
WAV
Ukuran
data
Size
(byte)
Size
(byte)
Rocket Rockers – Hari
Untukmu.wav 1321808
Hari Untuk
mu.txt
529 R R.wav 1321808
Hari Untuk
mu.txt
529
RadioHead –
Creep.wav 20805150
Creep.txt 1747 RadioHead.wav 20805150
Creep.txt 1747
Andra And The
Backbone – Surrender 46886446
First Time.txt 2068 Andra And The
Backbone.wav 46886446
First Time.txt 2068
Luna4Melo – First
Time 27265582
Surrender.txt 3490 Luna4Melo.wav 27265582
Surrender.txt 3490
110
Berdasarkan hasil uji spesifikasi system pada table
di atas, perangkat lunak berhasil untuk setiap faktor
pengujian yang dilakukan. Pada pengujian kesesuaian
proses, menunjukkan bahwa perangkat lunak dapat
melakukan proses penyisipan dan ekstraksi. Proses berhasil
jika data teks yang akan disisipkan kedalam suara WAV
asli memiliki batasan. Perangkat lunak tidak akan dapat
melakukan proses penyisipan jika data teks yang akan
disisipkan kedalam suara WAV melebihi kapasitas yang
dapat ditampung.
Pada pengujian kesesuaian data, data yang berhasil
diekstrak bersesuaian dengan data yang disisipkan, jika
kunci yang digunakan pada saat penyisipan dan ekstraksi
bernilai sama. Ukuran pesan sebelum dan sesudah proses
pengambilan dari file audio juga tidak mengalami
perubahan. Hal ini membuktikan bahwa proses
watermarking dan kriptografi pada file audio tidak
mempengaruhi ukuran file carrier dan file pesan yang
disisipkan. Hal itu disebabkan karena metode LSB hanya
mengubah byte terakhir dari file wav tersebut jadi tidak ada
perubahan ukuran file carrier.
Pada pengujian kualitas suara, menunjukkan bahwa
penyisipan bit-bit data teks kedalam tiap sampel suara
111
WAV mempengaruhi kualitas suara WAV tersebut dengan
tidak pasti. Hal ini karena pada proses penyisipan, bit yang
paling kecil dari sampel suara yang akan diganti dengan bit
data teks kemungkinan akan berubah maupun tidak
berubah. Secara keseluruhan data teks yang disisipkan
sangat sulit dideteksi secara pendengaran, hal ini karena
sampel suara WAV bersifat lokal, yaitu perubahan terhadap
suatu sampel suara WAV tidak berpengaruh terhadap
sampel suara WAV yang lainnya.
4.4.3.2. Analisis Hasil Uji Ukuran File Terhadap File Carrier
Dari tabel 4.6 terlihat bahwa proses penyisipan
hanya dapat dilakukan apabila byte yang tersedia di dalam
file carrier lebih besar dari pada jumlah byte file pesan.
Jadi, semakin besar file carrier maka jumlah byte yang
disediakan untuk menampung pesan akan lebih banyak.
112
Tabel 4.6. Tabel hasil uji ukuran file pesan terhadap file carrier
Nama File Audio WAV Ukuran
Data (byte)
Secret File Size
(byte)
Penyisipan
Pesan
Dibutuhkan
(byte)
Tersedia
(byte)
Rocket Rockers – Hari
Untukmu.wav
1321808 Hari Untuk mu.txt 529 Berhasil 520954 660858
Rocket Rockers – Hari
Untukmu.wav_1
1321808 Hari Untuk mu2.txt 1616 Tidak 1407850 660858
RadioHead – Creep.wav 20805150 Creep.txt 1747 Berhasil 78459965 10402529
RadioHead – Creep.wav_1 20805150 Creep2.txt 21674 Tidak 16960476 10402529
Luna4Melo – First Time 27265582 First Time.txt 2068 Berhasil 10676543 13632745
Luna4Melo – First Time_1 27265582 First Time2.txt 28796 Tidak 21713176 13632745
Andra And The Backbone –
Surrender 46886446
Surrender.txt 3490 Berhasl 22465656 23443177
Andra And The Backbone –
Surrender_1 46886446
Surrender2.txt 39305 Tidak 38132052 23443177
113
4.4.3.3. Analisis Hasil Uji Ketahanan Data
Pada pengujian terhadap kompresi, secara
keseluruhan hasil pengujian menunjukkan data teks tidak
berhasil diekstrak. Hal ini, karena ukuran suara WAV
berlabel setelah dikompres bertambah besar atau berubah,
sehingga proses ekstraksi tidak dapat dilakukan.
Tabel 4.7. Tabel hasil uji ketahanan data wav to mp3
Nama File Audio WAV Ukuran
Data (byte)
Ekstraksi
Pesan
Secret File
RR – Hari Untukmu.wav 1321808 Berhasil Rocker.txt
RR _1.wav 1321808 Tidak kosong
RadioHead.wav 20805150 Berhasil Hidden.txt
RadioHead_1.wav 20805150 Tidak kosong
Luna4Melo.wav 27265582 Berhasil Andra.txt
Luna4Melo_1.wav 27265582 Tidak kosong
Andra And The Backbone.wav 46886446 Berhasl Luna.txt
Andra And The Backbone_1.wav 46886446 Tidak kosong
114
Tabel 4.8. Tabel hasil uji ketahanan data wav to aac
Nama File Audio WAV Ukuran
Data (byte)
Ekstraksi
Pesan
Secret File
RR – Hari Untukmu.wav 1321808 Berhasil Rocker.txt
RR _1.wav 1321808 Tidak kosong
RadioHead.wav 20805150 Berhasil Hidden.txt
RadioHead_1.wav 20805150 Tidak Kosong
Luna4Melo.wav 27265582 Berhasil Andra.txt
Luna4Melo_1.wav 27265582 Tidak Kosong
Andra And The Backbone.wav 46886446 Berhasl Luna.txt
Andra And The Backbone_1.wav 46886446 Tidak Kosong
Tabel 4.9. Tabel hasil uji ketahanan data wav to midi
Nama File Audio WAV Ukuran
Data (byte)
Ekstraksi
Pesan
Secret File
RR – Hari Untukmu.wav 1321808 Berhasil Rocker.txt
RR _1.wav 1321808 Tidak kosong
RadioHead.wav 20805150 Berhasil Hidden.txt
RadioHead_1.wav 20805150 Tidak kosong
Luna4Melo.wav 27265582 Berhasil Andra.txt
Luna4Melo_1.wav 27265582 Tidak kosong
Andra And The Backbone.wav 46886446 Berhasl Luna.txt
Andra And The Backbone_1.wav 46886446 Tidak kosong
115
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Setelah melakukan pembahasan secara teoritis, implementasi, dan
pengujian, serta analisis hasil pengujian, dapat ditarik beberapa kesimpulan
sebagai berikut:
1. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan
prosen penyisipan file pesan ke dalam file audio.
2. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan
proses ekstraksi file pesan dari dalam file audio.
3. Berdasarkan hasil uji analisis, penyisipan file pesan ke dalam file audio
mempengaruhi kualitas suara yang dihasilkan, dengan adanya perubahan
intensitas suara antara file asli dan file yang sudah disisipi pesan, hal itu
digambarkan oleh gambar.
4. Berdasarkan uji ketahanan data menunjukan data teks tidak berhasil
diekstrak, dimana artinya pesan dalam wav berlabel tidak dapat
diekstrak setelah melalui konversi.
5. Metode low bit coding tidak menambah ukuran berkas suara WAV
setelah disisipi data teks.
6. Berdasarkan hasil uji analisis pada Tabel dapat dinyatakan bahwa file
masukan dan file hasil keluaran memiliki jumlah bit yang sama persis,
116
dimana artinya penyisipan pesan tidak mempengaruhi besar ukuran
pesan awal maupun akhir.
7. Banyaknya data teks yang dapat disisipkan kedalam suara WAV dengan
metode low bit coding bergantung pada banyaknya data suara WAV dan
jenis channel suara WAV.
5.2. Saran
Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk
pengembangan sistem lebih lanjut, sebagai berikut:
1. Untuk pengembangan selanjutnya penyisipan dapat dilakukan pada
sampel suara dengan frekuensi tertentu, yaitu frekuensi yang tidak akan
dibuang pada saat kompresi,
2. Aplikasi hanya menggunakan WAV sebagai media penampung,
diharapkan dapat dikembangkan sehingga dapat menggunakan file MP3,
MIDI dan lain-lain sebagainya.
3. Aplikasi hanya dapat menyisipkan file txt, htm, cs, xml dan rtf ke media
penampung, diharapkan dapat dikembangkan sehingga dapat
menyisipkan berbagai macam file ke dalam media penampung.
117
DAFTAR PUSTAKA
Anonim. “AES”. Artikel diakses pada tanggal 26 Maret 2010 dari
http://students.ceid.upatras.gr/~mprokala/techarticles/cryptography/AES/aes.htm
Anonim. “AES”. Artikel diakses pada tanggal 26 maret 2010 dari
http://id.wikepidia.org/wiki/AES
Anonim. “AES” Artikel diakses pada tanggal dari 01 Maret 2010
http//www.cert.or.id
Anonim. “Analisa”. Artikel diakses pada tanggal 24 februari 2010 dari
http://pusatbahasa.diknas.go.id/kbbi/index.php
Anonim. “Analisis Kualitatif dalamPenelitian Sosial”. Artikel diakses pada
tanggal 24 Februari 2010 dari http://www.um-pwr.ac.id/publikasi/13/analisis-
kualitatif-dalam-penelitian-sosial
Anonim. “WAV” Artikel diakses pada tanggal dari 01 Maret 2010
http://id.wikipedia.org/wiki/wav
Anonim. “Hak Cipta” Artikel diakses pada tanggal dari 01 Maret 2010
http://www.dgip.go.id
Anonim. “Least Significant Bit” Artikel diakses pada tanggal dari 01 Maret 2010
http://informatika.org
Anonim. “Pembajakan” Artikel diakses pada tanggal dari 28 Maret 2010
http://symphonymusic.com/opini/ketika-pembajakantelahdilegalkan/
Ariyus, Doni. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta: Graha
Ilmu, 2006.
118
Ariyus, Doni. Keamanan Multimedia. Yogyakarta: Andi Offset, 2009.
Deitel. C# How to Program, Introducing .net and Web Services. New jersey:
Prentice Hall, 2002.
Febrian, Jack. Kamus Komputer dan Teknologi Informasi. Bandung: Informatika,
2004.
Hartono, Jogiyanto. Pengenalan Komputer. Yogyakarta: Andi Offset, 1999.
Jaenudin. Belajar sendiri .net dengan Visual C# 2005. Yogyakarta: Andi Offset,
2006.
Isnaini, Yusran. Hak Cipta dan Tantangannya di Era Cyber Space. Jakarta:
Ghalia Indonesia, 2009.
Kendall & kendall. Analisis dan Perancangan Sistem. Jakarta: Renhalindo, 2003.
Kurniawan, Agus. Pengenalan Bahasa C#. Jakarta: Project Otak, 2004.
Kurniawan, Yusuf. Kriptografi Keamanan Internet dan Jaringan Komunikasi.
Bandung: Informatika, 2004.
Munir, Renaldi. Kriptografi. Bandung: Informatika, 2006.
Pressman, Roger S. Rekayasa Perangkat Lunak, Pendekatan Praktisi (Buku 1).
Yogyakarta: Andi, 2002.
Rini, Dian Palupi. “Metodologi Pengembangan Sistem Informasi”.
http:/www.ilkom.unsri.ac.id/dosen/dianpalupirini/materi/algo/BAB%20II%20ME
TODOLOGI.pdf. [diakses pada tanggal 24 Februari 2010].
Stalling, William. Cryptography and Network Security, Principles and Practices,
3rded. New Jersey: Prentice Hall, 2003.
119
Supangkat S. H., Kuspriyanto, Juanda, 2000, “Watermarking sebagai Teknik
Penyembunyian Label Hak Cipta Pada Data Digital”, Departemen Teknik
Elektro, Institut Teknologi Bandung.
http://digilib.unikom.ac.id [diakses pada tanggal 01 Maret 2010].
Sutopo, Ariesto Hadi. Analisis dan Desain Berorientasi Objek. Yogyakarta: J & J
Learning,2002.
Telkom. 2009. Wav. [Online] Tersedia :
http://www2.telkom.net/index.php?option=com_glossary&func=view&Item
id=86&catid=39&term=WAV. [1 Februari 2010].
UKP. 2008. Wav. [Online] Tersedia :
http://digilib.petra.ac.id/viewer.php?page=1&submit.x=0&submit.y=0&qual
=high&fname=/jiunkpe/s1/info/2008/jiunkpenss12008264031539555eliminatorch
apter2.pdf. [12 Juni 2009].
Windiaprana Ramelan, I Made Wiryana, Ratih Dewanti. Pengatar Internet.
LePKom Gunadarma, Depok. 2000.
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
1
ANALISIS DAN IMPLEMENTASI WATERMARKING DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA HAK CIPTA PADA FILE AUDIO
Muhamad Soleh Program Studi Teknik Informatika
Fakultas Sains dan Teknologi Universitas Islam Negeri
Syarif Hidayatullah Jakarta E-mail [email protected]
Abstrak
Watermarking pada file audio telah menjadi fokus perhatian pada masa sekarang ini. Hal ini berhubungan dengan transmisi data yang lebih cepat melalui Internet, yang telah memungkinkan pertumbuhan file audio digital yang tidak sah. Watermarking memberikan kemampuan untuk melindungi hak cipta terhadap produk file audio. Yang menjadi masalah watermarking pada audio terletak pada kualitas file audio dan watermark yang disisipkan harus tetap ada setelah mengalami berbagai operasi file audio yang dapat merusak file audio tersebut. Penelitian ini membahas mengenai watermarking pada file audio dengan algoritma AES (Advanced Encryption Standard) – Rinjdael pada prosedur penyisipan dan ekstraksi yang bertujuan untuk proteksi. Metode watermarking yang digunakan pada proses penyisipan dan ekstraksi adalah metode low bit coding. Transformasi dari dan ke domain frekuensi pada proses penyisipan dan ekstraksi tidak dilakukan. Hasil pengujian menunjukkan bahwa kualitas file audio setelah disisipi data menunjukkan hasil tidak pasti dan data yang disisipkan kedalam sinyal audio sulit dideteksi oleh sistem pendengaran manusia. Kata Kunci : Watermarking, AES (Advanced Encryption Standard), low bit coding, file audio, hak cipta
Abstract
Watermarking audio files has recently become the focus of much attention. This is primarily due to faster data transmission rates on the Internet, which has allowed the often illegal proliferation of digital audio files. Watermarking may give the ability to enforce copyright protection of digital audio files products. The difficulties in watermarking audio lie in both the desire to preserve file quality and the need for the watermark to remain intact after a number of possibly damaging file operations. This research discusses about watermarking on audio file with AES (Advanced Encryption Standard) – Rinjdael algorithms with embedding procedure and extraction to purpose protection Watermarking method to used embedding process and extraction is low bit coding methode. None of the transformations to and from frequency domain are performed either in embedding or extraction part of the proposed scheme. In experimental tests, the subjective quality evaluation of the algorithm showed that embedded watermark introduces uncertainly and the embedded watermark into audio signal very is difficult to be detected by human auditory system. Key Word : Watermarking, AES (Advanced Encryption Standard), low bit coding, audio file, copyright
1. Pendahuluan Perkembangan teknologi komputer saat ini
telah membawa perubahan bagi kita untuk melakukan akses serta mendistribusikan berbagai informasi dalam bentuk format digital. Sehingga saat ini sering disebut sebagai era digital, atau dunia digital. Dengan perkembangan komputer digital dan perangkat-perangkat lainnya yang serba digital dalam hal ini audio digital, telah membuat data digital semakin banyak digunakan dan mudah
diduplikasi. Sehingga seringkali menimbulkan konflik. Konflik yang sering timbul adalah adanya sengketa antara beberapa pihak yang mengklaim bahwa pihaknya adalah pemilik sah dari sebuah audio digital.
Konflik tersebut yang kemudian
menyebabkan timbulnya kebutuhan untuk melindungi hak kepemilikan (hak cipta) pada file audio dengan memberikan data hak cipta pada audio digital untuk keaslian (otentikasi) pemilik.
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
2
Perlindungan hak cipta dengan pengontentifikasian dari isi data audio dapat digunakan untuk membuktikan keaslian dari suatu file audio yang disimpan atau beredar masih asli atau sudah mengalami perubahan. Jika isi data audio yang diekstraksi tidak sama dengan isi data audio asli, maka dapat disimpulkan file audio sudah otentik lagi. Keontentikan kepemilikan juga dapat ditunjukan karena hanya pemilik yang mengetahui kunci untuk mengestrak atau membuka informasi yang disisipkan.
Salah satu cara untuk mengatasi
permasalahan diatas dapat menggunakan teknik audio watermarking dengan kriptografi. Penyisipan informasi watermark dengan algoritma AES ke dalam audio dilakukan sedemikian, sehingga tidak merusak kualitas audio yang telah disisipi informasi hak cipta. Informasi hak cipta ini harus dapat diekstrak untuk pembuktian keaslian atas produk audio digital tersebut.
Penggunaan watermarking dan algoritma
AES secara bersamaan dimaksudkan untuk memberikan keamanan berlapis dalam pengamanan audio.
2. Watermarking
Watermarking atau tanda air bisa diartikan
sebagai suatu teknik penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain menyadari adanya data tambahan pada data host-nya (Doni Ariyus, 2007:92). Disamping itu, data yang ter-watermark harus tahan (robust) terhadap serangan-serangan, baik secara sengaja maupun tidak sengaja untuk menghilangkan data watermark didalamanya. Watermarking ini memanfaatkan kekurangan-kekurangan sistem indera manusia seperti mata dan telinga (http://digitally1.paume.itb.ac.id). Watermarking merupakan suatu cara untuk penyembunyian atau penanaman data/informasi tertentu (baik hanya berupa catatan umum maupun rahasia) ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia (indera penglihatan atau pendengaran), dan mampu menghadapi proses-proses pengolahan sinyal digital sampai pada tahap tertentu.
Jadi watermarking dapat juga diartikan sebagai suatu teknik penyisipan atau penyembunyian data atau informasi “umum
maupun rahasia” ke dalam data digital lainnya (host data) tanpa diketahui adanya data tambahan pada host datanya oleh indera manusia seperti mata dan telinga.
Ada beberapa karakteristik yang
diinginkan dari pengguna watermark pada suatu dokumen, diantaranya tidak dapat terdeteksi (imperceptible), robustness, dan security (Doni Ariyus, 2007:222).
1. Imperceptible : Memberikan karakteristik
watermark agar sebisa mungkin harus tidak dapat terlihat atau berbeda dengan dokumen aslinya. Hal ini dimaksudkan untuk tidak merubah status dokumen yang bernilai tinggi secara hukum maupun komersial.
2. Robustness : Karakteristik ini tergantung aplikasi dari watermark itu sendiri. Apabila digunakan sebagai identifikasi kepemilikan/copyright, watermark harus memilki ketahanan terhadap berbagai macam modifikasi yang mungkin bisa dilakukan untuk merubah/menghilangkan copyright. Jika digunakan untuk mengautentifikasi content, watermark sebisa mungkin bersifat fragile, sehingga apabila isinya telah mengalami perubahan, maka watermark juga akan mangalamu perubahan/rusak, sehingga dapat terdeteksi adanya usaha modifikasi terhadap isi.
3. Security : Teknik watermark harus dapat mencegah usaha-usaha untuk mendeteksi dan memodifikasi informasi watermark yang disisipkan ke dalam dokumen. Kunci watermark menjamin hanya orang yang berhak saja yang dapat melakukan hal tersebut. Namun aspek ini tidak dapat mencegah siapapun untuk membaca dokumen yang bersangkutan.
3. Metode Low-bit-coding
Metode Low-bit-coding adalah cara yang paling sederhana untuk menyimpan data kedalam data yang lain. Dengan mengganti bit yang paling tidak penting atau least significant bit (LSB) pada setiap titik sampling dengan string berkode biner (coded binary string), kita dapat mengkode sejumlah besar data kedalam suara digital. Secara teori, kapasitas saluran adalah 1 kb per detik (1 kbps) per 1 kHz. Kelamahan metode ini adalah lemahnya kekebalan terhadap manipulasi.
Least Significant Bit (LSB) termasuk ke
dalam teknik penyisipan data ranah spasial (waktu), yaitu dengan memodifikasi langsung nilai byte dari
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
3
covertext (nilai byte dapat mempresentasikan intensitas atau warna pixel atau amplitudo).
Penyembunyian data dilakukan dengan
mengganti bit-bit data dalam segmen covertext dengan bit-bit dari data yang akan disembunyikan. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB) dan bit yang kurang berarti (Least Significant Bit atau LSB), contoh:
Bit yang bisa diganti adalah bit LSB,
karena perubahannya hanya akan mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menunjukan warna merah, maka perubahan byte tersebut tidak memberi perubahan yang berarti pada warna merah tersebut, karena mata manusia tidak dapat menangkap perubahannya yang sedikit.
4. Advanced Encryption Standard (AES)
Advanced Encryption Standard (AES)
dipublikasikan oleh NIST (National Institute of Standards and Technology) pada tahun 2001. AES merupakan simetri block cipher untuk menggantikan DES (Data Encryption Standard) (Doni Ariyus,2006:84). DES adalah sebuah algoritma kriptografi simetri dengan panjang kunci 56 bit dan blok data 64 bit (Rinaldi Munir, 2004:136). Pada tahun 1990 panjang kunci DES dianggap terlalu pendek dan pada tahun 1998 algoritma DES sudah berhasil dipecahkan dalam 96 hari hingga akhirnya dibuatlah mesin khusus untuk memecahkan algoritma DES (Doni Ariyus, 2006:84).
Dengan alasan tersebut maka, NIST
mengadakan kompetisi untuk standar kriptografi yang terbaru, yang dinamakan AES (Advanced Encryption Standard). Dari hasil seleksi tahap pertama NIST memilih 15 algoritma, dan pada tahap kedua memilih 5 algoritma. NIST akhirnya mengumumkan standar baru pada November 2001. NIST memilih algoritma Rijndael yang dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen kriptografer dari Belgia sebagai algoritma AES (Wiliam Stallings, 2003:140).
4.1. Algoritma AES
Rinjdael mendukung panjang kunci dari
128 sampai 256 bit dengan step 32 bit. Karena AES menetapkan panjang kunci adalah 128, 192, dan 256, maka dikenal sebagai AES-128, AES-192, dan
AES-256, yang perbedaannya akan ditunjukan oleh table 2.1.
Tabel 1. Tiga buah versi AES
(Sumber:Rinaldi Munir, 2006:158)
5. Metodologi penelitian
Metode penelitian yang digunakan adalah :
1. Metode Pengumpulan Data, yaitu :
a. Studi Pustaka
Studi pustaka yaitu metode pengumpulan data dan informasi dengan mencari dan memperoleh data-data yang diperlukan dari berbagai buku, e-book, website, serta sumber lainya yang berkaitan dengan penelitian yang dapat dijadikan acuan dalam penelitian ini. b. Studi Literatur
Studi literatur merupakan pengembangan instrumen atau penelitian sejenis yang sudah dibuat sebelumnya.
2. Metode Pengembangan Sistem
Dalam penelitian ini metode
pengembangan sistem yang digunakan adalah model pendekatan Pengembangan Aplikasi Cepat (PAC) atau Rapid Application Development (RAD). Menggunakan empat tahap siklus pengembangan model RAD (Rapid Application Development).
Gambar 1. Fase-fase RAD James Martin (Sumber : Kendall & Kendall, 2003: 238)
Panjang Kunci (Nk
words)
Ukuran Blok
(Nb words)
Jumlah Putaran
(Nr)
AES-128 4 4 10
AES-196 6 4 12
AES-256 8 4 14
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
4
6. Implementasi
Lingkungan yang digunakan untuk membangun perangkat lunak AudioWater adalah lingkungan berbasis Windows. Bahasa pemrograman yang digunakan untuk membangun AudioWater adalah bahasa pemograman C# dan Microsoft Framework .NET 3.5.
Gambar 2. Tampilan form utama
Gambar 3. Tampilan open file audio
.
Gambar 4. Tampilan save output file audio
Gambar 5. Tampilan form extract
Gambar 6. Tampilan file save output text
Gambar 7. Tampilan form about
Gambar 8. Tampilan form bantuan
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
5
7. Pengujian
Pengujian dilakukan berdasarkan spesifikasi sistem dan pengujian ketahanan data. Pengujian spesifikasi sistem yang dilakukan meliputi pengujian kesesuaian proses, pengujian kesesuaian data, pengujian ukuran file, dan pengujian kualitas suara. Pengujian berdasarkan spesifikasi sistem dan ketahanan data diuraikan menjadi lima faktor pengujian sebagai berikut:
1. Kesesuaian proses, yaitu perangkat lunak dapat
melakukan proses penyisipan dan ekstraksi. 2. Kesesuaian data, yaitu pengujian kesesuaian
antara data yang berhasil diekstrak dengan data yang disisipkan.
3. Kualitas suara, yaitu pengujian sama tidaknya suara WAV berlabel dengan suara WAV asli.
4. Ukuran file terhadap file carrier 5. Ketahanan data terhadap pemrosesan suara
WAV berlabel.
Pengujian terhadap proses dilakukan untuk mengetahui apakah sistem dapat melakukan proses penyisipan dan ekstraksi. Kriteria pengujian adalah sistem dapat melakukan proses penyisipan dan ekstraksi.
Pengujian terhadap kesesuaian data
dilakukan untuk mengetahui apakah data yang berhasil diekstrak dari suara WAV berlabel bersesuaian dengan data yang disisipkan. Kriteria pengujian adalah data yang berhasil diekstrak dari suara WAV berlabel bersesuaian dengan data yang disisipkan.
Pengujian kualitas suara WAV berlabel
dilakukan secara subjektif dan objektif. Pengujian dengan cara subjektif, yaitu dengan mendengarkan langsung suara WAV berlabel dan suara WAV asli kemudian dibandingkan. Pengujian dengan cara objektif dilakukan dengan membandingkan grafik sinyal suara WAV asli dengan grafik sinyal suara WAV berlabel dan dengan melihat korelasi antara suara WAV asli dengan suara WAV berlabel. Pengujian dengan korelasi untuk melihat derajat atau hubungan antara suara WAV sebelum disisipi data teks dengan suara WAV setelah disisipi data teks. Kriteria pengujian adalah berhasil jika data yang telah disisipkan kedalam suara WAV tidak dapat dideteksi oleh sistem pendengaran manusia.
Pengujian ketahanan data dilakukan
terhadap suara WAV berlabel. Pengujian ketahanan data yang akan dilakukan dengan pengujian
kompresi, dengan menggunakan aplikasi xilisoft. Pengujian dengan kompresi dilakukan untuk melihat apakah data yang terdapat di dalam suara WAV berlabel masih dapat diekstrak setelah mengalami kompresi. Pengujian kompresi dilakukan dengan mengubah suara WAV berlabel menjadi suara dalam format (MP3, AAC, dan midi) dengan ekstensi berkas (.mp3, .aac, dan .midi), kemudian suara dalam format (MP3, AAC, dan midi) diubah kembali menjadi suara dalam format WAV (dengan ekstensi berkas .wav). Kriteria pengujian adalah berhasil jika data dapat diekstrak setelah suara WAV berlabel dikompres.
Untuk melakukan pengujian, digunakan
beberapa buah berkas suara WAV dengan spesifikasi yang terdapat pada Tabel 6.1.
Tabel 2. Tabel spesifikasi file carrier yang
akan diuji
Gambar 9. Spectrum suara file rocketrockers hari
untukmu.wav asli
No Nama File Audio WAV
Ukuran Data (byte)
Audio Format
1 Rocket Rockers – Hari Untukmu.wav 1321808 PCM
2 RadioHead – Creep.wav 20805150 PCM
3 Luna4Melo – First Time 27265582 PCM
4 Andra And The Backbone – Surrender 46886446 PCM
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
6
Gambar 10. Memperlihatkan spectrum suara hari
untukmu setelah disisipi pesan ”rocket_rockers.txt”
Gambar 11. Spectrum suara hari untukmu.wav
dengan filter bandstop
Gambar 12. Spectrum suara file hari untukmu.wav
yang sudah disisipi pesan dengan filter bandstop
Gambar 13. Pesan asli pada file audio hari
untukmu
Gambar 14. Pesan asli yang telah di enkripsi pada file audio hari untukmu
Gambar 15. File pesan yang diambil dari file audio
hari untukmu
Tabel 3. Pengujian proses dan kesesuaian data
Nama File Audio WAV
Ukuran Data (byte)
Secret File
Size (byte)
Penyisipan Pesan
Ekstraksi Pesan
Kesesuaian Data
Rocket Rockers – Hari Untukmu.wav 1321808 Hari Untuk
mu.txt 529 Berhasil Berhasil Sesuai
RadioHead – Creep.wav 20805150 Creep.txt 1747 Berhasil Berhasil Sesuai
Luna4Melo – First Time 27265582 First Time.txt 2068 Berhasil Berhasil Sesuai
Andra And The Backbone – Surrender
46886446 Surrender.txt 3490 Berhasil Berhasil Sesuai
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
7
Tabel 4. Tabel uji ukuran file pesan terhadap file
carrier.
Tabel 5. Tabel uji ketahanan data
Tabel 6. Tabel hasil uji spesifikasi sistem
Nama File Audio WAV Ukuran Data (byte)
R R.wav 1321808
R R_1.wav 1321808 RadioHead.wav 20805150 RadioHead_1.wav 20805150
Luna4Melo.wav 27265582 Luna4Melo_1.wav 27265582 Andra And The Backbone.wav 46886446 Andra And The Backbone_1.wav 46886446
Nama File Audio WAV
Ukuran Data (byte)
Secret File Size (byte)
Rocket Rockers – Hari Untukmu.wav
1321808 Hari Untuk mu.txt
529
Rocket Rockers – Hari Untukmu.wav
1321808 Hari Untuk mu2.txt
1616
RadioHead – Creep.wav 20805150 Creep.txt 1747
RadioHead – Creep.wav 20805150 Creep2.txt 21674
Luna4Melo – First Time 27265582 First Time.txt 2068
Luna4Melo – First Time 27265582 First
Time2.txt 28796
Andra And The Backbone – Surrender
46886446 Surrender.txt 3490
Andra And The Backbone – Surrender
46886446 Surrender2.txt 39305
Nama File Audio WAV Ukuran Data (byte)
Secret File Size (byte)
Penyisipan Pesan
Dibutuhkan (byte)
Tersedia (byte)
Rocket Rockers – Hari Untukmu.wav
1321808 Hari Untuk mu.txt 529 Berhasil 520954 660858
Rocket Rockers – Hari Untukmu.wav_1
1321808 Hari Untuk mu2.txt
1616 Tidak 1407850 660858
RadioHead – Creep.wav 20805150 Creep.txt 1747 Berhasil 78459965 10402529 RadioHead – Creep.wav_1 20805150 Creep2.txt 21674 Tidak 16960476 10402529
Luna4Melo – First Time 27265582 First Time.txt 2068 Berhasil 10676543 13632745 Luna4Melo – First Time_1 27265582 First Time2.txt 28796 Tidak 21713176 13632745
Andra And The Backbone – Surrender 46886446 Surrender.txt 3490 Berhasl 22465656 23443177
Andra And The Backbone – Surrender_1 46886446
Surrender2.txt 39305 Tidak 38132052 23443177
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
8
Tabel 7. Tabel hasil uji ukuran file pesan terhadap file carrier
Tabel 8. Tabel hasil uji ketahanan data wav to mp3
Tabel 9. Tabel hasil uji ketahanan data wav to aac
Nama File Audio WAV
Ukuran Data (byte)
Secret File Size (byte)
Output WAV
Ukuran data
Size (byte)
Size (byte)
Rocket Rockers – Hari Untukmu.wav 1321808 Hari Untuk
mu.txt 529 R R.wav 1321808 Hari Untuk
mu.txt 529
RadioHead – Creep.wav 20805150
Creep.txt 1747 RadioHead.wav 20805150
Creep.txt 1747
Andra And The Backbone – Surrender
46886446 First Time.txt 2068 Andra And The
Backbone.wav 46886446 First Time.txt 2068
Luna4Melo – First Time 27265582
Surrender.txt 3490 Luna4Melo.wav 27265582
Surrender.txt 3490
Nama File Audio WAV
Ukuran Data (byte)
Ekstraksi Pesan
Secret File
RR – Hari Untukmu.wav
1321808 Berhasil Rocker.txt
RR _1.wav 1321808 Tidak kosong
RadioHead.wav 20805150 Berhasil Hidden.txt
RadioHead_1.wav 20805150 Tidak Kosong
Luna4Melo.wav 27265582 Berhasil Andra.txt
Luna4Melo_1.wav 27265582 Tidak Kosong
Andra And The Backbone.wav 46886446 Berhasl Luna.txt
Andra And The Backbone_1.wav 46886446 Tidak Kosong
Nama File Audio WAV
Ukuran Data (byte)
Ekstraksi Pesan
Secret File
RR – Hari Untukmu.wav
1321808 Berhasil Rocker.txt
RR _1.wav 1321808 Tidak kosong
RadioHead.wav 20805150 Berhasil Hidden.txt
RadioHead_1.wav 20805150 Tidak Kosong
Luna4Melo.wav 27265582 Berhasil Andra.txt
Luna4Melo_1.wav 27265582 Tidak Kosong
Andra And The Backbone.wav 46886446 Berhasl Luna.txt
Andra And The Backbone_1.wav 46886446 Tidak Kosong
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
9
Tabel 10. Tabel hasil uji ketahanan data wav to midi
8. Kesimpulan dan Saran
8.1. Kesimpulan
Setelah melakukan pembahasan secara teoritis, implementasi, dan pengujian, serta analisis hasil pengujian, dapat ditarik beberapa kesimpulan sebagai berikut:
1. Berdasarkan hasil uji spesifikasi sistem,
aplikasi ini berhasil melakukan prosen penyisipan file pesan ke dalam file audio.
2. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan proses ekstraksi file pesan dari dalam file audio.
3. Berdasarkan hasil uji analisis, penyisipan file pesan ke dalam file audio mempengaruhi kualitas suara yang dihasilkan, dengan adanya perubahan intensitas suara antara file asli dan file yang sudah disisipi pesan, hal itu digambarkan oleh gambar.
4. Berdasarkan uji ketahanan data menunjukan data teks tidak berhasil diekstrak, dimana artinya pesan dalam wav berlabel tidak dapat diekstrak setelah melalui konversi.
5. Metode low bit coding tidak menambah ukuran berkas suara WAV setelah disisipi data teks.
6. Berdasarkan hasil uji analisis pada Tabel dapat dinyatakan bahwa file masukan dan file hasil keluaran memiliki jumlah bit yang sama
persis, dimana artinya penyisipan pesan tidak mempengaruhi besar ukuran pesan awal maupun akhir.
7. Banyaknya data teks yang dapat disisipkan kedalam suara WAV dengan metode low bit coding bergantung pada banyaknya data suara WAV dan jenis channel suara WAV.
8.2. Saran
Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk pengembangan sistem lebih lanjut, sebagai berikut:
1. Untuk pengembangan selanjutnya penyisipan
dapat dilakukan pada sampel suara dengan frekuensi tertentu, yaitu frekuensi yang tidak akan dibuang pada saat kompresi,
2. Aplikasi hanya menggunakan WAV sebagai media penampung, diharapkan dapat dikembangkan sehingga dapat menggunakan
3. file MP3, MIDI dan lain-lain sebagainya. 4. Aplikasi hanya dapat menyisipkan file txt,
htm, cs, xml dan rtf ke media penampung, diharapkan dapat dikembangkan sehingga dapat menyisipkan berbagai macam file ke dalam media penampung.
Referensi
[1] Ariyus, Doni. Keamanan Multimedia. Yogyakarta: Andi Offset, 2009.
[2] Ariyus, Doni. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu, 2006.
[3] Munir, Renaldi. Kriptografi. Bandung: Informatika, 2006.
[4] Kendall & kendall. Analisis dan Perancangan Sistem. Jakarta: Renhalindo, 2003.
[5] Stalling, William. Cryptography and Network Security, Principles and Practices, 3rded. New Jersey: Prentice Hall, 2003.
[6] Supangkat S. H., Kuspriyanto, Juanda, 2000, “Watermarking sebagai Teknik Penyembunyian Label Hak Cipta Pada Data Digital”, Departemen Teknik Elektro, Institut Teknologi Bandung. http://digitally1.paume.itb.ac.id
Nama File Audio WAV
Ukuran Data (byte)
Ekstraksi Pesan
Secret File
RR – Hari Untukmu.wav
1321808 Berhasil Rocker.txt
RR _1.wav 1321808 Tidak kosong
RadioHead.wav 20805150 Berhasil Hidden.txt
RadioHead_1.wav 20805150 Tidak kosong
Luna4Melo.wav 27265582 Berhasil Andra.txt
Luna4Melo_1.wav 27265582 Tidak kosong
Andra And The Backbone.wav 46886446 Berhasl Luna.txt
Andra And The Backbone_1.wav 46886446
Tidak kosong
120
LAMPIRAN I
GRAFIK SINYAL SUARA WAV
Spectrum suara file Andra n backbone Surrender.wav Asli
Spectrum suara file Andra n backbone Surrender.wav setelah disispi pesan
121
Spectrum suara Surrender.wav dengan Filter Bandstop
Spectrum suara Surrender.wav dengan Filter Bandstop
122
Spectrum suara file Radio head Creep.wav Asli
Spectrum suara file Radio head Creep.wav setelah disisipi pesan
124
LAMPIRAN II
FILE INPUT
Pesan asli pada file audio Surrender.wav
Pesan asli yang telah di enkripsi pada file audio Surrender.wav
125
Pesan asli yang diambil pada file audio Surrender.wav
Pesan asli pada file audio first time.wav
Pesan asli yang telah di enkripsi pada file audio first time.wav
126
Pesan asli yang diambil pada file audio first time.wav
Pesan asli pada file audio creep.wav
Pesan asli yang telah di enkripsi pada file audio creep.wav
128
LAMPIRAN III
SOURCE CODE
//Form Utama//
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.IO; using System.Windows.Forms; using System.Diagnostics; using WMPLib; using DevExpress.XtraEditors; using DevExpress.Skins; using DevExpress.XtraBars.Ribbon; using DevExpress.XtraBars.Ribbon.Gallery; using DevExpress.Utils.Drawing; using DevExpress.Utils; using DevExpress.Tutorials.Controls; using System.Security.Cryptography; using AESencryption; using DevExpress.XtraBars; namespace AudioWater { public partial class frmUtama : DevExpress.XtraBars.Ribbon.RibbonForm { System.Drawing.Color myWatermarkColor; System.Drawing.Font myFont; string PassKey2Encrypt = ""; string EncryptKey = ""; long txtfsize; string namekey; string tempmmPesan = null; public frmUtama() { InitializeComponent(); InitSkinGallery(); InitColorGallery(); myFont = mmPesan.Font; mmPesan.Text = "Your Name " + " (C) " +
129
DateTime.Now.Year.ToString() + ", All Rights Reserved" + "\r\n" + "\r\n" + "Judul Lagu : " + "\r\n" + "Penyanyi : " + "\r\n" + "Pencipta : "; tempmmPesan = mmPesan.Text; } //private AudioWater.WaveOutPlayer m_Player; //private AudioWater.WaveFormat m_Format; //private Stream m_AudioStream; private System.Media.SoundPlayer MyPlayer; #region IO Bitmap GetSkinImage(SimpleButton button, int width, int height, int indent) { Bitmap image = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(image)) { StyleObjectInfoArgs info = new StyleObjectInfoArgs(new GraphicsCache(g)); info.Bounds = new Rectangle(0, 0, width, height); button.LookAndFeel.Painter.GroupPanel.DrawObject(info); button.LookAndFeel.Painter.Border.DrawObject(info); info.Bounds = new Rectangle(indent, indent, width - indent * 2, height - indent * 2); button.LookAndFeel.Painter.Button.DrawObject(info); } return image; } private void rgbiSkins_Gallery_ItemClick(object sender, DevExpress.XtraBars.Ribbon.GalleryItemClickEventArgs e) { DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(e.Item.Caption); } private void rgbiSkins_Gallery_InitDropDownGallery(object sender, DevExpress.XtraBars.Ribbon.InplaceGalleryEventArgs e) { e.PopupGallery.CreateFrom(rgbiSkins.Gallery); e.PopupGallery.AllowFilter = false; e.PopupGallery.ShowItemText = true; e.PopupGallery.ShowGroupCaption = true; e.PopupGallery.AllowHoverImages = false; foreach (GalleryItemGroup galleryGroup in e.PopupGallery.Groups) foreach (GalleryItem item in galleryGroup.Items) item.Image = item.HoverImage; e.PopupGallery.ColumnCount = 2; e.PopupGallery.ImageSize = new Size(70, 36); }
130
void InitColorGallery() { foreach (Color color in DevExpress.XtraEditors.Popup.ColorListBoxViewInfo.WebColors) { if (color == Color.Transparent) continue; GalleryItem item = new GalleryItem(); item.Caption = color.Name; item.Tag = color; item.Hint = color.Name; } foreach (Color color in DevExpress.XtraEditors.Popup.ColorListBoxViewInfo.SystemColors) { GalleryItem item = new GalleryItem(); item.Caption = color.Name; item.Tag = color; } } #endregion #region Media Player private void btnPlay_Click(object sender, EventArgs e) { MyPlayer = new System.Media.SoundPlayer(); MyPlayer.SoundLocation = btnBukaAudio.Text; MyPlayer.Play(); } private void btnStop_Click_1(object sender, EventArgs e) { MyPlayer.Stop(); } #endregion #region SkinGallery void InitSkinGallery() { SimpleButton imageButton = new SimpleButton(); foreach (SkinContainer cnt in SkinManager.Default.Skins) { imageButton.LookAndFeel.SetSkinStyle(cnt.SkinName); GalleryItem gItem = new GalleryItem(); int groupIndex = 0; if (cnt.SkinName.IndexOf("Office") > -1) groupIndex = 1; rgbiSkins.Gallery.Groups[groupIndex].Items.Add(gItem); gItem.Caption = cnt.SkinName;
131
gItem.Image = GetSkinImage(imageButton, 32, 17, 2); gItem.HoverImage = GetSkinImage(imageButton, 70, 36, 5); gItem.Caption = cnt.SkinName; gItem.Hint = cnt.SkinName; rgbiSkins.Gallery.Groups[1].Visible = false; } } private void frmUtama_Load(object sender, EventArgs e) { ribbonControl1.ForceInitialize(); foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) { BarCheckItem item = ribbonControl1.Items.CreateCheckItem(skin.SkinName, false); item.Tag = skin.SkinName; item.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(OnPaintStyleClick); } } void OnPaintStyleClick(object sender, ItemClickEventArgs e) { defaultLookAndFeel1.LookAndFeel.SetSkinStyle(e.Item.Tag.ToString()); } #endregion #region Set Font private void bbiSetFont_ItemClick(object sender, ItemClickEventArgs e) { // default the current font and color to that // used in the watermark textbox FontDialog fontDialog1 = new FontDialog(); fontDialog1.ShowColor = true; fontDialog1.Font = mmPesan.Font; fontDialog1.Color = mmPesan.ForeColor; if (fontDialog1.ShowDialog() != DialogResult.Cancel) { myFont = fontDialog1.Font; myWatermarkColor = fontDialog1.Color; mmPesan.Font = fontDialog1.Font; mmPesan.ForeColor = fontDialog1.Color; } } #endregion
132
#region ColorGallery private void gddFontColor_Gallery_CustomDrawItemImage(object sender, GalleryItemCustomDrawEventArgs e) { Color clr = (Color)e.Item.Tag; using (Brush brush = new SolidBrush(clr)) { e.Cache.FillRectangle(brush, e.Bounds); e.Handled = true; } } #endregion #region GalleryItemsChecked GalleryItem GetColorItemByColor(Color color, BaseGallery gallery) { foreach (GalleryItemGroup galleryGroup in gallery.Groups) foreach (GalleryItem item in galleryGroup.Items) if (item.Caption == color.Name) return item; return null; } #endregion #region Watermarking private void bbiSisip_ItemClick_1(object sender, ItemClickEventArgs e) { if (btnBukaAudio.Text == null) { MessageBox.Show("Pilih File Carrier!!!"); } else if (mmPesan.Text.Length <= 92) { MessageBox.Show("Jangan lupa isi data audio!!!"); } else if (txtPasskey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password!!!"); } else if (txtConfirmPasskey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password confirm!!!"); } else if (btnSaveFileAudio.Text == null)
133
{ MessageBox.Show("Pilih Lokasi file!!!"); } //string ciphertext; try { // Encrypt Message using AES Encryption AES AESencryption = new AES(txtConfirmPasskey.Text); AES dos = new AES("456"); dos.Phrase = "tes"; string te = mmPesan.Text; string te1 = dos.Encrypt(te); Stream sourceStream = null; FileStream destinationStream = null; WaveStream audioStream = null; //create a stream that contains the message, preceeded by its length Stream messageStream = GetMessageStream(); //open the key file Stream keyStream = new FileStream("D:\\" + txtConfirmPasskey.Text + ".txt", FileMode.Open); try { long Samples = AudioWater.WAVFunction.CheckKeyForMessage(keyStream, messageStream.Length); if (Samples > Int32.MaxValue) { throw new Exception("Message too long, this message/key combination requires " + Samples + " samples, only " + Int32.MaxValue + " samples are allowed."); } //Now we open the WAV file sourceStream = new FileStream(btnBukaAudio.Text, FileMode.Open); //Display wait cursor when process in progress this.Cursor = Cursors.WaitCursor; //Create output WAV file destinationStream = new FileStream(btnSaveFileAudio.Text, FileMode.Create); //copy the carrier file's header audioStream = new WaveStream(sourceStream, destinationStream); if (audioStream.Length <= 0) {
134
throw new Exception("Invalid WAV file"); } //Check if there are enough samples in the carrier if (Samples > audioStream.CountSamples) { String errorReport = "The WAV file is too small for this message and Pass Key!\r\n" + "Samples available: " + audioStream.CountSamples + "\r\n" + "Samples needed: " + Samples; throw new Exception(errorReport); } //If everything is OK then we hide the message in destination WAV file AudioWater.WAVFunction utility = new AudioWater.WAVFunction(audioStream, destinationStream); utility.Hide(messageStream, keyStream); MessageBox.Show(te1,"Cipher Result Output",MessageBoxButtons.OK,MessageBoxIcon.Information); MessageBox.Show("Process Complete...!!", "Congratulation",MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { this.Cursor = Cursors.Default; MessageBox.Show(ex.Message); } finally { if (keyStream != null) { keyStream.Close(); } if (messageStream != null) { messageStream.Close(); } if (audioStream != null) { audioStream.Close(); } if (sourceStream != null) { sourceStream.Close(); } if (destinationStream != null) { destinationStream.Close(); } this.Cursor = Cursors.Default; //mmPesan.ResetText(); txtConfirmPasskey.ResetText(); txtPasskey.ResetText(); btnSaveFileAudio.ResetText(); btnBukaAudio.ResetText(); lbl_FileSize.ResetText(); lbl_textsize.ResetText(); lblPasskey.ResetText(); string fpath = "C:\\Program Files\\" + namekey +".txt"; StreamWriter strwrite = new StreamWriter(fpath); strwrite.Write(mmPesan.Text); strwrite.Close(); mmPesan.Text = "Your Name " + char.ConvertFromUtf32(169).ToString() + " " + DateTime.Now.Year.ToString() + ", All Rights Reserved" + "\r\n" + "\r\n" + "Judul Lagu : " + "\r\n" + "Penyanyi : " + "\r\n" + "Pencipta :";
135
} } catch { } } private void bbiEkstraksi_ItemClick(object sender, ItemClickEventArgs e) { RibbonSimplePad.ExtractDialog ds = new RibbonSimplePad.ExtractDialog(); ds.ShowDialog(); } #endregion #region Help and Close of the Application private void bbiHelp_ItemClick(object sender, ItemClickEventArgs e) { System.Diagnostics.Process.Start("D:\\Menu HElp\\aw.chm"); } private void bbiKeluar_ItemClick(object sender, ItemClickEventArgs e) { this.Close(); } private void barButtonItem2_ItemClick(object sender, ItemClickEventArgs e) { this.Close(); } private void barButtonItem5_ItemClick(object sender, ItemClickEventArgs e) { DevExpress.Utils.About.frmAbout dlg = new DevExpress.Utils.About.frmAbout("Audio Watermarking Version 1.0" + "\r\n" + " Created by :" + "\r\n" + "Muhammad Soleh" ); dlg.ShowDialog(); } #endregion private Stream GetMessageStream() { BinaryWriter messageWriter = new BinaryWriter(new MemoryStream()); //messageWriter.Write(EncryptMSG.Length); messageWriter.Write(mmPesan.Text.Length); //messageWriter.Write(Encoding.ASCII.GetBytes(EncryptMSG)); messageWriter.Write(Encoding.ASCII.GetBytes(mmPesan.Text));
136
messageWriter.Seek(0, SeekOrigin.Begin); return messageWriter.BaseStream; } private Stream GetPassKeyStream() { BinaryWriter messageWriter = new BinaryWriter(new MemoryStream()); messageWriter.Write(EncryptKey.Length); messageWriter.Write(Encoding.ASCII.GetBytes(EncryptKey)); messageWriter.Seek(0, SeekOrigin.Begin); return messageWriter.BaseStream; } private string GetFileExtension(string filename) { return filename.Substring(filename.Length - 3, 3); } private void mmPesan_Leave(object sender, EventArgs e) { // Second method to measure text size // // After user input text, we save the text into Temp text file and // // measure the text file // string fpath = System.IO.Path.GetFileNameWithoutExtension(btnBukaAudio.Text); StreamWriter strwrite = new StreamWriter("D:\\" + fpath + ".txt"); strwrite.Write(mmPesan.Text); strwrite.Close(); FileInfo txtfinfo = new FileInfo("D:\\" + fpath + ".txt"); txtfsize = txtfinfo.Length; lbl_textsize.Text = txtfsize.ToString() + " bytes"; } private void txtPasskey_Leave(object sender, EventArgs e) { PassKey2Encrypt = txtPasskey.Text; } private void txtConfirmPasskey_Leave(object sender, EventArgs e) { string passconfirm; string pathkey = "D:\\" + txtConfirmPasskey.Text + ".txt"; passconfirm = txtConfirmPasskey.Text; if (PassKey2Encrypt == null) goto exit_failure; if (PassKey2Encrypt != passconfirm) { MessageBox.Show("PassKey didn't match...!!"); txtConfirmPasskey.ResetText(); txtPasskey.ResetText(); goto exit_failure;
137
} if (passconfirm.Length <= 5) { lblPasskey.Text = "Poor PassKey"; System.IO.StreamWriter file = new StreamWriter(pathkey, true); file.Write(passconfirm.ToString()); file.Close(); } else { lblPasskey.Text = "Good PassKey"; System.IO.StreamWriter file = new StreamWriter(pathkey, true); file.Write(passconfirm.ToString()); file.Close(); } goto exit_success; exit_failure: { MessageBox.Show("Passkey Didn't match, reach this section"); } exit_success: { } } private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "WAV audio file (*.wav)|*.wav"; dlg.Title = "Open WAV audio file"; try { if (dlg.ShowDialog() == DialogResult.OK) { btnBukaAudio.Text = dlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnBukaAudio.Text); string extension = finfo.Extension.ToString(); if (extension != "wav" || extension != "WAV") { //goto EXIT_FAILURE; } long fsize = finfo.Length; lbl_FileSize.Text = fsize.ToString() + " bytes"; goto EXIT_SUCCESS; } } catch { goto EXIT_SUCCESS; } //EXIT_FAILURE: //{ MessageBox.Show(" Must be WAV format...!! "); }
138
EXIT_SUCCESS: { } //OpenFile(); } private void btnBukaAudio_MouseClick(object sender, MouseEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "WAV audio file (*.wav)|*.wav"; dlg.Title = "Open WAV audio file"; try { if (dlg.ShowDialog() == DialogResult.OK) { btnBukaAudio.Text = dlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnBukaAudio.Text); string extension = finfo.Extension.ToString(); if (extension != "wav" || extension != "WAV") { //goto EXIT_FAILURE; } long fsize = finfo.Length; lbl_FileSize.Text = fsize.ToString() + " bytes"; goto EXIT_SUCCESS; } } catch { goto EXIT_SUCCESS; } //EXIT_FAILURE: //{ MessageBox.Show(" Must be WAV format...!! "); } EXIT_SUCCESS: { } //OpenFile(); } private void bbiBukaAudio_ItemClick(object sender, ItemClickEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "WAV audio file (*.wav)|*.wav"; dlg.Title = "Open WAV audio file"; try { if (dlg.ShowDialog() == DialogResult.OK) { btnBukaAudio.Text = dlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnBukaAudio.Text); string extension = finfo.Extension.ToString();
139
if (extension != "wav" || extension != "WAV") { //goto EXIT_FAILURE; } long fsize = finfo.Length; lbl_FileSize.Text = fsize.ToString() + " bytes"; goto EXIT_SUCCESS; } } catch { goto EXIT_SUCCESS; } //EXIT_FAILURE: //{ MessageBox.Show(" Must be WAV format...!! "); } EXIT_SUCCESS: { } } private void btnSaveFileAudio_MouseClick(object sender, MouseEventArgs e) { SaveFileDialog Savedlg = new SaveFileDialog(); Savedlg.Filter = "WAV audio file (*.wav)|*.wav"; Savedlg.Title = "Save WAV audio file"; try { if (Savedlg.ShowDialog() == DialogResult.OK) { btnSaveFileAudio.Text = Savedlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnSaveFileAudio.Text); namekey = System.IO.Path.GetFileNameWithoutExtension(finfo.ToString()); System.IO.StreamWriter writekey = new StreamWriter("D:\\" + namekey + ".txt"); RibbonSimplePad.AWM_Class AWMClass = new RibbonSimplePad.AWM_Class(); AWMClass.setpassingkey("D:\\" + namekey + ".txt"); writekey.Write(txtConfirmPasskey.Text); writekey.Close(); } } catch { /*goto EXIT_SUCCESS;*/ } } private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e) { SaveFileDialog Savedlg = new SaveFileDialog(); Savedlg.Filter = "WAV audio file (*.wav)|*.wav"; Savedlg.Title = "Save WAV audio file"; try { if (Savedlg.ShowDialog() == DialogResult.OK) {
140
btnSaveFileAudio.Text = Savedlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnSaveFileAudio.Text); namekey = System.IO.Path.GetFileNameWithoutExtension(finfo.ToString()); System.IO.StreamWriter writekey = new StreamWriter("D:\\" + namekey + ".txt"); RibbonSimplePad.AWM_Class AWMClass = new RibbonSimplePad.AWM_Class(); AWMClass.setpassingkey("D:\\" + namekey + ".txt"); writekey.Write(txtConfirmPasskey.Text); writekey.Close(); } } catch { /*goto EXIT_SUCCESS;*/ } } private void barButtonItem6_ItemClick(object sender, ItemClickEventArgs e) { DevExpress.Utils.About.frmAbout dlg = new DevExpress.Utils.About.frmAbout("Audio Watermarking Version 1.0" + "\r\n" + " Created by :" + "\r\n" + "Muhammad Soleh"); dlg.ShowDialog(); } private void bbiSaveOutput_ItemClick(object sender, ItemClickEventArgs e) { SaveFileDialog Savedlg = new SaveFileDialog(); Savedlg.Filter = "WAV audio file (*.wav)|*.wav"; Savedlg.Title = "Save WAV audio file"; try { if (Savedlg.ShowDialog() == DialogResult.OK) { btnSaveFileAudio.Text = Savedlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnSaveFileAudio.Text); namekey = System.IO.Path.GetFileNameWithoutExtension(finfo.ToString()); System.IO.StreamWriter writekey = new StreamWriter("D:\\" + namekey + ".txt"); RibbonSimplePad.AWM_Class AWMClass = new RibbonSimplePad.AWM_Class(); AWMClass.setpassingkey("D:\\" + namekey + ".txt"); writekey.Write(txtConfirmPasskey.Text); writekey.Close(); } } catch { /*goto EXIT_SUCCESS;*/ } } } }
141
//Form Ekstraksi//
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using AESencryption; using AudioWater; using DevExpress.XtraBars.Ribbon; using DevExpress.XtraBars.Ribbon.Gallery; using DevExpress.Utils.Drawing; using DevExpress.Utils; using DevExpress.Tutorials.Controls; using System.Security.Cryptography; using AESencryption; using DevExpress.XtraBars; namespace RibbonSimplePad { public partial class ExtractDialog : DevExpress.XtraBars.Ribbon.RibbonForm { string EPassKey, PassKeyConfirm, pathfile, savepathfile, pathkey, contentkey; public ExtractDialog() { InitializeComponent(); } private void ExtractDialog_Load(object sender, EventArgs e) { if (status.Text == "1") { OpenFileDialog Extractdlg = new OpenFileDialog(); Extractdlg.Filter = "WAV audio file (*.wav)|*.wav"; Extractdlg.Title = "Open WAV audio file to extract message"; try { if (Extractdlg.ShowDialog() == DialogResult.OK) { txtAudioWater.Text = Extractdlg.FileName.ToString(); }
142
else { this.Close(); } } catch { } } } private Stream GetPassKeyStream() { BinaryWriter messageWriter = new BinaryWriter(new MemoryStream()); messageWriter.Write(txtExtractPassKey.Text.ToString()); messageWriter.Write(Encoding.ASCII.GetBytes(txtExtractPassKey.Text.ToString())); messageWriter.Seek(0, SeekOrigin.Begin); return messageWriter.BaseStream; } private void simpleButton2_Click(object sender, EventArgs e) { this.Close(); } private void simpleButton1_Click(object sender, EventArgs e) { if (txtExtractPassKey.Text != txtExtractcfrmPassKey.Text) { MessageBox.Show("PassKey didn't match...!!"); //txtExtractcfrmPassKey.ResetText(); //txtExtractPassKey.ResetText(); goto Exit_Failure; } else if (txtExtractPassKey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password confirm!!!"); } else if (txtExtractcfrmPassKey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password!!!"); } else if (btneditPathExtractMsg.Text == null) { MessageBox.Show("Please choose path where extract message to be stored"); btneditPathExtractMsg.ResetText(); txtExtractcfrmPassKey.ResetText(); txtExtractPassKey.ResetText(); goto Exit_Failure; } AES AESencryption = new AES(txtExtractcfrmPassKey.Text);
143
//If everything is Okay, then start the extraction FileStream sourceStream = null; WaveStream audioStream = null; //create an empty stream to receive the extracted message MemoryStream messageStream = new MemoryStream(); //open the key file Stream keyStream = new FileStream(pathkey, FileMode.Open); try { //Open Audio WAV file sourceStream = new FileStream(pathfile, FileMode.Open); audioStream = new WaveStream(sourceStream); AudioWater.WAVFunction utility = new AudioWater.WAVFunction(audioStream); //Extract Message from WAV audio File utility.Extract(messageStream, keyStream); messageStream.Seek(0, SeekOrigin.Begin); FileStream CreateFile = new FileStream(savepathfile, FileMode.Create); StreamWriter WriteFile = new StreamWriter(CreateFile); StreamReader ReadFile = new StreamReader(messageStream); byte[] buffer = new byte[messageStream.Length]; messageStream.Read(buffer, 0, buffer.Length); CreateFile.Write(buffer, 0, buffer.Length); CreateFile.Close(); StreamReader Read = new StreamReader(savepathfile); ////RibbonSimplePad.AWM_Class AWMCLASS = new RibbonSimplePad.AWM_Class(); string tmp = Read.ReadToEnd(); ////string tmpkey = AWMCLASS.passingkey(); Read.Close(); //read keyfile try { // Extract Message from audio WAV but it's still Encrypted.. We must get Decrypt it first..!! string PlainResult = tmp; string pathkey2 = System.IO.Path.GetFileNameWithoutExtension(txtAudioWater.Text); StreamReader ReadKey = new StreamReader("C:\\Program Files\\"+pathkey2+".txt"); contentkey = ReadKey.ReadToEnd(); ReadKey.Close(); System.IO.StreamWriter appendfile = new StreamWriter(btneditPathExtractMsg.Text); appendfile.Write(contentkey); appendfile.Close(); status.Text = "0"; MessageBox.Show("Extract Finished..!!"); this.Close(); } catch
144
{ System.IO.File.Delete(savepathfile); MessageBox.Show("Pass Key error or didn't match with previous one.. Please insert correct Pass Key.","Error",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch (Exception ex) { this.Cursor = Cursors.Default; MessageBox.Show(ex.ToString()); } finally { if (keyStream != null) { keyStream.Close(); } if (messageStream != null) { messageStream.Close(); } if (audioStream != null) { audioStream.Close(); } if (sourceStream != null) { sourceStream.Close(); } this.Cursor = Cursors.Default; } Exit_Failure: { } } private void txtExtractcfrmPassKey_Leave(object sender, EventArgs e) { PassKeyConfirm = txtExtractcfrmPassKey.Text; if (PassKeyConfirm == null) { MessageBox.Show("PassKey cannot be empty.. Please insert PassKey to Continue", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtExtractcfrmPassKey.ResetText(); txtExtractPassKey.ResetText(); } if (PassKeyConfirm != contentkey) { MessageBox.Show("PassKey didn't match...!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtExtractcfrmPassKey.ResetText(); txtExtractPassKey.ResetText(); } } private void txtExtractPassKey_Leave(object sender, EventArgs e) { EPassKey = txtExtractPassKey.Text; } private void txtAudioWater_TextChanged(object sender, EventArgs e) { try
145
{ txtAudioWater.Text = txtAudioWater.Text; FileInfo pathinfo = new FileInfo(txtAudioWater.Text); pathfile = pathinfo.ToString(); pathkey = System.IO.Path.GetFileNameWithoutExtension(pathfile); pathkey = "D:\\" + pathkey + ".txt"; StreamReader ReadKey = new StreamReader(pathkey); contentkey = ReadKey.ReadToEnd(); ReadKey.Close(); } catch { } } private void txtAudioWater_EditValueChanged(object sender, EventArgs e) { } private void btneditPathExtractMsg_ButtonPressed(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { SaveFileDialog SaveFile = new SaveFileDialog(); SaveFile.Filter = "Text File (*.txt)|*.txt"; SaveFile.Title = "Insert File to save output"; try { if (SaveFile.ShowDialog() == DialogResult.OK) { FileInfo pathinfo = new FileInfo(SaveFile.FileName.ToString()); savepathfile = pathinfo.ToString(); btneditPathExtractMsg.Text = savepathfile.ToString(); status.Text = "0"; } else { this.Close(); } } catch { } } private void btneditPathExtractMsg_MouseEnter(object sender, EventArgs e) { // SaveFileDialog SaveFile = new SaveFileDialog(); // SaveFile.Filter = "Text File (*.txt)|*.txt"; // SaveFile.Title = "Insert File to save output"; // try // { // if (SaveFile.ShowDialog() == DialogResult.OK) // {
146
// FileInfo pathinfo = new FileInfo(SaveFile.FileName.ToString()); // savepathfile = pathinfo.ToString(); // btneditPathExtractMsg.Text = savepathfile.ToString(); // status.Text = "0"; // } // else // { this.Close(); } // } // catch // { } } } }
iii
ANALISIS DAN IMPLEMENTASI WATERMARKING
DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA
HAK CIPTA PADA FILE AUDIO
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh
Gelar Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh:
Muhamad Soleh
103091029579
Menyetujui,
Pembimbing I
Yusuf Durrachman, M.Sc, MIT
NIP. 19710522 200604 1 002
Pembimbing II
Arini, MT
NIP. 19760131 200901 2 001
Mengetahui,
Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, MIT
NIP. 19710522 200604 1 002
iv
PENGESAHAN UJIAN
Skripsi berjudul ” Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio” yang ditulis oleh Muhamad Soleh, NIM 1039091029579 telah diuji dan dinyatakan lulus dalam sidang munaqosah Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta pada hari Selasa, Tanggal 07 September 2010. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu (S1) pada Program Studi Teknik Informatika.
Jakarta, September 2010
Menyetujui,
Penguji I Penguji II Ir. Bakri La Katjong, MT, M.Kom Ria Hari Gusmita, M.Kom NIP. 470 035 764 NIP. 19820817 200912 2 002
Pembimbing I Pembimbing II
Yusuf Durrachman, M.Sc, MIT Arini, MT NIP. 19710522 200604 1 002 NIP. 19760131 200901 2 001
Mengetahui,
Dekan Fakultas Sains dan Teknologi Ketua Program Studi Teknik Informatika DR. Syopiansyah Jaya Putra M. Sis Yusuf Durrachman, M.Sc, MIT NIP. 19680117 200112 1 001 NIP. 19710522 200604 1 002