Analisis dan implementasi watermarking dengan algoritma aes untuk pemberian data hak cipta pada file audio
i 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
(2)
ii
ANALISIS DAN IMPLEMENTASI WATERMARKING
DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA
HAK CIPTA PADA FILE AUDIO
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer
Pada Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh: Muhamad Soleh
103091029579
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
(3)
vi
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
(4)
vii
KATA PENGANTAR
Dengan mengucapkan rasa syukur kehadirat Allah SWT, atas rahmat dan karunia-Nya penulis dapat menyelesaikan laporan Tugas Akhir ini dengan judul “Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio”, yang sekaligus merupakan salah satu syarat dalam menyelesaikan program studi Strata Satu (S1) pada jurusan Teknik Informatika, Unicersitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta.
Berhasilnya penyusunan laporan Tugas Akhir ini tidak terlepas dari semua pihak yang telah memberikan bimbingan, dukungan serta dorongan semangat kepada penulis. Karena itu pada kesempatan ini penulis menyampaikan rasa terima kasih kepada :
1. Dr. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains dan
Teknologi Universitas Islam Negeri (UIN) Jakarta.
2. Yusuf Durrachman, M.Sc, MIT, selaku Ketua Program Studi Teknik
Informatika dan Viva Arifin, MMSi, selaku Sekretaris Program Studi Teknik Informatika.
3. Yusuf Durrachman, M.Sc, MIT, dan Arini, MT, selaku dosen pembimbing I dan II, yang telah meluangkan perhatian dan waktu untuk membimbing dan mendidik dalam penyusunan skripsi ini.
4. Bapak dan Ibu dosen Jurusan Teknik Informatika Universitas Islam Negeri Syarif Hidayatullah Jakarta, yang telah memberikan ilmunya kepada
(5)
viii 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
(6)
ix
LEMBAR PERSEMBAHAN
Betapa saya sangat menyadari bahwa hidup ini adalah perjuangan yang bahan bakarnya adalah pengorbanan, ketulusan, kearifan, keistikomahan dan keikhlasan. Skripsi ini adalah salah satu bagian dalam perjuangan hidup saya, dimana tempat saya meletakan beberapa harapan dan citi-cita dalam hidup. Tidak peduli seberapa banyak orang meragukan kemampuan saya untuk menyelesaikan skripsi ini. Namun saya sangat yakin dan percaya tanpa seizin Allah SWT, skripsi ini tidak akan terselesaikan dengan baik, karena Dialah yang Maha Berkehendak dan Maha Memiliki segala kekuatan untuk menentukan sesuatu.
Dalam proses penyusunan skripsi ini banyak sekali masukan, pengalaman serta motivasi yang menuntunku menuju proses pendewasaan berfikir dan bertingkah laku. Alhamdulillah dan terima kasih Aku ucapkan kepada semua pihak yang telah menjadi perantara Allah SWT, agar Aku terus bisa merasakan karunia-Nya itu, diantaranya:
1. Ayahanda H. Asmat, Ibunda Hj. Taslimah, serta kakak-kakak yang tak
henti-hentinya memberikan dukungan baik moril maupun materil bagi peneliti dalam menjalani hidup ini.
2. My Computer yang telah menemaniku dan menghiburku dalam penyusunan skripsi ini, sampai selesainya skripsi ini.
3. Keluarga besar Teknik Informatika kelas C angkatan 2003, yang telah melewati waktu bersama, terimakasih atas saran-saran serta dukungan yang tidak pernah disadari menjadi tambahan semangat untuk penulis.
(7)
x
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
(8)
xi
DAFTAR ISI
Halaman Sampul ... i
Halaman Judul ... ii
Lembar Pengesahan Pembimbing ... iii
Lembar Pengesahan Ujian ... iv
Lembar Pernyataan ... v
Abstrak ... vi
Kata Pengantar ... vii
Lembar Persembahan ... ix
Daftar Isi ... xi
Daftar Gambar ... xvi
Daftar Tabel ... xx
Daftar Lampiran ... xxi
Daftar Istilah ... xxii
BAB I PENDAHULUAN 1.1. Latar Belakang Masalah ... 1
1.2. Rumusan Masalah ... 3
1.3. Batasan Masalah ... 3
1.4. Tujuan Penelitian ... 4
1.5. Manfaat Penelitian ... 4
1.6. Metode Penelitian ... 5
(9)
xii
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. AdvancedEncryption Standard (AES) ... 28
2.6.1. Representasi Data ... 29
2.6.2. Algoritma AES ... 31
2.6.2.1. Enkripsi ... 31
(10)
xiii
2.6.2.1.2. ShiftRows ... 33
2.6.2.1.3. MixColumns ... 34
2.6.2.1.4. AddRoundKey ... 35
2.6.2.2. Dekripsi ... 35
2.6.2.2.1. InvShiftRows ... 36
2.6.2.2.2. InvSubBytes ... 37
2.6.2.2.3. InvMixColumns ... 37
2.6.2.2.4. InverseAddRoundKey ... 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
(11)
xiv
(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 ... 654.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
(12)
xv
4.4. Fase Pelaksanaan ... 83
4.4.1. Implementasi ... 83
4.4.1.1. Cara Penggunaan Aplikasi ... 83
4.4.1.2. Proses Penyisipan ... 84
4.4.1.3. Proses Ekstraksi ... 89
4.4.1.4. Form About ... 93
4.4.1.5. Form Bantuan ... 94
4.4.2. Pengujian Aplikasi ... 95
4.4.2.1. Pengujian Spesifikasi Sistem ... 98
4.4.2.2. Pengujian Ukuran File Terhadap File Carrier 104
4.4.2.3. Pengujian Ketahanan Data ... 105
4.4.3. Analisis Hasil Pengujian Aplikasi ... 108
4.4.3.1. Analisis Hasil Uji Spesifikasi Sistem ... 108
4.4.3.2. Analisis Hasil Uji Ukuran File Terhadap File Carrier ... 111
4.4.3.3. Analisis Hasil Uji Ketahanan Data ... 113
BAB V PENUTUP 5.1. Kesimpulan ... 115
5.2. Saran ... 116
DAFTAR PUSTAKA ... 117 LAMPIRAN
(13)
xvi
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
(14)
xvii
Gambar 2.22 State Transition Diagram yang disederhanakan untuk
untuk software foto kopi ... 49
Gambar 2.23 Contoh diagram alir... 52
Gambar 3.1 Metodologi penelitian pengembangan aplikasi watermarking dengan algoritma AES pada file audio ... 64
Gambar 4.1. Proses penyisipan ... 69
Gambar 4.2. Proses ekstraksi ... 70
Gambar 4.3. Flow-chart proses penyisipan pesan ... 71
Gambar 4.4. Flow-chart proses enkripsi dengan metode AES di sebelah kiri dan flow-chart proses penyisipan pesan menggunakan metode LSB di sebelah kanan ... 72
Gambar 4.5. Flow-chart proses ekstraksi pesan ... 73
Gambar 4.6. Flow-chart proses pengambilan pesan menggunakan metode LSB di sebelah kiri dan flow-chart proses dekripsi dengan metode AES di sebelah kanan ... 74
Gambar 4.7. Rancangan form utama ... 77
Gambar 4.8a. State Transition Diagram ... 78
Gambar 4.8b. State Transition Diagram ... 79
Gambar 4.9. Rancangan form extract Message ... 80
Gambar 4.10. Rancanganform about ... 81
Gambar 4.11. Rancanganform help ... 81
(15)
xviii
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
(16)
xix
Gambar 4.30. Pesan asli yang telah di enkripsi pada file audio hari untukmu
asli ... 103
Gambar 4.31. File pesan yang diambil dari file audio hari untukmu ... 103
Gambar 4.32. Tampilan aplikasi xilisoft ... 106
Gambar 4.33. Tampilan add file ... 106
Gambar 4.34. Tampilan menu list file profile ... 107
(17)
xx
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
(18)
xxi
DAFTAR LAMPIRAN
LAMPIRAN I ………..………. 120
GRAFIK SINYAL SUARA WAV………..………. 120
LAMPIRAN II ………...………..………..………..….... 124
FILE INPUT ………...………..………..………..….... 124
LAMPIRAN III ………...………..……….……..….... 128
(19)
xxii
Istilah
Arti
Analisis
Penyelidikan terhadap suatu peristiwa (karangan, perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya (sebab-musabab, duduk perkaranya, dan sebagainya.)
Algoritma Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis
Data
Data adalah fakta berupa angka, karakter, symbol, gambar, tanda-tanda, isyarat, tulisan, suara, bunyi yang merepresentasikan keadaan sebenarnya yang selanjutnya digunakan sebagai masukan suatu Sistem Informasi.
Hak cipta
Hak eksklusif bagi pencipta atau penerima hak untuk mengumumkan atau memperbanyak ciptaannya atau memberikan izin untuk itu dengan tidak mengurangi pembatasan-pembatasan menurut peraturan perundang-undangan yang berlaku
Hardware
Perangkat keras (hardware) mengacu kepada obyek memungkinkan untuk disentuh, seperti disket, disk drive, layar monitor, keybord, printer, scanner dan chip.
Internet
Suatu jaringan komputer global terbentuk dari jaringan-jaringan komputer lokal dan regional, memungkinkan komunikasi data antar komputer-komputer yang terhubung ke jaringan tersebut.
Kualitas Tingkat baik buruknya atau taraf atau derajat sesuatu.
WAV merupakan format standar berkas audio yang
dikembangkan Microsoft dan IBM. PCM
File wave yang tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang.
Software
Perangkat Lunak (software) adalah perintah-perintah atau data komputer. Semua yang dapat disimpan secara elektronik adalah software. Software sering dibagi menjadi dua kaktegori: - Software sistem (system software): yang meliputi sistem operasi dan semua utilitas yang menjalankan komputer - Software
aplikasi (application software): yang meliputi
program yang digunakan oleh pengguna untuk melakukan pekerjaan tertentu, seperti pengolah kata (word processors), sehingga mudah untuk membuah
(20)
xxiii
dan menguji program-program sederhana.
chipertext Bentuk pesan yang tidak dapat dibaca atau dipahami plaintext pesan yang dapat dibaca
(21)
1 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
(22)
2
yang mengetahui kunci untuk mengestrak atau membuka informasi yang disisipkan.
Salah satu cara untuk mengatasi permasalahan diatas dapat
menggunakan teknik audio watermarking dengan kriptografi.
Watermarking atau tanda air bisa diartikan sebagai suatu teknik penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain
menyadari adanya data tambahan pada data host-nya (Doni Ariyus,
2007:92). Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya (Rinaldi Munir, 2006:2). Berdasarkan kunci yang dipakainya untuk enkripsi dan dekripsi, kriptografi terbagi dua diantaranya algoritma kriptografi modern yang memakai sistem algoritma kunci-simetri, yaitu : DES (Data Encryption Standard), Blowfish, Triple-DES, IDEA, Serpent, AES dan lain-lain, dan algoritma kriptografi modern yang menggunakan algoritma kunci nirsimetri, yaitu RSA, Diffle Hellman, dan lain-lain. Penyisipan informasi watermark dengan algoritma AES ke dalam audio dilakukan sedemikian, sehingga tidak merusak kualitas audio yang telah disisipi informasi hak cipta. Informasi hak cipta ini harus dapat diekstrak untuk pembuktian keaslian atas produk audio digital tersebut.
Penggunaan watermarking dan algoritma AES secara bersamaan dimaksudkan untuk memberikan keamanan berlapis dalam pengamanan audio. Berdasarkan latar belakang masalah diatas maka tema penulisan
(23)
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.
(24)
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.
(25)
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
(26)
6
diperlukan dari berbagai buku, e-book, website, serta sumber lainya yang berkaitan dengan penelitian yang dapat dijadikan acuan dalam penelitian ini.
b. Studi Literatur
Studi literatur merupakan pengembangan instrumen atau penelitian sejenis yang sudah dibuat sebelumnya
2. Metode Pengembangan Sistem
Metode pengembangan sistem yang digunakan dalam pembuatan skripsai ini menggunakan empat tahap siklus
pengembangan model Rapid Application Development (RAD),
Kendall & Kendall, (1998 & 2000) yang terdiri dari :
a. Fase menentukan syarat-syarat, yaitu menetukan tujuan dan
kebutuhan sistem.
b. Fase perancangan, yaitu perancangan proses-proses yang akan
terjadi dalam sistemdan 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:
(27)
BAB I Pendahuluan
Penguraian secara singkat mengenai latar belakang masalah, rumusan masalah, batasan masalah, tujuan dan manfaat penelitian, metodologi penelitian serta sistematika penulisan.
BAB II Landasan Teori
Bab ini berisikan semua landasan teori yang digunakan dalam penyusunan dan penulisan skripsi ini.
BAB III Metodologi Penelitian
Bab ini berisi uraian mengenai metodologi yang dipakai penulis, metode pengumpulan data dan metode pengembangan sistem.
BAB IV Analisa dan Perancangan
Bab ini menjelaskan spesifikasi perangkat keras dan perangkat lunak yang digunakan, implementasi program, pengujian, analisa pengujian serta tampilan layar hasil program berikut cara penggunaannya.
BAB V Penutup
Pada bab ini akan berisi kesimpulan dari hasil pembahasan bab-bab sebelumnya dan berisi saran-saran untuk pengembangan lebih lanjut.
(28)
8 BAB II
LANDASAN TEORI
2.1. Pengetian Analisis
Analisis atau juga disebut dengan analisa menurut Kamus Besar Bahasa Indonesia adalah Penyelidikan terhadap suatu peristiwa (karangan, perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya (sebab-musabab, duduk perkaranya, dan sebagainya.) (http : // pusat bahasa. Diknes. Go. Id).
Analisis data merupakan upaya mencari dan menata data secara sistematis untuk meningkatkan pemahaman peniliti tentang kasus yang diteliti dan menyajikannya sebagai temuan bagi orang lain. Proses analisis data dalam penelitian adalah sebagai berikut, (http : // www.um-pwr.ac.id) : 1. Menelaah seluruh data yang terkumpul dari berbagai sumber.
2. Mengadakan reduksi data dengan jalan membuat abstraksi. 3. Menyusun dalam satuan-satuan dan kategorisasi.
4. Menafsirkan dan atau memberikan makna terhadap data.
Analisis dapat diartikan sebagai proses atau tahapan dalam penelitian atau penyelidikan dalam mengevaluasi data yang telah terkumpul untuk meningkatkan pemahaman sehingga menhasilkan suatu kesimpulan ynag dapat dipertanggungjawabkan.
(29)
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).
(30)
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
(31)
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
(32)
12
aslinya. Hal ini dimaksudkan untuk tidak merubah status dokumen yang bernilai tinggi secara hukum maupun komersial. 2. Robustness : Karakteristik ini tergantung aplikasi dari watermark
itu sendiri. Apabila digunakan sebagai identifikasi
kepemilikan/copyright, watermark harus memilki ketahanan
terhadap berbagai macam modifikasi yang mungkin bisa
dilakukan untuk merubah/menghilangkan copyright. Jika
digunakan untuk mengautentifikasi content, watermark sebisa
mungkin bersifat fragile, sehingga apabila isinya telah
mengalami perubahan, maka watermark juga akan mangalamu perubahan/rusak, sehingga dapat terdeteksi adanya usaha modifikasi terhadap isi.
3. Security : Teknik watermark harus dapat mencegah usaha-usaha untuk mendeteksi dan memodifikasi informasi watermark yang
disisipkan ke dalam dokumen. Kunci watermark menjamin
hanya orang yang berhak saja yang dapat melakukan hal tersebut. Namun aspek ini tidak dapat mencegah siapapun untuk membaca dokumen yang bersangkutan.
2.3.3. Cara Kerja Watermarking
Dalam watetmark digital, sebuah sinyal low-energy
disisipkan ke sinyal utama sebagai cover signal untuk
menyembunyikan sinyal low-energy tersebut (Doni ariyus,
(33)
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.
(34)
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
(35)
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
(36)
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.
(37)
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 =
(38)
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).
(39)
Bitrate merupakan ukuran bit tiap sample-nya, dapat disimpan per 8-bits, 16-8-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.
(40)
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).
(41)
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
(42)
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
(43)
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
(44)
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) :
(45)
1. Kerahasian
Kerahasiaan adalah layanan yang ditunjukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyadikan pesan dari plainteks menjadi cipherteks. 2. Integritas Data (data Integrity)
Untuk menjaga intgeritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, anatara lain penyisipan, penghapusan dan pensubsitusian data lain ke pesan data yang sebenarnya. 3. Otentikasi (authentication)
Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik itu mengidentifikasi kebenaran pihak-pihak
yang berkumunikasi (user authentication atau entity
authentication) mau pun mengidentifikasi kebenaran sumber pesan (data origin authentication).
4. Nirpenyangkalan (non-repudiation)
Kriptografi dapat mencegah salah satu pihak yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman begitu pun juga dengan penerima pesan menyangkal telah menerima pesan.
(46)
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
(47)
dan penerima pesan biasanya sudah memastikan kunci yang sama sebelum pesan dikirimkan.
Berikut merupakan contoh algoritma kriptografi modern yang memakai sistem algoritma kunci-simetri, yaitu : DES (Data Encryption Standard), Blowfish, Triple-DES, IDEA, Serpent, AES dan lain-lain. Kriptografi simetri dikenal sebagai satu-satunya jenis kriptografi sampai dengan tahun 1976.
2.5.4.2. Kriptografi Kunci-Nirsimetri
Kriptografi kunci nirsimetri atau kunci public adalah kriptografi yang memakai dua kunci. Dalam artian sistem kriptografi ini memakai dua kunci yang berbeda untuk mengenkripsi dan mendekripsi pesan.
Kunci unutk mengenkripsi pesan dan mengirimkannya tidak bersifat rahasia atau bisa diketahui oleh siapa saja. Sedangkan kunci untuk membuka pesan hanya diketahui oleh pihak yang menerima saja.
Gambar 2.6. Skema kriptografi kunci Nir-Simetri
(48)
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
(49)
Encryption Standard). Dari hasil seleksi tahap pertama NIST memilih 15 algoritma, dan pada tahap kedua memilih 5 algoritma. NIST akhirnya mengumumkan standar baru pada November 2001. NIST memilih algoritma Rijndael yang dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen kriptografer dari Belgia sebagai algoritma AES (Wiliam Stallings, 2003:140).
2.6.1. Representasi Data
Input dan output dari algoritma AES terdiri dair urutan data sebesar 128 bit. Urutan data yang sudah terbentuk dalam satu kelompok 128 bit tersebut disebut juga sebagai blok data atau plaintext yang nantinya akan dienkripsi mnjadi ciphertext. Cipher key dari AES terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit.
Urutan bit diberi nomor urut dari 0 sampai dengan n-1 dimana n adalah nomor urutan. Urutan data 8 bit secara beruntun disebut sebagai byte dimana byte ini adalah unit dasar dari operasi yang akan dilakukan pada blok data.
Dalam algoritma AES, data sepanjang 128 bit akan dibagi-bagi menjadi array byte dimana setiap array byte ini terdiri dari 8 bit data input yang saling berurutan. Array byte ini direpsentasikan dalam bentuk :
a0a1a2...a15 (2.1) Dimana :
(50)
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
(51)
(Sumber: Renaldi Munir, 2006:158) 2.6.2. Algoritma AES
Rinjdael mendukung panjang kunci dari 128 sampai 256 bit dengan step 32 bit. Karena AES menetapkan panjang kunci adalah 128, 192, dan 256, maka dikenal sebagai AES-128, AES-192, dan AES-256, yang perbedaannya akan ditunjukan oleh table 2.1.
Tabel 2.1. Tiga buah versi AES
(Sumber:Rinaldi Munir, 2006:158)
Panjang Kunci (Nk
words)
Ukuran Blok (Nb words)
Jumlah Putaran (Nr)
AES-128 4 4 10
AES-196 6 4 12
AES-256 8 4 14
2.6.2.1. Enkripsi
Proses enkripsi pada algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, MixColumns, dan AddRounkey. Pada awal proses enkripsi, input yang telah dikopikan ke dalam state akan mengalami transformasi byte AddRoundKey. Setelah itu state akan mengalami transformasi SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr (jumlah putaran). Proses ini dalam algoritma AES di sebut juga round function. Round yang terakhir agak berbeda dengan round-round sebelumnya
(52)
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()
(53)
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.
(54)
34
Gambar 2.10. Transformasi ShiftRows
(Sumber : http://student.ceid.upatras.gr)
2.6.2.1.3.MixColumns
MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom pada state. Elemen pada kolom dikalikan dengan suatu polinomial tetap a(x) = {03}x3 + {01}x2 + {01}x + {02}.Secara lebih jelas, transformasi MixColumnsdapayt dilihat pada perkalian matriks berikut ini :
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
c c c c c c c cs
s
s
s
s
s
s
s
, 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 002
01
01
03
03
02
01
01
01
03
02
01
01
01
03
02
({
03
}
)
({
02
}
)
)
}
03
({
)
}
02
({
)
}
03
({
)
}
02
({
)
}
03
({
)
}
02
({
, 3 , 2 , 1 , 0 ' , 3 , 3 , 2 , 1 , 0 ' , 2 , 3 , 2 , 1 , 0 ' , 1 , 3 , 2 , 1 , ' , 0 c c c c c c c c c c c c c c c c c c c o cs
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
•
¯
¯
¯
•
=
•
¯
•
¯
¯
=
¯
•
¯
•
¯
=
¯
¯
•
¯
•
=
(55)
2.6.2.1.4.AddRoundKey
Pada proses AddRoundKey sebuah round key
ditambahkan pada state dengan operasi bitwise
XOR. Setiap round key terdiri dari NbWord dimana tiap word tersebut akan dijumlahkan dengan word atau kolom yang bersesuaian dari state sehingga :
[
]
[
]
[
]
Nb
c
w
s
s
s
s
s
s
s
s
c c c c c c c c roundNbc0
untuk
,
,
,
,
,
,
1', 2', 3', 0, 1, 2, 3, * ' , 0£
£
¯
=
+ (2.5)[wi] adalah word dari key yang bersesuaian
dimana i = round*Nb+c. Transformasi
AddRoundKey diimplementasikan pertama kali pada round = 0, dimana key yang digunakan adalah initial
key (key yang dimasukan oleh kriptografer dan
belum mengalami proses key expansion). 2.6.2.2. Dekripsi
Transformasi cipher dapat dibalikan dan
diimplementasikan dalam arah yang berlawanan untuk
menghasilkan inverse cipher yang mudah dipahami untuk
algoritma AES. Transformasi byte yang digunakan pada
invers cipher adalah InvShiftRows, InvSubBytes,
InvMixColumns, dan AddroundKey. Algoritma dekripsi dapat dilihat pada skema berkut ini :
(56)
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
(57)
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 :
(58)
38
Atau dalam matriks :
(
)
(
)
(
)
'
x
s
x
a
x
s
=
˜
(2.7)⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
c c c c c c c cs
s
s
s
E
D
B
B
E
D
D
B
E
D
B
E
s
s
s
s
, 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 00
09
0
0
0
0
09
0
0
0
0
09
09
0
0
0
)
}
02
({
)
}
03
({
)
}
03
({
)
}
02
({
)
}
03
({
)
}
02
({
)
}
03
({
)
}
02
({
, 3 , 2 , 1 , 0 ' , 3 , 3 , 2 , 1 , 0 ' , 2 , 3 , 2 , 1 , 0 ' , 1 , 3 , 2 , 1 , ' , 0 c c c c c c c c c c c c c c c c c c c o cs
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
•
¯
¯
¯
•
=
•
¯
•
¯
¯
=
¯
•
¯
•
¯
=
¯
¯
•
¯
•
=
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
(59)
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)
(60)
40
Dari pseudocode dapat dilihat bahwa word ke Nk pertama pada ekspansi kunci berisi kunci cipher. Setiap word berikutnya, w[i], sama dengan XOR dari word sebelumnya, w[i-1] dan word Nk yang ada pada posisi sebelumnya, w[i-Nk]. Untuk word pada posisi yang merupakan kelipatan Nk, sebuah tranformasi diaplikasikan pada w[i-1] sebelum XOR, lalu dilanjutkan oleh XOR dengan konstanta round, Rcon[i]. Transformasi ini terdiri dari pergeseran siklik dari byte data dalam suatu word RotWord, lalu diikuti aplikasi dari lookup tabel untuk semua 4 byte data dari word SubWord.
2.7. Bahasa Pemrograman C#
C# (dibaca “See-Sharp”) adalah bahasa pemrograman baru yang
diciptakan oleh Microsoft (dikembangkan dibawah kepemimpinan Andres Heljsberg yang juga telah menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++ dan Borland Delphi). C# pada dasarnya bukan bahasa sulit karena intinya mengambil dari berbagai bahasa pemrograman yang ada. Bahasa yang paling banyak digunakan adalah bahasa Java. Untuk lebih jelas mengetahui komposisi bahasa C#, dapat dilihat pada gambar 2.14.
(61)
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
(62)
42
Gambar 2.15. Tampilan visual C#
(Sumber : Jaenudin, 2006: 21)
Pada gambar 2.15, bagian yang ditunjuk oleh panah bernomor adalah bagian penting dari halaman kerja Visual C# dengan fungsi yang berbeda-beda yang akan dijelaskan Tabel 2.4.
Tabel 2.4 Bagian-bagian halaman kerja visual C# 2005 (Sumber : Jaenudin, 2006:22)
NO NAMA BAGIAN KETERANGAN
1 MenuBar Berisi daftar menu (perintah) yang umum
digunakan oleh setiap aplikasi berbasis windows, misalnya : Menu File.
2 ToolBar Berisi daftar perintah yang sering digunakan dan dipresentasikan dalam bentuk tombol.
3 ToolBox Berisi daftar komponen yang dapat
digunakan untuk mendesain tampilan muka sebuah aplikasi.
1
3 5
2
(63)
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 :
(64)
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
(65)
class Program { NamaFungsi1( ) {
} }
atau class Program { NamaFungsi1( ) {
} }
tutup “)”. Penamaan fungsi tidak boleh mengandung spasi. Awal dan akhir suatu fungsi di mulai dengan tanda “{“ dan diakhiri dengan tanda “}”. Berikut contoh penamaan fungsi yang diletakkan di dalam Class :
Gambar 2.18. Contoh penamaan fungsi class
(Sumber : http://otak.csharpindonesia.net) 2.7.2. Eksekusi Program
Untuk mengesekusi program dilakukan perintah berikut ini :
Debug -> Start Debuging atau dengan menekan F5 dari keyboard File eksekusi akan berekstensi .EXE.Gambar 2.20, memperlihatkan hasil eksekusi program di gmabar2.17.
Gambar 2.19. Hasil eksekusi dari gambar 2.17 (Sumber : Jaenudin, 2006: 31)
(66)
46
2.8. Perancangan Program
Di dalam merancang suatu program, dapat digunakan beberapa alat
bantu diantaranya, metode pengembangan sistem Rapid Application
Development (RAD), Diagram state-transition (STD), dan Flow-chart. 2.8.1. Rapid Application Development (RAD)
Model pengembangan RAD diperkenalkan oleh James Martin pada tahun 1991 (http://en.wikipedia.org). Adapun metode
pengembangan RAD (Rapid Application Development) menurut
James Martin melingkupi fase-fase sebagai berikut :
Gambar 2.20. Fase-fase RAD James Martin
(Sumber : Kendall & Kendall, 2003: 238)
Model RAD digunakan untuk melakukan pendekatan berorientasi objek terhadap pengembangan sistem yang mencakup suatu metode pengembangan perangkat-perangkat lunak (Kendall & Kendall, 2003:237). Pada table 2.5 akan dijelaskan mengenai perbandingan antara metode RAD dengan metode pengembangan sistem yang lain yaitu metode sekuensial linear, prototype dan spiral.
Tabel 2.5. Perbandingan metode RAD, Sekuensial Linear, Prototipe dan Spiral
(Sumber : http://ilkom.unsri.ac.id)
Metode Kelebihan Kekurangan
RAD 1. Kecepatan adaptasi yg tinggi, dapat dibuat dgn cepat dgn pendekatan
1.Model yang besar (skala proyek), membutuhkan resources yg baik dan
(67)
pembangunan berbasis komponen 2. Jika data, analisa jelas, dan lingkup
kecil maka RAD dapat digunakan dgn baik.
solid
2.Membutuhkan komitmen pengembang dan user yang sama agar cepat selesai sesuai dengan rencana.
Sekuensial Linier (Waterfall)
1. Memberikan template di mana metode
analisis, desain, pengkodean, pengujian dan pemeliharaan bisa dilakukan. 2. Pendekatan pengembangan perangkat
lunak lebih jelas.
1.Iterasi sering terjadi menyebabkan masalah baru.
2.Client kesulitan untuk menyatakan semua ke inginannya secara eksplisit diawal tahap pengembangan.
3.Hasil software yang dikembangkan
baru akan diketahui lama setelah proyek pengembangan dimulai.
Prototipe 1. Pelanggan bisa langsung melihat sistem yang sebenarnya.
2. Pengembang bisa membangun proyek dengan cepat sesuai dengan identifikasi kebutuhan.
1. Ketidaksadaran user bahwa ini hanya suatu model awal bukan model akhir.
2. Pengembang kadang-kadang
membuat implementasi yang sembarangan.
3. Teknik dan tools yang tidak optimal pada prototipe yang akan tetap
digunakan pada software
sesungguhnya. Spiral Metode ini dirancang secara revolusioner
dengan tahapan yang jelas, tetapi terbuka bagi partisipasi pemesan untuk ikut serta menentukan pemodelan sistem
Metode ini lambat dan mahal karena setiap tahapan yang dilalui harus mengikutsertakan pemesan.
(68)
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.
(69)
Gambar 2.22. State Transition Diagram yang disederhanakan untuk software foto kopi
(Sumber : Roger S. Pressman, 2003: 375)
Notasi-notasi yang dipergunakan dalam diagram
state-transition (STD) adalah:
1. Keadaan sistem (state). Suatu kumpulan dari tingkah laku yang dapat diobservasi.
2. Perubahan sistem. Untuk menghubungkan suatu keadaan lain,
digunakan jika sistem memiliki transisi dalam prilakunya.
3. Kondisi dan aksi. Kondisi (condition) adalah suatu keadaan pada lingkungan luar (external environment) yang dapat dideteksi oleh sistem. Sedangakan aksi (action) merupakan reaksi terhadap kondisi bila terjadi perubahan state.
2.8.3. Flow-Chart
Bagan alir program (program flow-chart) adalah suatu bagan yang menggambarkan arus logika dari data yang akan diproses dalam suatu program dari awal hingga akhir (Jogiyanto Hartono, 2002:662). Bagan alir program merupakan alat yang berguna bagi
(70)
50
programmer untuk mempersiapkan program yang rumit. Bagan alir terdiri dari simbol-simbol yang mewakili fungsi-fungsi langkah program dan garis alir (flow lines) menunjukan urutan dari simbol-simbol yang akan dikerjakan. Jadi, flow-chart adalah gambaran aliran data suatu program dengan menggunakan simbol-simbol suatu fungsi yang telah ditentukan.
Tabel 2.6. Simbol-Simbol program Flow-chart menurut ANSI (American National Standard Institute)
(Sumber : Jogiyanto Hartono, 2002: 262)
SIMBOL NAMA FUNGSI
TERMINATOR Permulaan atau akhir program
GARIS ALIR (FLOW LINE)
Arah aliran program
PREPARATION
Proses inisialisasi atau pemberian harga awal
PROSES
Proses perhitungan atau proses pengolahan data
INPUT/OUTPUT DATA
Proses input atau output data, parameter, informasi
PREDEFINED PROCESS
Permulaan sub program atau proses menjalankan sub program
(71)
(SUB PROGRAM)
DECISION
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya
ON PAGE CONNECTOR
Penghubung bagian-bagian flow-chart yang berada pada satu halaman
OFF PAGE CONNECTOR
Penghubung bagian-bagian flow-chart yang berada pada halaman berbeda
ANNOTATION FLAG
Digunakan untuk memberikan keterangan keterangan guna memperjelas symbol-simbol yang lain
Gambar 2.23. akan ditampilkan contoh bagan alir yang didalamnya terdapat bentuk-bentuk dasar struktur logika.
(1)
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) {
(2)
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) // {
(3)
146
// FileInfo pathinfo = new FileInfo(SaveFile.FileName.ToString()); // savepathfile = pathinfo.ToString();
// btneditPathExtractMsg.Text = savepathfile.ToString(); // status.Text = "0";
// } // else
// { this.Close(); } // }
// catch // { } } } }
(4)
iii
ANALISIS DAN IMPLEMENTASI WATERMARKING
DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA
HAK CIPTA PADA FILE AUDIO
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh:
Muhamad Soleh 103091029579
Menyetujui,
Pembimbing I
Yusuf Durrachman, M.Sc, MIT NIP. 19710522 200604 1 002
Pembimbing II
Arini, MT
NIP. 19760131 200901 2 001
Mengetahui,
Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, MIT NIP. 19710522 200604 1 002
(5)
iv
PENGESAHAN UJIAN
Skripsi berjudul ” Analisis dan Implementasi Watermarking dengan
Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio” yang
ditulis oleh Muhamad Soleh, NIM 1039091029579 telah diuji dan dinyatakan
lulus dalam sidang munaqosah Fakultas Sains dan Teknologi Universitas Islam
Negeri Syarif Hidayatullah Jakarta pada hari Selasa, Tanggal 07 September
2010. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar
sarjana strata satu (S1) pada Program Studi Teknik Informatika.
Jakarta, September 2010
Menyetujui,
Penguji I Penguji II
Ir. Bakri La Katjong, MT, M.Kom Ria Hari Gusmita, M.Kom
NIP. 470 035 764 NIP. 19820817 200912 2 002
Pembimbing I Pembimbing II
Yusuf Durrachman, M.Sc, MIT Arini, MT
NIP. 19710522 200604 1 002 NIP. 19760131 200901 2 001
Mengetahui,
Dekan Fakultas Sains dan Teknologi Ketua Program Studi Teknik Informatika
DR. Syopiansyah Jaya Putra M. Sis Yusuf Durrachman, M.Sc, MIT
(6)
v
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