Operasi di atas dilakukan secara berulang menggunakan rumus LFSR sehingga dihasilkan kunci alir dengan panjang bit sama dengan panjang bit array pada chunk data. 4 Penghitungan nilai kompleksitas linear Aliran kunci yang dihasilkan oleh LFSR selanjutnya dihitung nilai kompleksitas linearnya menggunakan algoritme BerlekampMassey. Perhitungan ini bermanfaat untuk menganalisis hasil enkripsi berdasarkan nilai kompleksitas linear tersebut. 5 Enkripsi Proses enkripsi dilakukan dengan menjalankan operasi XOR antara aliran bit chunk data suara yang akan dienkripsi dan aliran bit yang dihasilkan oleh generator LFSR. Misalnya aliran bit chunk data 1, 1, 0, 1, 1, ... dan aliran bit kunci LFSR 1, 0, 1, 0, 1, ... maka dengan menggunakan operasi XOR diperoleh aliran bit chunk data yang telah dienkripsi 0, 1, 1, 1, 0, ... . Aliran bit ini selanjutnya diubah kembali menjadi byte array. Langkah selanjutnya adalah menyatukan byte array chipertext data dengan chunk lain sesuai susunan chunk pada saat awal sebelum penyandian. Langkah terakhir adalah menuliskan kembali sekumpulan byte tersebut menjadi file wave dengan menggunakan namespace System.IO.File. WriteAllBytes. 6 Dekripsi bit data chipertext menggunakan kunci yang sama dengan enkripsi Proses dekripsi merupakan proses kebalikan dari proses enkripsi. Karena hasil operasi XOR dua kali menggunakan operand yang sama akan membalikkan sebuah nilai ke nilai semula, maka dekripsi dapat dilakukan dengan meng-XOR-kan bit array chunk data dengan aliran bit yang dihasilkan oleh generator LFSR. Hal yang perlu diperhatikan pada proses ini adalah aliran bit yang dihasilkan oleh generator LFSR harus sama dengan yang digunakan pada proses enkripsi. 7 Analisis hasil Hasil yang akan dianalisis pada penelitian ini adalah pengaruh enkripsi pada file suara dengan format file wave. Berdasarkan uraian di atas maka alur kerja sistem yang akan dibangun ditunjukkan oleh Gambar 4 berikut.
Gambar 4 Bagan alur sistem pada aplikasi enkripsi-dekripsi suara.
HASIL DAN PEMBAHASAN Antarmuka yang berhasil dibuat pada penelitian ini ditunjukkan oleh Gambar 5 berikut.
Gambar 5 Antarmuka aplikasi enkripsi dan dekripsi suara wave.
7
Pertama sistem akan meminta file suara yang akan disandikan. Setelah itu pengguna dapat melakukan penyandian dengan menekan tombol Start Encrypt. Sistem selanjutnya akan meminta pengguna untuk memberikan path penyimpanan file dan pengguna dapat melihat hasil enkripsinya pada path yang telah ditentukan sebelumnya tersebut. Hal yang sama juga berlaku untuk dekripsi suara. Analisis Pengaruh Enkripsi Terhadap File Suara
a Hasil enkripsi Penyandian terhadap file 1.wav, 2.wav, dan 3.wav akan menghasilkan perubahan suara dari suara asli. Kesimpulan ini diperoleh dari hasil survei yang dilakukan terhadap file hasil enkripsi pada 30 responden dengan rentang usia 14 sampai 28. Responden diminta untuk mendengarkan beberapa file suara dan mengisi lembar kuisioner yang dapat dilihat pada Lampiran 1. Hasil kuisioner tersebut disajikan pada Gambar 6 dan 7 berikut.
Gambar 6 Hasil survei mengenai perubahan suara pada hasil enkripsi.
Gambar 7 Hasil survei mengenai dihasilkannya noise pada hasil enkripsi. Dari hasil survei di atas tampak bahwa 100% responden menyatakan proses enkripsi akan mengubah suara asli dan perubahan utamanya adalah berupa timbulnya noise. Selain timbulnya noise, penyandian juga menimbulkan perubahan isi pesan, ada suara yang sudah tidak
dapat diidentifikasi lagi isi pesannya dan ada juga yang masih bisa. Gambar 8 berkut menyajikan hasil survei mengenai identifikasi isi pesan hasil enkripsi terhadap file 1.wav, 2.wav dan 3.wav menggunakan berbagai jenis polinomial.
8
Gambar 8 Hasil survei mengenai identifikasi isi pesan pada hasil enkripsi. Seluruh responden menyatakan bahwa suara hasil penyandian menggunakan polinomial 1 sampai 7, isi pesannya sudah tidak dapat diidentifikasi lagi. Isi pesan seperti ini merupakan hasil yang diharapkan dari proses penyandian. Hal ini sedikit berbeda dengan polinomial 8 sampai dengan 10. Responden memiliki pendapat yang berbeda-beda. Ada pesan yang masih dapat diidentifikasi dengan mudah sehingga memiliki persentase yang agak tinggi dan sebaliknya. Adapun contoh suara yang masih mudah diidentifikasi yaitu suara 1.wav yang disandikan menggunakan polinomial 10 dengan persentase responden sebanyak 100%. Adapun suara yang susah untuk diidentifikasi isi pesannya yaitu suara 2.wav yang disandikan dengan polinomial 8 dengan persentase responden sebanyak 27%, serta suara 3.wav yang disandikan dengan polinomial 8 dan polinomial 9 yang memiliki persentase responden sebanyak 33%. Nilai ini diperoleh karena secara umum hasil penyandian file 2.wav dan 3.wav lebih susah dimengerti isi pesannya dibanding dengan file 1.wav. Beberapa faktor yang mempengaruhi perbedaan tingkat kesukaran identifikasi isi pesan ini adalah jenis polinomial yang digunakan dan jenis suara yang disandikan. Pengaruh polinomial yang digunakan terhadap hasil penyandian akan dibahas secara lebih mendalam setelah pembahasan mengenai visualisasi gelombang suara. Faktor yang mempengaruhi jenis suara yang digunakan adalah lamanya jeda antar kata. Semakin lama jeda antar kata maka hasil penyandian akan semakin mudah untuk diidentifikasi isi pesannya dan begitu pula sebaliknya. Karena itu suara hasil enkripsi pada file 2.wav dan 3.wav lebih sulit untuk
dimengerti isi pesannya dibandingkan dengan 1.wav. Hal ini disebabkan karena durasi suara cukup singkat dengan jeda antar kata yang cukup cepat bahkan terkesan seperti tidak ada jeda menyebabkan isi pesannya menjadi tidak jelas ketika dicampur dengan noise hasil penyandian. Selain melalui pendengaran, hasil penyandian juga dapat diamati secara visual dengan melihat gelombang suara yang dipetakan menggunakan fungsi plot() pada MATLAB. Gambar lengkap seluruh hasil penyandian dapat dilihat pada Lampiran 2. Jika dikelompokkan maka secara umum terdapat dua jenis hasil penyandian. Jenis yang pertama yaitu gelombang suara rata pada posisi -1 dan 1 seperti tampak pada Gambar 9 berikut.
Gambar 9 Visualisasi suara hasil penyandian menggunakan polinomial 1, 2, 3, 5, 6, 7. Suara tersebut merupakan hasil penyandian menggunakan polinomial 1, 2, 3, 5, 6, dan 7. Jika visualisasi di atas dikaitkan dengan hasil audio maka akan dihasilkan suara noise murni yang tidak memiliki jeda, sehingga isi pesan suara asli tidak dapat diidentifikasi. Adapun jenis visualisasi gambar yang kedua yaitu visualisasi gambar yang tidak rata pada garis 1 dan -1. Salah satu contoh gambarnya
9
yaitu hasil penyandian menggunakan polinomial 4 pada file 1.wav seperti yang disajikan pada Gambar 10 berikut.
Gambar 10 Visualisasi hasil penyandian menggunakan polinomial 4 pada suara 1.wav. Polinomial lain yang menghasilkan visualisasi seperti gambar di atas adalah polinomial 8, 9 dan 10. Jika dikaitkan dengan hasil audio maka dari masing-masing polinomial akan diperoleh tingkat kejelasan suara yang berbeda-beda, ada noise yang masih terdengar isi pesannya dan ada juga noise yang isi pesannya sudah tidak dapat diidentifikasi namun memiliki jeda. Secara visual perbedaan ini dapat diamati dari bentuk gelombang suara yang sedikit berbeda antara satu dengan yang lainnya. Semakin rata sebuah gelombang pada garis tertentu maka noise yang dimiliki pun akan semakin banyak dan efeknya suara menjadi semakin tidak jelas. Selain itu semakin mirip bentuk gelombang suara hasil penyandian dengan gelombang suara asli maka suara akan semakin mudah diidentifikasi isi pesannya. Hal ini akan tampak sekali pada hasil penyandian menggunakan polinomial 10. Karena itu jika hasil visual dan hasil audio disatukan maka akan diperoleh hasil penyandian suara seperti disajikan pada Tabel 6 berikut. Tabel 6 Hasil penyandian suara menggunakan berbagai polinomial Polinomial
Polinomial
Hasil Penyandian
5
Suara gangguan (noise) murni yang tidak memiliki jeda suara
6
Suara gangguan (noise) murni yang tidak memiliki jeda suara
7
Suara gangguan (noise) murni yang tidak memiliki jeda suara
8
Suara gangguan (noise) yang memiliki jeda suara yang cukup jelas dengan isi pesan suara asli yang masih terdengar
9
Suara gangguan (noise) yang memiliki jeda suara yang cukup jelas dengan isi pesan suara asli yang masih terdengar
10
Suara gangguan (noise) yang memiliki jeda suara yang cukup jelas dengan isi pesan suara asli yang masih terdengar
Perbedaan hasil di atas terjadi karena jenis dan nilai kompleksitas masing-masing polinomial berbeda. Nilai kompleksitas tersebut dapat dihitung dengan menggunakan Algoritme Belekamp-Massay. Tabel 7 berikut ini menyajikan nilai kompleksitas dan jenis polinomial masing-masing polinomial. Tabel 7 Nilai kompleksitas linear berdasarkan nilai polinomial Polinomial
Nilai Kompleksitas Linear
Jenis Polinomial
1
31
Polinomial primitif dense dengan derajat 31 (tinggi)
2
31
Polinomial primitif sparse dengan derajat 31 (tinggi)
3
31
Polinomial primitif sparse dengan derajat 31 (tinggi)
Hasil Penyandian
1
Suara gangguan (noise) murni yang tidak memiliki jeda suara
2
Suara gangguan (noise) murni yang tidak memiliki jeda suara
3
Suara gangguan (noise) murni yang tidak memiliki jeda suara
4
30
Suara gangguan (noise) yang memiliki jeda suara yang cukup jelas
Polinomial non primitif dengan derajat 31 (tinggi)
5
15
Polinomial primitif dense
4
10
Polinomial
Nilai Kompleksitas Linear
Jenis Polinomial
dengan derajat 15 (sedang) 6
15
Polinomial primitif sparse dengan derajat 15 (sedang)
7
15
Polinomial primitif sparse dengan derajat 15 (sedang)
Dari uraian di atas dapat disimpulkan bahwa kualitas suara hasil penyandian akan dipengaruhi oleh jenis suara yang disandikan, jenis polinomial yang digunakan dan kompleksitas linear. Polinomial primitif dengan derajat tinggi akan menyebabkan nilai kompleksitasnya juga tinggi sehingga kunci acaknya akan memiliki periode yang cukup besar. Hasil penyandian yang diperoleh dari polinomial jenis ini adalah noise murni tanpa jeda yang merupakan hasil terbaik dari proses penyandian.
Polinomial 1, 2, 3, 5, 6, dan 7 semuanya menghasilkan suara gangguan (noise) murni yang tidak memiliki jeda suara. Hasil ini diperoleh karena semua polinomialnya termasuk ke dalam polinomial primitif. Sebenarnya jenis polinomial primitif saja tidak cukup untuk menghasilkan suara seperti tersebut di atas, faktor lain yang mempengaruhi adalah derajat polinomial yang akan mempengaruhi nilai kompleksitas. Polinomial 9 adalah contohnya. Walaupun termasuk polinomial primitif, suara hasil enkripsinya tidak murni noise tetapi noise yang masih terdengar isi pesannya.
Jika dilihat dari sisi keamanan hasil penyandian dikatakan aman apabila waktu yang diperlukan untuk memecahkan chiperteks melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya. Oleh karena itu semakin penting pesan rahasia yang dikandung oleh sebuah file maka semakin lama pula kemungkinan pihak yang tidak berwenang dapat mengetahui isinya. Hal ini dapat dilakukan dengan memperkecil kemungkinan pihak musuh mengetahui kunci dengan memperbesar kombinasi kunci yang mungkin untuk digunakan. Kombinasi kunci yang besar ini akan mempersulit pencarian kunci yang tepat apabila teknik serangan yang digunakan adalah teknik brute force attack atau exhaustive attack. Teknik ini dikerjakan dengan cara mencoba semua kemungkinan kunci untuk mencari kunci yang tepat. Kombinasi kunci yang mungkin adalah 2n di mana n adalah panjang aliran kunci yang digunakan. Jika teknik ini digunakan untuk mendekripsikan hasil penyandian 1.wav, 2.wav dan 3.wav maka pihak musuh akan memiliki peluang yang kecil untuk memperoleh hasilnya karena kombinasi pasangan kuncinya sangat besar. Kombinasi pasangan kunci yang besar ini diperoleh dari besarnya kombinasi polinomial yang mungkin ditambah kombinasi status inisial yang digunakan untuk pembentukan kunci.
Hasil yang lebih buruk juga terdapat pada polinomial 8 dan 10. Penyandian suara menggunakan kedua polinomial tersebut tidak berhasil menyembunyikan isi pesan. Pendengar dapat mengetahui isi pesan yang terdapat pada file walaupun sudah terdapat banyak noise. Hasil ini diperoleh karena polinomial tersebut termasuk ke dalam polinomial non primitif. Tetapi polinomial non primitif pun tidak selamanya buruk jika derajat polinomial atau kompleksitas linearnya tinggi misalnya pada polinomial 4. Walaupun polinomial ini berjenis non primitif, hasil penyandian suaranya masih dapat menyembunyikan isi pesan karena derajat polinomial dan kompleksitas linearnya tinggi.
Jika penebakan kunci sulit dilakukan karena peluang yang sangat kecil, maka tidak menutup kemungkinan musuh akan mematahkan sandi LFSR pada file suara dengan tanpa harus mengetahui kuncinya seperti tesis yang pernah ditulis oleh Pramanik (2002). Dalam tesis tersebut diungkapkan bahwa jika kompleksitas linear dari sebuah LFSR tidak terlalu besar maka cipher speech akan mudah dipatahkan dengan cara mengamati pengulangan data speech dan tidak perlu mengetahui LFSR yang digunakan. Dalam tesis tersebut juga disebutkan bahwa jika posisi jeda diam dan posisi suara sudah diketahui maka proses penebakan suara asli lebih mudah untuk dilakukan.
8
14
Polinomial non primitif dengan derajat 15 (sedang)
9
2
Polinomial primitif dengan derajat 2 ( rendah)
10
2
Polinomial non primitif dengan derajat 2 (rendah)
11
Jika diamati hasil pembahasan sebelumnya mengenai visualisasi hasil enkripsi dan mengaitkan dengan tesis yang ditulis oleh Parmanik (2002), akan tampak bahwa polinomial 4, 8, 9 dan 10 termasuk polinomial yang tidak aman untuk mengenkripsi data. Visualisasi hasil enkripsi dengan polinomial ini dengan jelas menunjukkan posisi jeda diam dan posisi suara. Oleh karena itu, untuk meningkatkan keamanan penyandaian pesan suara maka jenis polinomial yang digunakan harus primitif dan
memiliki derajat yang besar sehingga nilai kompleksitas linearnya juga besar. b Hasil dekripsi Hasil dekripsi pun dapat diamati secara audio maupun visual. Secara audio hasil dekripsi dapat dinilai dari hasil survei seperti yang telah dilakukan di awal. Adapun hasil servei tersebut disajikan dalam Gambar 11 dan 12 berikut.
Gambar 11 Hasil survei mengenai kesamaan suara asli dan hasil dekripsi menggunakan kunci yang benar.
Gambar 12 Hasil survei mengenai perbedaan suara asli dan hasil dekripsi menggunakan kunci yang salah. Dari hasil survei di atas akan tampak bahwa dekripsi menggunakan kunci yang benar akan mengembalikan suara hasil penyandian ke suara asli jika tidak maka suara akan berbeda dengan suara asli. Hasil ini juga dapat dibuktikan dari visualisasi hasil dekripsi. Dari gambar akan tampak bahwa seluruh visualisasi hasil dekripsi sama dengan visualisasi suara asli seperti tampak pada Lampiran 2.
KESIMPULAN DAN SARAN Kesimpulan Beberapa kesimpulan yang berhasil didapatkan pada penelitian ini adalah : 1 Enkripsi suara wave menggunakan sandi alir kunci simetrik LFSR akan mengubah suara asli menjadi suara noise dengan tingkat kejelasan suara asli yang berbeda-beda
12