BAB II DASAR TEORI - · PDF filedimaksud dapat berupa berkas teks, gambar, suara atau video....
Transcript of BAB II DASAR TEORI - · PDF filedimaksud dapat berupa berkas teks, gambar, suara atau video....
II-1
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-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 discrete-
time 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 bit-
bit 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 stego-
file.
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 : 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0
A menambahkan parity bit dan mengirimkan : 10010
B menerima : 10010
B menghitung nilai parity : 1 ⊕ 0 ⊕ 0 ⊕ 1 ⊕ 0 = 0
B melaporkan bahwa transmisi benar setelah menganalisa even parity
2. Transmisi pada kondisi odd parity
A mentransmisikan : 1001
A menghitung nilai parity bit : ~ (1 ⊕ 0 ⊕ 0 ⊕ 1) = 1
A menambahkan parity bit dan mengirimkan : 10011
B menerima : 10011
B menghitung parity keseluruhan : 1 ⊕ 0 ⊕ 0 ⊕ 1 ⊕ 1 = 1
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) (3)
dimana fungsi E dinyatakan proses-proses yang akan diterapkan pada blok.
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) (4)
dimana fungsi D merupakan kebalikan fungsi enkripsi yaitu :
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.