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
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 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
ii
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
vi
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
vii
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
viii
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.
ix
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
x
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
xi
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
xii
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
xiii
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
xiv
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
xv
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
xvi
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
xvii
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
xviii
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
xix
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
xx
DAFTAR LAMPIRAN LAMPIRAN I …………………..……………………………………………. 120 GRAFIK SINYAL SUARA WAV…………………..………………………. 120 LAMPIRAN II ………...……………..………………………..………..….... 124 FILE INPUT ………...……………..…………………………..………..….... 124 LAMPIRAN III ………...……………..………………………….……..….... 128 LISTING PROGRAM …………………………...……………..………….... 128
xxi
DAFTAR ISTILAH
Istilah Analisis Algoritma
Data
Hak cipta
Hardware
Internet Kualitas WAV PCM
Software
Arti Penyelidikan terhadap suatu peristiwa (karangan, perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya (sebab-musabab, duduk perkaranya, dan sebagainya.) Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis 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 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 Perangkat keras (hardware) mengacu kepada obyek memungkinkan untuk disentuh, seperti disket, disk drive, layar monitor, keybord, printer, scanner dan chip. Suatu jaringan komputer global terbentuk dari jaringan-jaringan komputer lokal dan regional, memungkinkan komunikasi data antar komputerkomputer yang terhubung ke jaringan tersebut. Tingkat baik buruknya atau taraf atau derajat sesuatu. merupakan format standar berkas audio yang dikembangkan Microsoft dan IBM. File wave yang tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang. 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 xxii
chipertext plaintext
dan menguji program-program sederhana. Bentuk pesan yang tidak dapat dibaca atau dipahami pesan yang dapat dibaca
xxiii
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
1
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, TripleDES, 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 pembuatan
pengembangan
skripsai
ini
sistem
yang
menggunakan
digunakan
empat
tahap
dalam 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
pengembangan lebih lanjut.
berisi
saran-saran
untuk
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.
8
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 disisipkan
watetmark
ke
menyembunyikan
sinyal sinyal
digital,
utama
sebuah
sebagai
low-energy
sinyal
cover
tersebut
low-energy
signal (Doni
untuk 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 8bits, 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 pihakpihak 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, TripleDES, 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 dibagibagi 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
Dimana : a0 = { input0, input1,..., input7 }
(2.1)
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
Ukuran Blok
Jumlah Putaran
words)
(Nb words)
(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 :
⎡ s 0' ,c ⎤ ⎡02 ⎢ ' ⎥ ⎢ ⎢ s1,c ⎥ = ⎢ 01 ⎢ s ' ⎥ ⎢ 01 ⎢ 2' ,c ⎥ ⎢ ⎢⎣ s 3,c ⎥⎦ ⎣ 03
03 01 01⎤ ⎡ s 0,c ⎤ ⎢ ⎥ 02 03 01⎥⎥ ⎢ s1,c ⎥ 01 02 03 ⎥ ⎢⎢ s 2,c ⎥⎥ ⎥ 01 01 02 ⎦ ⎢ s 3,c ⎥ ⎣ ⎦
s 0' ,c = ({02} •s o,c ) ¯ ({03} •s1,c ) ¯ s 2,c ¯ s3,c s1' ,c = s 0,c ¯ ({02} •s1,c ) ¯ ({03} •s 2,c ) ¯ s3,c s 2' ,c = s 0,c ¯ s1,c ¯ ({02} •s 2,c ) ¯ ({03} •s3,c ) s3' ,c = ({03} •s 0,c ) ¯ s1,c ¯ s 2,c ¯ ({02} •s3,c )
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 :
[s
' 0,c
]
, s1' ,c , s2' ,c , s3' ,c = [s0,c , s1,c , s2,c , s3,c ]¯ [wround*Nb+c ] untuk0 £ c £ Nb
(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 :
s' (x) = a(x) ˜ s(x) ⎡ s 0' ,c ⎤ ⎡ 0 E ⎢ ' ⎥ ⎢ ⎢ s1,c ⎥ = ⎢ 09 ⎢ s ' ⎥ ⎢0 D ⎢ 2' ,c ⎥ ⎢ ⎢⎣ s 3,c ⎥⎦ ⎣ 0 B
0B
0D
0E 09
0B 0E
0D
09
(2.7)
09 ⎤ ⎡ s 0 ,c ⎤ ⎢ ⎥ 0 D ⎥⎥ ⎢ s1,c ⎥ 0 B ⎥ ⎢ s 2 ,c ⎥ ⎥ ⎥⎢ 0 E ⎦ ⎢ s 3, c ⎥ ⎣ ⎦
s 0' , c = ({02} • s o , c ) ¯ ({03} • s1, c ) ¯ s 2 , c ¯ s 3, c s1' , c = s 0 , c ¯ ({02} • s1, c ) ¯ ({03} • s 2 , c ) ¯ s 3, c s 2' , c = s 0 , c ¯ s1, c ¯ ({02} • s 2 , c ) ¯ ({03} • s 3, c ) s 3' , c = ({03} • s 0 , c ) ¯ s1, c ¯ s 2 , c ¯ ({02} • s 3, c ) 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[iNk]. 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
1 3
2 5 5
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 berbedabeda yang akan dijelaskan Tabel 2.4. Tabel 2.4 Bagian-bagian halaman kerja visual C# 2005 (Sumber : Jaenudin, 2006:22)
NO 1
NAMA BAGIAN MenuBar
KETERANGAN 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.
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
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 : class Program { NamaFungsi1( ) { } } atau class Program { NamaFungsi1( ) { } }
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
1. Model yang besar (skala proyek),
dibuat
dgn
cepat
dgn
pendekatan
membutuhkan resources yg baik dan
47
pembangunan berbasis komponen
solid
2. Jika data, analisa jelas, dan lingkup
2. Membutuhkan komitmen pengembang
kecil maka RAD dapat digunakan dgn
dan user yang sama agar cepat selesai
baik.
sesuai dengan rencana.
Sekuensial 1. Memberikan template di mana metode 1. Iterasi sering terjadi menyebabkan Linier (Waterfall)
analisis, desain, pengkodean, pengujian dan pemeliharaan bisa dilakukan.
masalah baru. 2. Client kesulitan untuk menyatakan
2. Pendekatan pengembangan perangkat
semua ke inginannya secara eksplisit
lunak lebih jelas.
diawal tahap pengembangan. 3. Hasil software yang dikembangkan baru akan diketahui lama setelah proyek pengembangan dimulai.
Prototipe
1. Pelanggan bisa langsung melihat sistem 1. yang sebenarnya.
Ketidaksadaran user bahwa ini hanya suatu model awal bukan model akhir.
2. Pengembang bisa membangun proyek 2.
Pengembang
dengan cepat sesuai dengan identifikasi
membuat
kebutuhan.
sembarangan. 3.
kadang-kadang implementasi
yang
Teknik dan tools yang tidak optimal pada
prototipe
digunakan
yang
akan
pada
tetap
software
sesungguhnya.
Spiral
Metode ini dirancang secara revolusioner
Metode ini lambat dan mahal karena
dengan tahapan yang jelas, tetapi terbuka
setiap tahapan yang dilalui harus
bagi partisipasi pemesan untuk ikut serta
mengikutsertakan pemesan.
menentukan pemodelan sistem
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 statetransition (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 simbolsimbol 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 Arah aliran program (FLOW LINE) Proses inisialisasi atau PREPARATION pemberian harga awal Proses perhitungan atau proses PROSES pengolahan data INPUT/OUTPUT DATA
Proses input atau output data, parameter, informasi Permulaan sub program atau
PREDEFINED proses menjalankan sub PROCESS program
51
(SUB PROGRAM)
Perbandingan pernyataan, penyeleksian data yang DECISION memberikan pilihan untuk langkah selanjutnya Penghubung bagian-bagian ON PAGE flow-chart yang berada pada CONNECTOR satu halaman Penghubung bagian-bagian OFF PAGE flow-chart yang berada pada CONNECTOR halaman berbeda Digunakan untuk memberikan ANNOTATION
keterangan keterangan guna
FLAG
memperjelas symbol-simbol yang lain
Gambar 2.23. akan ditampilkan contoh bagan alir yang didalamnya terdapat bentuk-bentuk dasar struktur logika.
52
mulai
Struktur perulangan DO-UNTIL
ya tidak
tidak ya for
Struktur perulangan FOR
Struktur perulangan
tidak
Struktur seleksi IF
selesai
ya
DO-WHILE Struktur seleksi IF-THEN-ELSE
Gambar 2.23. Contoh diagram alir (Sumber : Jogiyanto Hartono, 2002: 668)
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 1
Abstraksi
Uraian
Pada skripsi yang disusun oleh Marganda Papar Pada Sihombing UNIKOM)
(Mahasiswa dengan
Teknik
judul
studi
diatas
Informatika menggunakan
peneliti
tersebut
watermarking
untuk
“PENYIMPANAN menyisipkan informasi pada hak cipta
DATA TEKS KEDALAM SUARA DIGITAL sebagai bukti kepemilikan pada file audio DENGAN METODE LOW BIT CODING“ tahun berformat WAV, dengan audio sebagai file 2004. Watermarking pada berkas suara telah carrier dan file teks bartipe .txt sebagai menjadi fokus perhatian pada masa sekarang ini. input yang berisi infmasi hak cipta. Pada Hal ini berhubungan dengan transmisi data yang proses penyisipan dan ekstraksi peneliti lebih
cepat
melalui
Internet,
yang
telah tersebut menggunakan metode low bit
memungkinkan pertumbuhan berkas suara digital coding. yang
tidak
sah.
Watermarking
Pada
algoritma
peneliti
memberikan menggunakan algoritma bilangan acak
kemampuan untuk melindungi hak cipta terhadap semu untuk proteksi file audio. Dan pada produk berkas suara. Yang menjadi masalah tahap pembuatan peneliti menggunakan watermarking pada suara terletak pada kualitas bahasa pemograman C dan kopilator yang
54
berkas suara dan watermark yang disisipkan harus dipakai adalah Borland C++ Builder. 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.
2
Pada skripsi yang disusun oleh Ratih Purwasih Pada
studi
diatas
Sukandi (Mahasiswa Teknik Informatika, UIN) menggunakan dengan
judul
IMPLEMENTASI
“PERANCANGAN kebutuhan
peneliti
tersebut
watermarking
untuk
verifikasi
dan
kebutuhan
TEKNIK otentikasi citra pada file citra digital,
WATERMARKING PADA CITRA DIGITAL” dengan citra digital sebagai file carrier dan tahun 2009. Terdapat dua kebutuhan yang citra digital bertipe sama sebagai input berkaitan dengan penggunaan citra digital, yaitu yang berisi infmasi hak cipta. Pada proses kebutuhan verifikasi dan kebutuhan otentikasi penyisipan dan ekstraksi peneliti tersebut citra. Kebutuhan verifikasi yaitu kebutuhan untuk menggunakan
metode
LSB
(Least
mengetahui apakah suatu citra digital sudah Significant Bit). Pada algoritma peneliti pernah dimanipulasi atau belum, dengan kata lain menggunakan
algoritma
AES
untuk
untuk mengetahui keaslian suatu citra. Sedangkan proteksi citra digital. Dan pada tahap
55
kebutuhan otentikasi yaitu kebutuhan kepemilikan pembuatan peneliti menggunakan bahasa (copyright)
suatu
citra
digital.
Digital pemograman visual basic .Net.
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
56
dan berbasis desktop installer.
3
Pada skripsi yang disusun oleh BAGUS SETHIA Pada RAHMATULLOH Informatika
(Mahasiswa
UNIKOM)
PUBLIK
diatas
Teknik menggunakan
dengan
judul kebutuhan
peneliti
tersebut
watermarking
untuk
verifikasi
dan
kebutuhan
MENGGUNAKAN otentikasi citra pada file citra digital,
“WATERMARKING KUNCI
studi
UNTUK
VERIFIKASI dengan citra digital sebagai file carrier dan
CITRA” tahun 2007. Terdapat dua kebutuhan citra digital bertipe sama sebagai input yang berkaitan dengan penggunaan citra digital, yang berisi infmasi hak cipta. Pada proses yaitu
kebutuhan
otentikasi
citra.
verifikasi
dan
Kebutuhan
kebutuhan penyisipan dan ekstraksi peneliti tersebut
verifikasi
yaitu menggunakan
metode
LSB
(least
kebutuhan untuk mengetahui apakah suatu citra Significant Bit). Pada algoritma peneliti dijital sudah pernah dimanipulasi atau belum, menggunakan
algoritma
dengan kata lain untuk mengetahui keaslian suatu proteksi citra digital. 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
watermark),yaitu
bersifat watermark
fragile
(fragile
yang
rentan
perubahan/manipulasi. Sehingga ketika suatu citra yang sudah disisipi fragile watermark dimanipulasi kemudian diekstrak, akan menyebabkan hasil
RSA
untuk
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. digunakan
Algoritma adalah
LSB
watermarking
yang
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).
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.
58
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
proses
untuk
menyisipkan file ke data audio digital. 2. Proses Ekstraksi Proses
Ekstraksi
yaitu
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.
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.
65
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 Flowchart. Proses yang akan digambarkan dengan flow chart adalah proses penyisipan, ekstraksi, enkripsi dan ekstraksi.
71
Gambar 4.3. Flow-chart proses penyisipan pesan
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
73
Gambar 4.5. Flow-chart proses ekstraksi pesan
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
78
Gambar 4.8a. State Trantition Diagram
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 menu toolbar atau pada menu bar.
pada
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.
Ukuran Nama File Audio WAV
Audio Format Data (byte)
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
Secret File
Ukuran
Size
Data (byte)
(byte) Hari Untuk
Rocket Rockers –
Penyisipan Ekstraksi Pesan
Kesesuaian
Pesan
Data
529
Berhasil
Berhasil
Sesuai
Creep.txt
1747
Berhasil
Berhasil
Sesuai
First Time.txt
2068
Berhasil
Berhasil
Sesuai
Surrender.txt
3490
Berhasil
Berhasil
Sesuai
1321808
mu.txt
Hari Untukmu.wav RadioHead – 20805150 Creep.wav Luna4Melo – First 27265582 Time Andra And The Backbone –
46886446
Surrender
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
Ukuran
Secret File
Nama File Audio WAV
(byte)
Data (byte)
Rocket Rockers – Hari
1321808
Untukmu.wav Rocket Rockers – Hari Untukmu.wav
Size
Hari Untuk
529
mu.txt 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
Surrender.txt
3490
Surrender2.txt
39305
Andra And The Backbone – 46886446 Surrender Andra And The Backbone – 46886446 Surrender
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
Ukuran
WAV
Data (byte)
Secret File
Hari Untuk
Rocket Rockers – Hari
Size
Output
Ukuran
Size
Size
(byte)
WAV
data
(byte)
(byte)
Hari Untuk
529
529 R R.wav
1321808
1321808
mu.txt
Untukmu.wav RadioHead – 20805150
mu.txt
Creep.txt
1747
First Time.txt
2068
RadioHead.wav
20805150
Creep.txt
1747
First Time.txt
2068
Surrender.txt
3490
Creep.wav Andra And The 46886446 Backbone – Surrender
46886446 Backbone.wav
Luna4Melo – First 27265582 Time
Andra And The
Surrender.txt
3490
Luna4Melo.wav
27265582
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
Ukuran
Secret File
Size
Penyisipan Dibutuhkan
Tersedia
Nama File Audio WAV Data (byte) Rocket Rockers – Hari
(byte)
Pesan
(byte)
(byte)
1321808
Hari Untuk mu.txt
529
Berhasil
520954
660858
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
Surrender.txt
3490
Berhasl
22465656
23443177
Surrender2.txt
39305
Tidak
38132052
23443177
Untukmu.wav Rocket Rockers – Hari Untukmu.wav_1
Andra And The Backbone – 46886446 Surrender Andra And The Backbone – 46886446 Surrender_1
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
Ukuran
Ekstraksi
Data (byte)
Pesan
Secret File
Nama File Audio WAV
RR – Hari Untukmu.wav
1321808
Berhasil
RR _1.wav
1321808
Tidak
Rocker.txt kosong
RadioHead.wav
20805150
Berhasil
Hidden.txt
RadioHead_1.wav
20805150
Tidak
Luna4Melo.wav
27265582
Berhasil
Luna4Melo_1.wav
27265582
Tidak
kosong
Andra And The Backbone.wav
46886446
Berhasl
Luna.txt
Andra And The Backbone_1.wav
46886446
Tidak
kosong
kosong Andra.txt
114
Tabel 4.8. Tabel hasil uji ketahanan data wav to aac
Ukuran
Ekstraksi
Data (byte)
Pesan
Secret File
Nama File Audio WAV
RR – Hari Untukmu.wav
1321808
Berhasil
RR _1.wav
1321808
Tidak
Rocker.txt kosong
RadioHead.wav
20805150
Berhasil
Hidden.txt
RadioHead_1.wav
20805150
Tidak
Luna4Melo.wav
27265582
Berhasil
Luna4Melo_1.wav
27265582
Tidak
Kosong
Andra And The Backbone.wav
46886446
Berhasl
Luna.txt
Andra And The Backbone_1.wav
46886446
Tidak
Kosong
Kosong Andra.txt
Tabel 4.9. Tabel hasil uji ketahanan data wav to midi
Ukuran
Ekstraksi
Data (byte)
Pesan
Secret File
Nama File Audio WAV
RR – Hari Untukmu.wav
1321808
Berhasil
RR _1.wav
1321808
Tidak
Rocker.txt kosong
RadioHead.wav
20805150
Berhasil
Hidden.txt
RadioHead_1.wav
20805150
Tidak
Luna4Melo.wav
27265582
Berhasil
Luna4Melo_1.wav
27265582
Tidak
kosong
Andra And The Backbone.wav
46886446
Berhasl
Luna.txt
Andra And The Backbone_1.wav
46886446
Tidak
kosong
kosong Andra.txt
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,
115
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
menyisipkan berbagai macam file ke dalam media penampung.
dapat
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/analisiskualitatif-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.
117
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
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
1
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
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.
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.
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.
2.
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.
3.
3. 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
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. 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. 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. 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
2
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
covertext (nilai byte dapat mempresentasikan intensitas atau warna pixel atau amplitudo).
AES-256, yang perbedaannya akan ditunjukan oleh table 2.1.
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).
Tabel 1. Tiga buah versi AES (Sumber:Rinaldi Munir, 2006:158) Panjang Kunci (Nk words) AES128 AES196 AES256 5.
Ukuran Blok (Nb words)
Jumlah Putaran (Nr)
4
4
10
6
4
12
8
4
14
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).
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
Gambar 1. Fase-fase RAD James Martin (Sumber : Kendall & Kendall, 2003: 238)
3
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
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 5. Tampilan form extract
Gambar 2. Tampilan form utama
Gambar 6. Tampilan file save output text
Gambar 3. Tampilan open file audio . Gambar 7. Tampilan form about
Gambar 4. Tampilan save output file audio Gambar 8. Tampilan form bantuan
4
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
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. 2. 3. 4. 5.
Kesesuaian proses, yaitu perangkat lunak dapat melakukan proses penyisipan dan ekstraksi. Kesesuaian data, yaitu pengujian kesesuaian antara data yang berhasil diekstrak dengan data yang disisipkan. Kualitas suara, yaitu pengujian sama tidaknya suara WAV berlabel dengan suara WAV asli. Ukuran file terhadap file carrier 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.
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 No 1 2 3 4
Nama File Audio WAV Rocket Rockers – Hari Untukmu.wav RadioHead – Creep.wav Luna4Melo – First Time Andra And The Backbone – Surrender
Ukuran Data (byte)
Audio Format
1321808
PCM
20805150
PCM
27265582
PCM
46886446
PCM
Gambar 9. Spectrum suara file rocketrockers hari untukmu.wav asli
Pengujian ketahanan data dilakukan terhadap suara WAV berlabel. Pengujian ketahanan data yang akan dilakukan dengan pengujian
5
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
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 Rocket Rockers – Hari Untukmu.wav RadioHead – Creep.wav Luna4Melo – First Time Andra And The Backbone – Surrender
Ukuran Data (byte) 1321808 20805150 27265582
Size (byte) 529
Penyisipan Pesan Berhasil
Ekstraksi Pesan Berhasil
Kesesuaian Data Sesuai
1747
Berhasil
Berhasil
Sesuai
First Time.txt
2068
Berhasil
Berhasil
Sesuai
Surrender.txt
3490
Berhasil
Berhasil
Sesuai
Secret File Hari Untuk mu.txt Creep.txt
46886446
6
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
Tabel 4. Tabel uji ukuran file pesan terhadap file carrier. Ukuran Data (byte)
Secret File
Rocket Rockers – Hari Untukmu.wav
1321808
Hari Untuk mu.txt
529
Rocket Rockers – Hari Untukmu.wav RadioHead – Creep.wav RadioHead – Creep.wav Luna4Melo – First Time Luna4Melo – First Time Andra And The Backbone – Surrender Andra And The Backbone – Surrender
1321808
Hari Untuk mu2.txt
1616
Creep.txt
1747
Creep2.txt
21674
First Time.txt
2068
First Time2.txt Surrender.txt
28796 3490
Surrender2.txt
39305
Nama File Audio WAV
20805150 20805150 27265582 27265582
Size (byte)
Tabel 5. Tabel uji ketahanan data Nama File Audio WAV R R.wav
Ukuran Data (byte) 1321808 1321808
R R_1.wav RadioHead.wav
20805150
RadioHead_1.wav
20805150
Luna4Melo.wav
27265582
Luna4Melo_1.wav Andra And The Backbone.wav Andra And The Backbone_1.wav
27265582 46886446 46886446
46886446 46886446
Tabel 6. Tabel hasil uji spesifikasi sistem Nama File Audio WAV Rocket Rockers – Hari Untukmu.wav Rocket Rockers – Hari Untukmu.wav_1 RadioHead – Creep.wav RadioHead – Creep.wav_1 Luna4Melo – First Time Luna4Melo – First Time_1 Andra And The Backbone – Surrender
Secret File
Size (byte)
Penyisipan Dibutuhkan (byte) Pesan
Tersedia (byte)
1321808
Hari Untuk mu.txt
529
Berhasil
520954
660858
1321808
Hari Untuk mu2.txt Creep.txt Creep2.txt
1616
Tidak
1407850
660858
1747 21674
Berhasil Tidak
78459965 16960476
10402529 10402529
First Time.txt First Time2.txt
2068 28796
Berhasil Tidak
10676543 21713176
13632745 13632745
Surrender.txt
3490
Berhasl
22465656
23443177
Surrender2.txt
39305
Tidak
38132052
23443177
Ukuran Data (byte)
20805150 20805150 27265582 27265582 46886446
Andra And The Backbone 46886446 – Surrender_1
7
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
Tabel 7. Tabel hasil uji ukuran file pesan terhadap file carrier Nama File Audio WAV
Ukuran Data (byte)
Rocket Rockers – Hari Untukmu.wav
1321808
RadioHead – Creep.wav
20805150
Andra And The Backbone – Surrender
46886446
Luna4Melo – First Time
27265582
Secret File
Size (byte)
Hari Untuk mu.txt Creep.txt
529
First Time.txt
2068
Surrender.txt
1747
3490
Tabel 8. Tabel hasil uji ketahanan data wav to mp3 Nama File Audio WAV RR – Hari Untukmu.wav RR _1.wav
Ukuran data
R R.wav
1321808
RadioHead.wav
20805150
Andra And The Backbone.wav
46886446
Luna4Melo.wav
27265582
Secret File
1321808
Berhasil
Rocker.txt
RR – Hari Untukmu.wav
1321808
Tidak
kosong
RR _1.wav
20805150
RadioHead_1.wav
20805150
Luna4Melo.wav
27265582
Luna4Melo_1.wav
27265582 46886446 46886446
Berhasil Tidak Berhasil
Hidden.txt Kosong Andra.txt
Tidak
Kosong
Berhasl
Luna.txt
Tidak
Kosong
Size (byte)
Size (byte)
Hari Untuk mu.txt Creep.txt
529 1747
First Time.txt
2068
Surrender.txt
3490
Tabel 9. Tabel hasil uji ketahanan data wav to aac
Ekstraksi Pesan
Ukuran Data (byte)
RadioHead.wav
Andra And The Backbone.wav Andra And The Backbone_1.wav
Output WAV
Nama File Audio WAV
Ekstraksi Pesan
Secret File
1321808
Berhasil
Rocker.txt
1321808
Tidak
Ukuran Data (byte)
RadioHead.wav
20805150
RadioHead_1.wav
20805150
Luna4Melo.wav
27265582
Luna4Melo_1.wav
27265582
Andra And The Backbone.wav Andra And The Backbone_1.wav
46886446 46886446
Berhasil Tidak Berhasil
kosong Hidden.txt Kosong Andra.txt
Tidak
Kosong
Berhasl
Luna.txt
Tidak
Kosong
8
Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio
Tabel 10. Tabel hasil uji ketahanan data wav to midi Nama File Audio WAV
Ukuran Data (byte)
Ekstraksi Pesan
Secret File Rocker.txt
RR – Hari Untukmu.wav
1321808
Berhasil
RR _1.wav
1321808
Tidak
RadioHead.wav
20805150
RadioHead_1.wav
20805150
Luna4Melo.wav
27265582
Luna4Melo_1.wav
27265582
Andra And The Backbone.wav Andra And The Backbone_1.wav
8.
Berhasil Tidak Berhasil
46886446 46886446
kosong Hidden.txt kosong Andra.txt
Tidak
kosong
Berhasl
Luna.txt
Tidak
kosong
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. 2. 3.
4.
5. 6.
Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan prosen penyisipan file pesan ke dalam file audio. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan proses ekstraksi file pesan dari dalam file audio. 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. Berdasarkan uji ketahanan data menunjukan data teks tidak berhasil diekstrak, dimana artinya pesan dalam wav berlabel tidak dapat diekstrak setelah melalui konversi. Metode low bit coding tidak menambah ukuran berkas suara WAV setelah disisipi data teks. Berdasarkan hasil uji analisis pada Tabel dapat dinyatakan bahwa file masukan dan file hasil keluaran memiliki jumlah bit yang sama
7.
persis, dimana artinya penyisipan pesan tidak mempengaruhi besar ukuran pesan awal maupun akhir. 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.
2. 3. 4.
Untuk pengembangan selanjutnya penyisipan dapat dilakukan pada sampel suara dengan frekuensi tertentu, yaitu frekuensi yang tidak akan dibuang pada saat kompresi, Aplikasi hanya menggunakan WAV sebagai media penampung, diharapkan dapat dikembangkan sehingga dapat menggunakan file MP3, MIDI dan lain-lain sebagainya. 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
9
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
120
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
123
Spectrum suara Creep.wav dengan Filter Bandstop
Spectrum suara Creep.wav dengan Filter Bandstop
LAMPIRAN II FILE INPUT
Pesan asli pada file audio Surrender.wav
Pesan asli yang telah di enkripsi pada file audio Surrender.wav
124
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
127
Pesan asli yang diambil pada file audio creep.wav
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) " + 128
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 {}
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
Pembimbing II
Yusuf Durrachman, M.Sc, MIT
Arini, MT
NIP. 19710522 200604 1 002
NIP. 19760131 200901 2 001
Mengetahui, Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, MIT NIP. 19710522 200604 1 002
iii
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 NIP. 470 035 764
Ria Hari Gusmita, M.Kom NIP. 19820817 200912 2 002
Pembimbing I
Pembimbing II
Yusuf Durrachman, M.Sc, MIT NIP. 19710522 200604 1 002
Arini, MT NIP. 19760131 200901 2 001
Mengetahui, Dekan Fakultas Sains dan Teknologi
Ketua Program Studi Teknik Informatika
DR. Syopiansyah Jaya Putra M. Sis NIP. 19680117 200112 1 001
Yusuf Durrachman, M.Sc, MIT NIP. 19710522 200604 1 002 iv
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR – BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.
Ciputat,
September 2010
Muhamad Soleh 103091029579
v