Monday, December 2, 2013

Watermarking

WATERMARKING

A.    Pengenalan Watermarking
            Secara hierarkis, watermarking merupakan suatu proses yang berakar pada konsep ilmu steganography. Steganography sendiri sudah dikenal sejak jaman Mesir kuno. Menurut Cachin, steganography diartikan sebagai suatu seni dan ilmu untuk menyembunyikan pesan yang sebenarnya sehingga orang awam tidak dapat mendeteksinya. Menurut Popa dalam, steganography dapat dibagi menjadi 2 (dua) bagian yaitu protection against detection (data hiding) dan protection against removal (document marking). Watermarking merupakan salah satu jenis dari document marking. Pembagian steganography dapat terlihat dalam gambar sebagai berikut:


Gambar 1. Pembagian Steganography 


Steganography juga digunakan selama perang dunia kedua, antara lain untuk mengirim pesan-pesan rahasia agar tidak diketahui oleh musuh. Sebagai contoh, seorang mata-mata German pernah mengirimkan pesan “Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects for pretext embargo on by-products, ejecting suets and vegetable oils.” Rangkaian pesan tersebut ternyata memiliki pesan tersembunyi yang akan terlihat dengan mengambil huruf kedua dari tiap kata. Pesan sebenarnya adalah “Pershing sails for NY June 1”.
            Perkembangan dunia internet yang memungkinkan semua bentuk media dapat menyebar dengan mudah, mendorong pembuat dokumen multimedia untuk menambahkan suatu tanda di dalam dokumen multimedia yang dibuat. Tanda (marking) yang ditambahnya umumnya berupa identitas atau copyright dari dokumen tersebut.
            Watermarking merupakan teknik penyisipan data ke dalam elemen multimedia seperti citra, audio atau video. Data yang disisipkan tersebut kemudian harus dapat diekstrak atau dideteksi berada di dalam multimedia tersebut. Dari pengertian tersebut, terdapat dua proses utama dalam watermarking, yaitu proses menyisipkan data (encode) dan proses mengekstrak data (decode). Secara umum proses yang terjadi dalam watermarking terlihat dalam gambar berikut ini:



Gambar 2. Proses Watermarking

Dari gambar tersebut terlihat bahwa gambar asli akan di-encode dengan menambahkan gambar rahasia dan kunci tertentu. Gambar yang sudah di-encode, selanjutnya dapat ditransfer melalui suatu jalur komunikasi dan jika akan diperiksa keasliannya atau ingin mendapatkan gambar aslinya, maka dilakukan proses decoder. Proses decoder key (kunci) yang sama dengan kunci pada proses encode.
            Menurut R Chandramouli, Memon, Nasir dan Rabbani dalam buku mereka yang berjudul Digital Watermarking pada tahun 2002, teknik digital watermarking dapat diaplikasikan dalam berbagai hal, antara lain:
1.      Ownership Assertion. Kepemilikan dari dokumen multimedia dapat dilindungi dengan menambahkan watermark yang berisi informasi pemilik dari dokumen multimedia. Pemilik juga dapat mempublikasikan dokumen multimedia yang sudah disisipi watermark dengan aman tanpa harus mempublikasikan dokumen multimedia yang asli. Jika terjadi terjadi klaim dari orang lain mengenai dokumen multimedia tersebut, tentu dapat diketahui secara otentik siapa pemilik sebenarnya.
2.      Fingerprinting. Watermarking dan fingerprinting pada dasarnya sama, hanya saja pada fingerprinting, penyisipan watermark biasanya bersifat unik untuk suatu dokumen multimedia. Dokumen multimedia yang sama dapat memiliki fingerprint yang berbeda.

3.      Copy prevention or control. Teknik watermarking juga dapat dilakukan untuk mencegah dokumen multimedia untuk diduplikasi dengan hardware atau software tertentu. Misalnya untuk mencegah suatu dokumen multimedia yang tersimpan dalam CD atau DVD agar tidak diduplikasi dengan CD atau DVD copier.
Gambar 3. Copy Control
4..      Fraud and tamper detection. Watermarking juga dapat digunakan untuk mendeteksi adanya pembajakan terhadap suatu dokumen digital.

5.       ID card security. Informasi berupa passport atau ID juga dapat disertakan sebagai watermark ke dalam foto orang yang bersangkutan, sehingga jika suatu saat dokumen seperti passport dimanipulasi oleh orang lain dengan mengganti fotonya maka dapat dideteksi 


B.    Teknik-teknik Watermarking terhadap Berbagai Bentuk Multimedia
            Setiap bentuk dan jenis multimedia memiliki katakteristik tersendiri sehingga dalam proses watermarking juga memiliki teknik yang berbeda-beda. Namun secara umum, teknik watermarking yang baik harus memenuhi kriteria sebagai berikut:
§  Imperceptibility.
Secara kasat mata manusia, antara media asli dan media yang sudah disisipi watermark harus tidak dapat dibedakan.

§  Trustworthiness.
Watermark harus dapat menjamin kepemilikan asli dari media tersebut, artinya watermark harus sulit untuk dipalsukan.

§  Robustness. Watermark yang dihasilkan harus tangguh dan tahan terhadap perubahan yang terjadi pada media.

Berikut ini teknik-teknik watermarking untuk jenis media text, image, audio dan video:
1. Text Watermarking
Proses watermarking terhadap dokumen teks sebenarnya telah dilakukan di dalam kehidupan sehari-hari, misalnya dengan mencetak dokumen teks pada media khusus seperti kertas segel. Namun untuk melakukan watermarking pada teks yang tersimpan dalam dokumen digital, teknik yang dilakukan tidaklah sama. Berikut ini beberapa teknik watermarking terhadap teks.
§  Line Shift Coding Protocol
Teknik watermarking ini dilakukan dengan mengurangi jarak antar teks dari sisi baris. Jarak yang dikurangi tersebut dibuat sekecil mungkin (misalnya 1/300 inch) sehingga tidak akan terdeteksi oleh mata telanjang, namun dapat dideteksi dengan mudah dengan komputer.

§  Word Shift Coding Protocol
Word Shift Coding Protocol pada dasarnya sama dengan teknik Line Shift Coding Protocol, hanya saja yang dikurangi bukan spasi antar baris, namun spasi antar kata (word).
§  White Space Manipulation

§  Text Content
2.      Image Watermarking
Watermarking terhadap gambar (image) paling banyak dilakukan untuk melindungi gambar seperti foto. Saat ini cukup banyak teknik maupun algoritma watermarking terhadap gambar yang ditawarkan. Beberapa diantaranya sebagai berikut:
§  Simple Watermarking
Teknik ini merupakan teknik yang paling sederhana dimana watermarking dilakukan dengan menambahkan gambar atau teks tertentu pada gambar asli. Dan untuk mendapatkan gambar asli kembali, watermark yang ditambahkan dapat dibuang dengan teknik, tool dan keahlian tertentu. Gambar berikut ini merupakan contoh watermarking sederhana

Gambar 4. Contoh Watermarking Sederhana

§        #Least Significant Bit Hiding (Image Hiding)
Menurut [10], metode LSB (Least Significant Bit) merupakan salah satu metode watermarking yang bekerja dalam mode warna RGB (Red, Green, Blue). Metode ini bekerja dengan cara menyisipkan informasi pada bit-bit paling kanan dari setiap elemen RGB. Perubahan bit paling kanan hanya menimbulkan perubahan nilai RGB sebesar 1 dari 256 warna yang ada. Perubahan tersebut tidak dapat dideteksi dengan mata telanjang. Namun dengan komputer, misalnya menggunakan metode Enhanced
LSB, dapat dideteksi dengan mudah apakah gambar mengandung watermark atau tidak. Metode LSB mudah untuk dideteksi karena penyisipan informasi dilakukan secara langsung dalam bit-bit dokumen tanpa melalui proses pengacakan.
§       #Hue Saturation Lightness (HSL)
Metode watermarking dengan HSL pada dasarnya mirip dengan metode LSB. Metode HSL bekerja pada mode warna HSL sedangkan metode LSB bekerja pada mode RGB. Pemanfaatan metode HSL ini untuk melakukan watermarking pada citra bitmap menghasilnya metode HSL lebih baik dibanding metode LSB.
§     #Discrete Cosine Transformation (DCT)
Sebelum dilakukan encoding, gambar asli dibagi terlebih dahulu menjadi beberapa bagian, misalnya matriks 8 x 8. Algoritma dalam teknik DCT ini selain digunakan untuk menyembunyikan informasi, juga digunakan untuk melakukan kompresi terhadap gambar, terutama yang bertipe JPEG. · Discrete Wavelet Transformation (DWT)
Teknik ini merupakan teknik yang lebih efektif dibanding DCT, dimana memiliki tingkat kompresi yang lebih tinggi.
§     #Independent Component Analysis (ICA)
Saat ini ICA juga diterapkan dalam teknik watermarking, misalnya dalam buku yang berjudul ”Independent component analysis applied to digital image watermarking,”, algoritma ICA diterapkan dalam blok dari host image dan watermark image. Berdasarkan Latha Parameswaran dan Anbumani mendiskusikan mengenai penerapan blind content based watermarking dengan memanfaatkan konsep ICA dan DCT. Hasilnya jauh lebih baik dan akurat dibanding teknik tanpa ICA, akan tetapi memiliki kelemahan dalam hal kecepatannya.
§     #Singular Value Decomposition (SVD)
Pemanfaatan teknik SVD dalam watermarking dijelaskan dalam buku yang berjudul “Teknik Watermarking Citra berbasis SVD. Teknik ini dapat digunakan untuk melakukan autentifikasi citra berdasarkan nilai korelasi watermark yang di-ekstrak. Teknik ini cukup robust terhadap beberapa pengolahan citra.
§     #Spread Spectrum Watermarking
Metode spread spectrum watermarking melakukan penyisipan dan pendeteksian watermark dalam ranah transform [20]. Mula-mula citra ditransformasikan ke dalam ranah frekuensi, lalu bit watermark disisipkan pada koefisien transformasi (misalnya koefisien DCT, FFT, DWT). Metode ini lebih robust terhadap gangguan atau serangan seperti kompresi, cropping dan low pass filtering.

3. Sound Watermarking
Selain untuk dokumen berupa image, teknik Spread Spectrum juga dapat diterapkan di dokumen multimedia jenis audio. Teknik Spread Spectrum merupakan teknik yang cukup populer saat ini. Pesan yang akan disampaikan dianggap sebagai sinyal narrowband bukan sinyal wideband. Teknik yang digunakan dalam Spread Spectrum adalah dengan menyebarkan bit-bit watermark di atas saluran frekuensi rendah.
4. Video Watermarking
Watermarking terhadap dokumen multimedia berupa video dapat melibatkan beberapa teknik watermarking, misalnya watermarking terhadap gambar dan suara. Dalam melakukan watermarking terhadap video, beberapa hal perlu diperhatikan yaitu robustness terhadap kompresi, perubahan geometris maupun pemotongan frame, kebenaran pengkodean frame tanpa visual artefact dan harus memperhatikan runtime atau performa kecepatan dari video yang dihasilkan. Beberapa contoh algoritma yang dapat diterapkan dalam video watermarking antara lain algoritma Zhao Koch dan algoritma Fridrich. Menurut Fery Sinambela, Ranto Pramono dan Krisna Adirama, algoritma Zhao Koch memiliki kelebihan jika diterapkan pada video jenis MPEG, sementara algoritma Fridrich memiliki keuntungan karena dapat menyisipkan lebih banyak informasi.

C.    Batasan dan Gangguan terhadap Watermarking
            Media yang sudah disisipi watermark tidaklah sepenuhnya aman, karena pada dasarnya teknik watermarking hanyalah teknik menyembunyikan suatu informasi. Watermarking memiliki batasan-batasan dan juga beberapa faktor (operasi) yang dapat mempengaruhi watermarking itu sendiri. Salah satu keterbatasan dari teknik watermarking adalah keterbatasan jumlah data atau informasi yang dapat disisipkan ke dalam dokumen digital. Semakin banyak informasi yang disisipkan tentu akan membuat dokumen digital semakin besar dari sisi ukurannya. Selain itu, watermarking juga dapat terganggu oleh beberapa operasi terhadap dokumen multimedia. Gangguan tersebut dapat menyebabkan kerusakan
bahkan kehilangan informasi dalam watermark. Menurut M. Kutter dan F. A. P. Petitcolas, beberapa gangguan (attack) dapat mempengaruhi watermarking yaitu:
§  JPEG Compression. Kompresi terhadap file multimedia terutama JPEG dapat mempengaruhi atau merusak watermark di dalamnya.
§  Geometric Transformation. Perubahan posisi geometris media yang sudah disisipi watermark juga dapat mempengaruhi watermark tersebut. Perubahan geometris Antara lain horizontal flip, rotation, cropping, scalling, deletion of lines or columns dan geometric distortions.
§  Enhanchement Techniques. Operasi seperti low pass filtering, sharpening, histogram modification, dan gamma corrections dapat mempengaruhi dan merusak watermark dalam suatu media.
§  Penambahan noise dalam media.
§  Proses printing dan scanning media.
§  Statistical averaging and collusion
§  Over-marking
§  Oracle Attack.
 continue: devitaapriyadi.blogspot.com
NAMA KELOMPOK :
1.REZA 
2.DEVITA PRIYADI
3.BOBY DWI CAHYO
WATERMARKING

A.    Pengenalan Watermarking
            Secara hierarkis, watermarking merupakan suatu proses yang berakar pada konsep ilmu steganography. Steganography sendiri sudah dikenal sejak jaman Mesir kuno. Menurut Cachin, steganography diartikan sebagai suatu seni dan ilmu untuk menyembunyikan pesan yang sebenarnya sehingga orang awam tidak dapat mendeteksinya. Menurut Popa dalam, steganography dapat dibagi menjadi 2 (dua) bagian yaitu protection against detection (data hiding) dan protection against removal (document marking). Watermarking merupakan salah satu jenis dari document marking. Pembagian steganography dapat terlihat dalam gambar sebagai berikut:
Gambar 1. Pembagian Steganography
            Steganography juga digunakan selama perang dunia kedua, antara lain untuk mengirim pesan-pesan rahasia agar tidak diketahui oleh musuh. Sebagai contoh, seorang mata-mata German pernah mengirimkan pesan “Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects for pretext embargo on by-products, ejecting suets and vegetable oils.” Rangkaian pesan tersebut ternyata memiliki pesan tersembunyi yang akan terlihat dengan mengambil huruf kedua dari tiap kata. Pesan sebenarnya adalah “Pershing sails for NY June 1”.
            Perkembangan dunia internet yang memungkinkan semua bentuk media dapat menyebar dengan mudah, mendorong pembuat dokumen multimedia untuk menambahkan suatu tanda di dalam dokumen multimedia yang dibuat. Tanda (marking) yang ditambahnya umumnya berupa identitas atau copyright dari dokumen tersebut.
            Watermarking merupakan teknik penyisipan data ke dalam elemen multimedia seperti citra, audio atau video. Data yang disisipkan tersebut kemudian harus dapat diekstrak atau dideteksi berada di dalam multimedia tersebut. Dari pengertian tersebut, terdapat dua proses utama dalam watermarking, yaitu proses menyisipkan data (encode) dan proses mengekstrak data (decode). Secara umum proses yang terjadi dalam watermarking terlihat dalam gambar berikut ini:
Gambar 2. Proses Watermarking
            Dari gambar tersebut terlihat bahwa gambar asli akan di-encode dengan menambahkan gambar rahasia dan kunci tertentu. Gambar yang sudah di-encode, selanjutnya dapat ditransfer melalui suatu jalur komunikasi dan jika akan diperiksa keasliannya atau ingin mendapatkan gambar aslinya, maka dilakukan proses decoder. Proses decoder key (kunci) yang sama dengan kunci pada proses encode.
            Menurut R Chandramouli, Memon, Nasir dan Rabbani dalam buku mereka yang berjudul Digital Watermarking pada tahun 2002, teknik digital watermarking dapat diaplikasikan dalam berbagai hal, antara lain:
1.      Ownership Assertion. Kepemilikan dari dokumen multimedia dapat dilindungi dengan menambahkan watermark yang berisi informasi pemilik dari dokumen multimedia. Pemilik juga dapat mempublikasikan dokumen multimedia yang sudah disisipi watermark dengan aman tanpa harus mempublikasikan dokumen multimedia yang asli. Jika terjadi terjadi klaim dari orang lain mengenai dokumen multimedia tersebut, tentu dapat diketahui secara otentik siapa pemilik sebenarnya.
2.      Fingerprinting. Watermarking dan fingerprinting pada dasarnya sama, hanya saja pada fingerprinting, penyisipan watermark biasanya bersifat unik untuk suatu dokumen multimedia. Dokumen multimedia yang sama dapat memiliki fingerprint yang berbeda.

3.      Copy prevention or control. Teknik watermarking juga dapat dilakukan untuk mencegah dokumen multimedia untuk diduplikasi dengan hardware atau software tertentu. Misalnya untuk mencegah suatu dokumen multimedia yang tersimpan dalam CD atau DVD agar tidak diduplikasi dengan CD atau DVD copier.
Gambar 3. Copy Control
4.      Fraud and tamper detection. Watermarking juga dapat digunakan untuk mendeteksi adanya pembajakan terhadap suatu dokumen digital.

5.      ID card security. Informasi berupa passport atau ID juga dapat disertakan sebagai watermark ke dalam foto orang yang bersangkutan, sehingga jika suatu saat dokumen seperti passport dimanipulasi oleh orang lain dengan mengganti fotonya maka dapat dideteksi.

B.     Teknik-teknik Watermarking terhadap Berbagai Bentuk Multimedia
            Setiap bentuk dan jenis multimedia memiliki katakteristik tersendiri sehingga dalam proses watermarking juga memiliki teknik yang berbeda-beda. Namun secara umum, teknik watermarking yang baik harus memenuhi kriteria sebagai berikut:
§  Imperceptibility.
Secara kasat mata manusia, antara media asli dan media yang sudah disisipi watermark harus tidak dapat dibedakan.

§  Trustworthiness.
Watermark harus dapat menjamin kepemilikan asli dari media tersebut, artinya watermark harus sulit untuk dipalsukan.

§  Robustness. Watermark yang dihasilkan harus tangguh dan tahan terhadap perubahan yang terjadi pada media.

Berikut ini teknik-teknik watermarking untuk jenis media text, image, audio dan video:
1. Text Watermarking
Proses watermarking terhadap dokumen teks sebenarnya telah dilakukan di dalam kehidupan sehari-hari, misalnya dengan mencetak dokumen teks pada media khusus seperti kertas segel. Namun untuk melakukan watermarking pada teks yang tersimpan dalam dokumen digital, teknik yang dilakukan tidaklah sama. Berikut ini beberapa teknik watermarking terhadap teks.
§  Line Shift Coding Protocol
Teknik watermarking ini dilakukan dengan mengurangi jarak antar teks dari sisi baris. Jarak yang dikurangi tersebut dibuat sekecil mungkin (misalnya 1/300 inch) sehingga tidak akan terdeteksi oleh mata telanjang, namun dapat dideteksi dengan mudah dengan komputer.

§  Word Shift Coding Protocol
Word Shift Coding Protocol pada dasarnya sama dengan teknik Line Shift Coding Protocol, hanya saja yang dikurangi bukan spasi antar baris, namun spasi antar kata (word).
§  White Space Manipulation

§  Text Content
2.      Image Watermarking
Watermarking terhadap gambar (image) paling banyak dilakukan untuk melindungi gambar seperti foto. Saat ini cukup banyak teknik maupun algoritma watermarking terhadap gambar yang ditawarkan. Beberapa diantaranya sebagai berikut:
§  Simple Watermarking
Teknik ini merupakan teknik yang paling sederhana dimana watermarking dilakukan dengan menambahkan gambar atau teks tertentu pada gambar asli. Dan untuk mendapatkan gambar asli kembali, watermark yang ditambahkan dapat dibuang dengan teknik, tool dan keahlian tertentu. Gambar berikut ini merupakan contoh watermarking sederhana.
Gambar 4. Contoh Watermarking Sederhana

§  Least Significant Bit Hiding (Image Hiding)
Menurut [10], metode LSB (Least Significant Bit) merupakan salah satu metode watermarking yang bekerja dalam mode warna RGB (Red, Green, Blue). Metode ini bekerja dengan cara menyisipkan informasi pada bit-bit paling kanan dari setiap elemen RGB. Perubahan bit paling kanan hanya menimbulkan perubahan nilai RGB sebesar 1 dari 256 warna yang ada. Perubahan tersebut tidak dapat dideteksi dengan mata telanjang. Namun dengan komputer, misalnya menggunakan metode Enhanced
LSB, dapat dideteksi dengan mudah apakah gambar mengandung watermark atau tidak. Metode LSB mudah untuk dideteksi karena penyisipan informasi dilakukan secara langsung dalam bit-bit dokumen tanpa melalui proses pengacakan.
§  Hue Saturation Lightness (HSL)
Metode watermarking dengan HSL pada dasarnya mirip dengan metode LSB. Metode HSL bekerja pada mode warna HSL sedangkan metode LSB bekerja pada mode RGB. Pemanfaatan metode HSL ini untuk melakukan watermarking pada citra bitmap menghasilnya metode HSL lebih baik dibanding metode LSB.
§  Discrete Cosine Transformation (DCT)
Sebelum dilakukan encoding, gambar asli dibagi terlebih dahulu menjadi beberapa bagian, misalnya matriks 8 x 8. Algoritma dalam teknik DCT ini selain digunakan untuk menyembunyikan informasi, juga digunakan untuk melakukan kompresi terhadap gambar, terutama yang bertipe JPEG. · Discrete Wavelet Transformation (DWT)
Teknik ini merupakan teknik yang lebih efektif dibanding DCT, dimana memiliki tingkat kompresi yang lebih tinggi.
§  Independent Component Analysis (ICA)
Saat ini ICA juga diterapkan dalam teknik watermarking, misalnya dalam buku yang berjudul ”Independent component analysis applied to digital image watermarking,”, algoritma ICA diterapkan dalam blok dari host image dan watermark image. Berdasarkan Latha Parameswaran dan Anbumani mendiskusikan mengenai penerapan blind content based watermarking dengan memanfaatkan konsep ICA dan DCT. Hasilnya jauh lebih baik dan akurat dibanding teknik tanpa ICA, akan tetapi memiliki kelemahan dalam hal kecepatannya.
§  Singular Value Decomposition (SVD)
Pemanfaatan teknik SVD dalam watermarking dijelaskan dalam buku yang berjudul “Teknik Watermarking Citra berbasis SVD. Teknik ini dapat digunakan untuk melakukan autentifikasi citra berdasarkan nilai korelasi watermark yang di-ekstrak. Teknik ini cukup robust terhadap beberapa pengolahan citra.
§  Spread Spectrum Watermarking
Metode spread spectrum watermarking melakukan penyisipan dan pendeteksian watermark dalam ranah transform [20]. Mula-mula citra ditransformasikan ke dalam ranah frekuensi, lalu bit watermark disisipkan pada koefisien transformasi (misalnya koefisien DCT, FFT, DWT). Metode ini lebih robust terhadap gangguan atau serangan seperti kompresi, cropping dan low pass filtering.

3. Sound Watermarking
Selain untuk dokumen berupa image, teknik Spread Spectrum juga dapat diterapkan di dokumen multimedia jenis audio. Teknik Spread Spectrum merupakan teknik yang cukup populer saat ini. Pesan yang akan disampaikan dianggap sebagai sinyal narrowband bukan sinyal wideband. Teknik yang digunakan dalam Spread Spectrum adalah dengan menyebarkan bit-bit watermark di atas saluran frekuensi rendah.
4. Video Watermarking
Watermarking terhadap dokumen multimedia berupa video dapat melibatkan beberapa teknik watermarking, misalnya watermarking terhadap gambar dan suara. Dalam melakukan watermarking terhadap video, beberapa hal perlu diperhatikan yaitu robustness terhadap kompresi, perubahan geometris maupun pemotongan frame, kebenaran pengkodean frame tanpa visual artefact dan harus memperhatikan runtime atau performa kecepatan dari video yang dihasilkan. Beberapa contoh algoritma yang dapat diterapkan dalam video watermarking antara lain algoritma Zhao Koch dan algoritma Fridrich. Menurut Fery Sinambela, Ranto Pramono dan Krisna Adirama, algoritma Zhao Koch memiliki kelebihan jika diterapkan pada video jenis MPEG, sementara algoritma Fridrich memiliki keuntungan karena dapat menyisipkan lebih banyak informasi.

C.    Batasan dan Gangguan terhadap Watermarking
            Media yang sudah disisipi watermark tidaklah sepenuhnya aman, karena pada dasarnya teknik watermarking hanyalah teknik menyembunyikan suatu informasi. Watermarking memiliki batasan-batasan dan juga beberapa faktor (operasi) yang dapat mempengaruhi watermarking itu sendiri. Salah satu keterbatasan dari teknik watermarking adalah keterbatasan jumlah data atau informasi yang dapat disisipkan ke dalam dokumen digital. Semakin banyak informasi yang disisipkan tentu akan membuat dokumen digital semakin besar dari sisi ukurannya. Selain itu, watermarking juga dapat terganggu oleh beberapa operasi terhadap dokumen multimedia. Gangguan tersebut dapat menyebabkan kerusakan
bahkan kehilangan informasi dalam watermark. Menurut M. Kutter dan F. A. P. Petitcolas, beberapa gangguan (attack) dapat mempengaruhi watermarking yaitu:
§  JPEG Compression. Kompresi terhadap file multimedia terutama JPEG dapat mempengaruhi atau merusak watermark di dalamnya.
§  Geometric Transformation. Perubahan posisi geometris media yang sudah disisipi watermark juga dapat mempengaruhi watermark tersebut. Perubahan geometris Antara lain horizontal flip, rotation, cropping, scalling, deletion of lines or columns dan geometric distortions.
§  Enhanchement Techniques. Operasi seperti low pass filtering, sharpening, histogram modification, dan gamma corrections dapat mempengaruhi dan merusak watermark dalam suatu media.
§  Penambahan noise dalam media.
§  Proses printing dan scanning media.
§  Statistical averaging and collusion
§  Over-marking
§  Oracle Attack.

D.    Definisi MATLAB
            MATLAB adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi masalah teknik. Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat mudah untuk dipakai dimana masalah-masalah dan penyelesaiannya diekspresikan dalam notasi matematika yang familiar. Penggunaan Matlab meliputi bidang-bidang :
1.      Matematika dan Komputasi
2.      Pembentukan Algorithm
3.      Akusisi Data
4.      Pemodelan, simulasi, dan pembuatan prototype
5.      Analisa Data, eksplorasi, dan visualisasi
6.      Grafik Keilmuan dan bidang Rekayasa
            Matlab merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array sehingga tidak lagi kita pusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, khususnya yang berhubungan dengan matrix dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic.
            Nama Matlab merupakan singkatan dari Matrix Laboratory. MatLab pada awalnya ditulis untuk memudahkan akses perangkat lunak matrik yang telah dibentuk oleh LINPACK dan EISPACK.
            Fitur-fitur Matlab sudah banyak dikembangkan, dan lebih dikenal dengan nama toolbox. Toolbox merupakan kumpulan dari fungsi-fungsi Matlab (M-files) yang telah dikembangkan ke suatu lingkungan kerja Matlab untuk memecahkan masalah dalam kelas particular. Area-area yang sudah bisa dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, system control, neural networks, fuzzy logic, wavelets, dan lain-lain.

Kelengkapan pada Sistem Matlab
Sebagai sebuah sistem, Matlab tersusun dari 5 bagian utama, yaitu :
1.      Development Environment. Merupakan sekumpulan perangkat dan fasilitas yang membantu untuk menggunakan fungsi-fungsi dan file-file Matlab. Beberapa perangkat ini merupakan sebuah graphical user interface (GUI). Termasuk didalamnya adalah Matlab desktop dan Command Window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path.
2.      MATLAB Mathematical Function Library. Merupakan sekumpulan algoritma komputasi mulai dari fungsi-fungsi dasar sepertri: sum, sin, cos, dan complex arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms.
3.      MATLAB Language. Merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan untuk melakukan kedua hal baik "pemrograman dalam lingkup sederhana " untuk mendapatkan hasil yang cepat, dan "pemrograman dalam lingkup yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang komplek.
4.      Graphics. MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk visualisasi data dua dikensi dan data tiga diConmensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan bagi anda untuk membiasakan diri untuk memunculkan grafik mulai dari benutk yang sederhana sampai dengan tingkatan graphical user interfaces pada aplikasi MATLAB anda.
5.      MATLAB Application Program Interface (API). Merupakan suatu library yang memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran mampu berinterakasi dengan MATLAB. Ini melibatkan fasilitas untuk pemanggilan routines dari MATLAB (dynamic linking), pemanggilan MATLAB sebagai sebuah computational engine, dan untuk membaca dan menuliskan MAT-files.


E.     Code Watermarking
F. % Demo to watermark an image by hiding another image in a certain bit
G. % plane.  Sometimes called "LSB Watermarking" or something similar.
H. % User is asked which bit plane they want to hide the image in.
I. clc;    % Clear the command window.
J. close all% Close all figures (except those of imtool.)
K. clear;  % Erase all existing variables.
L. fontSize = 12;
M. % Read in the image what will have another image hidden into it.
N. baseFileName='moon.tif';
O. % baseFileName='cameraman.tif';
P. folder = fullfile(matlabroot, '\toolbox\images\imdemos');
Q. % Get the full filename, with path prepended.
R. fullFileName = fullfile(folder, baseFileName);
S. if ~exist(fullFileName, 'file')
T.     % Didn't find it there.  Check the search path for it.
U.     fullFileName = baseFileName; % No path this time.
V.     if ~exist(fullFileName, 'file')
W.         % Still didn't find it.  Alert user.
X.         errorMessage = sprintf('Error: %s does not exist.', fullFileName);
Y.         uiwait(warndlg(errorMessage));
Z.         return;
AA.        end
BB.    end
CC.    originalImage = imread(fullFileName);
DD.    % Get the number of rows and columns in the original image.
EE.    [visibleRows visibleColumns numberOfColorChannels] = size(originalImage);
FF.    if numberOfColorChannels > 1
GG.        % If it's color, extract the red channel.
HH.        originalImage = originalImage(:,:,1);
II.    end
JJ.    % Display the original gray scale image.
KK.    subplot(3, 3, 4);
LL.    imshow(originalImage, []);
MM.    title('Original Grayscale Starting Image', 'FontSize', fontSize);
NN.    % Enlarge figure to full screen.
OO.    set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
PP.    set(gcf,'name','Demo by ImageAnalyst','numbertitle','off')
QQ.    % read the message image you want to hide in the cover image
RR.    baseFileName='cameraman.tif';
SS.    % baseFileName='moon.tif';
TT.    % Get the full filename, with path prepended.
UU.    fullFileName = fullfile(folder, baseFileName);
VV.    if ~exist(fullFileName, 'file')
WW.        % Didn't find it there.  Check the search path for it.
XX.        fullFileName = baseFileName; % No path this time.
YY.        if ~exist(fullFileName, 'file')
ZZ.            % Still didn't find it.  Alert user.
AAA.          errorMessage = sprintf('Error: %s does not exist.', fullFileName);
BBB.          uiwait(warndlg(errorMessage));
CCC.          return;
DDD.      end
EEE.  end
FFF.  hiddenImage = imread(fullFileName);
GGG.  % Get the number of rows and columns in the hidden image.
HHH.  [hiddenRows hiddenColumns numberOfColorChannels] = size(hiddenImage);
III.  if numberOfColorChannels > 1
JJJ.      % If it's color, extract the red channel.
KKK.      hiddenImage = hiddenImage(:,:,1);
LLL.  end
MMM.  % Display the image.
NNN.  subplot(3, 3, 1);
OOO.  imshow(hiddenImage, []);
PPP.  title('Image to be Hidden', 'FontSize', fontSize);
QQQ.  % Let's compute and display the histogram.
RRR.  [pixelCount grayLevels] = imhist(hiddenImage);
SSS.  subplot(3, 3, 2);
TTT.  bar(pixelCount);
UUU.  title('Histogram of image to be hidden', 'FontSize', fontSize);
VVV.  xlim([0 grayLevels(end)]); % Scale x axis manually.
WWW.  grid on;
XXX.  thresholdValue = 70;
YYY.  binaryImage = hiddenImage < thresholdValue;
ZZZ.  % Display the image.
AAAA.          subplot(3, 3, 3);
BBBB.          imshow(binaryImage, []);
CCCC.          caption = sprintf('Hidden Image Thresholded at %d', thresholdValue);
DDDD.          title(caption, 'FontSize', fontSize);
EEEE.          % Get the bit plane to hide the image in.
FFFF.          prompt = 'Enter the bit plane you want to hide the image in (1 - 8) ';
GGGG.          dialogTitle = 'Enter Bit Plane to Replace';
HHHH.          numberOfLines = 1;
IIII.          defaultResponse = {'6'};
JJJJ.          bitToSet = str2double(cell2mat(inputdlg(prompt, dialogTitle, numberOfLines, defaultResponse)));
KKKK.          % If image to be hidden is bigger than the original image, scale it down.
LLLL.          if hiddenRows > visibleRows || hiddenColumns > visibleColumns
MMMM.              amountToShrink = min([visibleRows / hiddenRows, visibleColumns / hiddenColumns]);
NNNN.              binaryImage = imresize(binaryImage, amountToShrink);
OOOO.              % Need to update the number of rows and columns.
PPPP.              [hiddenRows hiddenColumns] = size(binaryImage);
QQQQ.          end
RRRR.          % Tile the hiddenImage, if it's smaller, so that it will cover the original image.
SSSS.          if hiddenRows < visibleRows || hiddenColumns < visibleColumns
TTTT.              watermark = zeros(size(originalImage), 'uint8');
UUUU.              for column = 1:visibleColumns
VVVV.                  for row = 1:visibleRows
WWWW.                      watermark(row, column) = binaryImage(mod(row,hiddenRows)+1, mod(column,hiddenColumns)+1);
XXXX.                  end
YYYY.              end
ZZZZ.              % Crop it to the same size as the original image.
AAAAA.            watermark = watermark(1:visibleRows, 1:visibleColumns);
BBBBB.        else
CCCCC.            % Watermark is the same size as the original image.
DDDDD.            watermark = binaryImage;
EEEEE.        end
FFFFF.        % Display the thresholded binary image - the watermark alone.
GGGGG.        subplot(3, 3, 5);
HHHHH.        imshow(watermark, []);
IIIII.        caption = sprintf('Hidden Image\nto be Inserted into Bit Plane %d', bitToSet);
JJJJJ.        title(caption, 'FontSize', fontSize);
KKKKK.        % Set the bit of originalImage(a copy, actually) to the value of the watermark.
LLLLL.        watermarkedImage = originalImage; % Initialize
MMMMM.        for column = 1 : visibleColumns
NNNNN.            for row = 1 : visibleRows
OOOOO.                watermarkedImage(row, column) = bitset(originalImage(row, column), bitToSet, watermark(row, column));
PPPPP.            end
QQQQQ.        end
RRRRR.        % Display the image.
SSSSS.        subplot(3, 3, 6);
TTTTT.        imshow(watermarkedImage, []);
UUUUU.        caption = sprintf('Final Watermarked Image\nwithout added Noise');
VVVVV.        title(caption, 'FontSize', fontSize);
WWWWW.        % add noise to watermarked image
XXXXX.        noisyWatermarkedImage = imnoise(watermarkedImage,'gaussian', 0, 0.0005);
YYYYY.        % Display the image.
ZZZZZ.        subplot(3, 3, 7);
AAAAAA.      imshow(noisyWatermarkedImage, []);
BBBBBB.      caption = sprintf('Watermarked Image\nwith added Noise');
CCCCCC.      title(caption, 'FontSize', fontSize);
DDDDDD.      %====================================================================================
EEEEEE.      % Now let's pretend we are starting with the watermarked noisy corrupted image.
FFFFFF.      % We want to recover the watermark.
GGGGGG.      % Use the known bitplane of watermarked image to recover the watermark.
HHHHHH.      recoveredWatermark = zeros(size(noisyWatermarkedImage));
IIIIII.      recoveredNoisyWatermark = zeros(size(noisyWatermarkedImage));
JJJJJJ.      for column = 1:visibleColumns
KKKKKK.          for row = 1:visibleRows
LLLLLL.              recoveredWatermark(row, column) = bitget(watermarkedImage(row, column), bitToSet);
MMMMMM.              recoveredNoisyWatermark(row, column) = bitget(noisyWatermarkedImage(row, column), bitToSet);
NNNNNN.          end
OOOOOO.      end
PPPPPP.      % Scale the recovered watermark to 0=255
QQQQQQ.      recoveredWatermark = uint8(255 * recoveredWatermark);
RRRRRR.      recoveredNoisyWatermark = uint8(255 * recoveredNoisyWatermark);
SSSSSS.      % Display the images.
TTTTTT.      subplot(3, 3, 8);
UUUUUU.      imshow(recoveredWatermark, []);
VVVVVV.      caption = sprintf('Watermark Recovered\nfrom Bit Plane %d of\nNoise-Free Watermarked Image', bitToSet);
WWWWWW.      title(caption, 'FontSize', fontSize);
XXXXXX.      % Display the images.
YYYYYY.      subplot(3, 3, 9);
ZZZZZZ.      imshow(recoveredNoisyWatermark, []);
AAAAAAA.    caption = sprintf('Watermark Recovered\nfrom Bit Plane %d of\nNoisy Watermarked Image', bitToSet);
BBBBBBB.    title(caption, 'FontSize', fontSize);
CCCCCCC.    msgbox('Done with demo!');

Output



DAFTAR PUSTAKA





NAMA KELOMPOK :
1.REZA 
2.DEVITA PRIYADI
3.BOBY DWI CAHYO