BAB 2 LANDASAN TEORI
Dalam Bab 2 ini akan diuraikan teori yang berkaitan dengan perancangan program pengamanan data dengan menggunakan Elliptic Curve Cryptography (ECC), dan penyembunyian data dengan Proposed LSB Embedding. Pertama, penjelasan akan dimulai dengan teori mengenai kriptografi secara umum. Kedua, penjelasan dilanjutkan dengan uraian mengenai ECC. Ketiga, akan dijelaskan juga mengenai steganografi secara umum. Keempat, akan diuraikan Proposed LSB Embedding secara khusus. Kelima, akan dibahas mengenai audio digital, yang berfungsi sebagai medium penyembunyian data, dan terakhir, dijelaskan mengenai e-RMS, yang berfungsi untuk menguji kinerja program.
2.1.
Kriptografi Kriptografi berasal dari bahasa Yunani, yaitu kata “Crypto” dan “Graphia” yang
berarti penulisan rahasia atau seni mengamankan pesan (Wikipedia, 2006). Kriptografi merupakan bagian dari cabang ilmu matematika yang disebut kriptologi. Maka dari itu, kriptografi dapat diartikan sebagai “Proses mengubah informasi dari bentuk normalnya, bentuk yang dapat dipahami, menjadi bentuk yang tidak dapat dipahami, sehingga informasi tersebut tidak dapat dibaca tanpa pengetahuan yang rahasia” (Wikipedia, 2006) Dalam kriptografi terjadi dua proses yaitu proses enkripsi dan proses dekripsi. Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus (Wikipedia, 2006). Jika enkripsi
adalah proses untuk mengaburkan informasi, maka dekripsi adalah proses kebalikan dari enkripsi yang bertujuan untuk mengembalikan informasi yang tidak jelas menjadi informasi yang jelas. Proses enkripsi dan dekripsi dapat dilihat dalam Gambar 2.1
Gambar 2. 1 Proses Enkripsi dan Dekripsi dalam Kriptografi
Sumber: Pfleeger (1997, p22)
Sistem enkripsi dan dekripsi pada kriptografi terdiri dari lima tupel (P, C, K, E, D) (Stinton, 1995, p1), yaitu: 1.
P merupakan himpunan plaintext (pesan asli).
2.
C merupakan himpunan ciphertext (pesan acak).
3.
K merupakan himpunan key (kunci).
4.
Untuk setiap k Є K, maka terdapat sebuah fungsi enkripsi ek Є E dan sebuah fungsi dekripsi dk Є D. Setiap ek : P Æ C dan dk : C Æ P merupakan fungsi dk(ek(x)) = x untuk setiap anggota plaintext x Є P.
2.1.1
Fungsi Kriptografi Seperti dijelaskan sebelumnya, kriptografi terdiri dari kegiatan enkripsi dan
dekripsi yang bertujuan untuk mengaburkan pesan sehingga tidak dapat diketahui orang lain. Akan tetapi, secara lengkap ada empat tujuan mendasar dari ilmu kriptografi (Wollinger, Guajardo, & Paar, 2003, p3), yaitu: a. Kerahasiaan Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas.
b. Integritas data Integritas data berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
c. Otentikasi Otentikasi berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diotentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
d. Non-repudiasi Non-repudiasi berarti pengirim tidak dapat menyangkal bahwa ia telah mengirimkan pesan.
e. Anti-replay Anti-replay berarti pesan tidak dapat dikirimkan beberapa kali kepada penerima tanpa sepengetahuan pengirim.
2.1.2
Kriptografi Kunci Simetrik dan Asimetrik
Sistem kriptografi melibatkan satu set aturan untuk mengenkripsi plaintext dan mendekripsi ciphertext. Aturan enkripsi dan dekripsi tersebut dinamakan algoritma, yang biasanya menggunakan sebuah perlengkapan yang disebut kunci (Pfleeger, 2003,
p37). Metode enkripsi dibagi menjadi dua jenis berdasarkan kunci yang digunakan, yaitu enkripsi dengan algoritma kunci simetrik, dan enkripsi dengan algoritma kunci asimetrik. Pada enkripsi dengan algoritma kunci simetrik dibutuhkan sebuah kunci untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem asimetrik dibutuhkan sepasang kunci yang berbeda, yang umumnya disebut kunci umum (public key) dan kunci pribadi (private key),
yang digunakan untuk proses enkripsi dan
dekripsinya. Bila elemen plaintext dienkripsi dengan menggunakan kunci publik maka elemen chipertext yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya (Wikipedia, 2006). Perbedaan kunci untuk enkripsi dan dekripsi dalam kriptografi asimetrik ini menyederhanakan pertukaran kunci. Dalam jaringan komunikasi N yang luas, digunakannya kunci simetrik untuk masing-masing pasangan komunikasi akan membutuhkan manajemen (nxn-1) / 2 kunci. Dengan menggunakan kunci asimetrik, jumlah tersebut dapat dikurangi menjadi pasangan kunci N. Dalam kelompok 1.000 pengguna komputer, misalnya, jumlah kunci yang tadinya 499,500 dapat dikurangi menjadi hanya 1.000 pasangan kunci. Perbandingannya dapat dilihat pada Gambar 2.2.
Gambar 2. 2 Kunci Simetrik dan Asimetrik dalam Jaringan
Sumber: Certicom (2004)
Pada semua kriptografi asimetrik, penggunaan kunci yang berbeda untuk enkripsi dan dekripsi sebenarnya didasarkan pada penggunaan fungsi matematika yang perhitungan kebalikannya sangat sulit unuk dilakukan (Certicom, 2004). Jadi dalam kriptografi ini, diperlukan fungsi matematika yang mudah dikerjakan dalam satu arah saja (forward operation), yaitu untuk enkripsi, dan sulit dipecahkan untuk kebalikannya (inverse operation), yaitu untuk proses dekripsi. Misalnya, terdapat dua bilangan prima yang masing-masing 200 digit panjangnya. Kemudian kedua bilangan tersebut dikalikan. Maka hasilnya akan sangat besar. Jika awalnya diketahui dua bilangan prima yang digunakan untuk perkalian tersebut, maka akan sangat mudah untuk mencari hasil perkaliannya. Akan tetapi jika hanya diketahui hasil perkaliannya, sangat sulit untuk mencari kedua bilangan prima awalnya. Prinsip seperti inilah yang dimanfaatkan dalam algoritma kunci asimetrik. Seperti dapat dilihat pada Gambar 2.3, semakin panjang digit kuncinya, maka perhitungan kebalikannya akan semakin sulit, dimana kesulitannya jauh melampaui perhitungan awal.
Gambar 2. 3 Kesulitan Perhitungan Awal dan Kebalikan terhadap Panjang Kunci
Sumber: Certicom (2004)
Secara umum algoritma kunci asimetrik dapat dibagi menjadi 3 (Wollinger, Guajardo, & Paar, 2003, p4): 1. Algoritma yang didasarkan pada persoalan faktorisasi integer Misalkan diketahui integer positif n, carilah faktorisasi primanya. RSA, algoritma kunci asimetrik yang paling banyak digunakan, berdasarkan pada tingkat kesulitan dalam memecahkan persoalan ini. RSA menggunakan perkalian integer untuk forward operation, dan faktorisasi sebagai inverse operation. 2. Algoritma yang didasarkan pada persoalan algoritma diskrit Misalkan diketahui a dan b, carilah x dalam persamaan b = a
x
Mod P.
Protokol pertukaran kunci Diffie-Hellman didasarkan pada persoalan ini, begitu juga protokol pertukaran kunci lainnya, seperti Digital Signature Algorithm (DSA). Diffie Hellman menggunakan eksponensiasi diskrit sebagai forward operation dan log sebagai inverse operation. 3. Algoritma yang didasarkan pada persoalan logaritma diskrit kurva eliptik . Elliptic Curve Cryptography (ECC) adalah algoritma kunci asimetrik terkini yang semakin banyak digunakan. Karena penggunaan prosesor yang lebih efisien, Elliptic Curve sangat cocok untuk aplikasi embedding. ECC menggunakan penggandaan poin (point multiplication) sebagai forward operation dan persoalan logaritma diskrit (discrete logarithm problem) sebagai inverse operation.
2.2
Elliptic Curve Cryptography (ECC) Elliptic Curve Cryptography dikembangkan secara independen oleh Victor
Miller pada tahun 1986 dan oleh Neil Koblitz pada tahun 1987 (Wikipedia, 2006). Sejak saat itu, ECC telah dievaluasi oleh para pakar matematika dan komputer di seluruh dunia, dan belakangan ini digunakan secara komersial, misalnya untuk keamanan email dan keamanan web. (Hofer, 1999). Jika dibandingkan dengan kriptografi kunci asimetrik lainnya, ECC dianggap lebih unggul. Penyebab utamanya adalah karena dengan menggunakan kunci yang jauh lebih kecil atau pendek, ECC tetap dapat memberikan tingkat keamanan yang sama dengan algoritma asimetrik lainnya yang menggunakan kunci yang lebih besar. Dengan ukuran kunci yang lebih kecil dan tingkat keamanan yang sama tinggi, implementasi ECC menjadi lebih efisien, yang berarti memungkinkan operasi kriptografi menjadi lebih cepat, dengan prosesor yang lebih rendah atau software yang lebih simpel. Ini berarti, tingkat panas yang dihasilkan dan konsumsi tenaga untuk memproses ECC menjadi lebih rendah. Perbandingan ukuran kunci ECC dengan ukuran kunci asimetrik lainnya dapat lebih jelas terlihat pada Gambar 2.4.
Gambar 2. 4 Perbandingan Ukuran Kunci Publik pada Kriptografi Asimetrik
Sumber: Certicom (2004)
ECC yang menggunakan ukuran kunci lebih kecil dengan tingkat keamanan tinggi ini memberikan keunggulan tersendiri bagi aplikasi-aplikasi yang memiliki keterbatasan bandwith, kapasitas pemrosesan, ketersediaan sumber tenaga, dan ruang. Contoh aplikasi terbatas yang dapat memanfaatkan ECC adalah electronic commerce, server web, dan telepon seluler.” (Hofer, 1999) Untuk memahami kriptografi ECC ini, diperlukan pemahaman terhadap operasi elliptic curve terlebih dahulu. Berikut ini akan diberikan penjelasan mengenai prinsip dasar kurva eliptik dan operasi-operasinya, diikuti contoh (Hofer, 1999)
2.2.1 Prinsip Dasar Kurva Eliptik Kurva eliptik digambarkan dalam sistem koordinat Kartesius x,y dua dimensi dengan persamaan: y2 = x3 + ax + b Grafiknya akan terlihat seperti pada Gambar 2.5.
Gambar 2. 5 Grafik Kurva Eliptik
Sumber: Certicom (2004)
Kurva Eliptik dalam Fp Jika p > 3 adalah suatu bilangan prima dan a, b ∈ Fp dengan 4a3 + 27b2 ≠ 0
dalam Fp. Suatu kurva eliptik E(Fp) dalam Fp yang didefinisikan oleh parameter a dan b adalah himpunan penyelesaian (x,y), x,y ∈ Fp, yang memenuhi : y2 = x3 + ax + b
bersama dengan suatu point khusus, ϕ, yang disebut point at infinity.
Contoh suatu kurva eliptik dalam F13 y2 = x3 + x + 1 adalah persamaan untuk kurva eliptik E dalam F13. Di sini a=1 dan b=1. Himpunan penyelesaian untuk persamaan tersebut adalah : (0,1) (0,12) (1,4) (1,9) (4,2) (4,11) (5,1) (5,12) (7,0) (8,1) (8,12) (10,6) (10,7) (11,2) (11,11) (12,5) (12,8) E(F13) memiliki 18 point, termasuk point at infinity ϕ.
2.2.2 Operasi pada Kurva Eliptik Terdapat beberapa operasi pada Kurva Eliptik dalam Fp (Hofer, 1999), yaitu: a. Penambahan (Addition) Berikut ini adalah sifat-sifat operasi penambahan pada kurva eliptik :
Jika ϕ adalah point at infinity, maka penjumlahan dua buah ϕ akan menghasilkan ϕ pula. Secara matematis dapat dituliskan sebagai berikut : ϕ + ϕ = ϕ.
Jika P = (x1,y1) ∈ E(Fp), maka : P+ϕ=ϕ+P=P
Jika P = (x1,y1) ∈ E(Fp), maka negasi P,–P = (x1,-y1) juga merupakan point pada kurva. Penambahan dua buah point ini memberikan : P + (-P) = P – P = ϕ
Jika P = (x1,y1) ∈ E(Fp) dan Q = (x2,y2) ∈ E(Fp) dengan x1 ≠ x2, dan Q ≠ -P, maka jumlah mereka : P + Q = R = (x3,y3) didefinisikan sebagai : x3 = λ2 – x1 – x2 y3 = λ(x1-x3) –y1 dengan λ = y2 – y1 x2-x1 Sifat penting lain dari aturan penambahan ini adalah bahwa urutan penambahan
tidak penting, P + Q = (x1,y1) + (x2,y2) = (x3,y3) = (x2,y2) + (x1,y1) = Q + P
b.
Penggandaan (Doubling) Jika P = (x1,y1) ∈ E(Fp) adalah suatu point dengan y1 ≠ 0 dan P bukan ϕ, maka 2P = (x3,y3), dengan : λ = (3x12 + a) 2y x3
= λ2 - 2x1, dan
y3
= -y1 + λ (x1-x3)
Jika P=ϕ atau y1=0, maka 2P=ϕ.
c.
Perkalian Skalar (Scalar Multiplication) Point kurva eliptik tidak dapat dikalikan, namun dapat dilakukan scalar multiplication, yaitu penambahan berulang untuk point yang sama. Jika n adalah suatu integer positif dan P suatu point pada kurva eliptik, perkalian skalar nP adalah hasil penambahan P sejumlah n kali. Sehingga, 5P = P+P+P+P+P. Perkalian skalar ini dapat diperluas untuk integer nol dan negatif yaitu : 0P = ϕ,
(-n) P = n (-P)
Contoh-contoh operasi pada kurva eliptik : Berdasarkan contoh kurva eliptik F13 sebelumnya : •
Penambahan dua buah point yang berbeda Jika P = (1,4) dan Q = (5,12), maka P+Q dapat dihitung dengan cara sebagai berikut : λ = 12 – 4 = 8 = 2εF13 5-1 4 x3 = 22 - 1 - 5 = 4-1-5 = -2 = 11 (mod 13) dan y3 = 2(1-(-2)) - 4 = 2(3) - 4 = 2 (mod 13) Maka P+Q = (11,2)
•
Penggandaan Point Jika P = (1,4), maka 2*P dapat dihitung sebagai berikut : λ = (3.12 + 1) = 4 = 1 = 7FЄ13 2.4 8 2 x3
= 72- 2.1 = 49 - 2 = 47 = 8 (mod 13), dan
y3
= -4 + 6 (1-7) = 9 + 6(-6) = 9-36 = -27 = 12 (mod 13)
•
Perkalian Skalar Jika k = 3 dan P=(1,4). Maka 3P dapat dihitung sebagai berikut : 3P = P+P+P = (2P)+P. Dengan 2P = P+P = (8,12) (dari contoh penggandaan point) dan P = (1,4) 3P = (8,12) + (1,4) dapat dihitung sebagai berikut : λ = 12 – 4 = 8 = 3εF13 8-1 7 x3 = 32 - 1 - 8 = 0 (mod 13) dan y3 = 3(1-0) - 4 = 3 - 4 = -1 = 12 (mod 13) Jadi 3P = (0,12).
2.2.3 Penggunaan ECC dalam Program Enkripsi dan Dekripsi Aplikasi ECC dalam program enkripsi dan dekripsi dijelaskan sebagai berikut (Muller & Paulus, 1998). Dalam proses enkripsi, pertama-tama dilakukan pembacaan suatu berkas kunci publik yang berisi kurva eliptik E, suatu point P yang berada pada E, suatu bilangan prima p ∈ Fp, dan kunci publik pemakai lain Q =d*P. Kemudian dipilih suatu bilangan random k ∈ {2,…,p-1} yang berubah untuk setiap blok data, dan dihitung k*Q dan k*P, selanjutnya berkas data dibaca secara per blok (M) dan dienkripsi dengan cara : M’ = [k*P, M ⊕ X(k*Q)] Keterangan : M = data yang akan dienkripsi (plaintext). M' = blok data yang telah dienkripsi (ciphertext). k = suatu bilangan random yang akan digunakan sebagai session key dengan k ∈ {2,…,p-1} Q = d*P
P = suatu point pada kurva E(Fp) X(k*Q) = koordinat X untuk point yang dihasilkan dari perkalian k*Q.
M di-xor-kan dengan absis point yaitu k*Q, hasilnya berupa string yang lalu ditulis ke berkas dengan k*P ditambahkan sebelumnya. Hasil akhirnya secara sederhana dapat digambarkan pada Gambar 2.6 berikut: M1
M2
M ⊕ X(k*d*P)
K*P M'
Gambar 2. 6 Blok Data yang telah Dienkripsi Keterangan : M1 : session key. : Data terenkripsi. M2 M : Data yang belum terenkripsi. M' : Blok data yang telah dienkripsi (ciphertext). Proses ini akan terus dilakukan selama data yang dibaca masih ada.
Dalam proses dekripsi, pertama-tama dilakukan pembacaan suatu berkas kunci publik yang berisi kurva eliptik E, suatu point P yang berada pada E, dan suatu field bilangan prima p. Kemudian dibaca ciphertext seperti pada Gambar 2.6. Lalu dihitung d*(k*P), dengan d adalah kunci privat yang dimasukkan oleh pemakai dalam bentuk passphrase, dan k*P berasal dari ciphertext. Satu buah blok data lalu dibaca (M’). Setelah itu dilakukan proses dekripsi untuk memperoleh M , dengan M = [M2 ⊕ X(d*(k*P))] M2 di-xor-kan dengan absis point yaitu d*(k*P) sehingga diperoleh suatu string.
Hasilnya (M) lalu ditulis ke berkas. Hasil akhirnya secara sederhana dapat digambarkan pada Gambar 2.7 berikut ini:
M2 ⊕ X(d*(k*P)) M
Gambar 2. 7 Blok Data yang Telah Didekripsi Keterangan : M2: Data terenkripsi. M : Blok data yang telah didekripsi (plaintext). Proses ini akan terus dilakukan selama data terenkripsi yang dibaca masih ada.
Contoh : Dimisalkan Alice ingin mengirim suatu pesan terenkripsi dengan menggunakan elliptic curve cryptosystems kepada Bob.
Inisialisasi : Kurva eliptik E : y2 = x3 + x + 1 Suatu point P=(1,4) pada E Field yang digunakan (p) adalah 13 Kunci rahasia Bob adalah (d) = 4.
Enkripsi oleh Alice : -
Mula-mula Alice mengambil kunci publik Bob (dP), di sini dimisalkan dP=(11,11).
-
Pesan yang akan dikirimkan (M) adalah 2 = (0010)2.
-
Kemudian program mengambil suatu bilangan random (k ∈ {2,…,q-1}), misalkan k = 5.
-
Dihitung k.(dP) = 5.(11,11) = (8,12). X(k.(dP)) = 8 = (1000)2
-
Dihitung k.P = 5.(1,4) = (5,1), ini adalah M1.
-
M ⊕ X(k.(dP)) = (0010 ⊕ 1000) = (1010), ini adalah M2
-
Pesan terenkripsinya (M') adalah ((5,1),1010).
Dekripsi oleh Bob : Diambil kP=(5,1) dari pesan terenkripsi, dan dihitung d.(kP) = 4.(5,1) = (8,12). X(d.(kP)) adalah 8 = (1000)2. Kemudian hasil ini di-xor-kan dengan M2 : 1000 ⊕ 1010 = (0010)2 Terlihat bahwa hasil setelah dekripsi sama dengan pesan awal yang akan dikirim.
2.3
Steganografi Steganografi berasal dari bahasa Yunani yaitu Steganos yang berarti tersembunyi
dan graphien yang berarti tulisan, sehingga steganografi berarti tulisan tersembunyi. Berdasarkan definisi Neil F. Johnson dan Sushil Jajodia, para peneliti di universitas George Mason Fairfax, Steganografi adalah seni penyembunyian pesan dalam beberapa cara sehingga dapat mencegah pendeteksian terhadap pesan tersembunyi tersebut (Tran, 2006). Steganografi mempunyai dua proses utama yaitu menyembunyikan pesan pada cover (teks, image, video,dan audio) dan proses pendeteksian yang kemudian pesan yang terdeteksi diekstrak dengan bantuan secret key. Prosesnya secara umum adalah sebagai berikut (Kessler, 2006):
cover_medium + hidden_data + stego_key = stego_medium
Proses steganografi pada digital adalah sebagai berikut (Donovan, 2006, p78) (Lihat Gambar 2.8): 1. Data yang ingin disembunyikan dienkripsi. 2. Data terenkripsi dibagi-bagi untuk disembunyikan. 3. Pilih cover file yang akan digunakan seperti file audio, image dan sebagainya. 4. Data terenkripsi disisipkan pada cover file dan menghasilkan file baru yaitu inconspicious file. 5. Jika data ingin diperoleh maka dilakukan proses ektrak terhadap inconspicious file yang akan menghasilkan data terenkripsi. 6. Data terenkripsi didekripsi sehingga diperoleh Data yang semula.
Gambar 2. 8 Proses Steganografi pada Digital
Sumber: Donovan (2006, p78)
Steganografi memiliki 6 komponen penting (Kessler, 2006), yaitu: 1.
Pesan rahasia (M)
2.
Cover Document (C)
3.
Stego Document (Z)
4.
Stego Key (K)
5.
Fungsi penyembunyi f(M,C,K)→ Z
6.
Fungsi detektor f ‘ (Z,C,K)→ M
Untuk steganografi pada audio digital tentunya yang menjadi komponen cover document adalah file audio. Steganogafi ini akan menghasilkan output berupa file audio baru yang mengandung pesan yang sudah disembunyikan oleh algoritma steganografi. Jadi pada dasarnya yang membedakan steganografi dengan kriptografi adalah pada hasil akhirnya. Untuk kriptografi biasa berupa data yang berbeda sama sekali dari bentuk aslinya dan datanya seolah-olah berantakan (tetapi dapat dikembalikan ke bentuk semula). Sedangkan hasil keluaran dari steganografi ini memiliki bentuk persepsi yang sama dengan bentuk aslinya, tentunya persepsi disini oleh indera manusia, tetapi tidak oleh komputer atau perangkat pengolah digital lainnya. Steganografi memanfaatkan kekurangan-kekurangan sistem indera manusia seperti mata(Human Visual Sistem) dan telinga(Human Auditory System).
Steganografi memiliki tiga syarat yaitu : 1.
Robustness Pesan tersembunyi tidak akan rusak akibat operasi yang dilakukan terhadap medianya.
2.
Undetectability Sulit dideteksi bahwa sebuah media membawa pesan rahasia.
3.
Capacity Dapat menyembunyikan banyak pesan dalam sebuah media.
Dari ketiga syarat mutlak tersebut tidak semuanya dapat dipenuhi sehingga ada tiga tipe steganografi (Lihat Gambar 2.9). Yang pertama Jika proses steganografi lebih mengutamakan kapasitas pesan dan robustness tanpa memperhatikan pesan dapat dideteksi atau tidak disebut dengan naive steganography. Yang kedua jika proses steganografi lebih mengutamakan kapasitas dan keamanan(pesan tidak dapat dideteksi dengan mudah) disebut dengan secure steganography. Dan yang terakhir jika proses steganografi mengutamakan keamanan dan robustness yang bertujuan untuk memberikan tanda verifikasi kepemilikan (copyright) pada media digital disebut dengan digital watermarking.
Gambar 2. 9 Tiga Tipe Steganografi
Sumber: Soplanit (2005, p78)
Teknik pendeteksian pada steganografi ada dua macam yaitu : 1.
Teknik Non-Blind: Teknik yang pada saat pendeteksian dibutuhkan data digital aslinya(data sebelum di embedding).
2.
Teknik Blind: Teknik yang pada saat pendeteksian tidak memerlukan data digital aslinya.
Dalam steganografi pengirim dan penerima harus memiliki kunci (stego key) yang sama yang tidak diketahui oleh pihak-pihak lain yang tidak berkepentingan.
2.4
Proposed LSB (Least Significant Bit) Embedding Salah satu metode yang paling sederhana dalam steganografi adalah Least
Significant Bit (LSB) dari setiap sample pada audio (Cvejic & Seppanen). Karena perubahan satu-dua buah bit pada beberapa pixel tidak akan terdengar dengan jelas. Metode ini memanfaatkan kelemahan sistem indera pendengaran manusia yaitu HAS (Human
Auditory System). Batas pendengaran absolute manusia (Absolute
Thresholding Hearing) berada pada frekuensi antara 20Hz-20000Hz. Namun ada keterbatasan jumlah bit pesan yang dapat disisipkan atau disubstitusikan pada setiap byte-nya. Pada umumnya kedalaman maksimum LSB yang dapat digunakan untuk steganografi tanpa disadari oleh pendengarnya adalah pada layer ke-1, jika audio yang digunakan sebagai cover berkarakteristik 8 bit per sample. Semakin tinggi tingkat robustness yang ingin dicapai maka harus meningkatkan kedalaman LSB yang digunakan untuk menyembunyikan data. Maka dari itu digunakanlah Proposed LSB Embedding yang akan meningkatkan kedalaman LSB
menjadi pada layer ke-3 sedangkan jika menggunakan algoritma LSB standart kedalaman hanya terbatas pada layer ke-1. Sebelum proses penyembunyian pesan dilakukan, terlebih dahulu ditentukan lokasi penyembunyiannya. Penentuan dari lokasi penyembunyian pada audio digital ditentukan dengan cara menjumlah key yang berupa string diambil kode ASCII-nya dari masing-masing karakter. Hasil penjumlahan akan di mod 2 untuk menentukan genap atau ganjil. Jika genap maka tiap bit pesan akan disimpan pada sample genap dan jika ganjil maka tiap bit pesan akan disimpan pada sample ganjil. Langkah-langkah algoritma Proposed LSB Embedding yaitu : 1. Jika bit pesan sama dengan nol maka kerjakan langkah 2-5 jika bit pesan sama dengan satu kerjakan langkah 6. 2. Jika ai-1 sama dengan nol maka ai-1 sampai dengan a0 disubstitusi dengan satu dan selesai, jika ai-1 sama dengan satu maka ai-1 sampai dengan a0 disubstitusi dengan nol dan kerjakan langkah 3. 3. Jika ai+1 sama dengan nol maka ai+1 sama dengan satu dan selesai, jika ai+1 sama dengan satu maka kerjakan langkah 4. 4. Jika ai+2 sama dengan nol maka ai+2 sama dengan satu, jika ai+2 sama dengan satu maka ai+2 sama dengan nol. 5. Tahap ke 4 diulang sampai dengan a7 dan selesai. 6. Jika ai-1 sama dengan satu maka ai-1 sampai dengan a0 disubstitusi dengan nol dan selesai, jika ai-1 sama dengan nol maka ai-1 sampai dengan a0 disubstitusi dengan satu dan lanjut ke tahap 10. 7. Jika ai+1 sama dengan satu maka ai+1 sama dengan nol dan selesai, jika ai+1 sama dengan nol maka kerjakan langkah 8.
8. Jika ai+2 sama dengan satu maka ai+2 sama dengan nol, jika ai+2 sama dengan nol maka ai+2 sama dengan satu. 9. Tahap ke 8 diulang sampai dengan a7 dan selesai. Proses pendeteksian digunakan teknik blind sehingga diperlukan stego-key. Stego-key yang diketahui akan dijumlahkan setiap stringnya lalu di mod 2, jika hasilnya 0 maka bit-bit pesan disimpan pada sample-sample genap sedangkan jika hasilnya 1 maka disimpan pada sample-sample ganjil (Lihat. Gambar 2.10 dan Gambar 2.11).
Cipher Text
Biner
Embedding Sample Genap
Stego-Key
Cover Audio Sample Ganjil
Inconspicious File Audio
Gambar 2. 10 Proses Embedding
Sumber: Donovan (2006, p82)
Extracting Inconspicious File Audio
Sample Genap Stego-Key Sample Ganjil
Cipher Text
Gambar 2. 11 Proses Extracting
Sumber: Donovan (2006, p82)
2.5 Audio Digital Audio digital adalah representasi dari suara natural (Gelombang dari getaran pada medium udara) menjadi sekumpulan informasi digital berupa serentetan angka (Paul, 2006, p3). Proses penyimpanan audio digital adalah sebagai berikut (Paul, 2006, p4): 1.
Audio Conversion : A. Analog to digital conversion (ADC) – proses penangkapan dan digitalisasi signal analog disebut dengan sampling. B. Digital to analog conversion (DAC) – proses konversi audio digital menjadi signal untuk pemutaran kembali (diperdengarkan) atau distribusi.
2.
Audio Signal Processing: Memproses sinyal digital dengan suatu cara seperti, untuk melakukan penyetaraan, menghilangkan gema atau untuk konversi sample rate.
3.
Penyimpanan, penerimaan, dan pentransmisian infomasi digital ke dalam format audio seperti CD, mp3, OGG Vorbis,dll.
Untuk sebuah komputer digital memproses sebuah audio, sebuah metode diperlukan untuk merubah audio ke dan dari domain digital. Format yang paling umum dalam menggambarkan informasi audio dalam bentuk digital adalah Pulse Code Modulation (PCM). PCM merupakan representasi digital dari sinyal analog yang berupa sederetan angka. Gelombang suara dirubah menjadi sederetan angka(PCM) dengan cara sebagai berikut (Paul, 2006, p6): 1. Gelombang sinus yang sederhana digunakan sebagai contoh. Garis tengah pada Gambar 2.12 menggambarkan tekanan normal pada atmosfir. Bagian dari kurva sinus bagian atas dan bawah garis tengah menggambarkan pergantian positif dan negatif pada tekanan.
Gambar 2. 12 Contoh Nilai Rambatan Gelombang Audio di Udara terhadap Fungsi Waktu
Sumber: Paul (2006, p6) Keterangan Gambar 2.12 : Sumbu Y adalah media rambatan di udara. Sumbu X adalah waktu
2. Selanjutnya sebuah mikrofon digunakan untuk merubah sinyal audio di udara menjadi sinyal-sinyal elektronik. Keluaran dari mikrofon berkisar antara ± 1 volt. Gambar 2.13
Gambar 2. 13 Gelombang Elektronik
Sumber: Paul (2006, p6) Keterangan Gambar 2.13 : Sumbu Y adalah representasi nilai volt. Sumbu X adalah representasi waktu.
3. Sinyal analog elektrik kemudian diubah ke dalam bentuk angka-angka dengan alat yang disebut peubah analog-ke-digital(analog-to-digital converter). Perubah analogke-digital 16 bit merubah sinyal menjadi sederetan angka yang berkisar dari -32.768 sampai +32.767. Gambar 2.14
Gambar 2. 14 Grafik sinyal analog terhadap fungsi waktu
Sumber: Paul (2006, p6)
Keterangan Gambar 2.14: Sumbu Y adalah representasi intensitas nilai-nilai gelombang analog. Sumbu X adalah representasi waktu.
4. Karena titik-titik data dari angka yang bersifat kontinu tidak dapat direkam untuk mendapatkan karakteristik dari bentuk gelombang yang ada, maka sebuah sample diambil pada interval tertentu. Banyaknya sample yang diambil per detik disebut sampling rate. Gambar 2.14
Gambar 2. 15 Fungsi gelombang analog terhadap urutan sample (43 samples)
Sumber: Paul (2006, p6)
Keterangan Gambar 2.15: Sumbu Y adalah representasi intensitas nilai-nilai gelombang analog terhadap urutan sample. Sumbu X adalah representasi urutan sample ke-n
5. Hasil rentetan dari 43 angka menggambarkan posisi dari gelombang untuk setiap interval. Gambar 2.16
Gambar 2. 16 Hasil dari Nilai-Nilai Sample
Sumber: Paul (2006, p8)
Keterangan Gambar 2.16: Sumbu Y adalah representasi intensitas nilai-nilai gelombang digital terhadap urutan sample. Sumbu X adalah representasi urutan sample ke-n
6. Komputer kemudian dapat merekonstruksi lagi bentuk gelombangnya dengan menghubungkan
setiap
titik
sample.
Bentuk
diilustrasikan pada Gambar 2.17 (Paul: 2006, p8).
gelombang
yang
dihasilkan
Gambar 2. 17 Fungsi Intensitas Gelombang yang Telah Direkonstruksi terhadap Urutan Sample.
Sumber: Paul (2006, p8)
Terdapat perbedaan antara bentuk gelombang yang asli dengan bentuk gelombang hasil rekonstruksi(Gambar 2.12 dengan Gambar 2.17): 1. Nilai-nilai dari perubah analog ke digital adalah bilangan bulat sehingga terjadi pembulatan. 2. akurasi dari bentuk gelombang tergantung pada jumlah sample yang direkam.
Sinyal-sinyal analog yang dikonversi ke digital akan diubah ke dalam bentuk data byte, yang kemudian data dalam bentuk byte tersebut akan disimpan ke dalam media penyimpanan seperti tape, hard disk atau CD sehingga terbentuklah audio. Sampling Rate adalah jumlah dari sample yang diambil per detik ketika merekam data audio analog ke data audio digital (Paul, 2006: 8) Ketika merubah sebuah suara ke informasi digital, penting untuk mengetahui banyaknya sample yang diambil per detik. Sampling rate dipengaruhi oleh ketelitian pada saat perekaman. Biasanya audio digital
player menggunakan frekuensi 8.0 kHz, 11.025 kHz, 22.05 kHz, or 44.1 kHz untuk sampling rate. Format file audio adalah wadah untuk menyimpan data audio pada sistem komputer (Wikipedia, 2006). Ada banyak format file untuk menyimpan file audio yang terbagi ke dalam 3 grup: 1. Uncompressed formats : WAV,AIFF dan AU. 2. Lossless compression : FLAC, Monkey’s Audio(.APE), WavPack, Shorten, TTA, Apple Loosless dan lossles WMA. 3. Lossy compression : MP3, Vorbis(.OGG), WMA dan AAC.
Salah satu format file yang digunakan yaitu WAVE(.WAV). WAVE adalah format sebuah file audio yang dibuat oleh Microsoft dan digunakan oleh microsoft dan IBM sebagai standart penyimpanan file audio pada PC(personel Computer) untuk segala sesuatu mulai dari suatu sistem dan game. Format WAVE merupakan variasi dari format RIFF (Resource Interchange File Format) bitstream untuk menyimpan data pada ”chunks”, dan juga mirip dengan format IFF(Interchange File Format) dan AIFF (Audio Interchange File Format) yang digunakan oleh computer Macintosh. Format RIFF bertindak sebagai “wrapper” untuk beberapa audio compression codecs (Wikipedia, 2006) Kekurangan dari file WAVE adalah hanya terbatas pada file yang berukuran kurang dari 2 gigabytes. File WAVE terdiri dari 1 chunk (potongan) dan 2 sub-chunk informasi, yaitu : 1. RIFF chunk yang mengidentifikasikan bahwa file tersebut adalah file Wave. Chunk ini ditandai dengan teks “RIFF”.
2. Format (“fmt”) sub-chunk yang berisi informasi file seperti sample rate. Sub-chunk ini ditandai dengan teks “fmt”. 3. Data sub-chunk berisikan informasi banyak sample dan berisikan sample-sample dari file WAVE itu sendiri berupa yang terdiri dari sederetan angka PCM. Sub-chunk ini ditandai dengan teks “data”.
Format file WAVE dan contohnya dapat dilihat pada Gambar 2.18 dan Gambar 2.19.
.
Gambar 2. 18 WAVE File Format
Sumber: Stanford (2006)
Gambar 2. 19 Contoh Format File WAVE Stereo
Sumber: Stanford (2006)
File audio berformat .WAV merupakan salah satu medium penyisipan pesan yang baik, karena file dengan format ini cukup banyak digunakan pada berbagai perangkat dan aplikasi, seperti komputer, telepon seluler, dan game. Oleh karena itu, penyisipan pesan menjadi lebih mudah karena file berformat WAV mudah didapat dan umum dimiliki.
2.6 e-RMS e-RMS berfungsi untuk mengukur besarnya perbedaan kualitas antara cover audio digital dengan audio digital setelah proses embedding (Inconspicious file audio). Proses embedding dikatakan berhasil jika e-RMS antara cover audio digital dan inconspicious file audio digital kecil.
Untuk audio digital yang berukuran M, perhitungan e-RMS dirumuskan sebagai berikut (Gislounge, 2006):
dengan e-RMS = Root Mean Square Error M
= Banyaknya bit audio digital.
x
= Nomor bit audio digital.
f
= Frekuensi audio digital sebelum embedding (Cover Audio).
f’
= Frekuensi audio digital setelah embedding (inconspicious file audio).