1.
Pendahuluan
Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika kriptografi merahasiakan makna pesan sementara eksistensi pesan tetap ada, maka steganografi menutupi keberadaan pesan. Dalam praktiknya, pesan rahasia dienkripsi terlebih dahulu, kemudian ciphertext disembunyikan di dalam media lain sehingga pihak ketiga tidak menyadari keberadaanya. Pesan rahasia yang disembunyikan dapat diekstraksi kembali persis sama seperti aslinya. Dalam menjaga keamanan pesan yang dikirimkan, data dalam pesan tersebut dapat disamarkan terlebih dahulu dengan menggunakan teknik kriptografi. Kemudian teknik steganografi digunakan agar dalam pengiriman pesan, pesan yang disisipkan pada audio tidak dapat diketahui sehingga ketika audio diambil oleh pihak ketiga atau pihak lainnya tidak dapat menyadari adanya pesan di dalam audio yang dikirimkan. Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian dengan tujuan merancang suatu aplikasi steganografi yang akan melakukan penyisipan file atau pesan rahasia ke dalam file audio dengan format *.WAV menggunakan metode Enhanced Audio steganography (EAS) serta menggunakan algoritma Columnar Transposition untuk proses enkripsi dan dekripsi file. Dalam penelitian ini, file yang akan disisipkan yaitu file pesan dengan format *.txt. 2.
Kajian Pustaka
Adapun penelitian terdahulu yang menjadi acuan dalam penelitian ini adalah penelitian dengan judul “Efficient Method of Audio Steganography by Modified LSB Algorithm and Strong Encryption Key With Enhanced Security”. Penelitian ini mengajukan metode baru untuk penyisipan pesan dalam audio, dengan memodifikasi metode Least Significant Bit (LSB), dan menggunakan kekuatan kunci enkripsi untuk meningkatkan keamanan pesan yang disisipkan. Enkripsi yang digunakan adalah teknik enkripsi yang ditentukan sendiri dengan aturan yang sederhana. Proses enkripsi diterapkan pada pesan, sebelum pesan tersebut disisipkan ke dalam audio [1]. Penelitian dengan judul “Aplikasi Steganografi pada Citra Menggunakan Metode Least Significant Bit Termodifikasi dan RC6” juga menjadi acuan dalam penelitian ini. Pada penelitian tersebut sistem steganografi yang dibangun akan dianalisis dengan melihat apakah terjadi perubahan signifikan terhadap kualitas dan besar ukuran data pada cover image setelah melalui proses embedding dan extracting data serta melihat apakah terjadi perubahan atau kerusakan pada data yang telah diekstrak [2]. Penelitian lainnya yang juga menjadi acuan dalam penelitian ini adalah penelitian dengan judul “Perancangan dan Implementasi Steganografi Menggunakan Metode Enhanced Audio Steganography (EAS)”. Pada penelitian ini metode EAS digunakan untuk menyisipkan pesan teks ke dalam file *.WAV. Proses enkripsi dan dekripsi pesan menggunakan algoritma Vigenere [3]. Berdasarkan penelitian terdahulu yang menjadi acuan, maka akan dilakukan penelitian steganografi yang menggunakan metode Enhanced Audio Steganography (EAS) dan menggunakan algoritma Columnar Transposition 1
untuk proses enkripsi pada data atau pesan yang akan disisipkan serta media yang digunakan yaitu file audio berformat *.WAV. Steganografi berasal dari Bahasa Yunani, yaitu “steganos” yang artinya “tulisan tersembunyi”. Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui [4]. Steganografi menyembunyikan pesan rahasia ke dalam media penampung pesan rahasia, dimana pesan tersebut telah dienkripsi terlebih dahulu. Selanjutnya menyisipkan ciphertext ke dalam media penampung tanpa mengubah media tersebut sehingga sebelum dan setelah proses penyembunyian pesan, media penampung sama seperti aslinya. Algoritma EAS merupakan algoritma yang memodifikasi algoritma LSB. Modifikasi yang dilakukan adalah penyisipan bit pada media penampung hanya dilakukan pada byte yang bernilai 254 atau 255. Pada algoritma EAS, byte yang akan digunakan sebagai penampung hanya selective byte sehingga media penampung yang digunakan akan mengalami kerusakan yang kecil. Dalam algoritma EAS, diterapkan juga algoritma enkripsi pada pesan yang akan disisipkan. Terdapat empat proses yang terjadi dalam algoritma EAS yaitu enkripsi, deskripsi, encoding, decoding [1]. Pada algoritma Columnart Transposition, huruf-huruf di dalam plaintext tetap sama namun urutannya diubah. Algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling) karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut [4]. Proses enkripsi pesan pada algoritma Columnar Transposition dapat dilihat pada Gambar 1. Sebagai contoh, kunci yang digunakan untuk melakukan proses enkripsi adalah enam. Jumlah kolom yang dibentuk sesuai dengan kunci enkripsi, sedangkan jumlah baris disesuaikan dengan panjang karakter dari plaintext “FAKULTAS TEKNOLOGI INFORMASI UKSW”. Plaintext ditulis secara horizontal dengan lebar kolom tetap sesuai dengan kunci yang digunakan yaitu enam.
Gambar 1 Proses Enkripsi Algoritma Columnar Transposition [1]
Berdasarkan Gambar 1, maka ciphertext dari proes enkripsi dapat dibaca secara vertikal yaitu menjadi “FAN MKASOIASK LNSWUTOFI LEGO TKIRU”. Proses dekripsi merupakan proses kebalikan dari proses enkripsi. Dekripsi pesan dilakukan dengan membagi panjang ciphertext dengan kunci yang ditentukan seperti pada waktu proses enkripsi. Proses dekripsi dengan algoritma
2
Columnar Transposition untuk ciphertext “FAN MKASOIASK LNSWUTOFI LEGO TKIRU” yang merupakan hasil dari proses enkripsi sebelumnya dapat dilihat pada Gambar 2. Hasil dekripsi yang diperoleh dengan membaca setiap kolom pada Gambar 2 adalah “FAKULTAS TEKNOLOGI INFORMASI UKSW”.
Gambar 2 Proses Dekripsi Algoritma Columnar Transposition [1]
File WAV adalah file audio standar yang digunakan oleh Windows. Suara yang berupa digital audio dalam file WAV disimpan dalam bentuk gelombang, karena itulah file ini memiliki ekstensi *.WAV. File WAV dapat dibuat dengan menggunakan berbagai program wave editor maupun wave recorder. Pemilihan format file *.WAV karena file ini merupakan audio yang tidak terkompres sehingga memiliki kualitas audio yang baik dan memiliki tempat penyimpanan yang besar dalam melakukan proses penyisipan bit pesan dalam audio, serta memiliki library untuk membaca byte stream pada audio [5]. 3.
Metode dan Perancangan Sistem
Tahapan penelitian yang dilakukan dalam penelitian ini terlihat dalam Gambar 3.
Gambar 3 Tahapan Penelitian
Berdasarkan Gambar 3 dapat dilihat tahap pertama yang dilakukan adalah identifikasi masalah. Pada tahap ini dilakukan analisis terhadap permasalahan yang ada, yaitu mendapatkan data dan literatur terkait dengan proses embedding, ekstraksi, enkripsi dan dekripsi terhadap data file pada audio menggunakan
3
metode Enhanced audio steganography (EAS) dan algoritma Columnar Transposition melalui dokumen dan referensi yang ada. Tahap selanjutnya yang dilakukan adalah perancangan sistem. Perancangan proses dalam sistem dilakukan dengan menggunakan Unified Modeling Language (UML). Adapun diagram yang dibuat pada perancangan sistem ini adalah use case diagram. Use case diagram merupakan diagram yang memperlihatkan hubungan antara aktor dengan sistem [6].
Gambar 4 Use Case Diagram Sistem
Gambar 4 menunjukkan use case diagram dari sistem yang dibangun. Pada Gambar 4 dapat dilihat interaksi antara user dengan sistem, dimana terdapat user yang dapat berperan sebagai embeddor maupun extractor. Embeddor dapat melakukan input audio, input document, dan proses embedding dengan memasukkan key untuk proses enkripsi. Extractor dapat melakukan input stego audio serta proses ekstraksi dengan memasukkan key untuk proses dekripsi. Selain itu user dapat juga melakukan perbandingan file audio maupun file document. Pada tahap perancangan sistem, juga dilakukan perancangan untuk proses embedding, extracting dengan algoritma EAS, dan proses enkripsi dan dekripsi dengan algoritma Columnar Transposition. Perancangan ini diperlukan agar proses implementasi lebih sistematis dan terarah. Flowchart proses embedding dapat dilihat pada Gambar 5, proses extracting pada Gambar 6, flowchart proses enkripsi dapat dilihat pada Gambar 7 dan proses dekripsi pada Gambar 8.
4
Gambar 5 Proses Embedding
Algoritma proses embedding pada Gambar 5, secara umum digunakan untuk menyembunyikan pesan atau data di dalam data lainnya. Media diperlukan sebagai sarana penampung pesan tersebut untuk menyembunyikan pesan rahasia. Setelah menentukan media penampung, kemudian pesan rahasia disisipkan ke dalam media penampung. Selanjutnya dilakukan proses embedding menggunakan algoritma embedding. Pada Gambar 5 dapat dilihat bahwa setelah user mengisi file audio, file document dan key enkripsi, sistem akan menghitung besar lokasi yang tersedia pada file audio dan file document tersebut. Kemudian file yang akan disisipkan dienkripsi terlebih dahulu. File WAV yang digunakan sebagai media penyisipan harus memiliki jumlah byte bernilai 254 atau 255 yang cukup menampung file pesan. Proses berikutnya adalah proses penyisipan bit file pesan di LSB byte file media. Proses ini bersifat selektif karena penyisipan hanya dilakukan pada byte file media yang bernilai 254 atau 255 saja. Selanjutnya 5
pembacaan diteruskan lagi ke byte berikutnya. Proses tersebut diulangi sampai semua bit file pesan selesai disisipkan. Setelah proses selesai, file WAV disimpan sebagai file baru.
Gambar 6 Proses Extracting
Proses yang terjadi sesuai algoritma extracting data seperti pada Gambar 6 adalah proses dekripsi dan dilanjutkan dengan proses extracting data. Data yang telah disisipkan akan dikeluarkan terlebih dahulu, kemudian akan didekripsikan sehingga menghasilkan data rahasia yang diinginkan user. Proses extracting merupakan proses untuk membaca objek yang disisipkan di dalam media penampung. Ketika media penampung dimasukkan, sistem akan membaca apakah ada data yang disisipkan atau tidak. Jika tidak ada data yang disisipkan maka proses akan selesai, tetapi jika ada data yang disisipkan maka proses akan berlanjut dengan penyiapan penampung pesan. Sistem akan membaca panjang
6
data yang disisipkan ke dalam byte audio, dan mengecek apakah byte tersebut bernilai 254 atau 255, mengecek apakah panjang penampung < L (variabel panjang pesan), kemudian proses pembacaan bit terakhir (LSB) dan disimpan ke penampung pesan. Proses ini akan diulangi hingga semua bit selesai terbaca. Pesan yang diperoleh akan didekripsi, kemudian disimpan sebagai file baru. Proses selesai dengan output document yang telah dilakukan proses extracting.
Gambar 7 Proses Enkripsi
Gambar 7 menjelaskan proses enkripsi file dimulai dengan input file (plaintext), selanjutnya input key sebagai perhitungan jumlah kolom dalam proses enkripsi. Setelah proses input selesai, selanjutnya proses enkripsi dijalankan. Proses enkripsi melakukan langkah-langkah untuk melakukan proses enkripsi, Setelah proses selesai dijalankan, maka akan menghasilkan output ciphertext.
7
Gambar 8 Proses Dekripsi
Gambar 8 menjelaskan proses dekripsi file dimulai dengan input file (ciphertext), selanjutnya input key sebagai perhitungan jumlah kolom dalam proses enkripsi. Setelah proses input selesai, selanjutnya proses dekripsi dijalankan. Proses dekripsi melakukan langkah-langkah untuk melakukan proses dekripsi, Setelah proses selesai dijalankan, maka akan menghasilkan output plaintext. Setelah melakukan perancangan sistem menggunakan UML serta perancangan flowchart, tahap selanjutnya yaitu implementasi sistem. Pada tahap ini dilakukan implementasi perancangan yang telah dibuat. Implementasi dilakukan dengan menulis kode program menggunakan bahasa pemrograman C#. Tahapan selanjutnya yang dilakukan yaitu pengujian sistem. Pada tahap ini dilakukan pengujian sistem yaitu menjalankan proses implementasi sistem, dengan menguji pengaruh ukuran data, waktu proses dan kualitas audio, serta melihat hasil yang diberikan apakah sudah sesuai dengan konsep steganografi dan algoritma kriptografi Columnar Transposition.
8
4.
Hasil dan Pembahasan
Pada bagian hasil dan pembahasan akan dibahas mengenai penerapan dari tiap perancangan yang sudah dibangun. Adapun hasil penerapan yang akan dibahas adalah proses embedding dan proses extracting. Proses embedding dimulai dengan menghitung jumlah bit yang tersedia dari file audio sebagai media penampung untuk penyisipan pesan dan jumlah bit yang harus disisipkan dari file document yang berisi pesan rahasia. Setelah itu, pesan rahasia tersebut akan dienkripsi terlebih dahulu dan kemudian disisipkan pada media penampung. Pengkodean untuk proses perhitungan jumlah bit dari file audio dapat dilihat pada Kode Program 1 sedangkan untuk proses perhitungan jumlah bit dari file document dapat dilihat pada Kode Program 2 dan pengkodean untuk proses enkripsi dapat dilihat pada Kode Program 3. Kode Program 1 Proses Perhitungan Jumlah Bit File Audio 1. public int HitungKapasitasBit(string filename) 2. { 3. if (File.Exists(filename)) 4. { 5. int counter = 0; 6. FileStream waveFileStream = new FileStream(filename, FileMode.Open); 7. WaveStream baru = new WaveStream(waveFileStream); 8. int r = -1; 9. while ((r = baru.ReadByte()) != -1) 10. { 11. byte current = (byte)r; 12. if (current == A || current == B) 13. { 14. counter++; 15. } 16. } 17. baru.Close(); 18. waveFileStream.Close(); 19. return counter; 20. } 21. . 22. . 23. . 24. . 25. }
Pada Kode Program 1 terdapat fungsi HitungKapasitasBit dengan parameter nama dari file audio yang akan dihitung jumlah bitnya. Proses perhitungan dimulai dari perintah baris 9 sampai pada baris 16. Setelah berhasil melakukan perhitungan, fungsi tersebut akan mengembalikan nilai dari perhitungan yang dilakukan berupa jumlah bit yang tersedia untuk disisipkan pesan.
9
Kode Program 2 Perintah Untuk Proses Perhitungan Jumlah Bit File Document 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
private String BuildBinaryMessage(int key , string documentFile) { byte[] plain = File.ReadAllBytes(documentFile); byte[] message = Transposisi.TranspositionCipherAdapter.Encrypt (plain,key); FileInfo infoFile = new FileInfo(documentFile); byte[] fileName = Encoding.Default.GetBytes(infoFile.Name); int messageLength = message.Length * 8; int nameLength = fileName.Length * 8; String binaryMarker = BitsMarker; String binaryNameLength = IntToBinaryString(nameLength); String binaryName = StringToBinaryString(fileName); String binaryMessageLength = IntToBinaryString(messageLength); String binaryMessage = StringToBinaryString(message); binaryMessage = binaryMarker + binaryNameLength + binaryName + binaryMessageLength + binaryMessage; return binaryMessage; }
Kode Program 2 merupakan pengkodean untuk menghitung jumlah bit yang harus disisipkan dari file document. Perhitungan jumlah bit dilakukan dengan perintah pada baris 14, yang ditampung dalam variabel binaryMessage. Kode Program 3 Perintah Untuk Proses Enkripsi 1. public static List<string> transpose(string plain, int k) 2. { 3. string rslt = ""; 4. List<string> listRsltTranspose = new List<string>(); 5. char[] data = plain.ToCharArray(); 6. int count = data.Length; 7. for (int i = 0; i < count; ) 8. { 9. string strTemp = ""; 10. if ((i + k) > count) 11. { 12. for (int n = i; n < count; n++) 13. { 14. rslt += data[n]; 15. strTemp += data[n]; 16. } 17. listRsltTranspose.Add(strTemp); 18. } 19. else 20. { 21. int temp = i; 22. for (int j = i; j < (temp + k); j++) 23. { 24. rslt += data[j]; 25. strTemp += data[j]; 26. } 27. listRsltTranspose.Add(strTemp); 28. } 29. i += k; 30. rslt += "\n"; 31. } 32. return listRsltTranspose; 33. }
10
Pada Kode Program 3 terdapat fungsi transpose dengan parameter plain yaitu pesan yang akan disisipkan dan k sebagai kunci yang digunakan untuk melakukan proses enkripsi. Proses enkripsi dilakukan dengan perintah pada baris 7 sampai baris 31 sesuai dengan algoritma Columnar Transposition. Hasil dari fungsi tersebut adalah pesan yang telah dienkripsi. Setelah melakukan enkripsi pada pesan rahasia, langkah selanjutnya yang dilakukan yaitu proses embedding. Pada proses ini dilakukan penyisipan pesan rahasia ke dalam media penampung berupa file audio. Pengkodean untuk penyisipan pesan dapat dilihat pada Kode Program 4. Kode Program 4 Perintah Untuk Proses Penyisipan 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
public void EmbeddingStart(int key, string mediaFile, string resultFile, string documentFile) { . . List
daftarIndex = FindIndices(mediaBytes); . String binaryMessage = BuildBinaryMessage(key, documentFile); . int messageIndex = 0; foreach (int index in daftarIndex) { if (messageIndex >= binaryMessage.Length) break; byte current = mediaBytes[index]; char bit = binaryMessage[messageIndex]; current = ReplaceBit(current, bit); mediaBytes[index] = current; messageIndex++; . } destinationStream.Write(mediaBytes, 0, mediaBytes.Length); . . }
Kode Program 4 merupakan pengkodean untuk proses embedding data ke dalam media penampung. Penyisipan data pada tiap byte file audio dilakukan dengan perintah pada baris 10 sampai baris 19. Hasil dari proses embedding yang dilakukan dapat dilihat pada Gambar 9.
Gambar 9 Antarmuka Untuk Proses Embedding
11
Gambar 9 merupakan tampilan antarmuka untuk proses embedding dimana user akan memilih button browse untuk memilih media penampung. Selanjutnya pilih dokumen yang akan disisipkan, kemudian user memasukkan kunci yang diinginkan pada textbox key, kemudian pilih button embed untuk memilih lokasi dimana ingin menyimpan file hasil embedding. Kemudian proses penyisipan file dokumen ke dalam media *.WAV berjalan hingga tampil message box finish, maka proses embedding telah selesai. Selain proses embedding, user juga dapat melakukan proses extracting pada aplikasi yang dibangun. Proses extracting dilakukan dengan mengeluarkan file document yang disisipkan terlebih dahulu kemudian file tersebut didekripsi. Pengkodean untuk mengeluarkan file document yang disisipkan dapat dilihat pada Kode Program 5 dan pengkodean untuk proses dekripsi dapat dilihat pada Kode Program 6. Kode Program 5 Perintah Untuk Proses Ekstraksi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
public void ExtractingStart(string key, string mediaFile, string resultFolder) { . . List containers = GetContainer(mediaBytes); . . if (IsHeaderValid(containers.GetRange(0, 8))) { int nameBytesLength = ReadInteger(containers.GetRange(8, 32).ToArray()); string fileName = ReadString(containers.GetRange(40, nameBytesLength).ToArray()); int messageBytesLength = ReadInteger(containers.GetRange(40 + nameBytesLength, 32).ToArray()); byte[] cipherMessage = ReadBytes(containers.GetRange(40 + nameBytesLength + 32, messageBytesLength).ToArray()); byte[] message = TranspositionCipherAdapter.Decrypt( cipherMessage,int.Parse(key)); FileStream result = new FileStream(resultFolder, FileMode.Create); result.Write(message, 0, message.Length); result.Close(); . } . . }
Kode Program 5 merupakan pengkodean untuk membaca file document yang disisipkan pada media penampung. Perintah pada baris 14 dapat dilihat bahwa program akan memanggil fungsi yang digunakan untuk mendekripsikan pesan rahasia yang telah dienkripsi pada proses embedding. Setelah itu hasil dekripsi pesan akan disimpan sebagai file yang baru.
12
Kode Program 6 Perintah Untuk Perintah Untuk Proses Dekripsi 1. public static List<string> transpose(string plain, int k, int remain) 2. { 3. string rslt = ""; 4. List<string> listRsltTranspose = new List<string>(); 5. string str = ""; 6. int previousIndex = 0, nextIndex = 0; 7. int countCopy = plain.Length / k; 8. int inc = 0; 9. for (int i = 0; i < plain.ToCharArray().Length; ) 10. { 11. nextIndex += countCopy ; 12. if (remain != 0) 13. { 14. nextIndex += 1; 15. --remain; 16. listRsltTranspose.Add(plain.Substring(previousIndex, countCopy +1 )); 17. i += (countCopy + 1); 18. } 19. else 20. { 21. Try 22. { 23. listRsltTranspose.Add(plain.Substring(previousIndex, countCopy )); 24. i += countCopy; 25. }catch (Exception ) { 26. } 27. } 28. previousIndex = nextIndex; 29. } 30. plain = str; 31. return listRsltTranspose; 32. }
File document yang telah berhasil diekstraksi dari media penampung berupa file stego audio kemudian didekripsi melalui pengkodean seperti pada Kode Program 6. Proses dekripsi dimulai dari perintah pada baris 9 sampai baris 29. Hasil dari proses extracting dapat dilihat pada Gambar 10.
Gambar 10 Antarmuka Untuk Proses Extracting
Gambar 10 merupakan tampilan antarmuka untuk proses extracting dimana user akan memasukkan file stego audio yang akan diekstraksi dengan memilih button browse. Selanjutnya user harus memasukkan kunci dekripsi pada textbox key yang sama dengan kunci enkripsi, kemudian pilih button extract untuk memilih lokasi dimana ingin menyimpan file hasil ekstraksi. Setelah itu proses 13
ekstraksi akan berjalan hingga tampilnya message box finish maka proses ekstraksi selesai. Setelah melakukan implementasi sistem terhadap perancangan yang dibuat, selanjutnya dilakukan pengujian sistem. Pengujian sistem dilakukan dengan membandingkan pengaruh ukuran file audio maupun file document terhadap durasi atau waktu proses embedding dan extracting. Hasil pengujian untuk proses embedding dapat dilihat pada Tabel 1 dan untuk proses extracting dapat dilihat pada Tabel 3. Tabel 1 Hasil Pengujian Embedding Data dengan Ukuran Berbeda
File Yang Disisipkan (.txt) Pesan 1 (2 KB) Pesan 2 (6 KB) Pesan 3 (10 KB) Pesan 4 (14 KB) Pesan 5 (18 KB) Pesan 6 (21 KB) Pesan 7 (22 KB) Pesan 8 (24 KB) Pesan 9 (28 KB) Pesan 10 (32 KB) Pesan 11 (36 KB) Pesan 12 (40 KB) Pesan 13 (43 KB)
Jumlah Bits Yang Dapat Disisipkan 8.760 bits 49.080 bits 79.320 bits 108.120 bits 147.000 bits 167.184 bits 177.248 bits 188.784 bits 223.392 bits 255.040 bits 288.160 bits 327.088 bits 348.688 bits
Waktu Embedding (MS) Audio 1 Audio 2 (10.666 KB) (8.592 KB) (348.056 bit) (176.289 bit) 13,74 13,78 58,93 64,98 99,55 105,17 135,33 145,75 182,56 216,65 193,33 255,35 238,74 238,74 322,40 385,10 445,63 450,04
Pengujian pada Tabel 1 dilakukan dengan menggunakan file document dengan format *.txt yang akan disisipkan pada file audio dengan format *.WAV. kunci enkripsi yang digunakan untuk proses embedding adalah enam. Berdasarkan hasil pengujian embedding data dengan ukuran yang berbeda pada Tabel 1 dapat dilihat bahwa pengujian pada Audio 2 untuk menyisipkan file Pesan 7 sampai file Pesan 13 tidak dapat dilakukan karena jumlah bit pesan melebihi kapasitas bit yang tersedia pada Audio 2. Sebagai contoh, file Pesan 7 memiliki 177.248 bit yang dapat disisipkan, sedangkan pada Audio 2 hanya tersedia 176.289 bit untuk disisipkan. Grafik dari Tabel 1 dapat dilihat pada Gambar 11 dan Gambar 12.
14
Audio1 y=
500
Audio2
-0,001x4
450
0,076x3
1,7946x2
+ 24,606x - 32,256 R² = 0,9965
+
300
y = -0,0052x4 + 0,2521x3 - 3,9376x2 + 33,415x - 39,612 R² = 0,999
250
400 350
200
300 250
Audio 1
200
Poly. (Audio 1)
Audio 2
150
Poly. (Audio 2) 100
150 100
50
50 0
0 0
4
8 12 16 20 24 28 32 36 40 44
0
Gambar 11 Grafik Embedding Audio1
4
8
12
16
20
24
Gambar 12 Grafik Embedding Audio2
Berdasarkan grafik pada Gambar 11 dan Gambar 12 yaitu grafik proses embedding data dengan ukuran berbeda, file yang akan disisipkan berbeda pada dua file audio dengan ukuran berbeda pula, dapat dilihat bahwa semakin besar ukuran file yang disisipkan maka semakin lama waktu yang dibutuhkan untuk proses embedding. Hal ini disebabkan karena semakin banyak bit yang harus dibaca kemudian disisipkan, sehingga proses penyisipan harus dilakukan berulang-ulang dan memerlukan lebih banyak waktu, sedangkan pada kedua file audio walaupun berbeda ukuran namun hanya berpengaruh sedikit terhadap proses embedding. Oleh karena itu dapat disimpulkan bahwa ukuran file yang akan disisipkan dapat mempengaruhi waktu proses embedding namun besar ukuran file audio tidak terlalu mempengaruhi waktu proses embedding. Terkait pembahasan, karakter dari algoritma yang dibangun maka dibuat model dengan menggunakan pencocokan kurva (fitting) berdasarkan pada Tabel 1. Pembuatan model bertujuan untuk mencari interpolasi data berdasarkan pada Tabel 1, sebagai contoh : Audio 1 dengan ( ) ( )
= 3 dimasukkan dalam persamaan berikut : ( )
( ) ( )
15
27,3816
( )
( )
Tabel 2 Hasil Pengujian Extracting
Stego File Pesan 1 (1KB) Audio 1 (10.666 KB) Pesan 2 (2KB) Audio 1 (10.666 KB) Pesan 1 (1KB)- Audio 2 (8.592 KB) Pesan 2 (2KB) Audio 2 (8.592 KB)
Ekstraksi
Proses
Isi
Waktu Extracting (MS)
Ya
Berhasil 100%
0,19
Ya
Berhasil 100%
0,26
Ya
Berhasil 100%
0,16
Ya
Berhasil 100%
0,24
Pada Tabel 2 dapat dilihat bahwa file document yang disisipkan yaitu file Pesan 1 dan file Pesan 2 berhasil diektraksi. Proses ekstraksi mengggunakan kunci yang sama pada waktu proses embedding yaitu enam dan hasilnya sesuai dengan apa yang disisipkan. Berdasarkan Tabel 2 dapat dilihat bahwa besar ukuran file yang disisipkan berpengaruh pada waktu extracting. Semakin besar ukuran file yang disisipkan, semakin lama waktu yang dibutuhkan untuk proses ekstraksi. Selain pengujian seperti pada Tabel 2, juga dilakukan pengujian dari file document dengan ukuran berbeda yang telah disisipkan pada dua file audio. File audio dan file document yang digunakan sama dengan file yang digunakan pada pengujian embedding. Kunci dekripsi yang digunakan juga sama seperti pengujian sebelumnya yaitu enam. Hasil pengujian tersebut dapat dilihat pada Tabel 3. Tabel 3 Hasil Pengujian Extracting Data Dengan Ukuran Berbeda
File Yang Disisipkan (.txt) Pesan 1 (2 KB) Pesan 2 (6 KB) Pesan 3 (10 KB) Pesan 4 (14 KB) Pesan 5 (18 KB) Pesan 6 (21 KB) Pesan 7 (22 KB) Pesan 8 (24 KB) Pesan 9 (28 KB) Pesan 10 (32 KB) Pesan 11 (36 KB) Pesan 12 (40 KB) Pesan 13 (43 KB)
Jumlah Bits Yang Dapat Disisipkan 8.760 bits 49.080 bits 79.320 bits 108.120 bits 147.000 bits 167.184 bits 177.248 bits 188.784 bits 223.392 bits 255.040 bits 288.160 bits 327.088 bits 348.688 bits
16
Waktu Extracting (MS) Audio 1 Audio 2 (10.666 KB) (8.592 KB) (348.056 bit) (176.289 bit) 0,35 0,18 1,31 1,26 1,95 1,91 2,85 2,80 3,69 3,63 4,30 4,28 4,57 4,97 5,94 6,77 7,78 8,97
Berdasarkan hasil pengujian extracting data dengan ukuran yang berbeda pada Tabel 3, dapat dilihat bahwa pada file Pesan 7 sampai file Pesan 13 tidak terdapat waktu extracting. Hal ini dikarenakan file Pesan 7 sampai file Pesan 13 tidak dapat disisipkan pada media penampung saat proses embedding seperti yang terlihat pada Tabel 1. Grafik dari Tabel 3 dapat dilihat pada Gambar 13 dan Gambar 14.
Audio1
Audio2 y = -5E-05x4 + 0,0028x3 0,0474x2 + 0,5153x - 0,6776 R² = 0,9994
4,5 y = 3E-05x3 - 0,0012x2 + 0,2186x - 0,0597 R² = 0,9996
10 9
4 3,5
8 3
7
2,5
6
audio2
audio1
5
Poly. (audio1)
4
2
Poly. (audio2)
1,5
3 1
2
0,5
1 0
0 0
4
8 12 16 20 24 28 32 36 40 44
0
Gambar 13 Grafik Extracting Audio1
4
8
12
16
20
24
Gambar 14 Grafik Extracting Audio2
Berdasarkan grafik pada Gambar 13 dan Gambar 14 yaitu grafik proses extracting data dengan ukuran file yang berbeda, dapat dilihat bahwa waktu yang dibutuhkan untuk melakukan ekstraksi data lebih cepat dibandingkan waktu untuk melakukan embedding. Berbeda dengan proses embedding, pada proses extracting ukuran file audio lebih berpengaruh daripada file document. Semakin besar ukuran file audio yang digunakan dalam proses embedding, semakin lama waktu yang dibutuhkan untuk proses extracting. Oleh karena itu dapat disimpulkan bahwa ukuran file yang akan diekstraksi tidak mempengaruhi waktu proses embedding namun besar ukuran file audio sebagai media penampung mempengaruhi waktu proses extracting. Selain melakukan pengujian terhadap proses embedding dan extracting dari sistem yang dibangun, dilakukan juga pengujian terhadap perbedaan file audio sebelum dan sesudah dilakukan penyisipan pesan. Pengujian ini dilakukan untuk mengetahui apakah dokumen yang disisipkan sama dengan dokumen yang asli atau tidak. Proses pengujian dapat dilakukan melalui sistem yang dibangun dengan memilih button compare pada tampilan utama aplikasi seperti pada Gambar 15. 17
Gambar 15 Proses Compare File Audio
Gambar 15 merupakan proses compare file audio yang digunakan pada proses embedding dan extracting, dimana terlihat bahwa ukuran file audio sebelum dan sesudah dilakukan penyisipan pesan sama karena proses penyisipan dilakukan dengan cara mengganti bit sehingga tidak merubah ukuran file audio yang disisipkan pesan, sedangkan hasil pada MD5 checksum dari file audio sebelum dan sesudah penyisipan pesan berbeda. Perbandingan file audio sebelum dan sesudah disisipkan pesan dapat dilihat pada Tabel 4. Tabel 4 Hasil Compare File Audio
File Audio Audio 1 Audio 2
Ukuran File Sebelum Sesudah 10921178 10921178 byte byte 8798002 8798002 byte byte
MD5 Checksum Sebelum Sesudah b7b328287113c423 38126af2ee5b3b9d 7466162f2d3b851a c4d44339b119648f 7ab0b42ac9f2d3c81 9565f805ad79f282 f5b9809be11c80e 32bb782acdb1067e
Tabel 4 menunjukkan hasil perbandingan file audio 1 yang berukuran 10.666KB dan file audio 2 yang berukuran 8.592KB.
Gambar 15 Proses Compare File Audio DiffMaker
18
Gambar 15 merupakan proses compare file menggunakan aplikasi audio DiffMaker. Pada Gambar 15 dapat dilihat bahwa terdapat reference track yang diisi dengan file *.WAV asli dan compared track diisi dengan file audio yang telah disisipkan pesan atau stego file. Setelah itu pilih button extract kemudian akan muncul dua file audio dengan ukuran yang sama, yaitu file [email protected] dan file wav01x-wav01.wav.
Gambar 16 Visualisasi Waveform Audio DiffMaker
Gambar 16 merupakan visualisasi waveform audio pada dua file yang telah diekstrak dengan aplikasi DiffMaker. File bagian atas merupakan file [email protected] yang menunjukkan bahwa file wav01x.wav sebagai compared track terdapat di dalam file reference track yaitu wav01.wav, sehingga saat file tersebut dijalankan hasil dan kualitas suaranya sama seperti file asli. File wav01x-wav01.wav menunjukkan bahwa file wav01x.wav sebagai compared track tidak terdapat di dalam file reference track yaitu file wav01.wav karena stego file dikurangi dengan file asli, sehingga saat file tersebut dijalankan kualitas suara yang dihasilkan memiliki perbedaan di awal audio yaitu ketika audio dijalankan maka suara yang dihasilkan hanya terdengar pada awal audio, hal tersebut disebabkan karena penyisipan pesan pada audio terjadi pada bagian awal. Selain melakukan perbandingan pada file audio yang disisipkan pesan, perbandingan juga dilakukan terhadap file document yang disisipkan pada file audio. Proses perbandingan ini dapat dilakukan dengan cara yang sama seperti pada proses perbandingan file audio sebelumnya. Proses perbandingan tersebut dapat dilihat pada Gambar 17.
Gambar 17 Proses Compare File Document
19
Gambar 17 merupakan proses compare file document yang digunakan pada proses embedding dan extracting, dimana dari Gambar 17 dapat dilihat bahwa ukuran file document sebelum dan sesudah dilakukan penyisipan pesan sama karena file document hasil ekstraksi tidak mengalami penambahan bit dalam byte pesan. Hasil pada MD5 checksum dari file document sebelum dan sesudah penyisipan pesan juga tidak mengalami perubahan. Perbandingan file pesan sebelum dan sesudah disisipkan ke dalam file audio dapat dilihat pada Tabel 5. Tabel 5 Hasil Compare File Document
File Yang Ukuran File Disisipkan Sebelum Sesudah (.txt) Pesan 1
176 byte
176 byte
Pesan 2
1436 byte
1436 byte
MD5 Checksum Sebelum
Sesudah
dbb89c86abca13b1 dbb89c86abca13b1 162564b9a3f9db3b 162564b9a3f9db3b ec2797cbd8e0accfc ec2797cbd8e0accfc ae6a76fd7d2454f ae6a76fd7d2454f
Tabel 5 menunjukkan hasil perbandingan file Pesan 1 yang berukuran 1KB dan file Pesan 2 yang berukuran 2KB.
Gambar 18 Visualisasi Hasil Perbandingan Audio
Gambar 18 merupakan visualisasi waveform audio pada dua file *.WAV sebelum dan sesudah embedding. Bagian atas menunjukkan file *WAV sebelum disisipkan dan pada bagian bawah menunjukkan file *.WAV yang telah disisipkan pesan. Angka yang terdapat pada bagian atas merupakan durasi dari file audio. Gambar 18 secara visual tidak menunjukkan perbedaan secara signifikan antara file asli dan file yang telah disisipkan pesan, sehingga akan sulit dibedakan kualitas suara dari kedua file audio tersebut oleh sistem pendengaran manusia.
20
5.
Simpulan
Berdasarkan hasil penelitian dan pengujian yang telah dilakukan, maka dapat diambil kesimpulan sebagai berikut : (1) Sistem steganografi yang dibangun menggunakan metode Enhanced Audio Steganography, dapat melakukan penyisipan (embedding) dan pengambilan (extracting) pesan dengan format *.WAV; (2) Berdasarkan hasil pengujian integritas pesan, pesan sebelum disisipkan dan setelah disisipkan tidak mengalami perubahan; (3) Berdasarkan hasil pengujian visual terhadap file audio sebelum dan sesudah proses embedding, audio tidak mengalami perubahan signifikan secara visual; (4) Berdasarkan pengujian terhadap perbandingan waktu proses, perbedaan file audio mempengaruhi kecepatan proses, hal ini disebabkan tiap audio memiliki perbedaan ukuran file, perbedaan file ini yang mempengaruhi kecepatan proses penyisipan; (5) Berdasarkan pengujian terhadap kapasitas maksimal pesan yang dapat disisipkan dalam file audio, semakin besar ukuran file audio semakin besar byte yang tersedia. Saran pengembangan yang dapat diberikan untuk penelitian lebih lanjut adalah sebagai berikut : (1) Aplikasi dapat dikembangkan tidak hanya suara digital sebagai media penampung tetapi dapat juga berupa media teks, media citra, atau media video. (2) Aplikasi bisa dikembangkan untuk media penampung tidak hanya *.WAV saja tetapi dapat juga dalam bentuk format suara lain, misalnya format *.MIDI, *.MP3, *.WMA, *.ACC. (3) Serta dapat mengembangkan metode Enhanced Audio Steganography (EAS) dan algoritma Columnar Transposition dalam melakukan proses steganografi. 6.
Daftar pustaka
[1]
Sridevi, Damodaram, & Narasimham, 2009, Efficient Method of Audio Steganography by Modified LSB Algorithm and Strong Encryption Key with Enhanced Security, Hyderabad : Department of Computer Science and Engineering-JNTUH. Solsolay, Marthen, L., Pakereng, M. A. Ineke, 2012, Aplikasi Steganografi pada Citra Menggunakan Metode Least Significant Bit (LSB) Termodifikasi dan RC6, Skripsi, Salatiga : Universitas Kristen Satya Wacana. Loppies, Marsanthia, J., Pakereng, M. A. Ineke, Beeh, Yos R., 2012, Perancangan dan Implementasi Steganografi Menggunakan Metode Enhanced Audio Steganography (EAS), Jurnal, Salatiga : Universitas Kristen Satya Wacana. Munir, Rinaldi, 2006, Kriptografi Steganografi dan Watermarking, Bandung : Institut Teknologi Bandung. Gunawan, Ibnu & Gunardi, Kartika, 2005, Pembuatan Perangkat Lunak Wave Manipulator Untuk Memanipulasi File WAV, Surabaya : Universitas Kristen Petra Surabaya. Nugroho, Adi, 2005, Rational Rose Untuk Pemodelan Berorientasi Objek, Bandung : Informatika.
[2]
[3]
[4] [5]
[6]
21