Mean Squared Error MSE Metodologi Penelitian Analisis Algoritma Kombinasi MLSB-LSB +1

24 3. Blok pertama yaitu 1C 16 dibandingkan dengan Control Symbol yang merupakan menandakan huruf kapital maka setiap blok berikutnya yang bukan Control Symbol di-ZOR-kan 40 menjadi : 53 16 , 54 16 , 45 16 , 47 16 , 4F 16 . 4. Data yang terakhir inilah kemudian direkonstruksi sebagai teks penyisip embed menjadi : S T E G O.

2.6. Mean Squared Error MSE

Mean Squared Error MSE digunakan untuk mengukur kinerja dari algoritma steganografiwatermaking pada citra Sutoyo, 2009. Citra asli dibandingkan dengan citra tersisip stego image watermark image dengan memeriksa selisih nilai. Perhitungan nilai MSE dari citra digital berukuran N x M piksel, dilakukan sesuai dengan rumus pada persamaan 1. ......... 1 fi,j : menyatakan nilai piksel citra yang asli. f’i,j : merupakan nilai piksel citra hasil penyisipan. N.M : dimensi citra piksel Nilai MSE yang besar, menyatakan bahwa penyimpangan atau selisih antara citra hasil penyisipan dengan citra aslinya cukup besar.

2.7. Pembangkit Bilangan Acak

Random Number Generator Pembangkit Bilangan Acak atau Random Number Generator RNG adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai yang tidak dapat ditebak polanya dengan mudah, sehingga urutan nilai tersebut dapat dianggap sebagai suatu keadaan acak random. RNG ini tidak dapat diterapkan dalam prakteknya. Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar-benar acak dan kebanyakan bilangan acak yang diterapkan dalam kriptografi juga tidak benar-benar acak, tetapi hanya berupa acak semu. Ini berarti bahwa bilangan acak yang dihasilkan itu dapat ditebak susunan atau urutan nilainya. Dalam kriptografi, Universitas Sumatera Utara 25 bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu atau Pseudo Random Number Generator PRNG Haahr, 2009. 2.7.1. Pembangkit Bilangan Acak Semu Pembangkit Bilangan Acak Semu atau Pseudo Random Number Generator PRNG merupakan suatu algoritma yang menghasilkan suatu urutan nilai dimana elemen- elemennya bergantung pada setiap nilai yang dihasilkan. Output dari PRNG tidak betul-betul acak, tetapi hanya mirip dengan properti dari nilai acak. Hal inididukung oleh penelitian sebelumnya. menyimpulkan dari beberapa algoritma untuk membangkitkan bilangan acak semu, tidak ada yang benar-benar dapat menghasilkan bilangan acak secara sempurna dalam arti benar-benar acak dan tanpa ada perulangan selama pembangkit yang digunakan adalah komputer yang memiliki sifat deterministik dan bilangan yang benar-benar acak hanya dapat dihasilkan oleh perangkat keras hardware. Menurut, pembangkit bilangan acak yang cocok untuk kriptografi dinamakan Cryptographically Secure Pseudorandom Number Generator CSPRNG Dodis, 2010. Persyaratan CSPRNG adalah: 1. Terlihat acak. Artinya mampu melewati uji statistik keacakan. 2. Tidak dapat diprediksi. Perhitungan secara komputasional tidak dapat mempengaruhi prediksi bilangan acak selanjutnya yang telah diberikan algoritma secara menyeluruh ataupun dari dibangkitkan dari mesin komputer. 3. Tidak mampu diproduksi kembali. Jika pembangkit bilangan acak mampu dibangkitkan dua kali dengan input yang sama akan memperoleh hasil acak yang berbeda satu dengan lainnya. Meskipun demikian, pada dasarnya bilangan acak yang diperoleh bukanlah bilangan acak yang sesungguhnya, maka supaya lebih menyerupai bilangan acak, mengatakan beberapa syarat penting yang harus dipenuhi olehbilangan acak adalah seperti berikut ini: Universitas Sumatera Utara 26 1. Dapat diulang. Sekumpulan barisan bilangan yang sama harus bisa diperoleh diulang dengan menggunakan seed yang sama, hal ini kadang-kadang diperlukan untuk pemeriksaan dan penelusuran program debugging. 2. Keacakan. Barisan bilangan harus memenuhi syarat keacakan secara seragam uniform yang dapat diuji melalui uji statistika. 3. Periode panjang. Karena pada dasarnya bilangan acak itu merupakan barisan berulang dengan berbagai periode, maka periode pengulangan harus sangat besar atau lama melebihi banyaknya bilangan acak yang diperlukan. Tidak peka seed. Sekalipun barisan bilangannya bergantung pada seed tetapi sifat keacakan dan periodisasi sedapat mungkin tidak bergantung pada seed-nya. Secara umum, sebuah PRNG didefinisikan sebagai algoritma kriptografi yang digunakan untuk menghasilkan bilangan secara acak. Pengertian acak sendiri adalah bilangan yang dihasilkan dalam setiap waktu tidaklah sama. Sebuah PRNG memiliki sebuah kondisi awal K yang rahasia. Saat digunakan, PRNG harus membangkitkan output acak yang tidak dapat diidentifikasi oleh kriptanalis yang tidak tahu dan tidak dapat menebak kondisi awal K. Dalam hal ini, PRNG memiliki kesamaan dengan cipher aliran. Akan tetapi, sebuah PRNG harus mampu mengubah kondisi awalnya dengan memproses input sehingga tidak dapat diprediksi oleh kriptanalis. Umumnya PRNG memiliki kondisi awal yang tidak sengaja dapat ditebak oleh kriptanalis dan harus mengalami banyak proses sebelum kondisinya rahasia dan aman. Patut dipahami bahwa sebuah input untuk PRNG memiliki informasi rahasia yang tidak diketahui oleh kriptanalis. Input-input ini umumnya diperoleh dari proses-proses fisik, interaksi user dengan mesin, atau proses eksternal lain yang sulit diprediksi. Dalam desain dan implementasi harus dapat dipastikan bahwa input-input ini memiliki cukup jaminan keamanan dan kerahasiaan. Kebanyakan algoritma dari PRNG ditujukan untuk menghasilkan suatu sampel yang secara seragam terdistribusi. PRNG ini sering digunakan dalam kriptografi pada proses pembentukan kunci dari metode kriptografi. Tingkat kerumitan dari PRNG ini menentukan tingkat keamanan dari metode kriptografi. Semakin rumit PRNG yang Universitas Sumatera Utara 27 digunakan maka semakin tinggi tingkat keamanan dari metoda kriptografi. Skema Dasar PRNG dapat dilihat seperti pada Gambar 2.8. Gambar 2.8 Skema Dasar PRNG Dodis, 2010 Semua deretan bilangan acak yang dibangkitkan dari rumus matematika, serumit apapun, dianggap sebagai deret acak semu, karena dapat diulang pembangkitannya. Sementara itu, banyak produk software yang dinyatakan sebagai produk yang aman karena menggunakan bilangan acak semacam OTP One Time Pad. Namun karena OTP ini dibangkitkan dari bilangan acak semu, maka keamanan yang diperoleh juga semu. Pembangkit bilangan acak yang sering diimplementasikan adalah Linier Congruential Generator LCG dan Linear Feedback Shift Register LFSR.

2.7.2. Linear Congruential Generator LCG

Linear Congruential Generator LCG mewakili salah satu algoritma pseudo random number yang tertua dan paling populer. Algoritma ini diciptakan oleh D. H. Lehmer pada tahun 1951. Teori dari algoritma ini mudah dipahami dan dapat diimplementasikan secara cepat, hal ini didukung oleh penelitian sebelumnya. Munir, 2011 yang menyimpulkan hasil analisis yang diperoleh bahwa dari segi kecepatan LCG membutuhkan waktu yang paling pendek dalam menghasilkan bilangan acak dibandingkan dengan metode lain. Keuntungan dari LCG adalah operasinya yang sangat cepat. LCG dapat didefinisikan dengan rumusan berikut: = a. +1 + b mod m PRNG Input Seed Rahasia Bilangan acak semu Universitas Sumatera Utara 28 Dimana : = bilangan acak ke-n dari deretnya −1 = bilangan acak sebelumnya a = faktor pengali b = increment m = modulus batas maksimum bilangan acak a,b, dan m semuanya konstanta LCG Penentuan nilai awal atau −1 dan konstanta a, b, dan m akan menentukan kualitas bilangan acak yang dihasilkan. Bilangan acak yang baik pada umumnya apabila terjadinya perulangan atau munculnya bilangan acak yang sama, dapat terjadi setelah sekian banyak pembangkitan bilangan acak semakin banyak akan semakin baik serta tidak bisa diprediksi kapan terjadi perulangannya. Periode dari LCG umumnya adalah sebesar nilai m. Masalah pada LCG adalah lower order bit yang digenerasi mempunyai periode yang lebih pendek dari deretan secara keseluruhan jika m di-set menjadi pangkat 2. Tanpa desain yang benar, dengan m yang sangat besar, bisa jadi periode bilangan acak yang dihasilkan tidak akan maksimal, bahkan mungkin jauh lebih pendek daripada periode maksimalnya. Kunci pembangkit adalah yang disebut umpan seed. LCG mempunyai periode tidak lebih besar dari m. Jika a, b, dan m dipilih secara tepat misalnya b seharusnya relatif prima terhadap m dan b m , maka LCG akan mempunyai periode maksimal, yaitu m – 1. Sebagai contoh : Untuk membangkitkan bilangan acak sebanyak 10 kali dengan a=13, b=7, m=11, dan = 2. Dengan menggunakan rumus pada metode LCG di atas, akan diperoleh hasil sesuai Tabel 2.4. Universitas Sumatera Utara 29 Tabel 2.4. Hasil Pembangkitan Bilangan Acak dengan Metode LCG Munir, 2011 Universitas Sumatera Utara 30 BAB III METODOLOGI PENELITIAN

3.1. Metodologi Penelitian

Pada penelitian ini akan dilakukan beberapa tahapan yaitu melakukan studi pustaka yang berkaitan dengan permasalahan, melakukan analisis dalam mengkombinasikan algoritma MLSB dengan LSB+1 dan terakhir melakukan uji coba terhadap algoritma kombinasi dengan membandingkannya dengan algoritma MLSB dan LSB+1 yang berdiri sendiri dalam melakukan penyisipan watermark pada citra. Hasil uji coba nantinya akan mengukur nilai Mean Squared Error MSE, waktu proses dan ukuran citra ber-watermark. 3.2. Analisis Algoritma Kombinasi MLSB-LSB +1 Algoritma Kombinasi Algoritma Watermarking Modified Least Significant Bit MLSB dengan Least Significant Bit +1 LSB +1 adalah mengkonversi bit-bit penyisip dengan nilai ASCII. Setelah bit-bit penyisip dikode dengan ASCII, maka digabung dengan kode ASCII simbol kontrolnya Control Symbols. Selanjutnya dilakukan pengurangan semua bit penyisip dengan nilai bit yang paling rendah. Sebelum disisipkan ke dalam citra, bit-bit penyisip di konversi ke dalam biner yang menghasilkan 5 bit setiap nilai pesan. Pada proses penyisipan dilakukan dengan menggantikan bit-bit penyisip ke bit nomor 2 terakhir dari byte-byte cover citra yang disebut dengan metode Least Significant Bit +1 LSB +1. Proses penyisipan dilakukan secara acak, misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka byte yang diganti bit LSB +1-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49. Bilangan Universitas Sumatera Utara 31 acak ini dapat dibangkitkan dengan Pseudo-Random-Number-Generator PRNG. Selanjutnya nomor acak tersebut disimpan dalam format teks .txt untuk digunakan pada saat ekstraksi. Penyisipan dilakukan dengan proses sebagai berikut: 11. Proses mengubah data penyisip dengan kode ASCII. Misalnya pesan “STEGO with 05 bits” yang jika diubah ke biner membutuhkan memori sebesar 18 x 8 bit = 144 bit. Pada algoritma MLSB pesan di atas diubah menjadi ASCII hex menjadi: 53 16 , 54 16 , 45 16 , 47 16 , 4F 16 , 20 16 ,77 16 , 69 16 ,74 16 , 68 16 , 20 16 , 30 16 , 35 16 , 20 16 , 62 16 , 69 16 ,74 16 ,73 16 . Kemudian dilakukan normalisasi dengan tabel Control Symbol seperti Tabel 3.1. Tabel 3.1 Control Symbol MLSB-LSB+1 Hex Representation Operation 1B 16 Define Small Letter 1C 16 Define Capital Letter 1D 16 Define Space 1E 16 Define Number 1F 16 Define end of text 12. Baca data penyisip ASCII sampai tanda spasi 20 16 yaitu 53 16 , 54 16 , 45 16 , 47 16 , 4F 16 . 13. Semua nilai di-XOR-kan dengan nilai puluhan terendah dari {53 16 , 54 16 , 45 16 , 47 16 }, yaitu 40 16 Dapat dihitung: 53 16 40 16 = 13 16 , 54 16 40 16 = 14 16 , 45 16 40 16 = 05 16 , 47 16 40 16 = 07 16 , 4F 16 40 16 = 0F 16 . Sehingga didapatkan Data penyisip kelompok pertama adalah 1C 16 , 13 16 , 14 16 , 05 16 , 07 16 , 0F 16 dimana 1C 16 adalah Control Symbol untuk huruf besar capital. 14. Data penyisip kelompok ke dua adalah 77 16 , 69 16 ,74 16 , 68 16 di-XOR-kan dengan nilai puluhan terendah 60 16 menjadi 77 16 60 16 = 17 16 , 69 16 60 16 = 09 16 , 74 16 60 16 = 14 16 , 68 16 60 16 = 08 16 . 15. Data kelompok ke dua ini digabung dengan kelompok pertama dan diberi nilai Control Symbol 1D 16 spasi dan 1B 16 huruf kecil menjadi 1D 16 , 1B 16 , 17 16 , 09 16 , 14 16 , 08 16 . 16. Data kelompok ketiga adalah: 30 16 , 35 16 di-XOR-kan dengan nilai puluhan terendahnya menjadi: 30 16 30 16 = 00 16 , 35 16 30 16 = 05 16 . Universitas Sumatera Utara 32 17. Data tersebut digabung dengan kelompok sebelumnya ditambah dengan Control Symbol 1D 16 spasi, 1E 16 numerik menjadi 1D 16 , 1E 16 , 00 16 , 05 16 . 18. Data kelompok keempat adalah: 62 16 , 69 16 ,74 16 , 73 16 dikurangi dengan nilai puluhan terendahnya menjadi: 62 16 60 16 = 02 16 , 69 16 60 16 = 09 16 , 74 16 60 16 = 14, 73 16 60 16 = 13 16 . 19. Data tersebut digabung dengan kelompok sebelumnya ditambah dengan Control Symbol 1B 16 huruf kecil, menjadi 1D 16 , 1B 16 , 02 16 , 09 16 , 14 16 , 13 16 dan akhir data 1F 16 . Sehingga pesan menjadi: 1C 16 , 13 16 , 14 16 , 05 16 , 07 16 , 0F 16 , 1D 16 , 1B 16 , 17 16 , 09 16 , 14 16 , 08 16 , 1D 16 , 1E 16 , 00 16 , 05 16 , 1D 16 , 1B 16 , 02 16 , 09 16 , 14 16 , 13 16 , 1F 16 . Pesan diatas membutuhkan 23 x 5 bit = 115 bit dan diubah menjadi biner menjadi: 11100, 10011, 10100, 00101, 00111, 01111, 11101, 11011, 10111, 01001, 10100, 01000, 11101, 11110, 00000, 00101, 11101, 11011, 00010, 01001, 10100, 10011, 11111. Pesan biner disisipkan ke dalam sebuah file cover seperti yang diperlihatkan sebagai berikut: 52 49 46 46 28 08 00 00 57 41 56 45 44 15 2F 3D 1D 2A 00 4D 01 7C 01 12 45 68 00 01 11 05 Nilai piksel citra di atas dikonversikan ke dalam biner menjadi seperti yang diperlihatkan sebagai berikut: 01010010 01001001 01000110 01000110 00101000 00001000 00000000 00000000 01010111 01000001 01010110 01000101 01000100 00010101 00101111 00111101 00011101 00101010 00000000 01001101 00000001 01111100 00000001 00010010 01000101 01101000 00000000 00000001 00010001 00000101 Universitas Sumatera Utara 33 Sebelum dilakukan penyisipan, maka dibangkitkan nilai acak sebanyak jumlah piksel citra untuk menentukan posisi-posisi piksel pada citra yang akan disisipi oleh bit-bit penyisip yang telah dimodifikasi diatas. Penyisipan dilakukan menurut urutan bilangan acak yang telah dibangkitkan. Pada analisa ini, dianggap bahwa piksel citra pada Tabel 3.2 dan 3.3 adalah hasil dari pemilihan piksel secara acak yang akan disisipi. Adapun contoh pesan dalam bentuk biner yang akan disisip pada pixel tersebut adalah sebagai berikut: 11100, 10011, 10100, 00101, 00111, 01111. 010100 1 010010 1 1 010001 1 010001 001010 000010 1 000000 000000 010101 1 1 010000 1 1 010101 1 010001 1 010001 1 000101 1 001011 1 001111 1 000111 1 001010 1 000000 010011 1 1 000000 1 011111 000000 1 1 000100 1 010001 1 1 011010 000000 1 000000 1 1 000100 1 1 000001 1 1 Setelah penyisipan, representasi nilai piksel citra ter-watermark grayscale diperlihatkan sebagai berikut: 52 4B 46 44 28 0A 00 00 57 43 56 45 46 15 2D 3D 1D 2A 00 4F 01 7C 03 12 47 68 02 03 13 07 Pada proses ekstraksi dengan algoritma MLSB dilakukan dengan cara: 8. Input citra ter-watermarkingi dan file bilangan acaknya. 9. Baca nomor piksel sesuai dengan urutan bilangan acak. 10. Setiap byte piksel citra diubah ke dalam bentuk biner. 11. Pisahkan 1 bit nomor 2 dari akhir dari setiap byte piksel citra kemudian dikelompokkan menjadi 5 bit per blok. 12. Konversikan setiap blok ke dalam ASCII hexadecimal. 13. Blok pertama dibandingkan dengan Control Symbol untuk mendefenisikan jenis karakter berikutnya: - Jika Control Symbol 1B 16 maka setiap blok berikutnya yang bukan Control Symbol di-XOR-kan dengan 60. Universitas Sumatera Utara 34 - Jika Control Symbol 1C 16 maka setiap blok berikutnya yang bukan Control Symbol di-XOR-kan dengan +40. - Jika Control Symbol 1E 16 maka setiap blok berikutnya yang bukan Control Symbol di-XOR-kan dengan +30. - Jika Control Symbol 1D 16 maka menyatakan spasi. 14. Langkah ke 3 sampai ke 5 diulangi sampai ditemukannya Control Symbol end of the text 1F 16 . 15. Rekonstruksikan setiap blok data sebagai pesan penyisip. Berikut contoh dari proses extraction pada citra ter-watermarking yang diperlihatkan sebagai berikut: 010100 1 010010 1 1 010001 1 010001 001010 000010 1 000000 000000 010101 1 1 010000 1 1 010101 1 010001 1 010001 1 000101 1 001011 1 001111 1 000111 1 001010 1 000000 010011 1 1 000000 1 011111 000000 1 1 000100 1 010001 1 1 011010 000000 1 000000 1 1 000100 1 1 000001 1 1 5. Pisahkan 1 bit terakhir dari setiap byte piksel citra kemudian dikelompokkan menjadi 5 bit per blok seperti berikut: 11100 10011 10100 00101 00111 01111 6. Konversikan setiap blok ke dalam ASCII hexadecimal menjadi: 1C 16 , 13 16 , 14 16 , 05 16 , 07 16 , 0F 16 7. Blok pertama yaitu 1ch dibandingkan dengan Control Symbol yang merupakan menandakan huruf kapital maka setiap blok berikutnya yang bukan Control Symbol di-XOR-kan 40 sehingga menjadi : 53 16 , 54 16 , 45 16 , 47 16 , 4f 16 8. Data yang terakhir inilah kemudian direkonstruksi sebagai teks penyisip embed menjadi : S T E G O. Universitas Sumatera Utara 35

3.3. Melakukan Penentuan Pixel Penampung