BAB II DASAR TEORI Bab ini berisi penjelasan mengenai seluruh dasar teori yang berkaitan dengan pengerjaan Tugas Akhir. Dasar-dasar teori yang dijelaskan adalah mengenai sinyal audio, kriptografi (enkripsi dan dekripsi), dan penjelasan steganografi beserta metodenya. Seluruh dasar teori yang dijelaskan digunakan sebagai landasan pengerjaan Tugas Akhir ini.
2.1 Audio Audio atau yang lebih dikenal dengan suara adalah suatu getaran yang mengandung frekuensi yang mampu dideteksi oleh telinga manusia. Limit frekuensi itu sendiri dibagi menjadi beberapa fase seperti yang terlihat pada tabel dibawah ini :
Tabel II-1 Klasifikasi audio berdasarkan frekuensi [MUK08]
Audio
Frekuensi (Hz)
Infrasound
0 – 20
Pendengaran Manusia
20 – 20.000
Ultrasound
20.000 – 1.000.000.000
Hypersound
1.00.00.0
– 10.000.000.000.000
2.1.1 Suara Dijital Suara yang bisa didengar merupakan representasi dari sinyal analog. Agar bisa diolah dalam perangkat komputer, sinyal analog ini harus diubah dulu kedalam sinyal dijital dengan mengubah amplitudo gelombang bunyi ke dalam waktu interval tertentu. Proses ini dikenal dengan istilah Analog To Digital Conversion (ADC). Sebaliknya jika ingin mengubah sinyal dijital ke sinyal analog bisa dilakukan dengan proses Digital To Analog Converter (DAC).
II-1
II-2
Proses ini pengubahan sinyal analog mengalami beberapa tahapan agar bisa diubah sedemikian rupa menjadi sinyal digital yang diinginkan. Proses-proses tersebut adalah pencuplikan, kuantisasi dan pengkodean. Pencuplikan adalah proses penghitungan ulang sample dari berkas audio pada nilai sampling rate yang berbeda pada saat berkas dibuat.[YUS01] Dalam pencuplikan dilakukan pengolahan sinyal analog dengan sampling yang ada untuk menghasilkan suatu sinyal yang disebut discretetime signal.[END05] Sinyal diskrit ini akan diproses lagi pada tahapan kuantisasi dimana hasil penghitungan dibulatkan kedalam nilai diskrit.
2.1.2 Format Berkas Audio Format berkas audio adalah sebuah container untuk menyimpan data audio pada sistem komputer. Ada tiga kelompok utama dalam pembagian format berkas audio yaitu : 1. Format audio dengan kompresi lossless Pada kompresi lossless hasil dekompresi terhadap data yang sudah dikompres tepat sama persis dengan data sebelum dikompres. Contoh : WavPack dengan ekstensi berkas WV 2. Format audio dengan kompresi lossy Pada kompresi lossy hasil dekompresi terhadap data yang sudah dikompres tidak sama persis tetapi persepsi terhadap semantik data tetap sama. Contoh : MP3 3. Format audio tidak terkompresi Sinyal dijital tidak mengalami kompresi apapun. Contoh : Waveform audio format (WAV) pada Microsoft ataupun Audio Interchange File Format (AIFF) pada Mac OS.
Metode kompresi itu sendiri dibedakan menjadi dua yaitu : 1. Metode waktu Metode ini menggunakan LPC(Linear Predictive Coding) yang merupakan sebuah perkakas yang biasa digunakan untuk pidato. LPC ini akan menyesuaikan sinyal data pada suara manusia yang nanti akan dikirimkan ke
II-3
pendengar. Contoh penerapan metode ini adalah speech analysis dan resynthesis sebagai bentuk voice compression pada telepon. 2. Metode transformasi Metode ini menggunakan suatu algoritma untuk mengkonversikan gelombang bunyi ke dalam bentuk sinyal digital agar tetap bisa didengar telinga manusia. Contoh algoritmanya adalah DCT(Discrete Cousine Transform), FFT(Fast Fourier Transform), DFT(Discrete Fourier Transform) dan MDCT(Modified DCT).
Berkas audio MP3 merupakan salah satu implementasi dari kompresi dengan metode transformasi yaitu MDCT.
2.2 Steganografi Steganografi adalah ilmu dalam peyembunyian suatu pesan rahasia kedalam suatu media dengan tujuan agar pihak lain selain sender dan recipient tidak ada yang menyadari keberadaan pesan rahasia tersebut [MUN04]. Pesan dan media yang dimaksud dapat berupa berkas teks, gambar, suara atau video. Dalam proses penyembunyian pesan, proses enkripsi akan dilakukan terlebih dahulu untuk meningkatkan kualitas pengamanannya. Recipient nantinya memiliki sebuah kunci untuk bisa melihat dan mengekstraksi pesan rahasia tersebut dimana kunci ini harus sama
dengan
kunci
yang
digunakan
sender
dalam
mengenkripsi
dan
menyembunyikan pesan rahasia yang dimaksud.
2.2.1 Sejarah Steganografi Kata steganografi sendiri berasal dari bahasa Yunani yang terdiri dari dua buah kata steganos yang berarti tersembunyi dan graphie yang berarti tulisan sehingga jika diterjemahkan mempunyai arti tulisan yang tersembunyi [MAN06]. Dahulu ada beberapa teknik yang dilakukan sebagai perwujudan dari steganografi seperti : 1. Orang Yunani kuno menuliskan pesan pada panel kayu dan menutupinya dengan lilin, 2. Orang Jerman mengembangkan sebuah microdot untuk huruf selama Perang Dunia II,
II-4
3. Adanya “Invicible Inks” yang menggambarkan penyembunyian pesan dilakukan menggunakan bahan kimia khusus, 4. Kamuflase pesan dengan menggunakan bahasa lisan yang tidak mencurigakan. 2.2.2 Teknik-teknik steganografi audio Proses penyembunyian dan ekstraksi pada steganografi audio diimplementasikan pada beberapa metode seperti yang tertera dibawah ini : 1. Least Significant Bit (LSB) Coding Teknik ini adalah cara paling sederhana menyisipkan sebuah pesan. Prosesnya adalah dengan mensubstitusi least significant bit dengan bit dari pesan rahasia. Least significant bit ini merupakan sampel dari bit-bit media stegano dengan spesifikasi kelipatan 8, 16 atau 32. Maksudnya adalah setiap sampel bit dari media stegano terdiri dari 8 bit atau 16 bit dan seterusnya yang ditentukan sesuai kebutuhan, kemudian bit terakhir dari tiap sampel disubstitusi dengan bit pesan rahasia. Pengaturan bit-bit ini terlihat seperti ilustrasi Gambar II-1.
Gambar II-1 Pengaturan bit-bit LSB [GIB02]
2. Parity Coding Teknik ini akan dibahas lebih lengkap pada sub bab berikutnya.
II-5
3. Phase Coding Teknik ini memakai beberapa prosedur utama seperti berikut : 1. pemecahan sinyal suara asli kedalam beberapa segmen dimana ukuran panjangnya sama dengan ukuran panjang pesan rahasia, 2. DFT(Discrete Fourier Transform) akan diaplikasikan kepada setiap segmen untuk membuat suatu matriks setiap fasa dan magnitude fourier transform, 3. mengkalkulasikan perbedaan fasa antara segmen-segmen yang adjacent 4. pertukaran fasa antara consecutive segment bisa dengan mudah dideteksi dengan kata lain fasa absolute segmen-segmen yang ada bisa diganti tetapi fasa relatif antara adjacent segment harus dijaga,
(1)
5. matriks (1) dibentuk menggunakan fasa baru dari segmen pertama dan dari perbedaan fasa yang asli, 6. menggunakan matriks fasa yang baru dan matriks magnitude asli lalu sinyal suara direkonstruksi dengan mengaplikasikan invers dari DFT dan kemudia dikonkatenasi dengan segmen suara. 4. Spread Spectrum Teknik Spread Spectrum mentransmisikan sebuah sinyal pita informasi yang sempit ke dalam sebuah kanal pita lebar dengan penyebaran frekuensi. Penyebaran ini berguna untuk menambah tingkat redundansi. Besaran redundansi ditentukan oleh faktor pengali cr yang bernilai skalar. Panjang bitbit hasil penyebaran ini menjadi cr kali panjang bit–bit awal, seperti diilustrasikan pada Gambar II-2.
Untuk proses penyembunyian data, pertama dilakukan proses penyebaran bit– bit informasi dari dokumen yang akan disisipkan (message). Setelah itu, bit– bit informasi hasil penyebaran itu akan dimodulasi dengan pseudo-noise signal yang dibangkitkan secara acak berdasarkan kunci penyembunyiannya (key).
II-6
Gambar II-2 Penyebaran bit-bit dengan faktor pengali cr [FLI97]
Hasil dari proses modulasi ini akan disisipkan sebagai noise ke dalam sebuah berkas media (cover-file). Media yang telah disisipi inilah yang disebut stegofile. 5. Echo Hiding Prinsip kerja dari echo data hiding ini adalah dengan memunculkan echo (gema) pada sinyal suara penampung sebagai cara untuk menyembunyian data. Pemunculan echo ini dihadapkan pada tantangan terhadap Sistem Pendengaran Manusia (SPM) yang memiliki rentang penginderaan yang lebih besar dan lebih dinamis dibandingkan dengan indera manusia lainnya. Sensivitas SPM terhadap kebisingan cukup tajam. Perbedaan dari beberapa sinyal suara dapat dideteksi walaupun hanya 1 dari 10 juta bagian (80 dB di bawah ambang batas). Namun, terdapat beberapa kelemahan SPM yang dapat dieksploitasi untuk penyembunyian data yaitu : 1. SPM hanya mampu menangkap getaran satu sinyal pada satu waktu sehingga sinyal yang lebih keras akan menyebabkan sinyal yang lebih lemah tidak terdengar. 2. SPM hanya mampu menangkap fase relatif dari suatu sinyal bukan fase absolutnya. 3. Beberapa distorsi sinyal akibat pengaruh lingkungan cenderung diabaikan oleh manusia. Terdapat empat buah parameter yang digunakan dalam pemberian echo ke dalam suatu berkas suara dijital, yaitu amplitudo awal, decay rate, offset “satu” dan offset “nol”. Sejalan dengan berkurangnya offset (delay) antara sinyal asli dan sinyal echo, maka kedua sinyal tersebut pun akan berbaur. Sehingga pada suatu titik tertentu, SPM tidak akan mendengar sebuah sinyal dan sebuah echo, melainkan sebuah sinyal yang terdistorsi. Namun hal ini juga
II-7
bergantung pada rekaman asli, tipe suara yang diberikan echo dan pendengar. Coder
menggunakan
dua
jenis
waktu
delay,
yang
satu
untuk
merepresentasikan angka biner satu (offset “satu”) dan yang satu lagi untuk merepresentasikan angka biner nol (offset “nol”). Keduanya bernilai di bawah waktu dimana SPM dapat membedakan antara echo dan sinyal asli.
2.3 Teknik Parity Coding 2.3.1 Parity Bit Parity bit adalah sebuah bit yang ditambahkan untuk memastikan jumlah bit bernilai ‘1’ pada suatu set bit selalu even atau odd. Tidak seperti start bit atau stop bit, parity bit merupakan parameter opsional yang digunakan pada serial communications untuk menentukan apakah set bit yang dikirim tepat adanya.
Parity bit mempunyai spesifikasi salah satu dari beberapa kemungkinan berikut : 1. None Pada kondisi ini sistem tidak boleh membentuk parity bit pada data karakter yang dikirim atau dengan kata lain tidak ada pengecekan terhadap parity bit dari data yang dikirim. 2. Even Pada kondisi ini jumlah keseluruhan dari bit ‘1’ pada karakter tunggal haruslah genap (even). Jika tidak, maka parity bit yang ditambahkan haruslah sebuah biner ‘1’ untuk memastikan jumlahnya menjadi genap. Sebagai contoh, jika suatu kata dengan binary “1100001” ditransmit dalam kondisi even parity, sistem akan menambahkan jumlah biner 1 dimana dalam kasus ini berjumlah 3, dan membuat parity bit “1” untuk menjaga biner 1 tetap genap. Pada kasus lain jika kata dengan binary 1000001 ditransmisikan pada kondisi yang sama (even parity), parity bit diset menjadi 0, sehingga jumlah biner 1 tetap genap.
3. Odd Dioperasikan dalam konsep yang sama dengan even parity namun dalam kondisi jumlah biner 1 harus ganjil. 4. Space
II-8
Menspesifikasikan biner parity bit selalu 0. Lingkup lain yang memakai space parity adalah bit filling, yang diturunkan dari kegunaannya sebagai sebuah “filler” untuk data 7 bit yang ditransmisikan pada sistem yang hanya menerima data 8 bit.
Parity bit biasanya digunakan dalam error detection yaitu pengecekan suatu transmisi data karakter apakah sesuai dengan aslinya atau tidak. Misal, suatu bit data dengan nilai ”1001” ditransmisikan, dengan parity bit diikuti pada bagian paling kanan, dan ⊕ mendenotasikan XOR gate. Maka :
1. Transmisi pada kondisi even parity A mentransmisikan :
1001
A menghitung nilai parity bit : A menambahkan parity bit dan mengirimkan :
1⊕0⊕0⊕1=0
B menerima :
10010
B menghitung nilai parity :
1⊕0⊕0⊕1⊕0=0
10010
B melaporkan bahwa transmisi benar setelah menganalisa even parity 2. Transmisi pada kondisi odd parity A mentransmisikan :
1001
A menghitung nilai parity bit : A menambahkan parity bit dan mengirimkan :
~ (1 ⊕ 0 ⊕ 0 ⊕ 1) = 1
B menerima :
10011
B menghitung parity keseluruhan :
1⊕0⊕0⊕1⊕1=1
10011
B melaporkan bahwa transmisi benar setelah menganalisis dalam kondisi odd parity 2.3.2 Parity Coding Pada metode ini, sinyal media yang sudah diencode akan dibagi menjadi beberapa region terpisah dengan ukuran statis. Parity bit dari setiap region akan dihitung terlebih dahulu untuk disimpan nilainya. Bit dari pesan rahasia akan disisipkan secara merata kedalam region yang ada. Jika bit yang akan dimasukkan ke dalam region nilainya berbeda, maka susunan dari bit-bit LSB harus diubah sedimikian rupa sehingga parity bit region nilainya sama dengan bit pesan rahasia yang akan disisipkan namun jika nilainya sama region tidak diperlu diubah. Kondisi dalam
II-9
penghitungan parity bit adalah even parity. Gambar II-4 adalah contoh penyembunyian suatu pesan rahasia “010” kedalam suat media stegano.
Gambar II-3 Penyembunyian pesan dengan Parity Coding
Dalam proses ekstraksi, pesan rahasia adalah nilai-nilai parity bit dari setiap region. Parity bit ini akan disusun kembali membentuk pesan rahasia yang sudah disisipkan. Region yang terbentuk akan sama seperti penyusunan karena menggunakan kunci yang sama.
2.4 Pembangkitan Bilangan Acak Konsep pembangkitan bilangan acak adalah memberikan sebuah deretan angka dimana akan sangat sulit untuk memprediksi bagaimana deretan angka tersebut. Misal
II-10
terdapat suatu metode enkripsi yang membutuhkan sebuah nilai tertentu sebagai masukan untuk pertama kalinya, dan nilai tersebut haruslah seacak mungkin supaya keamanan enkripsi tidak dapat diserang oleh pihak ketiga.
Algoritma pembangkit bilangan acak membutuhkan suatu angka yang disebut seed, dimana deretan bilangan acak yang dihasilkan akan tergantung dari nilai seed tersebut. Nilai seed yang sama akan menghasilkan deretan yang sama pula dan bilangan acak yang dihasilkan sebenarnya tidak benar-benar acak karena deretan bilangan tersebut akan berulang setelah periode tertentu. Oleh karena itu bilangan acak ini disebut juga pseudorandom number.
Xi+1 = (a * Xi + c) mod m
(2)
Salah satu algoritma untuk membangkitkan deretan bilangan acak adalah Linear Congruential Generator (LCG) yang ditunjukkan oleh persamaan (2). Xi+1 merupakan bilangan acak yang dihasilkan tergantung dari nilai a, c, m dan deretan bilangan acak sebelumnya, yaitu Xi. Nilai i berkisar dari 0 hingga banyaknya jumlah deretan yang diinginkan dimana i = 0 akan menunjuk kepada nilai seed. Contoh implementasi algoritma LCG adalah pada bahasa pemrograman Java dengan nilai default a = 0x5deece66d L, c = 11, dan m = 248 – 1. Pada Tugas Akhir ini, akan digunakan algoritma LCG yang sudah disediakan oleh Java.[LIN06]
2.5 Enkripsi dan Dekripsi ECB ECB(Electronic Code Book) adalah suatu metode enkripsi yang dilakukan pada operasi blok cipher dan diterapkan terhadap keseluruhan blok [MUN04]. Misal blok yang dipakai adalah blok plainteks, maka pada mode ini setiap blok plain teks Pi dienkripsi secara individual dan independen menjadi blok cipherteks Ci. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai : Ci = Ek(Pi) dimana fungsi E dinyatakan proses-proses yang akan diterapkan pada blok.
(3)
II-11
Gambar II-4 Diagram proses enkripsi dan dekripsi ECB [MUN04]
Contoh dari fungsi E adalah sebagai berikut : 1.
XOR antara bit pesan dan bit kunci
2. Penggeseran satu bit ke kanan dari hasil XOR tersebut Dekripsi secara matematis dinyatakan sebagai : Pi = Dk(Ci) dimana fungsi D merupakan kebalikan fungsi enkripsi yaitu :
(4)
II-12
1. Penggeseran satu bit ke kiri dari cipher 2. XOR antara bit cipher dengan bit kunci yang dalam hal ini Pi dan Ci masing-masing blok plainteks dan cipherteks ke-i. Gambar II-3 memperlihatkan enkripsi dua buah blok plainteks P1 dan P2 dengan mode ECB, yang dalam hal ini E menyatakan fungsi enkripsi terhadap blok plainteks dengan menggunakan kunci K yang dibangkitkan menggunakan algortima LCG.