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
ii 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
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.
vii
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.
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
ix
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
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
xi
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
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
xiii
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
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
xv
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
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
xvii
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
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
xix
Gambar 4.32. Tampilan aplikasi xilisoft ... 106
Gambar 4.33. Tampilan add file ... 106
Gambar 4.34. Tampilan menu list file profile ... 107
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
xxi
GRAFIK SINYAL SUARA WAV………..………. 120
LAMPIRAN II ………...………..………..………..….... 124
FILE INPUT ………...………..………..………..….... 124
LAMPIRAN III ………...………..……….……..….... 128
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
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.
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
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
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
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
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 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
8 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
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
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
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
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,
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
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
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
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
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
8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB)
dan bit yang kurang berarti (Least Significant Bit atau LSB),
[image:38.612.150.539.53.451.2]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,
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
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,
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
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
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
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
[image:44.612.147.536.53.566.2]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
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
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
[image:46.612.150.535.57.452.2]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.
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
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 :
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)
[image:50.612.148.540.57.453.2](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
[image:51.612.149.536.53.445.2]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
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.
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
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
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
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
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 :
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
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 :
[image:59.612.150.535.54.681.2]
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
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
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
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
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 membutuhk