BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis
3.1.1 Analisis Permasalahan
Seiring dengan pesatnya perkembangan teknologi informasi, kebutuhan akan keamanan data juga semakin meningkat. Saat ini kejahatan di dunia komputer (cyber crime) sudah sangat banyak ditemui. Salah satunya adalah pencurian terhadap data rahasia.
3.1.2 Usulan Pemecahan Masalah
Untuk mengatasi masalah tersebut, dapat dilakukan penyembunyian terhadap data yang bersifat rahasia. Data rahasia tersebut disimpan ke dalam data lain (file) secara sedemikian rupa sehingga orang yang melihat tidak dapat mengetahui bahwa di dalam file tersebut terdapat data rahasia. Cara ini dikenal dengan istilah steganografi.
3.2 Perancangan
Algoritma pada steganografi bersifat spesifik, yang berarti bahwa algoritma yang menyisipkan data pada file audio tidak dapat digunakan untuk menyisipkan data pada file image, terlebih lagi algoritma yang digunakan pada image terkompresi pun berbeda dengan algoritma pada image tidak terkompresi kelemahannya sendiri. F5 adalah algoritma yang dapat menjaga sifat – sifat histogram DCT dengan cukup baik dan unggul dari segi kapasitas, selain itu F5 adalah algoritma terkini yang dipublikasikan
Seperti telah dijelaskan sebelumnya bahwa algoritma steganografi pada JPEG pun berbeda – beda, yang masing – masing memiliki keunggulan dan Aplikasi yang dibuat dinamakan “Chimera”. Aplikasi ini menggunakan algoritma F5 sebagai dasarnya. Aplikasi ini menampung seluruh koefisen DCT dalam satu variabel, kemudian dilakukan operasi permutativestraddling dan matrix encoding terhadap seluruh koefisien tersebut. Setelah seluruh operasi penyisipan selesai maka koefisien DCT akan dikirim ke tahap selanjutnya (tahap Huffman).
3.2.1 Metode Pembacaan FileText
Aplikasi pada dasarnya mampu menyisipkan semua jenis tipe data selain filetext karena komputer melihat data pada file sebagai binary (1 bit hanya berisi angka 0 atau 1), namun file berbasiskan text seperti file
berekstensi txt atau html dapat diperlakukan berbeda karena mereka hanya memuat karakter yang memiliki kode ASCII tidak lebih dari 126, sehingga dapat disimpan dalam format yang hanya menggunakan 7 bit saja (1111111 bin = 127 dec).
Oleh karena itu ketika user menyisipkan file .txt atau .html aplikasi hanya akan membaca 7 bit terakhir dari setiap karakter dan mengasumsikan
53 0 sebagai bit pertama sehingga secara teori kapasitas penyimpanan akan meningkat sampai 14,28 %. Pada saat ekstraksi aplikasi akan membaca data sisipan setiap 7 bit dan menambahkan bit 0 di awalnya.
3.2.2 Langkah - Langkah Penyisipan Data Pada F5
Seperti dijelaskan diatas bahwa F5 melakukan perubahan terhadap koefisien DCT, oleh karena itu tahap pertama yang harus dilakukan adalah menjalankan kompresi JPEG seperti biasa dan menghentikannya tepat setelah proses kuantisasi selesai. Seluruh koefisien DCT yang sudah melalui tahap kuantisasi kemudian akan diproses oleh F5.
Tahap kedua adalah melakukan permutative straddling, yaitu mendapatkan bilangan – bilangan acak yang dihasilkan oleh random
generator yang memiliki sifat kriptografi yang cukup kuat berdasarkan password user, bilangan – bilangan acak ini kemudian digunakan sebagai permutasi untuk mengacak urutan koefisien DCT yang akan diproses oleh F5.
Tahap ketiga adalah menghitung jumlah koefisien DCT yang tidak bernilai nol karena koefisien DCT bernilai nol tidak bisa digunakan dalam steganografi. Jumlah ini kemudian dibagi dengan ukuran data yang akan disisipkan untuk mendapatkan embedding rate, embedding rate digunakan oleh F5 untuk menentukan nilai k, semakin sedikit data yang akan disisipkan maka nilai k akan semakin besar. Dari nilai k kemudian didapatkan nilai n melalui rumus n = 2k – 1, nilai n dan k ini akan menjadi
akan disisipkan yang terdiri dari 3 byte data sehingga memungkinkan penyimpanan data dengan ukuran sampai + 16.777.215 byte.
Gambar 3.1. Penyisipan filetext berukuran 408 bytes ( 00 0C C0 Hex )
Tahap kelima adalah melakukan matrix encoding. Matrix encoding
dimulai pada pada bit ke-5 dari data host karena 4 bit pertama digunakan untuk menyimpan nilai k yang memiliki nilai maksimal 9 (1001). Pada
55 tahap ini matrix encoding membuat 2 buah buffer, yaitu buffer yang berukuran n (n = 2k – 1) yang diisi oleh koefisien DCT yang tidak bernilai 0, dan buffer yang berukuran k yang diisi oleh data yang akan disisipkan. Kemudian dilakukan operasi xor pada kedua buffer untuk menentukan posisi bit yang akan diubah pada buffer pertama, jika posisi bit bernilai 0 maka tidak akan dilakukan perubahan pada buffer pertama. Setelah buffer pertama diubah maka dilakukan pengujian terhadap koefisien DCT yang diubah, jika koefisien DCT yang telah diubah bernilai 0 maka matrix encoding akan diulang dengan menggunakan koefisien DCT dari indeks yang sama, namun koefisien DCT yang telah diubah menjadi 0 tidak akan dihitung dan tetap dibiarkan bernilai 0. Jika koefisien DCT yang telah diubah tidak bernilai 0 maka matrixencoding mengosongkan kedua buffer tersebut dan memulai kembali dengan indeks yang baru, begitu seterusnya hingga data yang disisipkan habis.
Gambar 3.2. Pengulangan proses penyisipan
Tahap keenam adalah mengembalikan urutan koefisien DCT yang telah mengalami permutasi kepada urutan aslinya. Seluruh koefisien DCT
kompresi JPEG, sehingga apapun proses yang dilalui sesudahnya dapat dikembalikan kepada bentuk semula.
Tahap pertama dalam ekstraksi data adalah membalikkan proses Huffman (dekompresi) sehingga didapatkan kembali koefisien DCT yang sama persis dengan bentuknya semula. Tahap ini melibatkan pula operasi de-Zigzag yaitu mengembalikan urutan koefisien DCT yang telah di urutkan secara zigzag ketika memasuki tahap RLC (run length coding) pada kompresi Huffman.
Tahap kedua adalah melakukan permutative straddling sama seperti pada proses penyisipan. Ini dimaksudkan agar aplikasi mendapatkan urutan yang benar ketika melakukan ekstraksi data, yaitu urutan yang dipermutasi berdasarkan password yang sama pada waktu penyisipan data. Tanpa password yang benar ekstraksi data tidak mungkin dilakukan karena aplikasi akan mendapat urutan penyisipan yang salah.
Tahap ketiga adalah melakukan matrix decoding yang merupakan kebalikan dari proses penyisipan data. Pada tahap ini tidak dilakukan penentuan posisi bit yang akan diubah, tetapi melakukan operasi xor agar didapat k bit dari n bit yang dibaca. Aplikasi akan membaca 4 bit pertama
57 untuk menentukan nilai k, kemudian akan dibuat 1 buah buffer, yaitu buffer yang berukuran n (n = 2k – 1) yang diisi oleh koefisien DCT yang tidak bernilai 0, aplikasi akan membaca seluruh koefisien DCT dalam buffer tersebut dan melakukan operasi xor sehingga didapat k bit data yang akan dituliskan ke dalam file temporary. Setelah itu aplikasi akan mengosongkan buffer tersebut dan memulai lagi dengan indeks yang baru, begitu seterusnya hingga seluruh koefisien DCT habis terbaca.
Tahap keenam adalah membaca header dari file temporary tersebut, yaitu 3 byte pertama yang berisi informasi tentang ukuran file yang disisipkan, kemudian menuliskan kembali file temporary tersebut kedalam
file yang dispesifikasikan oleh user sesuai dengan ukuran aslinya.
3.2.4 Penggunaan Encoder dan Decoder JPEG
Aplikasi ini akan menggunakan encoder dan decoder untuk file JPEG dari pihak ketiga, yaitu encoder yang dibuat oleh James R. Weeks dari BioElectroMech (www.obrador.com - James@obrador.com.) dan decoder yang dibuat oleh Dr. Ortega dari University of Southern California (ortega@sipi.usc.edu - sipi@sipi.usc.edu).
3.2.5 Perancangan Struktur Menu
Struktur menu utama pada Chimera F5 ini adalah inject data, extract
data dan exit. Inject data mempunyai sub menu select input file, select output file, select embedded file,set password, set quality, enter dan back.
Gambar 3.3.Perancangan Struktur Menu
3.2.6 Perancangan Layar dan Form 3.2.6.1 Perancangan Layar Awal
Pada perancangan tampilan awal (gambar 3.1) terdapat tiga tombol utama, yaitu btn inject, btn extract, dan btn exit.
59
3.2.6.2 Perancangan Layar Inject Data
Pada perancangan layar inject data (gambar 3.2) terdapat beberapa tombol, diantaranya btn input, btn output, btn password,
btn embed, btn quality, btn enter, dan btn back. Selain itu terdapat dua textbox, yaitu embed path dan quality val. Di bawah btn password terdapat animasi dan di bagian bawah layar terdapat sedikit catatan penting mengenai path yang digunakan dalam proses inject data.
Gambar 3.6. Perancangan FormInput Image
3.2.6.4 Perancangan FormOutput Image
Pada perancangan Form output image (gambar 3.4)
terdapat sebuah textbox, yaitu output image path. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai pathimage yang digunakan.
61
Gambar 3.7. Perancangan FormOutput Image
3.2.6.5 Perancangan FormEmbedded File
Pada perancangan Form embedded file (gambar 3.5) terdapat sebuah textbox, yaitu embedded path. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai embedded file path yang digunakan.
Gambar 3.8. Perancangan FormEmbedded File
3.2.6.6 Perancangan FormInput Password
Pada perancangan Form input password (gambar 3.6) terdapat sebuah textbox, yaitu user password. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai password yang digunakan.
63
Gambar 3.9. Perancangan FormInputPassword
3.2.6.7 Perancangan Form Compression Quality
Pada perancangan Form Compression Quality (gambar 3.7) terdapat sebuah textbox, yaitu quality value. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai nilai quality yang digunakan.
Gambar 3.10. Perancangan FormCompression Quality
3.2.6.8 Perancangan Layar Extract
Pada perancangan layar extract (gambar 3.8) terdapat beberapa tombol, diantaranya btn input, btn output, btn password,
btn enter, dan btn back. Selain itu terdapat btn password terdapat animasi dan bawahnya terdapat animasi. Di bagian bawah layar terdapat sedikit catatan penting mengenai path yang digunakan dalam proses ekstraksidata.
65
Gambar 3.11. Perancangan Layar Extract Data
3.2.6.9 Perancangan Form Input Stego File
Pada perancangan Form Input Stego File (gambar 3.9) terdapat sebuah textbox, yaitu stego file path. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai file stego yang digunakan.
Gambar 3.12. Perancangan FormInput Stego File
3.2.6.10 Perancangan Form Output Stego File
Pada perancangan Form Output Stego File (gambar 3.10) terdapat sebuah textbox, yaitu extracted file path. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai file hasil ekstraksi.
67
Gambar 3.13. Perancangan FormOutput Stego File
3.2.6.11 Perancangan Form Extraction Password
Pada perancangan Form Extraction Password (gambar 3.11) terdapat sebuah textbox, yaitu user password. Selain itu terdapat sebuah btn enter, dan di bagian bawah form terdapat sedikit catatan kecil mengenai password yang digunakan untuk proses ekstraksi data.
Gambar 3.14. Perancangan FormExtraction Password
3.2.6.12 Perancangan Layar Result
Pada perancangan layar result (gambar 3.12) terdapat 2 buah animasi yang menunjukkan proses yang sedang berjalan.
69
3.2.6.13 Perancangan Layar ErrorMessage
Pada perancangan layar error message (gambar 3.13) terdapat sebuah tombol, yaitu btn back. Selain itu juga terdapat
sebuah animasi, yaitu message, yang menunjukkan pesan
kesalahan.
Gambar 3.16. Perancangan Layar ErrorMessage
3.2.6.14 Perancangan Layar Success Message
Pada perancangan layar success message (gambar 3.14) terdapat sebuah animasi yang menunjukkan pesan sukses.
Gambar 3.17. Perancangan Layar SuccessMessage
3.2.7 Perancangan Flowchart
3.2.7.1 Perancangan Flowchart Modul Main Menu
Modul ini merupakan perancangan tampilan utama program. Pada saat program dijalankan pertama kali, akan dijalankan “kosong.exe” untuk mengosongkan seluruh input box. Kemudian user akan diberikan pilihan yaitu penyisipan, ekstraksi, atau keluar dari program. Jika user memilih inject (penyisipan), maka akan dijalankan modul inject data. Jika user memilih extract
(ekstraksi), maka akan dijalankan modul extract data. Jika user
71 Start Yes Animation Selection = Inject GotoAndPla y "Inject Data" No Selection = Extract Yes GotoAndPla y "Extract Data" No Selection = Exit Yes No End Call kosong.exe Wait For Selection Quit
Gambar 3.18.Flowchart Modul Main Menu
3.2.7.2 Perancangan Flowchart Modul Inject Data
Modul ini merupakan perancangan tampilan penyisipan data. Jika user memilih “Insert Input File”, maka akan dijalankan “inputImage.exe”. Jika user memilih “Insert Output File”, maka akan dijalankan “output.exe”. Jika user memilih “Insert Embed File”, maka akan dijalankan “embed.exe”. Jika user memilih “Enter Password”, maka akan dijalankan “password.exe”. Jika
menu. Jika user memilih “Enter”, maka akan dilakukan validasi untuk memastikan bahwa seluruh parameter telah diisi. Jika kelima parameter sudah diisi, maka akan dijalankan modul result frame 1.
73 Inject Data Yes Animation Selection = Insert Input File No Selection = Insert Output File Yes
No Selection = Insert Embedded File
Yes No Wait For Selection Selection = Enter Password Yes No Selection = Enter Quality Yes Selection = Back Yes GotoAndPla y"Main Menu" Selection = Enter Yes GotoAndPla y "Result" Frame 1 No Validasi Yes No No Call
"InputImage.Exe" Call "Output.exe" Call "Embed.exe"
Call "Password.exe"
Call "Quality.exe"
Return
No
Ketiga parameter di atas bertujuan untuk mengisi seluruh
input box yang diperlukan untuk proses ekstraksi data. User bebas menentukan urutan pengisian ketiga parameter tersebut. Jika user memilih “Back”, maka akan dijalankan modul main menu. Jika
user memilih “Enter”, maka akan dilakukan validasi untuk memastikan bahwa seluruh parameter telah diisi oleh user. Jika ketiga parameter sudah diisi, maka akan dijalankan modul result frame 38.
75 Extract Data Yes Animation Selection = Insert Stego File No Selection = Insert Output File Yes No Wait For Selection Selection = Enter Password Yes No Selection = Back Yes GotoAndPla y"Main Menu" Selection = Enter Yes GotoAndPla y "Result" Frame 38 No Validasi Yes
No Call "Stegox.Exe" "Outputx.exe"Call "Passwordx.exe"Call
Return
No
Gambar 3.20.Flowchart Modul Extract Data
3.2.7.4 Perancangan Flowchart Modul Result Frame 1
Modul ini merupakan perancangan tampilan proses penyisipan data yang sedang berlangsung dan hasil yang
Result Frame 1
Yes
Call "Stego.exe"
Process = Fail No Process = Success
Yes
No Animation
Error Message Success Message
Return GotoAndPla y "Main Menu" Selection = Back Yes GotoAndPla y "Inject Data" No
77
3.2.7.5 Perancangan Flowchart Modul Result Frame 38
Modul ini merupakan perancangan tampilan proses ekstraksi data yang sedang berlangsung dan hasil yang diperoleh. Ketika modul dijalankan, akan dijalankan “extract.exe”. Jika hasil yang diperoleh adalah fail (gagal), maka akan ditampilkan pesan sesuai dengan kesalahan. Jika hasil yang diperoleh adalah success
(sukses), maka akan ditampilkan pesan dan akan dijalankan modul main menu.
Yes
Process = Fail No Process = Success
Yes
Error Message Success Message
Return GotoAndPla y "Main Menu" Selection = Back Yes GotoAndPla y "Extract Data" No
Gambar 3.22.Flowchart Modul Result Frame 38
3.2.7.6 Flowchart Modul Injeksi
Modul ini adalah modul utama dalam aplikasi, modul ini akan melakukan proses embedding ke dalam file JPEG ditengah – tengah proses kompresi. Oleh karena itu langkah pertama yang
79 harus dilakukan adalah menjalankan proses kompresi dan berhenti tepat setelah proses kuantisasi selesai. Seluruh koefisien DCT yang dihasilkan, baik yang bernilai nol atau tidak, kemudian dikumpulkan untuk diproses dengan algoritma F5. Aplikasi kemudian melakukan permutasi terhadap urutan koefisien tersebut berdasarkan password yang dimasukkan user.
Aplikasi kemudian akan menghitung embedding rate, yaitu presentase data yang akan disisipkan dan kapasitas yang mampu ditampung oleh koefisien – koefisien DCT, dan menentukan nilai k yang akan digunakan dalam matrix encoding. Apabila file yang disisipkan melebihi kapasitas yang mampu ditampung maka k akan bernilai 0 dan modul ini akan mengirimkan pesan kepada GUI bahwa file tidak dapat disisipkan. Apabila k tidak bernilai 0 maka aplikasi akan memulai proses penyisipan.
Aplikasi akan membaca file yang akan disisipkan bit demi bit, menambahkan Stego Header yang berisi informasi yang berupa nilai k (4 bit pertama) dan size dari file yang akan disisipkan (4 byte pertama), dan kemudian menuliskan ulang ke
file sementara. File sementara itu akan dibaca pada saat matrix encoding sebagai input, setelah selesai aplikasi akan mengirimkan pesan kepada GUI bahwa file telah disisipkan. Aplikasi kemudian akan mengembalikan urutan seluruh koefisien yang telah
81 Injeksi Calculate the Embedding Rate, k and n Value k > 0 Do Permutative Straddling Get all DCT coefficients Stop JPEG Compression After Quantization Start JPEG Compression Read Embedded File and write to Temporary File Send Error Message to GUI Add Stego Header to Temporary File Do Matrix Encoding Send Success Message to GUI Continue JPEG Compression Return Yes No
menjadikannya 1 nilai integer, apabila nilai ini lebih kecil atau lebih besar dari indeks maka akan dilakukan operasi matematik sehingga nilai menjadi terjangkau oleh batas indeks. Kemudian aplikasi akan menukar nilai pada indeks acak ini dengan nilai pada batas indeks, untuk mempercepat proses permutasi aplikasi akan memperkecil batas indeks dengan cara melakukan pengurangan, apabila batas indeks telah menjadi lebih kecil dari 2 aplikasi akan menghentikan permutasi.
83 Permutative Straddling Create Array of index Random 4 bytes as an Integer Fit Random Integer to Index Range Cntr = 0 Switch Array Value Decrement Cntr Cntr >= 2 Return Yes No
Gambar 3.24.Flowchart Modul Permutative Stradling
3.2.7.8 Flowchart Modul Matrix Encoding
Modul ini akan menyisipkan data ke dalam koefisien DCT dengan operasi xor, langkah pertama adalah mengubah nilai indeks menjadi 0 di awal proses, kemudian aplikasi akan membaca k bit dari file yang akan disisipkan dan membaca n
akan dikurangi, jika posisi bit bernilai 0 maka tidak akan bit yang diubah. Aplikasi akan memeriksa nilai bit yang diubah, jika bit yang diubah bernilai 0 maka proses diatas akan diulang dengan tidak mengikut-sertakan bit yang telah menjadi nol, namun jika bit yang diubah tidak bernilai 0 maka proses diatas akan diulang dengan koefisien – koefisien yang baru.
85 Matrix Encoding Read k bit of Embedded File Use Permuted Sequence Read n Non-Zero DCT Coefficients XOR Embedded bit with DCT Coefficients Calculate changeBit Index Decrement DCT Coefficient at changeBit Read All Coefficients ? Index = 0 Produce 0 ? Return No Index + n Yes No Yes
DCT yang didapat akan melalui proses de-ZigZag untuk mengembalikan urutannya yang diubah ketika memasuki tahap RLC pada saat kompresi, koefisien – koefisien tersebut kemudian akan dikumpulkan dan diproses untuk ekstraksi data.
Aplikasi akan melakukan Permutative Straddling dengan cara yang sama seperti pada saat kompresi untuk mendapatkan urutan pembacaan yang benar. Berbeda dengan proses kompresi, aplikasi tidak akan menghitung embedding rate untuk mendapatkan nilai k, tetapi membacanya langsung dari Stego Header yang ikut disisipkan dalam file JPEG dan kemudian menggunakannya untuk menghitung nilai n, selain nilai k aplikasi juga membaca size dari embedded file pada Stego Header. Selanjutnya aplikasi akan melakukan matrix decoding pada seluruh koefisien DCT dan menuliskan hasilnya sebagai file hasil dari proses ekstraksi sesuai dengan size-nya.
87
Ekstraksi
Read k Value from the Stego
Header Do Permutative Straddling Get all DCT coefficients Start JPEG Decompression Calculate n value Read Embedded size from the Stego Header Write to Extracted File using Embedded Size Do Matrix Decoding Return
Gambar 3.26.Flowchart Modul Ekstraksi
3.2.7.10 Flowchart Modul Matrix Decoding
Modul ini akan mengekstrak data dari koefisien DCT dengan operasi xor, langkah pertama adalah membaca n koefisien DCT yang tidak bernilai 0 menurut urutan permutasi. Apabila
Matrix Decoding Use Permuted Sequence Read n Non-Zero DCT Coefficients XOR DCT Coefficients Write Extracted bit to Temporary File Read All Coefficients ? Return No Yes
89
3.2.8 Perancangan Spesifikasi
3.2.8.1 Perancangan Spesifikasi Main Menu
Main Menu Module
View Main Screen
Call “kosong.exe”
Animation
Wait for Selection
If Selection is “Inject” Then
gotoAndPlay “Inject Data”
Else
If Selection is “Extract” Then
gotoAndPlay “Extract Data”
Else
If Selection is “Exit” Then
Quit from Application
End If
End Module
3.2.8.2 Perancangan Spesifikasi Inject Data
Inject Data Module
View Main Screen
Animation
Else
If Selection is “Specify Path” Then
Call “embed.exe”
Else
If Selection is “Insert Password” Then
Call “password.exe”
Else
If Selection is “SpecifyQuality” Then
Call “quality.exe”
Else
If Selection is “Back” Then
gotoAndPlay “Main Menu”
Else
If Selection is “Enter” Then
If “Insert Input File” And “Insert Output
File” And “Specify Path” And “Insert Password” And “Specify Quality” Are not empty
91 End If
End If
End Module
3.2.8.3 Perancangan Spesifikasi Extract Data
Extract Data Module
View Main Screen
Animation
Load Variables from File
Wait for Selection
If Selection is “Insert Stego File” Then
Call “stegox.exe”
Else
If Selection is “Insert Output File” Then
Call “outputx.exe”
Else
If Selection is “Insert Password” Then
Call “passwordx.exe”
Else
If Selection is “Back” Then
gotoAndPlay “Main Menu”
Else
3.2.8.4 Perancangan Spesifikasi Result Frame 1
Result Frame 1 Module
View Main Screen
Call “stego.exe”
Load Variable from File
Animation
If Process is Fail Then
View Message
If Selection is “Back” Then
gotoAndPlay ”Inject Data”
End If
Else
If Process is Done Then
View Message
gotoAndPlay “Main Menu”
End If
93
3.2.8.5 Perancangan Spesifikasi Result Frame 38
Result Frame 38 Module
View Main Screen
Call “extract.exe”
Load Variable from File
Animation
If Process is Fail Then
View Message
If Selection is “Back” Then
gotoAndPlay ”Extract Data”
End If
Else
If Process is Done Then
View Message
gotoAndPlay “Main Menu”
End If
End Module
3.2.8.6 Perancangan Spesifikasi Modul Injeksi
Injeksi Module
Start JPEG compression
Stop JPEG compression after quantization Get all DCT coefficient
Read Embedded file and write to temporary
file
Add stego header to temporary file
Call “Matrix Encoding” Module
Send success message to GUI
Goto continue JPEG compression
End if
Continue JPEG compression
End module
3.2.8.6 Perancangan Spesifikasi Modul Ekstraksi
Ekstraksi Module
Start JPEG decompression
Get all DCT coefficients
Call “Permutative Straddling” Module Read k value from the Stego Header
Calculate n value
95
Call “Matrix Decoding” Module
Write to extracted file using embedded size
End Module
3.2.8.7 Perancangan Spesifikasi Modul Matrix Encoding
Matrix Encoding Module
Set Index = 0
If Index != 0 and Module !produce 0 then
Index + n
Read k bit of embedded file
Use permuted sequence
Read n non-zero DCT coefficients If all coefficients read then
Goto End Module
Else then
Xor embedded bit with DCT coefficients
Calculate changBit index
Decrement DCT coefficient at changeBit
End if
Check if Module produce 0
Goto If Index != 0 and Module !produce 0
Else then
Xor DCT coefficients
Write extracted bit to temporary file
End if
Goto read n non-zero coefficients
End Module
3.2.8.9 Perancangan Spesifikasi Modul Permutative Straddling
Permutative Straddling Module
Create array of index
Set cntr = 0
Do
Random 4 bytes as an integer Fit random integer to index range Switch array value
Decrement cntr While cntr >= 2