1
ANALISIS HASIL ENKRIPSI FILE WAVE MENGGUNAKAN
SANDI ALIR LFSR DENGAN MEMANFAATKAN
ALGORITME BERLEKAMP-MASSEY
ANNA HANIFAH
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2009
2
ANALISIS HASIL ENKRIPSI FILE WAVE MENGGUNAKAN
SANDI ALIR LFSR DENGAN MEMANFAATKAN
ALGORITME BERLEKAMP-MASSEY
ANNA HANIFAH
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2009
3
ABSTRACT
ANNA HANIFAH. The Analysis of Encryption Result of Wave File Using LFSR Key Stream Cipher with Berlekamp-Massey Algorithm. Under direction of SHELVIE NIDYA NEYMAN and AGUS BUONO
Secured voice data transfer is an important thing to be noticed, especially when dealing with confidential data. A technique used in assuring the transfer is encrypting the data. This technique applied symmetric key stream cipher Left Feedback Shift Register (LFSR) generator. The key developed by LFSR generator also contains high level of safety because it has semi-random byte stream key with large period. However, the influence of voice encryption using LFSR symmetric key to the wave format files is not widely known. Besides, this technique's safety level must be examined further as a consideration for larger use. This research tends to test the impact of encryption using LFSR symmetric key stream cipher on voice recorded as wave file format, and its safety level. Wave files employed on this research recorded using Sound Recorder application on Windows Operation System. These files have various fast and slow rythm. The result of this research was the change on the voice after being encrypted, with different intensity of noise, that will affect the clarity of voice's message contents. Some voices have message that could be identified well, and others couldnn't be identified at all. The result of the analysis showed that the factors influence the encryption were the rythm of the voice, and the type of polynomial applied (primitive / non primitive; polynomial degree, and linear complexity measured by Berlekamp-Massey Algorithm). Furthermore, the encrypted voices could be recovered to their genuine source while the key to decrypt is similar with the encryption key.
Keyword : encryption, decryption, LFSR, stream cipher, symmetric key, Berlekamp-Massey
1 Judul Skripsi Nama NIM : : :
Analisis Hasil Enkripsi File Wave Menggunakan Sandi Alir LFSR dengan Memanfaatkan Algoritme Berlekamp-Massey
Anna Hanifah G64104086
Menyetujui
Pembimbing I, Pembimbing II,
Shelvie Nidya Neyman, S.Kom, M.Si Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19770206 200501 2 002 NIP. 19660702 199302 1 001
Mengetahui Ketua Departemen,
Dr. Ir. Sri Nurdiati, M.Sc NIP. 19601126 198601 2 001
2
RIWAYAT HIDUP
Penulis dilahirkan pada tanggal 3 September 1985 di Lampung Selatan. Penulis merupakan anak pertama dari dua bersaudara pasangan Sujadi dan Tugiyem.
Pada tahun 2004 penulis lulus dari SMA Negeri 2 Bandar Lampung dan baru setahun kemudian penulis diterima di Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor melalui jalur Seleksi Penerimaan Mahasiswa Baru (SPMB).
Selama mengikuti perkuliahan, penulis pernah menjadi pengurus Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) tahun kepengurusan 2005/2006 dan 2006/2007. Pada tahun 2007, penulis pernah melakukan kegiatan praktik lapang selama dua bulan di Balai Besar Penelitian dan Pengembangan Bioteknologi dan Sumberdaya Genetik Pertanian (BB-BIOGEN).
3
PRAKATA
Puji syukur penulis panjatkan kepada Allah atas segala rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir dengan judul Analisis Hasil Enkripsi File Wave Menggunakan Sandi Alir LFSR dengan Memanfaatkan Algoritme Berlekamp-Massey. Tugas akhir ini merupakan salah satu syarat untuk memperoleh gelar Sarjana Komputer di FMIPA IPB.
Penghargaan serta rasa terima kasih penulis sampaikan kepada Ibu Shelvie Nidya Neyman, S. Kom, M.Si dan Bapak Dr. Ir. Agus Buono. M.Si, M.Kom selaku pembimbing yang telah bersedia meluangkan waktu serta memberikan saran dan bimbingannya selama penelitian dan penulisan tugas akhir ini. Penghargaan dan rasa terima kasih juga penulis sampaikan kepada Bapak Hendra Rahmawan, S. Kom, M.T. yang telah berkenan menjadi moderator dan penguji dalam pelaksanaan seminar dan sidang.
Penulis menyampaikan terima kasih dan penghargaan yang mendalam kepada Bapak, Ibu, Adik, dan Suami tercinta yang senantiasa memberikan dukungan moral, doa, kasih sayang, dan perhatian. Penulis menyampaikan terima kasih kepada teman-teman satu bimbingan (Hani dan Indri), Kak Vera, Kak Vivi, Kak Ibad, Kak Uci, Kak Ela, Ustadzah Latifah, Ibu Sri Nurhidayah, Bapak Zainal, Ibu Eka, Siswa SMART Ekselensia Indonesia atas dukungan, motivasi dan masukan yang telah diberikan. Terima kasih kepada teman-teman yang telah membantu selama penulisan tugas akhir dan memberi dukungan ketika seminar dan sidang. Semua teman-teman Ilkom 41 lainnya, terima kasih untuk canda tawa, persahabatan, dan kebersamaan selama kuliah di Ilkom IPB.
Penulis mengucapkan terima kasih kepada seluruh staf pengajar yang telah memberikan wawasan serta ilmu yang berharga selama penulis menuntut ilmu di Departemen Ilmu Komputer. Seluruh staf administrasi dan perpustakaan Departemen Ilmu Komputer FMIPA IPB yang selalu memberi kemudahan dalam mengurus segala macam hal berkaitan dengan perkuliahan, serta pihak-pihak lain yang tidak dapat disebutkan satu-persatu.
Penulis menyadari bahwa karya ilmiah ini masih jauh dari sempurna. Namun penulis berharap semoga karya ilmiah ini dapat memberikan manfaat bagi pembacanya.
Bogor, Januari 2010
4
DAFTAR ISI
Halaman DAFTAR TABEL ... vi DAFTAR GAMBAR ... vi DAFTAR LAMPIRAN ... vi PENDAHULUAN Latar Belakang ... 1 Tujuan .. ... 1 Ruang Lingkup ... 1 Manfaat Penelitian ... ..2 TINJAUAN PUSTAKA Enkripsi ... 3Sandi Alir Kunci Simetrik ... 3
LFSR (Line Feedback Shift Register) ... 3
Kompleksitas Linear ... 4
Algoritme Berlekamp-Massey ... 4
Digitasi Suara ... 5
Wave ... 5
METODE PENELITIAN ... 6
HASIL DAN PEMBAHASAN Analisis Pengaruh Enkripsi Terhadap File Suara ... 8
Hasil enkripsi ... 8
Hasil dekripsi ... 12
KESIMPULAN DAN SARAN Kesimpulan ... 12 Saran ... 13 DAFTAR PUSTAKA ... 13 LAMPIRAN ... 14 v
5
DAFTAR TABEL
Halaman
1 Daftar file suara hasil perekeman ... 1
2 Berbagai tipe chunk di dalam file wave ... 5
3 Struktur byte header dan data pada chunk ”fmt” ... 6
4 Struktur byte header dan data pada chunk ”fact” ... 6
5 Struktur byte header dan data pada chunk ”data” ... 6
6 Hasil penyandian suara menggunakan berbagai polinomial ... 10
7 Nilai kompleksitas linear berdasarkan nilai polinomial ... 10
DAFTAR GAMBAR
Halaman 1 Alur enkripsi dan dekripsi (Schnier 1996a ... 32 Alur enkripsi dan dekripsi kunci simetrik ... 3
3 Skema LFSR dengan panjang L (Menezes et al. 1996) ... 4
4 Bagan alur sistem pada aplikasi enkripsi-dekripsi suara ... 7
5 Antarmuka aplikasi enkripsi dan dekripsi suara wave ... 7
6 Hasil survei mengenai perubahan suara pada hasil enkripsi ... 8
7 Hasil survei mengenai dihasilkannya noise pada hasil enkripsi ... 8
8 Hasil survei mengenai identifikasi isi pesan pada hasil enkripsi ... 9
9 Visualisasi suara hasil penyandian menggunakan polinomial 1, 2, 3, 5, 6, 7 ... 9
10 Visualisasi hasil penyandian menggunakan polinomial 4 pada suara 1.wav ... 10
11 Hasil survei mengenai kesamaan suara asli dan hasil dekripsi menggunakan kunci yang benar 12 12 Hasil survei mengenai perbedaan suara asli dan hasil dekripsi menggunakan kunci yang salah 12
DAFTAR LAMPIRAN
Halaman 1 Lembar kuisioner ... 152 Perbandingan gambar gelombang digital suara asli, hasil enkripsi dan hasil dekripsi. ... 20
1
PENDAHULUAN
Latar Belakang
Di era globalisasi dan komputerisasi saat ini proses komunikasi dapat dilakukan kapan saja dan di mana saja. Kecanggihan teknologi telah menghilangkan sekat geografis bagi umat manusia untuk melakukan komunikasi, baik dalam bentuk visual, audio, ataupun audiovisual. Salah satu bentuk komunikasi ini dilakukan dalam bentuk pengiriman data, yang banyak digunakan mulai dari keperluan pendidikan dan ilmu pengetahuan, jaringan usaha/bisnis, sampai pada sistem pertahanan negara. Dalam proses ini, keamanan pengiriman data dari kemung-kinan penyadapan atau adanya pihak yang tidak bertanggung jawab merupakan salah satu hal yang perlu diperhatikan.
Keamanan pengiriman data merupakan hal penting yang perlu diperhatikan, terutama apabila data yang dikirimkan bersifat rahasia. Namun jalur telekomunikasi yang ada saat ini bukanlah jalur yang aman dalam menyalurkan informasi. Berbagai pihak dengan segala cara dapat menyadap informasi tersebut sewaktu dikirimkan. Karena pengamanan terhadap jalur telekomunikasi yang ada sulit dilakukan, maka diperlukan suatu proses yang membuat data yang dikirim hanya dapat dibaca oleh pihak yang berkepentingan. Salah satu caranya adalah dengan cara melakukan enkripsi (penyandian) data yang akan dikirimkan melalui jalur telekomunikasi.
Salah satu jenis data yang sering dikirimkan melalui jalur telekomunikasi adalah suara, baik melalui telefon maupun jaringan internet. Untuk menghindari bocornya rahasia pesan suara yang akan dikirim, maka pesan tersebut harus disandikan terlebih dahulu. Dengan demikian bila ada pihak yang ingin menyadap pesan suara tersebut maka yang ia dapatkan bukanlah pesan suara asli melainkan bentuk sandinya. Penyandian pesan suara ini awalnya banyak dimanfaatkan oleh pihak militer dan badan intelijen, namun saat ini pemanfaatannya sudah meluas.
Teknik yang sering digunakan untuk menyandikan pesan suara adalah sandi alir yang dibangkitkan oleh generator Left Feedback Shift
Register (LFSR). Teknik ini banyak digunakan
karena secara umum penggunaan sandi alir akan bekerja lebih cepat sehingga cocok digunakan untuk data streaming. Selain itu kunci yang dibangkitkan oleh generator LFSR juga memiliki tingkat keamanan yang cukup tinggi karena aliran bit kuncinya semi acak dengan
periode yang cukup besar. Oleh karena itu jika ada seorang kriptoanalis (pihak penyerang data) menebak aliran bit kuncinya, maka ia hanya akan memiliki kemungkinan yang sangat kecil.
Tetapi pengaruh penyandian suara dengan menggunakan sandi alir kunci simetrik yang dibangkitkan dengan LFSR terhadap file dengan format wave (format yang biasanya digunakan untuk menyimpan file suara) belum banyak diketahui. Selain itu tingkat keamanan teknik ini juga perlu diteliti lebih lanjut sebagai bahan pertimbangan untuk penggunaan yang lebih luas. Karena itu perlu dilakukan penelitian untuk menguji implementasi sandi alir yang dibangkitkan oleh generator LFSR pada data suara dengan format file wave dan pengaruhnya terhadap enkripsi suara serta tingkat keamanan-nya.
Tujuan Penelitian
Tujuan dari penelitian ini adalah meng-analisis kualitas dan keamanan hasil enkripsi file wave menggunakan sandi alir LFSR dengan memanfaatkan Algoritme Berlekamp-Massey . Ruang Lingkup Penelitian
Ruang lingkup penelitian ini adalah:
1 Suara yang digunakan pada penelitian ini diperoleh dari proses perekaman menggunakan program Sound Recorder pada Sistem Operasi Windows, sehingga diperoleh data suara yang memiliki format file wave. Perekaman ini dilakukan karena
chunk (bagian) hasil perekaman lebih
sederhana, yaitu hanya terdiri dari tiga chunk yaitu fmt, fact dan data. Selain itu karena format file wave termasuk dalam format file yang tidak terkompresi, maka agar file yang akan diteliti tidak berukuran terlalu besar maka rekaman suara yang akan diteliti durasinya dibuat sesingkat mungkin. Hal ini berbeda jika kita menggunakan file wave yang merupakan hasil konversi dari format file lain. Selain ukuran file-nya terlalu besar, jenis chunk-nya juga sangat bervariasi. File yang digunakan dalam penelitian ini adalah 3 buah file dengan ukuran dan durasi berbeda, sebagaimana ditunjukkan oleh Tabel 1 berikut.
Tabel 1 Daftar file suara hasil perekeman Nama
File Ukuran File dan Durasi Rekam
2 Nama
File Ukuran File dan Durasi Rekam
Keterangan
1.wav 1.293 KB
/ 7 detik Suara dengan tempo suara lambat 2.wav 368 KB /
2 detik Suara dengan isi pesan sama dengan suara 1.wav tetapi tempo suaranya lebih cepat
3.wav 278 KB /
1 detik Suara dengan isi pesan berbeda dengan suara 1.wav dan 2.wav serta memiliki tempo yang cepat
2 Polinomial primitif yang digunakan untuk membangkitkan bilangan bit semi acak LFSR diambil dari situs http://www.-theory.cs.uvic.ca/ ~cos/gen/poly.html. Pada situs tersebut terdapat aplikasi yang akan membangkitkan polinomial primitif dengan derajat paling tinggi 31. Hal ini dilakukan karena secara umum pembangkitan polinomial primitif cukup sulit untuk dilakukan (Schnier, 1996). Polinomial yang digunakan adalah polinomial dengan derajat 31 (derajat tinggi), 15 (derajat sedang) dan 2 (derajat rendah). Adapun polinomial dan status inisial yang akan dikenakan operasi LFSR adalah sebagai berikut:
• x31 + x30 + x29 + x28 + x27 + x26 + x25 + x24 + x23 + x22 + x21 + x20 + x19 + x18 + x17 + x16 + x15 + x14 + x13 + x12 + x11 + x10 + x9 + x8 + x7 + x6 + x5 + x4 + x2 + x1 + 1 dengan status inisial (1010101010101010101010101010101) untuk mewakili polinomial primitif
dense berderajat tinggi. Untuk
selanjutnya polinomial ini disebut dengan polinomial 1 • x31 + x23 + x22 + x15 + x14 + x7 + x4 + x3 + 1 dengan status inisial (1010101010101010101010101010101) untuk mewakili polinomial primitif dengan jumlah koefisien tidak nol dalam jumlah sedang berderajat tinggi. Untuk selanjutnya polinomial ini disebut dengan polinomial 2
• x31 + x3 + 1 dengan status inisial (1010101010101010101010101010101) untuk mewakili polinomial primitif
sparse berderajat tinggi. Untuk
selanjut-nya polinomial ini disebut dengan polinomial 3
• x31 + 1 dengan status inisial (1010101010101010101010101010101) untuk mewakili polinomial non primitif berderajat tinggi. Untuk selanjutnya poli-nomial ini disebut dengan polipoli-nomial 4 • X15
+ x14 + x13 + x12 + x11 + x10 + x9 + x8 + x7 + x6 + x5 + x4 + x3 + x2 + 1 dengan status inisial (101010101010101) untuk mewakili polinomial primitif dense berderajat sedang. Untuk selanjutnya po-linomial ini disebut dengan popo-linomial 5 • X15
+ x12 + x11 + x8 + x7 + x6 + x4 + x2 + 1 dengan status inisial (101010101010101) untuk mewakili polinomial primitif dengan jumlah koefisien tidak nol dalam jumlah sedang berderajat sedang. Untuk selanjutnya po-linomial ini disebut dengan popo-linomial 6 • X15
+ x1 + 1 dengan status inisial (101010101010101) untuk mewakili polinomial primitif sparse berderajat sedang. Untuk selanjutnya polinomial ini disebut dengan polinomial 7
• X15 + 1 dengan status inisial (101010101010101) untuk mewakili polinomial non primitif berderajat sedang. Untuk selanjutnya polinomial ini disebut dengan polinomial 8
• x2 + x1 + 1 dengan status inisial (01) untuk mewakili polonomial primitif dengan derajat polinomial kecil. Untuk selanjutnya polinomial ini disebut dengan polinomial 9
• x2 + 1 dengan status inisial (01) untuk mewakili polinomial non primitif dengan derajat polinomial kecil. Untuk selanjutnya polinomial ini disebut dengan polinomial 10
3 Analisis tingkat keamanan pada penelitian ini dilakukan secara kualitatif
Manfaat Penelitian
Penelitian ini diharapkan bermanfaat untuk melakukan proses penyembunyian data dengan format file wave, sehingga isi dari dokumen suara tersebut tidak dapat diketahui oleh penyadap ataupun pihak lain yang tidak bertanggung jawab pada saat dokumen tersebut akan dikirimkan melalui saluran komunikasi.
3
TINJAUAN PUSTAKA
Enkripsi
Menurut Schnier (1996) enkripsi merupakan proses penyembunyian sebuah pesan asli (plaintext) menjadi pesan yang sudah disandikan (chipertext) dengan cara tertentu guna menyembunyikan atau merahasiakan isinya. Proses untuk mengembalikan chipertext kembali ke plaintext disebut dengan istilah dekripsi. Skema yang menunjukkan semua proses enkripsi dan dekripsi pesan di atas ditunjukkan oleh Gambar 1.
Gambar 1 Alur enkripsi dan dekripsi (Schnier 1996).
Proses enkripsi dan dekripsi dapat dilakukan dengan menggunakan berbagai metode salah satunya menggunakan kunci. Terdapat dua model algoritme enkripsi yang menggunakan kunci yaitu kunci asimetrik dan simetrik. Enkripsi kunci asimetrik (biasa disebut enkripsi kunci publik) dibuat sedemikian rupa sehingga kunci yang dipakai untuk enkripsi berbeda dengan kunci yang dipakai untuk dekripsi. Enkripsi kunci publik disebut demikian karena kunci untuk enkripsi boleh disebarluaskan kepada umum sedangkan kunci untuk mendekripsi hanya disimpan oleh orang yang bersangkutan.
Enkripsi kunci simetrik yang biasanya disebut enkripsi konvensional adalah enkripsi yang menggunakan kunci yang sama untuk enkripsi maupun dekripsi, dari Gambar 2 terlihat bahwa untuk mengenkripsi maupun mendekripsi pesan hanya menggunakan satu buah kunci (K) saja.
Gambar 2 Alur enkripsi dan dekripsi kunci simetrik.
Enkripsi kunci simetrik dibagi ke dalam dua kelompok yaitu sandi alir dan sandi blok. Sandi Alir Kunci Simetrik
Menurut Menezes et al. (1996) sandi alir kunci simetrik merupakan bagian yang cukup penting dalam algoritme enkripsi. Teknik ini akan menyandikan satu buah karakter atau satu buah bit plaintext dalam satu waktu. Hal ini berbeda dengan sandi blok yang menyandikan sekelompok karakter atau bit dalam satu waktu.
Misalnya diberikan m1, m2, m3, ... sebagai bit plaintext dan e1, e2, e3, ... K sebagai aliran bit kunci, maka penyandian menggunakan sandi alir kunci simetrik akan menghasilkan aliran bit
chipertext c1, c2, c3, ... dengan melakukan
operasi ci = mi ei. Karena proses penyandian ini menggunakan kunci simetrik maka untuk mendapatkan plaintext kembali maka
operasinya tinggal dibalikkan menjadi mi = ci ei. Oleh karena itu untuk mendapatkan plaintext yang sama dengan sebelumnya maka aliran bit kunci yang digunakan pada proses enkripsi harus sama dengan aliran bit kunci yang digunakan pada proses dekripsi.
LFSR (Line Feedback Shift Register)
Menezes et al. (1996) menyatakan bahwa
Line Feedback Shift Register (LFSR)
meru-pakan generator aliran kunci untuk mem-bangkitkan aliran kunci. LFSR dengan panjang L terdiri dari L tahap yang diberi nomor 0, 1, 2, 3, ... , L-1. Masing-masing tahap menyimpan satu bit yang diperoleh dari hasil masukan satu bit tahap sebelumnya, dan selanjutnya akan memberikan satu bit sebelum diganti miliknya ke tahap berikutnya; dan menggunakan kendali jam sebagai pengatur pergerakan data. Selama satu satuan waktu LFSR akan melakukan operasi berikut:
1 Isi dari tahap 0 adalah keluaran yang akan digunakan untuk membentuk rangkaian bit kunci
2 Isi pada tahap i akan dipindahkan ke tahap i-1 untuk setiap i,
3 Isi dari tahap L – 1 adalah bit umpan balik Sj yang diperoleh dari hasil penambahan isi tahap sebelumnya (0, 1, 2, ... , L - 1) dan hasilnya dimod 2
Gambar 3 berikut menggambarkan skema LFSR yang memiliki panjang L.
Plaintext Chipertext Plaintext Enkripsi Dekripsi Plaintext Chipertext Plaintext Enkripsi Dekripsi Kunci K Kunci K
4 Gambar 3 Skema LFSR dengan panjang L
(Menezes et al. 1996).
LFSR di atas dapat dilambangkan dengan (L,C(D)), dengan C(D) = 1 + c1D + c2D2 + ... + cLDL Z2[D] adalah polinomial penghubung. LFSR dikatakan non-singular jika derajat C(D) adalah L (dengan cL = 1). Jika isi inisial pada tahap i adalah si {0,1} untuk masing-masing i, 0 i L – 1, maka [sL-1, ... , s1, s0] disebut dengan status inisial LFSR. Untuk setiap aliran output LFSR (L,C(D)) dikatakan periodik jika dan hanya jika polinomial penghubung C(D) memiliki derajat L (Menezes et al. 1996).
Jika status inisial LFSR pada Gambar 3 di atas adalah [sL-1, ... , s1, s0], maka aliran keluaran s = s0, s1, s2, ... ditentukan oleh rumus : sj = (c1 sj-1 + c2 sj-2+ ... + cL sj-L) mod 2 for j ≥ L.
LFSR banyak digunakan oleh pembangkit aliran kunci pada berbagai literatur karena beberapa alasan berikut.
1 LFSR baik digunakan pada implementasi perangkat keras
2 LFSR dapat membangkitkan aliran yang memiliki periode besar
3 LFSR memiliki properti statistik yang baik 4 Struktur LFSR dapat dianalisis
mengguna-kan teknik aljabar
Aliran bit yang dihasilkan pada pada LFSR tidak sepenuhnya acak sehingga sering dikatakan sebagai aliran bit semi acak. Aliran bit semi acak ini akan berulang pada periode tertentu. Oleh karena itu bit acak yang digunakan sebaiknya memiliki periode yang cukup besar sehingga kriptoanalis akan mengalami kesulitan dalam menemukan pola aliran bit semi acak tersebut.
Jika C(D) merupakan polinomial primitif, maka untuk masing-masing 2L – 1 non nol status inisial sebuah non singular LFSR (L,C(D)) akan menghasilkan aliran output dengan periode maksimum yang mungkin
sebesar 2L – 1 (Menezes et al. 1996). Polinomial primitif merupakan polinomial berderajat n yang tidak dapat direduksi.
Ada dua jenis polinomial primitif, yaitu
sparse dan dense. Polinomial primitif disebut sparse jika hanya memiliki sedikit koefisien
tidak nol, sedangkan polinomial primitif disebut
dense jika memiliki banyak koefisien tidak nol.
Untuk aplikasi kriptografi, sebaiknya digunakan polinomial primitif yang bersifat dense (Schnier 1996).
Kompleksitas Linear
Kompleksitas linear dari aliran bit tidak terhingga s, dilambangkan L(s), didefinisikan sebagai berikut:
i Jika s adalah aliran nol s =0,0,0, ..., maka L(S) = 0;
ii Jika tidak ada LFSR yang membangkitkan s, maka L(s) = ;
iii Selainnya, L(s) adalah panjang LFSR terpendek yang akan membangkitkan s. Jika polinomial C(D) Z2[D] adalah tidak dapat direduksi oleh Z2 dan memiliki derajat L, maka untuk masing-masing 2L – 1 non nol status inisial dari non-singular LFSR (L, C(D)) akan menghasilkan aliran output dengan kompleksitas linear L (Menezes et al. 1996).
Kompleksitas linear yang digunakan pada proses enkripsi dan dekripsi sebaiknya memiliki kompleksitas linear yang tinggi. Hal ini disebabkan karena, walaupun kompleksitas linear yang tinggi tidak selalu identik dengan generator yang aman, tetapi kompleksitas linear yang rendah identik dengan generator yang tidak aman (Schnier 1996).
Algoritme Berlekamp-Massey
Menezes et al. (1996) menyebutkan bahwa Algoritme Berlekamp-Massey merupakan algoritme yang digunakan untuk menghitung nilai kompleksittas linear sebuah LFSR. Algoritme ini memiliki inputan berupa aliran bit yang dihasilkan oleh generator LFSR dan output berupa nilai kompleksitas linear. Adapun algoritme Berlekamp-Massey adalah sebagai berikut: Input : sn = s0, s1, s2, ... , sn-1 dengan panjang n Output : L(sn), 0 L(sn) n a Inisiasi : C(D) 1, L 0, m -1, B(D) 1, N 0 b Selama (N < n) lakukan: i Hitung nilai d. D (sN + ) mod 2
5 ii Jika d=1 maka : T(D) C(D), C(D) C(D)+B(D)*DN-m. Jika L N/2 maka L N+1-L, m N, B(D) T(D) c Output L Digitasi Suara
Sebelum melakukan enkripsi atau dekripsi atas suara, maka langkah pertama yang harus dilakukan terhadap suara tersebut adalah digitasi. Menurut Pramanik (2002) digitasi suara atau pengkodean pada dasarnya adalah proses pengubahan sinyal analog dalam bentuk suara ke dalam bentuk sinyal digital dengan cara yang efisien.
WAVE
Format wave merupakan salah satu bentuk dari file format RIFF, yaitu format yang digunakan untuk menyimpan data multimedia dalam bentuk digital. File RIFF selalu diawali dengan header yang terdiri atas tiga bagian, masing-masing memiliki ukuran 4 byte . Ketiga bagian tersebut adalah id file (RIFF), ukuran file, dan tipe RIFF (WAVE).
Selain header file, di dalam RIFF juga terdapat bagian-bagian yang disebut dengan
chunk. Masing-masing chunk terdiri atas
delapan byte header diikuti oleh data dari
chunk tersebut. Header dari tiap chunk terdiri
atas dua bagian yaitu id (contohnya fmt, data, fact, dan lain-lain) dan ukuran data chunk.
Kade (2002) menyebutkan bahwa tidak ada standar jumlah dan jenis chunk yang digunakan untuk file wave. Struktur chunk yang digunakan tergantung kebutuhan masing-masing pengguna. Sebagai hasilnya, ada banyak tipe chunk dengan fungsionalitas yang ganda.
Berbagai id chunk yang terdapat pada file wave memiliki fungsi seperti disajikan dalam Tabel 2 berikut.
Tabel 2 Berbagai tipe chunk di dalam file wave Id
Chunk
Fungsi Chunk
fmt Chunk fmt mengandung informasi
tentang bagaimana data wave harus disimpan dan diputar kembali termasuk tipe kompresi yang digunakan, jumlah channel, sample
rate, jumlah bit per sample, dan
atribut lain.
data Chunk data mengandung sample data
digital audio.
Id
Chunk
Fungsi Chunk
fact Chunk fact meyimpan informasi kode
kompresi yang dikandung oleh isi file wave.
wavl Chunk wavl digunakan untuk
menen-tukan pilihan chunk slnt dan data slnt Chunk slnt digunakan untuk
menen-tukan segment diam pada beberapa durasi sample.
cue Chunk cue digunakan untuk
menen-tukan satu atau lebih sample offset yang sering digunakan untuk menendai bagian audio yang bermanfaat baik.
plst Chunk plst digunakan untuk
menan-dai urutan diputar dari seri titik cue.
list Chunk list digunakan untuk
men-definisikan label text dan nama yang berhubungan dengan titik cue untuk menyediakan setiap label text dan nama posisi.
labl Chunk labl digunakan untuk
menghu-bungkan label text dan titik cue.
note Chunk note digunakan untuk
menghu-bungkan komentar text degan titik cue.
ltxt Chunk ltxt digunakan untuk
meng-hubungkan label text dengan bagian pada data wave.
smpl Chunk smpl berfungsi untuk
menyim-pan beberapa informasi ekstra. inst Chunk inst digunakan untuk
meng-gambarkan bagaimana wave harus diputar sebagai instrumen suara. Karena tidak ada standar baku chunk yang digunakan dalam file wave, maka chunk yang digunakan pada penelitian ini adalah chunk yang sesuai dengan hasil perekaman file wave menggunakan Sound Recorder pada Sistem Operasi Windows. Adapun chunk yang dihasilkan oleh proses perekaman tersebut adalah ”fmt”, ”fact”, dan ”data”. Tabel 3, 4, dan 5 berikut menyajikan struktur byte header dan data pada chunk ”fmt”, ”fact”, dan ”data”.
6 Tabel 3 Struktur byte header dan data pada
chunk ”fmt”
Sub Chunk Ukuran
Byte Keterangan Id chunk 4 Nilainya ”fmt” Ukuran data chunk 4 Dalam byte Kode
kompresi 2 1 – 65.535. Nilai akan bernilai 1 jika tidak terkompres Jumlah channel (saluran) 2 Dapat bernilai 1 – 5 Sample rate (jumlah sample per detik) 4 Dihitung dalam Hz Jumlah rata-rata byte per detik
4 Digunakan untuk
memperkirakan jumlah alokasi RAM
BlockAlign 2 Ukuran sample frame
di dalam byte Jumlah byte
per sample 4 -
Tabel 4 Struktur byte header dan data pada
chunk ”fact”
Sub Chunk Jumlah
Byte
Keterangan
Id chunk 4 Nilainya ”fact” Ukuran data
chunk
4 Dalam byte
Jumlah
audio frame 4 -
Tabel 5 Struktur byte header dan data pada
chunk ”data”
Sub Chunk Jumlah
Byte
Keterangan
Id chunk 4 Nilainya ”data” Ukuran data
chunk
4 Dalam byte
Sample data Tergantung
pada datanya
-
METODE PENELITIAN
Tahapan-tahapan yang dilakukan dalam penelitian ini adalah sebagai berikut:1 Perekaman suara
Perekaman suara dilakukan dengan menggunakan microphone headset dan seperangkat komputer. Perangkat lunak yang digunakan adalah Sound Recorder pada Sistem Operasi Windows. Hasil perekaman adalah 1.wav, 2.wav dan 3.wav. 2 Identifikasi bit data yang akan dienkripsi
Proses ini telah masuk ke tahap pemro-graman menggunakan C#. Langkah pertama yang harus dilakukan adalah pembacaan file wave menggunakan kelas BinaryReader. Selanjutnya dengan menggunakan method yang terdapat pada kelas ini, nilai byte array dikelompokkan sesuai dengan chunk yang terdapat pada file wave seperti yang telah dijelaskan dalam tinjauan pustaka. Setelah semua chunk diketahui nilainya, maka chunk yang akan dikenai proses enkripsi hanyalah
chunk data. Hal ini dilakukan karena jika
semua chunk dikenai enkripsi maka hasil
chipertext-nya menjadi rusak sehingga file
tidak bisa dibaca.
Awalnya tipe chunk data berupa byte
array. Namun karena nilai yang akan diolah
menggunakan sandi LFSR harus berupa data biner, maka perlu dilakukan pengubahan tipe byte array menjadi bit array. Bit array dari chunk data inilah yang selanjutnya akan dikenai proses enkripsi menggunakan LFSR. 3 Pembangkitan kunci menggunakan
gene-rator LFSR
Pembangkitan kunci ini menggunakan polinomial dan status inisial seperti yang telah disebutkan pada ruang lingkup nomor 2. Misalnya akan dibangkitkan kunci menggunakan polinomial 10 maka nilai awal LFSR adalah sebagai berikut.
s0 = 1 c2 = 1 s1 = 0 c1 = 0
Nilai-nilai di atas selanjutnya digunakan untuk membangkitkan kunci menggunakan generator LFSR dan diperoleh hasil sebagai berikut. s2 = (c1 s1 + c2 s0) mod 2 = (0x0 + 1x1) mod 2 = 1 s3 = (c1 s2 + c2 s1) mod 2 = (0x1 + 1x0) mod 2 = 0 S4 = (c1 s3 + c2 s2) mod 2 = (0x0 + 1x1) mod 2 =1 S5 = (c1 s4 + c2 s3) mod 2 = (0x1 + 1x0) mod 2 = 0 ...
7 Operasi di atas dilakukan secara
ber-ulang 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 line-arnya menggunakan algoritme Berlekamp-Massey. 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
menya-tukan 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.
8 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 menyaji-kan hasil survei mengenai identifikasi isi pesan hasil enkripsi terhadap file 1.wav, 2.wav dan 3.wav menggunakan berbagai jenis polinomial.
9 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 polino-mial 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 respon-den 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 digu-nakan 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 dipeta-kan menggunadipeta-kan 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
10 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 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 Suara gangguan (noise) yang
memiliki jeda suara yang cukup jelas
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) 4 30 Polinomial non primitif dengan derajat 31 (tinggi) 5 15 Polinomial primitif dense
11 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) 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)
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.
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.
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.
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.
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.
12 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
KesimpulanBeberapa kesimpulan yang berhasil didapat-kan 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
13 2 Beberapa faktor yang mempengaruhi hasil
penyandian suara pada file wave mengguna-kan sandi alir kunci simetrik LFSR yaitu jenis suara yang disandikan dan polinomial yang digunakan untuk menyandikan suara 3 Jeda diam pada suara asli mempengaruhi
hasil penyandian. Jeda diam yang lama pada suara asli memberikan hasil penyandian yang lebih buruk dari pada suara asli dengan jeda diam yang singkat atau bahkan tidak memiliki jeda diam. Hal ini dibuktikan dengan perbedaan hasil yang diperoleh pada suara dengan jeda diam yang lama dan jeda diam yang singkat. Dengan menggunakan polinomial non primitif derajat rendah, suara asli dengan jeda diam lama, hasil penyandiannya lebih mudah diidentifikasi isi pesannya dibanding suara asli dengan jeda diam singkat atau bahkan tidak memiliki jeda diam
4 Polinomial primitif berderajat tinggi akan menghasilkan kompleksitas linear yang tinggi sehingga akan memperbesar periode kunci yang dihasilkan oleh generator LFSR. Kunci jenis ini akan memberikan hasil enkripsi terbaik berupa noise murni tanpa jeda dan jika digambarkan dalam bentuk visual maka gelombang suara akan rata pada garis 1 dan -1
5 Dekripsi suara harus menggunakan kunci yang sama dengan kunci yang digunakan pada proses enkripsi jika tidak maka hasilnya tidak akan sama.
Saran
Penelitian ini merupakan penelitan awal dalam proses enkripsi suara. Masih banyak hal yang dapat dikembangkan untuk penelitian selanjunya diantaranya:
1 Suara yang dienkripsi sebaiknya pesan suara yang bersifat real time, sehingga peman-faatannya dapat dikembangkan untuk mengamankan pesan suara yang akan dilewatkan melalui jaringan telpon atau voip 2 Pemecahan enkripsi suara yang dienkripsi
menggunakan sandi alir yang dibangkitkan oleh generator LFSR dengan tanpa harus mengetahui kuncinya
DAFTAR PUSTAKA
Kade J, 2002. A simple C# Wave editor, part 1:
Background and analysis. http://www.codeproject.com/KB/audio-video/WaveEdit.aspx
. [8 September 2009].
Menezes A, Oorschot PV and Vanstone S. 1996.
Handbook of Applied Cryptography. CRC
Press.
Pramanik S. 2002. Finding a Way to Break
Speech Ciper [tesis]. Kanpur: Department
of Computer Science and Engineering, Indian Institut of Technology.
Schneier B. 1996. Applied Criptography,
Second Edition Protocols, Algorithms and source Code in C. John Wiley & Sons, Inc.
14
LAMPIRAN
15 Lampiran 1 Lembar kuisioner
Kuisioner Identifikasi Suara Hasil Enkripsi dan Dekripsi Usia :
Jenis Kelamin :
Enkripsi suara merupakan proses penyandian yang berfungsi untuk menyembunyikan isi pesan sehingga hanya orang yang berwenang saja yang dapat mengetahui isinya. Pihak yang berwenang tersebut dapat mengetahui isi pesan dengan cara melakukan proses dekripsi menggunakan kunci yang sesuai. Karena itu dekripsi merupakan proses pengembalian sandi ke pesan asli menggunakan kunci tertentu.
Kuiosioner berikut merupakan salah satu alat ukur untuk menilai keberhasilan penyembunyian isi pesan (soal 1), pengaruh penggunaan berbagai polinomial terhadap hasil penyandian (soal 2) dan keberhasilan mengembalikan isi pesan menggunakan kunci yang sesuai (soal 3). Karena itu isi kuisioner berikut sesuai instruksi yang ada sehingga kuisioner berikut dapat dijadikan sebagai salah satu alat ukur proses enkripsi dan dekripsi suara.
1. Dengar dan bandingkan kedua suara berikut dengan memberi tanda conteng (√) jika kedua suara sama persis dan tanda silang (x) jika kedua suara berbeda!
No File suara I File Suara II Identifikasi Kesamaan Kedua Suara 1 1.wav Enc1_ lfsr31dense.wav 2 1.wav Enc1_ lfsr31sedang.wav 3 1.wav Enc1_ lfsr31sparse.wav 4 1.wav Enc1_lfsr31non primitif.wav 5 1.wav Enc1_ lfsr15dense.wav 6 1.wav Enc1_ lfsr15sedang.wav 7 1.wav Enc1_ lfsr15sparse.wav 8 1.wav Enc1_lfsr15non primitif.wav 9 1.wav Enc1_ lfsr2primitif.wav 10 1.wav Enc1_ lfsr2non primitif.wav
11 2.wav Enc2_ lfsr31dense.wav 12 2.wav Enc2_lfsr31sedang.wav
13 2.wav Enc2_lfsr31sparse.wav 14 2.wav Enc2_lfsr31non primitif.wav
15 2.wav Enc2_lfsr15dense.wav 16 2.wav Enc2_lfsr15sedang.wav
17 2.wav Enc2_lfsr15sparse.wav 18 2.wav Enc2_lfsr15non primitif.wav 19 2.wav Enc2_lfsr2primitif.wav
20 2.wav Enc2_lfsr2non primitif.wav
21 3.wav Enc3_ lfsr31dense.wav 22 3.wav Enc3_lfsr31sedang.wav
23 3.wav Enc3_lfsr31sparse.wav 24 3.wav Enc3_lfsr31non primitif.wav
25 3.wav Enc3_lfsr15dense.wav 26 3.wav Enc3_lfsr15sedang.wav
27 3.wav Enc3_lfsr15sparse.wav 28 3.wav Enc3_lfsr15non primitif.wav 29 3.wav Enc3_lfsr2primitif.wav
16 2. Dengarkan dan identifikasi suara yang ada berdasarkan pilihan jawaban yang telah disediakan
dengan cara member tanda conteng (√) pada jawaban yang sesuai!
No File Wave Identifikasi
Noise
Identifikasi Isi Pesan Suara 1 Enc1_ lfsr31dense.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
teridentifikasi 2 Enc1_ lfsr31sedang.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
teridentifikasi 3 Enc1_ lfsr31sparse.wav o Ada
o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 4 Enc1_lfsr31non primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 5 Enc1_ lfsr15dense.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
teridentifikasi 6 Enc1_ lfsr15sedang.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
teridentifikasi 7 Enc1_ lfsr15sparse.wav o Ada
o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 8 Enc1_lfsr15non primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 9 Enc1_ lfsr2primitif.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
teridentifikasi 10 Enc1_ lfsr2non primitif.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
17
No File Wave Identifikasi
Noise
Identifikasi Isi Pesan Suara 11 Enc2_ lfsr31dense.wav o Ada
o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 12 Enc2_lfsr31sedang.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 13 Enc2_lfsr31sparse.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 14 Enc2_lfsr31non primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 15 Enc2_lfsr15dense.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 16 Enc2_lfsr15sedang.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 17 Enc2_lfsr15sparse.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 18 Enc2_lfsr15non primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 19 l Enc2_fsr2primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 20 Enc2_lfsr2non primitif.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
teridentifikasi 21 Enc3_ lfsr31dense.wav o Ada o Teridentifikasi
18
No File Wave Identifikasi
Noise
Identifikasi Isi Pesan Suara o Tidak Ada o Tidak
teridentifikasi 22 Enc3_lfsr31sedang.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 23 Enc3_lfsr31sparse.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 24 Enc3_lfsr31non primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 25 Enc3_lfsr15dense.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 26 Enc3_lfsr15sedang.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 27 Enc3_lfsr15sparse.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 28 Enc3_lfsr15non primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 29 Enc3_lfsr2primitif.wav o Ada o Tidak Ada o Teridentifikasi o Tidak teridentifikasi 30 Enc3_lfsr2non primitif.wav o Ada
o Tidak Ada
o Teridentifikasi o Tidak
19 3. Dengar dan bandingkan kedua suara berikut dengan memberikan tanda conteng (√) jika kedua
suara sama persis dan tanda silang (x) jika kedua suara berbeda!
No File suara I File Suara II Identifikasi Kesamaan Suara
1 1.wav Dec1_lfsr31dense.wav
2 1.wav Dex1_lfsr31dense.wav
3 1.wav Dec1_lfsr31sedang.wav
4 1.wav Dex1_lfsr31sedang.wav
5 1.wav Dec1_ lfsr31non primitif.wav 6 1.wav Dex1_ lfsr31non primitif.wav
7 1.wav Dec1_ lfsr15dense.wav
8 1.wav Dex1_ lfsr15dense.wav
9 1.wav Dec1_ lfsr15sparse.wav
10 1.wav Dex1_ lfsr15sparse.wav
11 1.wav Dec1_lfsr15non primitif.wav 12 1.wav Dex1_lfsr15non primitif.wav
13 2.wav Dec2_lfsr31dense.wav
14 2.wav Dex2_lfsr31dense.wav
15 2.wav Dec2_lfsr31sparse.wav
16 2.wav Dex2_lfsr31sparse.wav
17 2.wav Dec2_ lfsr31non primitif.wav 18 2.wav Dex2_ lfsr31non primitif.wav
19 2.wav Dec2_ lfsr15sedang.wav
20 2.wav Dex2_ lfsr15sedang.wav
21 2.wav Dec2_ lfsr15sparse.wav
22 2.wav Dex2_ lfsr15sparse.wav
23 3.wav Dec3_lfsr31sedang.wav
24 3.wav Dex3_lfsr31sedang.wav
25 3.wav Dec3_lfsr31sparse.wav
26 3.wav Dex3_lfsr31sparse.wav
27 3.wav Dec3_ lfsr15dense.wav
28 3.wav Dex3_ lfsr15dense.wav
29 3.wav Dec3_ lfsr15sedang.wav
30 3.wav Dex3_ lfsr15sedang.wav
31 3.wav Dec3_lfsr15non primitif.wav 32 3.wav Dex3_lfsr15non primitif.wav
20 Lampi ra n 2 Pe rba ndi ng an ga mba r gel om ba ng di gi ta l sua ra asl i, hasi l e nkri psi da n hasi l de kri psi
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
1.wav Hasil enkripsi menggunakan polinomial 1
(Enc1_lfsr31dense.wav) Hasil dekripsi menggunakan polinomial 1 (Dec1_lfsr31dense.wav)
1.wav Hasil enkripsi menggunakan polinomial 2
(Enc1_lfsr31sedang.wav) Hasil dekripsi menggunakan polinomial 2 (Dec1_lfsr31sedang.wav)
21
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
1.wav Hasil enkripsi menggunakan polinomial 3
(Enc1_lfsr31sparse.wav) Hasil dekripsi menggunakan polinomial 3 (Dec1_lfsr31sparse.wav)
1.wav Hasil enkripsi menggunakan polinomial 4
(Enc1_lfsr31non primitif.wav) Hasil dekripsi menggunakan polinomial 4 (Dec1_lfsr31non primitif.wav)
Lanj
ut
an
22
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
1.wav Hasil enkripsi menggunakan polinomial 5
(Enc1_lfsr15dense.wav) Hasil dekripsi menggunakan polinomial 5 (Dec1_lfsr15dense.wav)
1.wav Hasil enkripsi menggunakan polinomial 6
(Enc1_lfsr15sedang.wav)
Hasil dekripsi menggunakan polinomial 6 (Dec1_lfsr15sedang.wav)
Lanj
ut
an
23
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
1.wav Hasil enkripsi menggunakan polinomial 7
(Enc1_lfsr15sparse.wav) Hasil dekripsi menggunakan polynomial 7 (Dec1_lfsr15sparse.wav)
1.wav Hasil enkripsi menggunakan polinomial 8
(Enc1_lfsr15non primitif.wav)
Hasil dekripsi menggunakan polinomial 8 (Dec1_lfsr15non primitif.wav)
Lanj
ut
an
24
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
1.wav Hasil enkripsi menggunakan polinomial 9
(Enc1_lfsr2primitif.wav) Hasil dekripsi menggunakan polinomial 9 (Dec1_lfsr2primitif.wav)
1.wav Hasil enkripsi menggunakan polinomial 10
(Enc1_lfsr2non primitif.wav) Hasil dekripsi menggunakan polinomial 10 (Dec1_lfsr2non primitif.wav)
Lanj
ut
an
25
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
2.wav Hasil enkripsi menggunakan polinomial 1
(Enc2_lfsr31dense.wav) Hasil dekripsi menggunakan polinomial 1 (Dec2_lfsr31dense.wav)
2.wav Hasil enkripsi menggunakan polinomial 2
(Enc2_lfsr31sedang.wav) Hasil dekripsi menggunakan polinomial 2 (Dec2_lfsr31sedang.wav)
Lanj
ut
an
26
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
2.wav Hasil enkripsi menggunakan polinomial 3
(Enc2_lfsr31sparse.wav) Hasil dekripsi menggunakan polinomial 3 (dec2_lfsr31sparse.wav)
2.wav Hasil enkripsi menggunakan polinomial 4
(Enc2_lfsr31non primitif.wav) Hasil dekripsi menggunakan polinomial 4 (Dec2_lfsr31non primitif.wav)
Lanj
ut
an
27
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
2.wav Hasil enkripsi menggunakan polinomial 5
(Enc2_lfsr15dense.wav) Hasil dekripsi menggunakan polinomial 5 (Dec2_lfsr15dense.wav)
2.wav Hasil enkripsi menggunakan polinomial 6
(Enc2_lfsr15sedang.wav) Hasil dekripsi menggunakan polinomial 6 (Dec2_lfsr15sedang.wav)
Lanj
ut
an
28
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
2.wav Hasil enkripsi menggunakan polinomial 7
(Enc2_lfsr15sparse.wav) Hasil dekripsi menggunakan polinomial 7 (Dec2_lfsr15sparse.wav)
2.wav Hasil enkripsi menggunakan polinomial 8
(Enc2_lfsr15non primitif.wav) Hasil dekripsi menggunakan polinomial 8 (Dec2_lfsr15non primitif.wav)
Lanj
ut
an
29
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
2.wav Hasil enkripsi menggunakan polinomial 9
(Enc2_lfsr2primitif.wav) Hasil dekripsi menggunakan polinomial 9 (Dec2_lfsr2primitif.wav)
2.wav Hasil enkripsi menggunakan polinomial 10
(Enc2_lfsr2non primitif.wav) Hasil dekripsi menggunakan polinomial 10 (Dec2_lfsr2non primitif.wav)
Lanj
ut
an
30
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
3.wav Hasil enkripsi menggunakan polinomial 1
(Enc3_lfsr31dense.wav) Hasil dekripsi menggunakan polinomial 1 (Dec3_lfsr31dense.wav)
3.wav Hasil enkripsi menggunakan polinomial 2
(Enc3_lfsr31sedang.wav) Hasil dekripsi menggunakan polinomial 2 (Dec3_lfsr31sedang.wav)
Lanj
ut
an
31
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
3.wav Hasil enkripsi menggunakan polinomial 3
(Enc3_lfsr31sparse.wav) Hasil dekripsi menggunakan polinomial 3 (Dec3_lfsr31sparse.wav)
3.wav Hasil enkripsi menggunakan polinomial 4
(Enc3_lfsr31non primitif.wav) Hasil dekripsi menggunakan polinomial 4 (Dec3_lfsr31non primitif.wav)
Lanj
ut
an
32
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
3.wav Hasil enkripsi menggunakan polinomial 5
(Enc3_lfsr15dense.wav) Hasil dekripsi menggunakan polinomial 5 (Dec3_lfsr31dense.wav)
3.wav Hasil enkripsi menggunakan polinomial 6
(Enc3_lfsr15sedang.wav) Hasil dekripsi menggunakan polinomial 6 (Dec3_lfsr15sedang.wav)
Lanj
ut
an
33
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
3.wav Hasil enkripsi menggunakan polinomial 7
(Enc3_lfsr15sparse.wav) Hasil dekripsi menggunakan polinomial 7 (Dec3_lfsr15sparse.wav)
3.wav Hasil enkripsi menggunakan polinomial 8
(Enc3_lfsr15non primitif.wav) Hasil dekripsi menggunakan polinomial 8 (Dec3_lfsr15non primitif.wav)
Lanj
ut
an
34
Gelombang Digital Suara Asli Gelombang Digital Suara Enkripsi Gelombang Digital Suara Dekripsi
3.wav Hasil enkripsi menggunakan polinomial 9
(Enc3_lfsr2primitif.wav) Hasil dekripsi menggunakan polinomial 9 (Dec3_lfsr2primitif.wav)
3.wav Hasil enkripsi menggunakan polinomial 10
(Enc3_lfsr2non primitif.wav)
Hasil dekripsi menggunakan polinomial 10 (Dec3_lfsr2non primitif.wav)
Lanj
ut
an
35 Penguji Sidang: