25 BAB 3
Analisis dan Perancangan
3.1 Analisa Sistem yang Berjalan
Pertukaran data dan informasi menggunakan internet sudah menjadi hal yang sering dilakukan. Pertukaran informasi dan data menggunakan internet akan mempersingkat jarak dan waktu. Faktor yang paling diutamakan dalam pengiriman tersebut adalah kemudahan dan kecepatan, selain itu faktor keamanan juga merupakan hal yang penting. Banyak cara untuk membantu menyelesaikan masalah keamanan dalam pertukaran data dan informasi, salah satunya menggunakan kriptografi dan steganografi.
Kriptografi berasal dari dua kata Yunani, yaitu Crypto yang berarti rahasia dan Grapho yang berarti menulis. Secara umum kriptografi dapat diartikan sebagai ilmu dan seni penyandian yang bertujuan untuk menjaga keamanan dan kerahasiaan suatu pesan. Berdasarkan cara melakukan proses enkripsi dan deskripsi kriptografi terdiri dari beberapa macam jenis salah satunya adalah WAKE (Word Auto Key Encryption).
Word Auto Key Encryption ditemukan oleh David Wheeler pada tahun 1993. Metode ini menggunakan kunci 128 bit, dan sebuah tabel 256 x 32 bit. Dalam algoritmanya, metode ini menggunakan operasi XOR, AND, OR dan Shift Right. Metode WAKE ini telah digunakan pada program Dr. Solomon Anti Virus versi terbaru. Metode WAKE dapat dibagi menjadi beberapa proses yaitu proses pembentukan tabel dan kunci, enkripsi dan dekripsi.
Proses penyelesaian metode ini cukup rumit dan sulit untuk dikerjakan bahkan hampir tidak mungkin untuk diselesaikan secara manual berhubung karena algoritmanya yang cukup panjang dan kompleks.
Steganografi merupakan sebuah teknik untuk menyembunyikan atau menyisipkan pesan rahasia ke dalam media pembawa, sehingga keberadaannya tidak diketahui oleh pihak yang tidak berhak atas pesan tersebut. Media pembawanya dapat berupa berkas citra dan salah satu metode steganografi untuk berkas citra adalah pixel value differencing.
Pada awalnya metode pixel value differencing diteliti oleh Da-Chun Wu dan Wen-Hsiang Tsai pada tahun 2003. Metode ini mencari selisih dua pixel yang bersebelahan. Selisih tersebut digunakan untuk menentukan besarnya pesan rahasia yang dapat disisipkan. Namun penelitian ini hanya menggunakan jangakauan tabel dengan gambar berkarakteristik hitam putih atau gray scale.
Pada tahun 2006, Awad Kh. Al-Asmari dan Owayed A. Al-Ghamdi juga melakukan modifikasi pada metode PVD. Modifikasi yang dilakukan adalah dengan membagi gambar menjadi beberapa subblock yang berbentuk semi hexagonal. Dalam penelitian ini ditemukan bahwa kapasitas algoritma yang digunakan lebih besar dibandingkan dengan algoritma yang baru-baru ini paling sering dipublikasikan. Hasil simulasi memberikan peningkatan dalam kapasitas berkisar antara 10.348-366.637 bit dengan kualitas visual dari gambar yang sangat baik.
Pada tahun 2007 empat orang dari 2 universitas di Taiwan, yaitu Wang Chung Ming, Wu Nan I, Tsai Chwei Shyong, dan Hwang Min Shiang melakukan pengembangan terhadap metode pixel value differencing dengan menggabungkan fungsi modulus. Fungsi modulus hanya dipakai untuk kondisi atau syarat ketika citra stego-object kembali disusun. Stego-object yang dihasilkan cukup memuaskan, dari segi keamanan dan perubahan warna pengembangan ini lebih baik dibandingkan dengan metode pixel value differencing yang ditemukan oleh Wu dan Tsai tahun 2003 dan Chan dan Tseng tahun 2004.
Pada tahun 2009 Rojali juga melakukan modifikasi terhadap metode pixel value differencing, dimana hasil dari penelitiannya menghasilkan kapasitas gambar meningkat dan tetap mempertahankan kualitas dari citra. Distorsi antara media sebelum dan sesudah disisipkan pesan cukup kecil karena nilai PSNR diatas 36. Namun untuk data yang besar distorsinya mengalami banyak perubahan dan algoritma PVD hanya mengubah daerah dengan selisih pixel kecil yaitu interval 0-7.
Marghny H. Mohamed melakukan pengembangan pada metode pixel value differencing pada tahun 2012. Hasil dari pengembangannya cukup berhasil karena kapasitas pesan rahasia yang disisipkan menjadi lebih banyak tanpa menyebabkan distorsi yang tinggi namun pengembangannya ini digabungkan dengan metode lain yaitu least significant bit.
Pada tahun yang sama yaitu pada tahun 2012 penelitian terhadap metode PVD juga dilakukan oleh J. K. Mandal dan Debashis Das. Modifikasi yang dilakukan adalah untuk mengatasi permasalahan nilai pixel pada citra stego yang nilainya
melebihi kisaran 0 – 255, dimana pada metode PVD hal tersebut tidak diinginkan karena dapat mengakibatkan visualisasi yang tidak tepat dari gambar stego. Hasil penelitian ini terlihat bahwa hasil yang diperoleh adalah kualitas visual yang lebih baik dari stego-image dibandingkan dengan metode PVD.
Banyak orang telah mengetahui metode PVD yang telah dimodifikasi sehingga dapat dikatakan data yang akan dirahasiakan menjadi lebih mudah untuk diekstraksi oleh orang lain.
3.2 Hasil kuisioner
Dalam pengerjaanya dilakukan penyebaran kuisioner kepada 50 orang dimana orang tersebut merupakan orang yang mengerti tentang teknik informatika. Berikut hasil laporan yang didapat dari penyebaran kuisioner tersebut.
1. Apakah anda mengetahui apa itu kriptografi?
2. Apakah anda mengetahui apa itu steganografi?
Tabel 3.2 Tabel hasil jawaban 2
3. Apakah anda tahu tentang desktop application?
4. Apakah anda tahu tentang aplikasi Visual Studio?
Tabel 3.4 Tabel hasil jawaban 4
5. Apakah anda tahu tentang encrypt dan decrypt?
Tabel 3.5 Tabel hasil jawaban 5
6. Apakah anda tahu tentang penyisipan teks pada image?
7. Apakah anda sering menggunakan desktop application?
Tabel 3.7 Tabel hasil jawaban 7
8. Apakah anda tahu tentang metode Pixel Value Differencing?
Tabel 3.8 Tabel hasil jawaban 8
9. Apakah anda tahu tentang metode Word Auto Key Encryption?
10.Jika ada aplikasi berbasis desktop untuk melakukan enkripsi data ke image, apakah anda memerlukannya?
Tabel 3.10 Tabel hasil jawaban 10
3.3 Usulan Pemecahan Masalah
Dengan penelitian ini diusulkan kriptografi dengan metode word auto key encryption serta steganografi dengan metode pixel value differencing dengan melakukan pengambilan pixel secara 2x2 pada berkas citra dalam hal penyisipan file text(*.txt) ataupun input message .
Dalam penelitian ini, metode yang diusulkan adalah dengan mengubah teks asli menjadi bentuk WAKE yang kemudian dimodifikasi pada pola pengambilan pasangan pixel pada PVD umum yang biasa digunakan. Pola pengambilan pixel pada PVD telah banyak diketahui oleh orang-orang yang biasa menggunakan metode PVD.
Oleh karena itu, jika kita ingin menyisipkan pesan rahasia pada suatu gambar dengan menggunakan PVD biasanya maka kemungkin pesan tersebut berhasil diekstraksi oleh orang yang tidak berhak akan lebih besar.
Cara jalan yang diusulkan dalam metode ini adalah dengan mengambil 4 kotak pixel dalam gambar ( 2 x 2 ) dimulai dari kiri atas, kemudian titik kiri atas kolom pertama pada pixel dilanjutkan dengan membandingkan kolom pertama tersebut dengan tiga kolom lainnya.
Hal ini diulang sampai semua pixel terambil. Tapi hal yang perlu diingat adalah pixel yang sudah pernah diambil tidak akan diambil lagi untuk pasangan pixel berikutnya.
Dengan menggunakan metode ini, maka pesan yang disisipkan pun akan menjadi lebih aman karena ini merupakan metode baru yang belum diketahui oleh orang banyak. Dengan demikian akan menjadi lebih sulit bagi orang lain untuk mengekstraksi pesan dalam gambar tersebut.
3.4 Metodologi Perancangan 3.4.1 Flow Chart Pada Sistem
Gambar 3.1 Flow Chart Pada Sistem
Show main view
Ketika aplikasi dijalankan, maka akan tampil main view dengan pilihan menu ‘Encrypt’ atau ‘Decrypt’.
Select encrypt or decrypt
Jika yang dipilih adalah menu ‘Encrypt’, maka akan ditampilkan menu pilihan encrypt, sedangkan jika yang dipilih adalah menu ‘Decrypt’, maka akan ditampilkan menu pilihan decrypt.
Show Encrypt view
Akan muncul tampilan menu ‘encrypt’ jika user memilih menu ‘encrypt’.
Show decrypt view
Begitu pula jika user memilih menu ‘decrypt’, maka yang akan ditampilkan adalah tampilan menu ‘decrypt’.
3.4.2 Flow Chart Menu Encrypt
Gambar 3.2 Flow Chart Menu Encrypt
Select or Input Message
Pilih pesan yang ingin disisipkan pada gambar disini juga kita dapat mengetikkan kata - kata.
Select Image
Pilih salah satu gambar yang ingin dijadikan sebagai media penyisipan.
Compute RGB Image Value
Kemudian kita menghitung nilai RGB (User ,Green, Blue) untuk mengetahui jenis karakteristik gambar.
Encrypt Message to WAKE Message
Pesan yang ingin disisipkan dienkripsi dari susunan karakter menjadi bentuk WAKE.
Change WAKE massage to binary
Pesan WAKE yang ingin disisipkan harus diubah dari susunan karakter menjadi biner agar lebih ,agar lebih mudah disisipkan.
Calculate the pixel space
Setelah itu, dihitung berapa sisa tempat pixel sesuai dengan pola pengambilan pixel yang akan diselipkan pesan rahasia.
Embed the Binary to Pixel Space Using PVD Method
Jika pixel-pixel sudah diurut sesuai dengan pola pengambilannya, maka akan digunakan metode PVD untuk menyelipkan pesan-pesan dalam bentuk biner ke dalam gambar.
Calculate PNSR, MSE and Total Capacity
Hitung nilai PNSR, MSE, dan total kapasitas yang dapat ditampung pesan.
Save Image
Menyimpan hasil gambar dari proses penyisipan pesan jika proses penyisipan pesan telah selesai.
3.4.3 Flow Chart Menu Decrypt
Select PVD image
Pilih gambar yang ingin diekstraksi.
Get All Pixel
Pada tahap ini program akan mengecek gambar apakah benar merupakan PVD image atau bukan. Jika benar merupakan PVD image maka akan diambil semua pixel pada PVD image yang dipilih. Cara pengambilan pixel sama dengan proses penyisipan yaitu modifikasi dari metode pixel value differencing yang sudah ada, yaitu pengambilan pixel secara kotak ( 2 x 2 ).
Extract the Pixel Using PVD method
PVD image akan diekstraksi dengan menggunakan metode PVD.
Show WAKE Message
Biner – biner yang didapat dari proses extracting akan dilakukan proses encode ke dalam bentuk karakter – karakter WAKE, sehingga pesan rahasia yang ada di dalam PVD image tersebut muncul dan sudah berbentuk huruf – huruf dan angka - angke.
Change the WAKE Message to Real Message
Ubah semua kode WAKE yang didapatkan menjadi karakter sehingga hasilnya akan membentuk pesan asli.
Save Message
Apakah pesan yang telah berhasil dekstraksi ingin kita simpan.
Save to Computer Directory
Jika iya, maka pesan akan disimpan ke komputer. 3.5 Perancangan UML
3.5.1 Use Case Diagram
Pada use case diagram ini akan dimodelkan aplikasi ke dalam bentuk gambar agar lebih mudah dimengerti bagaimana interaksi user terhadap aplikasi yang ada.
Gambar 3.4 Use Case Diagram
Seperti yang dapat dilihat pada use case diagram di atas, fitur-fitur yang terdapat dalam aplikasi ini adalah dapat memilih pesan yang ingin disisipkan dan gambar yang menjadi media penyisipan. Setelah pesan dan gambar sudah dipilih, aplikasi dapat melakukan embedding. Aplikasi ini juga dapat menampilkan grafik dari karakteristik media gambar yang digunakan.
Setelah dilakukan embedding, aplikasi akan menampilkan nilai PNSR dan MSE untuk mengertahui error atau banyaknya perbedaan antara gambar yang asli dengan gambar yang telah disisipkan pesan.
Aplikasi ini juga menampilkan berapa besar kapasitas pesan yang dapat ditampung media gambar. Penyimpanan hasil gambar yang sudah disisipkan pesan juga dapat dilakukan aplikasi ini. selain itu, aplikasi ini juga bisa menampilkan grafik perhitungan berapa banyak selisih tiap dua pixel yang berpasangan pada tabel jangkauan R.
Fitur lain pada aplikasi ini adalah mampu melakukan decrypting gambar yang telah disisipkan pesan. Decrypting dilakukan dengan cara memilih gambar yang ingin dibaca informasinya. Setelah selesai dilakukan decrypting, user bisa menyimpan pesan tersebut. Dengan adanya fitur encrypting dan decrypting yang ada pada aplikasi ini, user bisa berbagi informasi dengan aman.
3.5.2 Activity Diagram
3.5.2.1Activity Diagram Select Message
Gambar 3.5 Activity Diagram Select Message
3.5.2.2Activity Diagram Select Image
3.5.2.3Activity Diagram Show Graphic RGB Value
Gambar 3.7 Activity Diagram Show Graphic RGB Value
3.5.2.4Activity Diagram Encrypt Message
3.5.2.5Activity Diagram Show MSE, PSNR, and Total Capacity
Gambar 3.9 Activity Diagram Show MSE, PSNR, and Total Capacity
3.5.2.6Activity Diagram Save Image
3.5.2.7Activity Diagram Decrypt Image
Gambar 3.11 Activity Diagram Decrypt Image
3.5.2.8Activity Diagram Save Message
3.5.3 Class Diagram
Untuk lebih memahami aplikasi ini, maka akan diberikan gambaran melalui class diagram. Pada class diagram ini, akan ditampilkan kelas, variabel dan metode apa saja yang digunakan dalam aplikasi ini.
Gambar 3.13 Class Diagram
Berikut ini adalah nama-nama kelas beserta dengan penjelasan mengenai kelas tersebut.
Tabel 3.11 Deskripsi Class Diagram
Nama Kelas Deskripsi
Proc Kelas yang memuat cara
pengambilan pixel, menentukan besar selisih antar pixel dalam bentuk 2x2, mengubah string ke biner, mengubah biner ke desimal, mengubah biner ke karakter.
Decrypt Kelas yang memuat cara
bagaimana untuk mengekstrak gambar menjadi pesan yang disisipkan.
Encrypt Kelas yang memuat cara bagaimana untuk menyisipkan teks kedalam gambar yang diinginkan.
Graphic Kelas yang menerima data dari
kelas encrypt.
Main Kelas yang menampilkan form
menu awal, dimana terdapat pilihan exit, encrypt, dan decrypt.
3.5.4 Sequance Diagram
3.5.4.1Encrypt Sequance Diagram
3.5.4.2Decrypt Sequence Diagram
3.6 Perancangan Layar
3.6.1 Perancangan Layar Main Menu
Gambar 3.16 Perancangan Layar Main Menu
Pada layar main view, terdapat pilihan menu ‘Encrypt’ dan ‘Decrypt’. Jika user memilih menu ‘Encrypt’ maka akan langsung masuk ke menu encrypt dari aplikasi ini. Jika user memilih menu ‘Decrypt’, maka akan langsung masuk ke menu decrypt dari aplikasi ini.
3.6.2 Perancangan Layar EncryptView
Gambar 3.17 Perancangan Layar Encrypt View
Pada layar encrypt view, terdapat button ‘Browse Message’ yang digunakan untuk mengambil file dengan tipe .txt yang ingin disisipkan. Button ‘Browse Image’ digunakan untuk mengambil gambar yang menjadi media.
Setelah pesan dan gambar sudah diambil, user dapat mengklik button ‘Show RGB Graphic’ untuk menampilkan grafik RGB dari media gambar.
Fungsi ‘Show RGB Graphic’ adalah untuk mengetahui karakteristik gambar. Untuk melakukan encrypting, tekan button ‘encrypt’. Hasil gambar yg telah diselipkan, dapat disimpan dengan menekan button ‘Save Image’. Button ‘Show Rj Graphic’ digunakan untuk menampilkan grafik berapa banyak jumlah selisih dua pixel pada tiap jangkauan pada tabel Rj.
3.6.3 Perancangan Layar GraphicView
Gambar 3.18 Perancangan Layar Graphic View
Ini adalah tampilan saat user mengklik button ‘Show Rj Graphic’ pada tampilan layar Embed View. Pada tampilan ini akan ditampilkan berapa banyak jumlah (selisih dari dua pixel) yang berada pada table Rj.
3.6.4 Perancangan Layar RGB Graphic View
Gambar 3.19 Perancangan Layar RGB Graphic View
Ini adalah tampilan yang muncul saat user mengklik button ‘Show RGB Graphic’ pada tampilan layar Encrypt View. Pada tampilan ini akan
ditampilkan jumlah pixel yang berada antara range 0-255 untuk setiap User, Green, dan Blue.
3.6.5 Perancangan Layar DecryptView
Gambar 3.20 Perancangan Layar Decrypt View
Tampilan Decrypt View ditampilkan saat user mengklik ‘Decrypt’ pada tampilan MainView.
Pada Decryp tView user dapat mengekstrasi gambar yang sudah disisipkan pesan. Caranya adalah dengan mengklik button ‘Browse Image’ untuk mencari pesan yang ingin diekstrasi. Kemudian klik button ‘Decode’ untuk mendapatkan pesan yang tersisip didalam gambar. Kemudian klik ‘Save Message’ untuk menyimpan pesan yang telah diekstraksi.
3.7 Studi Kasus
Misalkan input key = ‘WAKE, EDDY SALIM’, maka proses pembentukan tabel S-Box dalam heksadesimal adalah sebagai berikut :
1. Inisialisasi nilai TT[0] ... TT[7].
TT[0] = 726A8F3B (dalam heksadesimal)
TT[1] = E69A3B5C
TT[2] = D3C71FE5
TT[3] = AB3C73D2
TT[5] = 0396D6E8
TT[6] = 3D4C2F7A
TT[7] = 9EE27CF3
2. Pecah kunci menjadi 4 kelompok dan masukkan pada T[0] ... T[3]. Kunci : 'WAKE, EDDY SALIM'
Kunci (dalam heksa) =57414B452C20454444592053414C494D
T[0] = K[0] = 57414B45
T[1] = K[1] = 2C204544
T[2] = K[2] = 44592053
T[3] = K[3] = 414C494D
3. Untuk n = 4 sampai 255, lakukan prosedur berikut :
n = 4
->X = T[0] + T[3] = 57414B45 + 414C494D = 988D9492
->X >> 3 (Shift Right 3 bit) = 988D9492 >> 3 = 1311B292
X AND 7 = 988D9492 AND 7(10) = 2
T[4] = X >> 3 XOR TT[X AND 7] = 1311B292 XOR TT[2] = C0D6AD77
n = 5
-> X = T[1] + T[4] = 2C204544 + C0D6AD77 = ECF6F2BB
-> X >> 3 (Shift Right 3 bit) = ECF6F2BB >> 3 =1D9EDE57
X AND 7 = ECF6F2BB AND 7(10) = 3 X = T[n-4] + T[n-1]
T[5] = X >> 3 XOR TT[X AND 7] = 1D9EDE57 XOR TT[3] = B6A2AD85
n = 6
-> X = T[2] + T[5] = 44592053 + B6A2AD85 = FAFBCDD8
-> X >> 3 (Shift Right 3 bit) = FAFBCDD8 >> 3 =1F5F79BB
X AND 7 = FAFBCDD8 AND 7(10) = 0
T[6] = X >> 3 XOR TT[X AND 7] = 1F5F79BB XOR TT[0] = 6D35F680
(dan seterusnya hingga n = 255).
4. Untuk n = 0 sampai 22, lakukan prosedur berikut :
n = 0 T[0] = T[0] + T[89] = 57414B45 + 15F12D0E = 6D327853 n = 1 T[1] = T[1] + T[90] = 2C204544 + 72BFCF87 = 9EE014CB n = 2 T[2] = T[2] + T[91] = 44592053 + E3163C25 = 276F5C78 n = 3 T[3] = T[3] + T[92] = 414C494D + A5D89206 = E724DB53
(dan seterusnya hingga n = 225)
5. Set nilai untuk beberapa variabel di bawah ini. X = 8A1B6650
Z = T[59] OR 01000001 = EC8DC527 OR 01000001 = ED8DC527
Z = Z AND FF7FFFFF = ED8DC527 AND FF7FFFFF = ED0DC527 T[n] = T[n] + T[n + 89]
X = X AND FF7FFFFF = 8A1B6650 AND FF7FFFFF = 77292B77
6. Untuk n = 0 sampai 255, lakukan prosedur berikut :
n = 0
X = (77292B77 AND FF7FFFFF) + ED0DC527 = 6436F09E
T[0] = [6D327853] AND 00FFFFFF XOR 6436F09E = 640488CD
n = 1
X = (6436F09E AND FF7FFFFF) + ED0DC527 = 5144B5C5
T[1] = [9EE014CB] AND 00FFFFFF XOR 5144B5C5 = 51A4A10E
n = 2
X = (5144B5C5 AND FF7FFFFF) + ED0DC527 = 3E527AEC
T[2] = [276F5C78] AND 00FFFFFF XOR 3E527AEC = 3E3D2694
7. Set nilai untuk beberapa variabel berikut. T[256] = T[0] = 640488CD
X = X AND 255(10) = 776E5277 AND 255(10) = 00000077
8. Untuk n = 0 sampai 255, lakukan prosedur berikut.
n = 0
Temp = T[119] XOR X AND 255 = 8F8F3242 XOR 00000077 AND 255 = 00000035
T[0] = T[53] = 75B47C03 X = (X AND FF7FFFFF) + Z
T[n] = T[n] AND 00FFFFFF XOR X
Temp = (T[n XOR X] XOR X) AND 255 T[n] = T[Temp]
T[119] = T[1] = 51A4A10E
n = 1
Temp = T[118] XOR X AND 255 = A2B3307A XOR 00000077 AND 255 = 0000000D
T[1] = T[13] = 6D7399BB
T[119] = T[2] = 3E3D2694
n = 2
Temp = T[117] XOR X AND 255 = B5758EDE XOR 00000077 AND 255 = 000000A9
T[2] = T[169] = D9F40A36
T[119] = T[3] = 2B449B40
n = 3
Temp = T[116] XOR X AND 255 = C8A36D5D XOR 00000077 AND 255 = 0000002A
T[3] = T[42] = 4640C5A0
T[119] = T[4] = 187463F2 (dan seterusnya hingga n = 255).
Proses pembentukan kunci memerlukan input kunci dengan panjang 128 bit biner atau 16 karakter ascii.
Pertama – tama, input kunci dipecah menjadi 4 kelompok dan di-set sebagai nilai awal dari variabel A0, B0, C0, D0. Kemudian isi variabel A, B, C dan D dan ulangi sebanyak n-putaran yang di-input.
Ai+1 = M(Ai, Di)
Bi+1 = M(Bi, Ai+1)
Ci+1 = M(Ci, Bi+1)
Fungsi M(X, Y) = (X + Y)>>8 XOR T[(X + Y) AND 255]. Nilai dari Di merupakan nilai dari kunci Ki. Proses ini dapat dilihat pada contoh berikut :
Misalkan input key : ‘WAKE, EDDY SALIM’ dan putaran kunci sebanyak 5 kali, maka proses pembentukan kunci dalam heksadesimal adalah sebagai berikut :
Kunci 'WAKE, EDDY SALIM' diubah dalam bentuk heksa = 57414B452C20454444592053414C494D
Pecah kunci menjadi 4 kelompok dan masukkan ke A(0), B(0), C(0) dan D(0).
A(0) = 57414B45 B(0) = 2C204544 C(0) = 44592053 D(0) = 414C494D KUNCI PUTARAN 1 FungsiM(A[0],D[0]) = FungsiM(57414B45,414C494D) = (57414B45 + 414C494D)>>8 XOR T[(57414B45 + 414C494D) AND 255(10)] = 988D9492>>8 XOR T[146] = 00988D94 XOR 609873BC = 6000FE28
A[1] = 6000FE28
FungsiM(B[0],A[1]) = FungsiM(2C204544,6000FE28) = (2C204544 + 6000FE28)>>8 XOR T[(2C204544 + 6000FE28) AND 255(10)] = 8C21436C>>8 XOR T[108] = 008C2143 XOR 6EFC792E = 6E70586D
B[1] = 6E70586D
FungsiM(C[0],B[1]) = FungsiM(44592053,6E70586D) = (44592053 + 6E70586D)>>8 XOR T[(44592053 + 6E70586D) AND 255(10)] = B2C978C0>>8 XOR T[192] = 00B2C978 XOR D85FA731 = D8ED6E49
FungsiM(D[0],C[1]) = FungsiM(414C494D,D8ED6E49) = (414C494D + D8ED6E49)>>8 XOR T[(414C494D + D8ED6E49) AND 255(10)] = 1A39B796>>8 XOR T[150] = 001A39B7 XOR DAA85C04 = DAB265B3
D[1] = DAB265B3
KUNCI PUTARAN 2
FungsiM(A[1],D[1]) = FungsiM(6000FE28,DAB265B3) = (6000FE28 + DAB265B3)>>8 XOR T[(6000FE28 + DAB265B3) AND 255(10)] = 3AB363DB>>8 XOR T[219] = 003AB363 XOR 1689BAF9 = 16B3099A
A[2] = 16B3099A
FungsiM(B[1],A[2]) = FungsiM(6E70586D,16B3099A) = (6E70586D + 16B3099A)>>8 XOR T[(6E70586D + 16B3099A) AND 255(10)] = 85236207>>8 XOR T[7] = 00852362 XOR 210BEE58 = 218ECD3A
B[2] = 218ECD3A
FungsiM(C[1],B[2]) = FungsiM(D8ED6E49,218ECD3A) = (D8ED6E49 + 218ECD3A)>>8 XOR T[(D8ED6E49 + 218ECD3A) AND 255(10)] = FA7C3B83>>8 XOR T[131] = 00FA7C3B XOR CCF83134 = CC024D0F
C[2] = CC024D0F
FungsiM(D[1],C[2]) = FungsiM(DAB265B3,CC024D0F) = (DAB265B3 + CC024D0F)>>8 XOR T[(DAB265B3 + CC024D0F) AND 255(10)] = A6B4B2C2>>8 XOR T[194] = 00A6B4B2 XOR 66FB3A2E = 665D8E9C
D[2] = 665D8E9C
KUNCI PUTARAN 3
FungsiM(A[2],D[2]) = FungsiM(16B3099A,665D8E9C) = (16B3099A + 665D8E9C)>>8 XOR T[(16B3099A + 665D8E9C) AND 255(10)] = 7D109836>>8 XOR T[54] = 007D1098 XOR 4520F661 = 455DE6F9
FungsiM(B[2],A[3]) = FungsiM(218ECD3A,455DE6F9) = (218ECD3A + 455DE6F9)>>8 XOR T[(218ECD3A + 455DE6F9) AND 255(10)] = 66ECB433>>8 XOR T[51] = 0066ECB4 XOR 8AA123B8 = 8AC7CF0C
B[3] = 8AC7CF0C
FungsiM(C[2],B[3]) = FungsiM(CC024D0F,8AC7CF0C) = (CC024D0F + 8AC7CF0C)>>8 XOR T[(CC024D0F + 8AC7CF0C) AND 255(10)] = 56CA1C1B>>8 XOR T[27] = 0056CA1C XOR 537BFC85 = 532D3699
C[3] = 532D3699
FungsiM(D[2],C[3]) = FungsiM(665D8E9C,532D3699) = (665D8E9C + 532D3699)>>8 XOR T[(665D8E9C + 532D3699) AND 255(10)] = B98AC535>>8 XOR T[53] = 00B98AC5 XOR CEB9BAE5 = CE003020
D[3] = CE003020
KUNCI PUTARAN 4
FungsiM(A[3],D[3]) = FungsiM(455DE6F9,CE003020) = (455DE6F9 + CE003020)>>8 XOR T[(455DE6F9 + CE003020) AND 255(10)] = 135E1719>>8 XOR T[25] = 00135E17 XOR 392F262E = 393C7839
A[4] = 393C7839
FungsiM(B[3],A[4]) = FungsiM(8AC7CF0C,393C7839) = (8AC7CF0C + 393C7839)>>8 XOR T[(8AC7CF0C + 393C7839) AND 255(10)] = C4044745>>8 XOR T[69] = 00C40447 XOR ACB8EB6C = AC7CEF2B
B[4] = AC7CEF2
FungsiM(C[3],B[4]) = FungsiM(532D3699,AC7CEF2B) = (532D3699 + AC7CEF2B)>>8 XOR T[(532D3699 + AC7CEF2B) AND 255(10)] = FFAA25C4>>8 XOR T[196] = 00FFAA25 XOR 063D961F = 06C23C3A
FungsiM(D[3],C[4]) = FungsiM(CE003020,06C23C3A) = (CE003020 + 06C23C3A)>>8 XOR T[(CE003020 + 06C23C3A) AND 255(10)] = D4C26C5A>>8 XOR T[90] = 00D4C26C XOR 5EC71D78 = 5E13DF14
D[4] = 5E13DF14
KUNCI PUTARAN 5
FungsiM(A[4],D[4]) = FungsiM(393C7839,5E13DF14) = (393C7839 + 5E13DF14)>>8 XOR T[(393C7839 + 5E13DF14) AND 255(10)] = 9750574D>>8 XOR T[77] = 00975057 XOR 374189AB = 37D6D9FC
A[5] = 37D6D9FC
FungsiM(B[4],A[5]) = FungsiM(AC7CEF2B,37D6D9FC) = (AC7CEF2B + 37D6D9FC)>>8 XOR T[(AC7CEF2B + 37D6D9FC) AND 255(10)] = E453C927>>8 XOR T[39] = 00E453C9 XOR 77265857 = 77C20B9E
B[5] = 77C20B9E
FungsiM(C[4],B[5]) = FungsiM(06C23C3A,77C20B9E) = (06C23C3A + 77C20B9E)>>8 XOR T[(06C23C3A + 77C20B9E) AND 255(10)] = 7E8447D8>>8 XOR T[216] = 007E8447 XOR ACB8EB6C = ACC66F2B
C[5] = ACC66F2B
FungsiM(D[4],C[5]) = FungsiM(5E13DF14,ACC66F2B) = (5E13DF14 + ACC66F2B)>>8 XOR T[(5E13DF14 + ACC66F2B) AND 255(10)] = 0ADA4E3F>>8 XOR T[63] = 000ADA4E XOR 234F539B = 234589D5
D[5] = 234589D5
KUNCI = D[5] = 234589D5
Proses enkripsi dari metode WAKE untuk menghasilkan ciphertext adalah berupa hasil operasi XOR dari plaintext dan 32 bit kunci yang dihasilkan dari proses pembentukan kunci.
Proses dekripsi dari metode WAKE untuk menghasilkan plaintext adalah berupa hasil operasi XOR dari ciphertext dan 32 bit kunci yang dihasilkan dari proses pembentukan kunci.
Misalkan hasil dari metode WAKE tesebut adalah 38C kita ubah ke bentuk biner menjadi 11010101001101, kemudian dilakukan proses pengenkripsian ke dalam image menggunakan metode PVD 2x2.Misalkan nilai pixel pada gambar
100(1) 126(4)
115(2) 107(3)
Kemudian proses yang dilakukan adalah mencari selisih antar pixel (4) – (1) = 26 (5)
(2) – (1) = 15 (6) (3) – (1) = 7 (7) (3) – (2) = -8 (8)
Pada perhitungan di atas didapatkan hasil negatif(8) maka nilai negatif(8) tersebut tidak dimasukkan ke dalam perhitungan.Setelah itu sesuaikan nilai selisih pixel dengan table rj di bawah ini
Sehingga didapatkan bahwa nilai (5) dimasukkan ke posisi table rj(11), nilai (6) dimasukkan ke posisi table rj(10) dan nilai (7) dimasukkan ke posisi table rj(9).
Nilai biner yang didapat tadi kemudian disesuaikan juga dengan table rj 1101 | 010 | 100 | 1111 ke decimal 13 | 2 | 4 | 15 disesuaikan dengan table rjSehingga 13 dimasukkan ke (11), 2 dimasukkan ke (10) dan 4 dimasukkan ke (9), nilai 15 dimasukkan ke pixel selanjutnya.
0..7(9)
8..15(10)
16..31(11)
Kemudian jumlahkan nilai biner tadi dengan nilai minimum dari table rj yang telah disesuaikan.Sehingga didapatkan nilai 29 | 10 | 4 yang kemudian disebut sebagai perbedaan baru, kemudian hitung m dengan cara mengurangkan nilai perbedaan baru dengan selisih pixel 26|15|7.
Proses pengurangan antar perbedaan baru dengan selisih antar pixel harus disesuaikan dengan posisi table rj sebelumnya, hasil pengurangan ini kemudian disebut m.
mo = 29 – 26 = 3
m1 = 10-15 = -5
m2 = 4-7 = -3
Kemudian urutkan m dari bilangan positif terbesar ke bilangan negative terbesar, untuk mendapatkan nilai perubahan pixel dikerjakan dengan cara
Sehingga didapatkan nilai berupa matrix sebagai berikut
98 127
102 106
Dari matrix di atas kita lakukan penghitungan sebagai berikut
98+(102-98) 127+(102-98)
102 106
103+(102-103) 113+(102-103)
Dari perhitungan di atas harus diperiksa apakah hasil pada sebelah kiri memiliki nilai yang sama atau tidak,jika tidak maka terjadi kesalahan, berikut ini hasil penghitungan.matrix diatas
102 131
102 106
102 112
Dari matrix diatas kita dapat membuat marix yang baru dengan cara menyesuaikan posisi dengan penghitungan selisih yang telah dilakukan pada proses awal yaitu pada persamaan (5),(6),(7),(8) dan disesuaikan kembali dengan matrix awal.