III Bab III Analisis dan Perancangan

dokumen-dokumen yang mirip
Studi dan Implementasi Enkripsi Pengiriman Pesan Suara Menggunakan Algoritma Twofish

II Bab II Dasar Teori

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. 1.1 Latar Belakang

Algoritma Twofish : kinerja dan implementasinya sebagai salah satu kandidat algoritma AES (Advanced Encryption Standard)

Bab I Pendahuluan. I.1 Latar Belakang

BAB IV PERANCANGAN. SMSSender. - inter : Interface + run () : void. inbox inboxdate outbox outboxdate sender receiver

Implementasi. Keamanan J2F ABSTRAK. adalah. sebelum Kata Kunci. enkripsi. menggunakan. Voice. taking a signal. telah oleh. siapapun. used [8].

BAB I PENDAHULUAN. diperlukan juga biaya yang besar untuk menyediakan media penyimpanan

Studi dan Implementasi Enkripsi Pengiriman Pesan Suara dengan Algoritma Serpent

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

1. BAB III ANALISA DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III PERANCANGAN SISTEM

BAB III ANALISIS PENYELESAIAN MASALAH

BAB 3 PERANCANGAN SISTEM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB 3 PERANCANGAN SISTEM. Perancangan aplikasi meliputi server, pengajar dan mahasiswa. Server akan

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB 3 PERANCANGAN PROGRAM

BAB III ANALISIS MASALAH


THE PERFORMANCE TESTING OF JAVA VOICE MESSENGER APPLICATION ON LOCAL AREA NETWORK

APLIKASI ENKRIPSI PENGIRIMAN FILE SUARA MENGGUNAKAN ALGORITMA BLOWFISH

BAB III ANALISIS DAN PERANCANGAN SISTEM. permasalahan-permasalahan dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

ANALISIS PERBANDINGAN KINERJA ALGORITMA BLOWFISH DAN ALGORITMA TWOFISH PADA PROSES ENKRIPSI DAN DEKRIPSI

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB III ANALISIS DAN PERANCANGAN

BAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

BAB III ANALISIS DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

BAB III ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

= t t... (1) HASIL DAN PEMBAHASAN

BAB I PENDAHULUAN 1.2. Latar Belakang Masalah

Perancangan dan Implementasi Modifikasi Algoritma VEA (Video Encryption Algorithm) untuk Video Streaming

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

BAB I PENDAHULUAN. Universitas Sumatera Utara

General Discussion. Bab 4

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

Analisis dan Implementasi Pengamanan Pesan pada Yahoo! Messenger dengan Algoritma RSA

2.4.1 Teknik Blok Teknik Permutasi dan Transposisi Teknik teknik Kriptanalis Know Plainteks Analisys...


BAB III ANALISIS DAN DESAIN SISTEM

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

BAB IV IMPLEMENTASI APLIKASI

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear sequential

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

BAB III ANALISIS DAN RANCANGAN

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

BAB I PENDAHULUAN. dokumen dan berkomunikasi dengan orang lain di lokasi yang berjauhan. tersebut untuk melakukan berbagai macam tindakan kriminal.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Rancang Bangun Aplikasi Guitar Effect Processor Online Berbasis Java

BAB III ANALISIS DAN PERANCANGAN

PERANCANGAN APLIKASI KOMPRESI CITRA DENGAN METODE RUN LENGTH ENCODING UNTUK KEAMANAN FILE CITRA MENGGUNAKAN CAESAR CHIPER

BAB 3 ANALISIS DAN PERANCANGAN. Perancangan program aplikasi pada penelitian ini menggunakan metode Linear

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III ANALISIS DAN PERANCANGAN SISTEM

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN PEMBAHASAN

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. ini ikut mendorong terjadinya pertumbuhan di berbagai bidang, salah satunya

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISIS DAN PERANCANGAN

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

BAB III ANALISA DAN PERANCANGAN

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

Algoritma Spiral shifting

HASIL DAN PEMBAHASAN Analisis SIRANJAJA Perancangan Modul Pembangunan Content Streaming

IMPLEMENTASI KRIPTOGRAFI MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDAR (AES) UNTUK PENGAMANAN DATA TEKS

BAB IV PENGUJIAN DAN ANALISIS

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

Algoritma Kriptografi Modern (Bagian 2)

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Perangkat Lunak Enkripsi Video MPEG-1 dengan Modifikasi Video Encryption Algorithm (VEA)

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

BAB 3 ANALISIS DAN PERANCANGAN. Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear

IMPLEMENTASI VIDEO PENGAMAT DAN PENGAMANAN VIDEO MENGGUNAKAN ALGORITMA VIDEO ENKRIPSI (VEA)

BAB IV HASIL DAN UJI COBA

BAB 2 LANDASAN TEORI

BAB III PERANCANGAN SISTEM

Penerapan Mode Blok Cipher CFB pada Yahoo Messenger

Transkripsi:

III Bab III Analisis dan Perancangan Pada bab ini dijelaskan mengenai tahap analisis dan perancangan. Proses analisis dilakukan untuk menemukan solusi dari permasalahan yang telah diajukan sebelumnya pada subbab 1.2. Proses perancangan dilakukan untuk mendefinisikan spesifikasi kebutuhan perangkat lunak, analisis arsitektur perangkat lunak, diagram use case, dan diagram kelas. III.1 Analisis Masalah Masalah yang ingin diselesaikan pada tugas akhir ini antara lain adalah menerapkan algoritma Twofish agar bisa digunakan untuk enkripsi suara dan digunakan untuk pengiriman pesan suara antara dua buah komputer melalui jaringan. Pada subbab berikut akan dilakukan beberapa analisis terhadap pemrosesan suara sebelum enkripsi dilakukan, dan bagaimana enkripsi suara dilakukan pada pengiriman pesan suara antara dua unit komputer melalui jaringan. III.1.1 Enkripsi dan Dekripsi Suara dengan Algoritma Twofish Seperti telah dijelaskan sebelumnya, suara diterima melalui microphone masih berbentuk sinyal analog. Sinyal tersebut akan diubah menjadi sinyal digital agar dapat diproses lebih lanjut. Pada komunikasi suara, data yang ditransmisikan harus dapat dialirkan secepat mungkin sehingga delay yang dihasilkan sekecil mungkin dan memberikan efek real time. Algoritma enkripsi yang digunakan harus melakukan proses enkripsi dan dekripsi dengan efisien sehingga delay tidak terlalu besar. Cipher aliran merupakan salah satu pilihan tepat untuk tipe algoritma enkripsi yang digunakan untuk komunikasi suara karena tidak perlu menunggu agar bit memenuhi kuota satu blok. Twofish merupakan cipher blok yang beroperasi pada 128 bit, hal ini dapat menjadi masalah karena Twofish harus menunggu satu blok yang terdiri dari 128 bit baru melakukan proses enkripsi. Delay yang dihasilkan dapat membesar dan mengganggu kondisi real time pada komunikasi suara. Hal ini dapat diatasi dengan menggunakan mode operasi tertentu yang dapat memodifikasi tahapan algoritma Twofish sehingga beroperasi menyerupai tipe algoritma cipher aliran. Mode operasi yang digunakan disini adalah mode operasi counter atau bisa juga disebut mode operasi Segmented Integer Counter. Mode operasi counter dapat mengubah cipher blok menjadi cipher aliran. III-1

III-2 Berdasarkan penjelasan diatas, dapat disimpulkan bahwa untuk melakukan enkripsi suara secara real time, algoritma Twofish dapat menggunakan mode operasi counter. Sehingga mode operasi pada algoritma Twofish dapat dibuat menyerupai cipher aliran agar tidak menghasilkan delay yang terlalu besar. Sementara algoritma Twofish sendiri akan diterapkan dengan langkah-langkah yang sama dengan algoritma Twofish pada umumnya. III.1.2 Penerapan Blok Counter Langkah-langkah proses enkripsi dengan menggunakan mode operasi counter telah dijelaskan sebelumnya pada subbab II.1.3 Pada penjelasan tersebut telah disebutkan pentingnya counter yang berbeda untuk pesan yang memiliki kunci enkripsi yang sama. Blok awal dan fungsi counter harus dapat menjamin hal tersebut. Cara membangkitkan blok counter yang akan diterapkan, dapat dirangkum menjadi: 1. Dari satu blok counter awal, T 1, akan diterapkan fungsi increment untuk membangkitkan blok counter selanjutnya. 2. Blok counter akan terbagi menjadi dua bagian, yaitu message nonce dan bit-bit yang akan dipakai untuk increment. Message nonce akan diambil dari waktu milidetik saat blok counter diinisialisasi. 3. Fungsi increment yang digunakan merupakan fungsi increment standar, berdasarkan definisi oleh National Institute of Standards and Technology (NIST), yaitu: jika m = jumlah bit yang akan digunakan pada fungsi increment, maka [X] m akan mengembalikan [X+1 mod 2 m ] Misalkan panjang blok counter yang digunakan merupakan b. Blok counter yang digunakan akan memiliki bentuk seperti pada Gambar III-1. Gambar III-1 Blok Counter

III-3 Berdasarkan Gambar III-1, dapat dilihat bahwa message nonce akan diletakkan diawal blok counter, sehingga menempati indeks ke-0 sampai indeks ke-b/2. Kemudian bit untuk fungsi increment akan dimulai dari indeks ke-b/2+1 sampai indeks ke-b. Pada mode operasi counter, setelah menentukan blok counter, maka enkripsi dapat dilakukan pada blok counter tersebut. Pada tugas akhir ini blok counter yang telah didefinisikan diatas akan dienkripsi menggunakan algoritma Twofish. Setelah blok counter dienkripsi, akan di-xor dengan blok plainteks untuk menghasilkan ciperteks. Pada blok cipherteks, blok counter akan ikut ditambahkan karena dibutuhkan untuk dekripsi cipherteks tersebut. Blok cipherteks nantinya akan terdiri dari dua bagian, yaitu cipherteks yang memang berasal dari plainteks dan blok counter. Kedua bagian blok tersebut dapat dipisahkan dengan penanda tertentu. III.2 Analisis Perangkat Lunak Setelah melakukan analisis permasalahan, diperlukan analisis perangkat lunak yang dapat mengatasi masalah yang telah didefinisikan sebelumnya. Pada subbab berikut akan dilakukan analisis mengenai perangkat lunak yang dibangun, yaitu, arsitektur global sistem, spesifikasi perangkat lunak, dan proses perangkat lunak. III.2.1 Arsitektur Global Sistem Perangkat lunak yang dibangun bertujuan melakukan enkripsi pada data suara untuk pengiriman pesan suara antara dua unit komputer melalui kabel jaringan. Untuk membuat pengiriman pesan suara tersebut tetap real time, maka perlu dilakukan beberapa penyesuaian, antara lain digitalisasi dan kompresi. Data suara akan didapat dari masukan pengguna melalui microphone, sehingga data tetap diperoleh dalam bentuk data stream seperti pada komunikasi suara jarak jauh pada umumnya. Sinyal suara analog tersebut akan dikonversi menjadi sinyal digital dengan format file WAV, kemudian sinyal digital tersebut akan dikompresi dengan JSpeex. Proses digitalisasi dan kompresi dilakukan seperti yang telah dijelaskan pada subbab II.3. Data suara dengan format keluaran dari JSpeex ini yang akan dienkripsi dengan algoritma Twofish, kemudian dikirimkan pada komputer lainnya lalu didekripsi kembali dan

III-4 dikeluarkan melalui speaker/earphone sehingga data suara dapat didengarkan kembali oleh pengguna. Berdasarkan definisi arsitektur program diatas, maka arsitektur global sistem dapat dijelaskan pada Gambar III-2. Gambar III-2 Arsitektur Global Sistem Pada Gambar III-2 terdapat dua entitas komputer, yaitu komputer pengirim dan penerima yang dihubungkan dengan kabel LAN. Suara masukan pada komputer pengirim didapat dari pengguna dengan perantara microphone. Secara lebih detail, proses yang terjadi pada mode Sender seperti pada Gambar III-3. 128 bit suara Java Sound API Bit-bit digital Kompresi Jspeex Bit-bit suara terkompresi 128 bit suara Pengguna Sinyal Analog Suara Masukan Blok Counter Enkripsi dengan mode Counter Enkripsi Algoritma Twofish Key Stream Plainteks Blok yang akan dikirim Cipherteks Blok Counter Pengiriman ke mode Sender Gambar III-3 Proses Detail Mode Sender Setelah bit-bit suara selesai diproses, bit-bit suara tersebut dikirimkan ke mode receiver untuk diproses kembali. Secara lebih detail proses yang terjadi pada mode receiver seperti pada Gambar III-4.

III-5 Gambar III-4 Proses Detail Mode Receiver III.2.2 Analisis Kebutuhan Perangkat Lunak Analisis kebutuhan perangkat lunak yang dilakukan pada tugas akhir ini meliputi spesifikasi perangkat lunak, dan proses perangkat lunak. III.2.2.1 Spesifikasi Perangkat Lunak Perangkat lunak terdiri dari dua modul utama yang masing-masing memiliki fungsi yang berbeda, yaitu: 1. Modul Sender akan menerima masukan suara dari microphone oleh pengguna, dan melakukan enkripsi. Kemudian mengeluarkan data suara yang telah terenkripsi untuk disimpan dan dikirimkan melalui jaringan ke modul dekripsi pada komputer lain. 2. Modul Receiver akan menerima data suara setelah terenkripsi yang dikirimkan melalui jaringan oleh modul Sender. Kemudian melakukan dekripsi pada data suara tersebut lalu menyimpan dan mengeluarkan data suara yang telah kembali ke bentuk asalnya. Keluaran dari modul enkripsi dibagi menjadi dua, yang pertama akan disimpan kedalam suatu file, yang kedua akan dikirimkan melalui jaringan ke modul dekripsi melalui kabel jaringan. Kedua jenis keluaran yang berbeda tersebut memiliki tujuan yang berbeda pula. Keluaran pertama bertujuan untuk membuktikan bahwa data suara benar-benar telah dalam bentuk terenkripsi ketika dikeluarkan oleh modul enkripsi, yang kedua bertujuan untuk menjaga pengiriman suara yang real time antara dua komputer melalui jaringan. Namun jika pengguna tidak menginginkan menyimpan suara dalam bentuk file, karena alasan tertentu, maka pengguna dapat memilih untuk tidak menyimpan file suara tersebut.

III-6 Perangkat lunak dapat dijalankan dalam dua mode, yaitu mode Sender yang menggunakan modul Sender dan mode Receiver yang menggunakan modul Receiver. Komputer yang menjalankan mode Sender akan berfungsi sebagai penerima masukan dan pengirim pesan suara, sementara komputer yang menjalankan mode Receiver akan berfungsi sebagai penerima pesan suara. Berdasarkan penjelasan diatas, maka arsitektur perangkat lunak dapat digambarkan seperti pada Gambar III-5. Gambar III-5 Arsitektur perangkat lunak File data suara terenkripsi akan menyimpan data suara pengguna setelah keluar dari modul Sender. Sementara file data suara akan menyimpan data suara setelah dikeluarkan oleh modul Receiver. III.2.2.2 Proses Perangkat Lunak Proses pada perangkat lunak dimulai dengan masukan data suara oleh pengguna. Kemudian suara tersebut akan diterima oleh perangkat lunak yang dijalankan pada mode Sender. Pada mode ini dilakukan lima tahapan, yaitu: 1. Menerima masukan suara pengguna melalui microphone, kemudian melakukan digitalisasi sehingga suara tersebut dalam bentuk bit-bit digital. 2. Melakukan kompresi suara, agar suara menghabiskan storage dan bandwidth yang lebih kecil. 3. Melakukan enkripsi suara yang telah terkompresi tersebut. 4. Melewatkan hasil enkripsi suara melalui jaringan ke komputer lain dimana perangkat lunak dijalankan pada mode dekripsi. 5. Menyimpan hasil enkripsi suara dalam file jika diinginkan. Setelah mode dekripsi menerima data suara yang telah terenkripsi, dekripsi akan mulai dilakukan. Setelah itu data suara yang telah didekripsi akan dikeluarkan melalui speaker, dan disimpan pada file jika pengguna memilih melakukan penyimpanan data suara.

III-7 Selama pengguna masih memberikan masukan pada program dengan microphone, maka data suara akan terus dikirimkan pula ke modul dekripsi secara bertahap. Dengan demikian dekripsi data suara juga akan dilakukan secara stream oleh program pada modul dekripsi. III.3 Perancangan Perangkat Lunak Berdasarkan analisis perangkat lunak, dapat dilakukan perancangan perangkat lunak untuk melakukan enkripsi pengiriman pesan antara dua komputer. Perancangan perangkat lunak dilakukan dengan membuat diagram use case, diagram kelas, dan perancangan antarmuka. III.3.1 Diagram Use Case Pengguna dapat melakukan dua hal, yaitu mengirimkan suara dan mendengarkan suara. Diagram use case dapat dilihat pada Gambar III-6. Mengirimkan Suara Pengguna Mendengarkan Suara Gambar III-6 Diagram use case Untuk mengirimkan suara, pengguna harus berada pada mode Sender. Untuk mendengarkan suara, pengguna harus berada pada mode Receiver. Kedua mode tersebut harus digunakan pada dua komputer yang berbeda dan dihubungkan oleh kabel LAN. III.3.2 Diagram Kelas Identifikasi kelas dilakukan berdasarkan hasil analisis perangkat lunak. Terdapat enam kelas pada perangkat lunak ini, yaitu kelas InputSender, OutputReceiver, SocketSend, SocketReceive, ModeCounter, dan kelas AlgoTwofish. Rancangan diagram kelas dapat dilihat pada Gambar III-7.

III-8 InputSender +filename: String +m_line: TargetDataLine +m_audioinputstream: AudioInputStream +PCMFormat: AudioFormat +SpeexFormat: AudioFormat +socket_send: socketsend +stopped: boolean +save: boolean +RecordSound() +StartRecording() +StopRecording() +ProcessSound() +run() SocketSend +socket: Socket +o_outputstream: objectoutputstream +send() +closesocket() s: SocketSend mc: ModeCounter ModeCounter +block_size: int +makenonce(): byte[] +TwofishEncryptCtr(): byte[] +TwofishDecryptCtr(): byte[] mc: ModeCounter OutputReceiver +PCMFormat: AudioFormat +SpeexFormat: Audio Format +Socket_receive: SocketReceive +save: boolean +processsound() +decryptsound() +decode() +getsourcedataline() SR: SocketReceive SocketReceive algotwofish +S-Box: matrix of byte +Block-Size: int +MDS: matrix of int +FeistelNet() +encryptblock(): byte[] +socket: Socket +o_inputstream: objectinputstream +receive() +closesocket() Gambar III-7 Diagram Kelas 1. InputSender, kelas utama yang digunakan untuk menjalankan mode Sender pada perangkat lunak. Menerima input suara dari pengguna melalui microphone dan melakukan kompresi terhadap data suara tersebut. Kelas ini akan memanfaatkan kelas ModeCounter dan SocketSend untuk melakukan enkripsi data suara dan mengirimkannya kepada komputer penerima. Prosedur-prosedur dan atribut-atribut yang terdapat pada kelas ini dijelaskan pada Tabel III-1. 2. OutputReceiver, kelas utama yang digunakan untuk menjalankan mode Receiver pada perangkat lunak. Kelas ini akan memanfaatkan kelas SocketReceive dan ModeCounter untuk menerima data suara dan melakukan dekripsi. Kelas ini akan melakukan dekompresi terhadap data suara yang telah didekripsi dan memutar suara tersebut. Prosedur-prosedur dan atribut-atribut yang terdapat pada kelas ini dijelaskan pada Tabel III-2. 3. SocketSend, kelas yang digunakan untuk membuka socket dan mengirimkan data ke komputer penerima. Prosedur-prosedur dan atribut-atribut yang terdapat pada kelas ini dijelaskan pada Tabel III-3.

III-9 4. SocketReceive, kelas yang digunakan untuk mendengarkan jaringan dan menerima paket data dari komputer pengirim. Prosedur-prosedur dan atribut-atribut yang terdapat pada kelas ini dijelaskan pada Tabel III-4. 5. algotwofish, kelas yang berisi tahapan algoritma Twofish dan method-method untuk enkripsi dan dekripsi. Prosedur-prosedur dan atribut yang terdapat pada kelas ini dijelaskan pada Tabel III-5. 6. ModeCounter, kelas yang mendefinisikan mode operasi counter pada algoritma enkripsi Twofish. Kelas ini akan memanfaatkan kelas algotwofish. Prosedurprosedur dan atribut yang terdapat pada kelas ini dijelaskan pada Tabel III-6. Penjelasan tentang metode dan operasi yang ada pada kelas akan dimuat pada Tabel III-1 dibawah. Tabel III-1 Penjelasan Kelas InputSender No Jenis Nama Deskripsi 1. Atribut Filename String nama file yang digunakan untuk menyimpan file yang telah terenkripsi. 2. Atribut M_line Atribut untuk menyimpan line yang dibuka untuk menerima input data suara dari microphone. 3. Atribut M_audioInputStream Atribut untuk menyimpan aliran data suara. 4. Atribut PCMFormat AudioFormat untuk format aliran data suara yang diterima dari microphone. 5. Atribut SpeexFormat AudioFormat untuk format aliran data suara yang dikompresi menjadi format speex. 6. Atribut Stopped Boolean untuk menandakan proses merekam sudah berhenti atau belum. 7. Atribut Socket_send Object dari kelas SocketSend yang digunakan untuk mengirimkan byte data suara 8. Atribut Mode_counter Object dari kelas ModeCounter yang digunakan untuk melakukan enkripsi dan dekripsi. 9. Atribut Save Boolean untuk menandakan file harus disimpan atau tidak. 10. Prosedur RecordSound Prosedur yang menginisialisasi port dan line untuk memperoleh aliran data suara dari microphone dan memulai proses merekam suara.

III-10 No Jenis Nama Deskripsi 11. Prosedur Run Implementasi dari thread, melakukan penyimpanan ke file dan kompresi terhadap data suara. Enkripsi dilakukan dengan memanggil prosedur pada kelas modecounter. 12. Prosedur StartRecording Prosedur yang memulai proses perekaman suara. 13. Prosedur StopRecording Prosedur yang mengakhiri proses perekaman suara dan menutup line. 14. Prosedur ProcessSound Prosedur yang melakukan enkripsi pada byte data suara dengan memanggil prosedur pada ModeCounter dan mengirimkannya dengan memanggil prosedur pada SocketSend. Tabel III-2 Penjelasan kelas SocketSend No. Jenis Nama Deskripsi 1. Atribut Socket Atribut yang digunakan untuk membuka jalur komunikasi antara kedua komputer melalui jaringan. 2. Atribut O_outputStream Atribut yang digunakan untuk membungkus data yang akan dikirimkan ke komputer penerima. 3. Prosedur Send Membuka socket pada awal koneksi dan mengirimkan byte data suara. 4. Prosedur CloseSocket Menutup socket yang digunakan untuk mengirimkan byte data suara. Tabel III-3 Penjelasan Kelas OutputReceiver No. Jenis Nama Deskripsi 1. Atribut Filename String nama file yang akan digunakan untuk menyimpan file yang telah terdekripsi. 2. Atribut PCMFormat Atribut untuk menyimpan AudioFormat data suara yang akan diputar balik. 3. Atribut SpeexFormat Atribut untuk menyimpan AudioFormat yang terkompresi oleh format speex. 4. Atribut Socket_receive Object dari kelas SocketReceive yang digunakan untuk menerima byte data suara 5. Atribut Save Boolean untuk menandakan file suara disimpan atau tidak. 6. Prosedur ProcessSound Menyusun blok-blok data pesan suara yang diterima.

III-11 No Jenis Nama Deskripsi 7. Prosedur getsourcedataline Prosedur yang melakukan inisialisasi terhadap line yang akan digunakan untuk melakukan pemutarabalikan suara. Dipangil oleh prosedur decode. 8. Prosedur Decode Melakukan dekompresi terhadap byte data suara yang sebelumnya dikompresi. 9. Prosedur DecryptSound Memanggil prosedur DecryptSound pada kelas algotwofish. 10. Prosedur Save Melakukan penyimpanan blok-blok bit hasil dekripsi ke file yang telah ditentukan. Tabel III-4 Penjelasan kelas SocketReceive No. Jenis Nama Deskripsi 1. Atribut Socket Atribut yang digunakan untuk membuka jalur komunikasi antara kedua komputer melalui jaringan. 2. Atribut O_inputStream Atribut yang digunakan untuk membungkus data yang akan diterima dari komputer pengirim. 3. Prosedur ListentheNet Mendengarkan jaringan untuk mendeteksi adanya kiriman paket data suara. 4. Prosedur Receive Membuka socket pada awal koneksi dan menerima byte data suara dari komputer pengirim. 5. Prosedur CloseSocket Menutup socket yang digunakan untuk menerima byte data suara. Tabel III-5 Penjelasan Kelas algotwofish No. Jenis Nama Deskripsi 1. Atribut S-Box Matriks yang mendefinisikan S-Box. 2. Atribut Block-size Integer yang mendefinisikan ukuran blok. 3. Atribut MDS Matriks yang mendefinisikan MDS. 4. Prosedur FeistelNet Menyimpan langkah-langkah jaringan feistel pada algoritma Twofish. 5. Prosedur EncryptSound Melakukan proses enkripsi algoritma Twofish.

III-12 Tabel III-6 Penjelasan Kelas ModeCounter No. Jenis Nama Deskripsi 1. Atribut Block_size Atribut integer yang menyimpan banyaknya byte pada satu blok. 2. Fungsi MakeNonce Mengembalikan array of byte nonce. 3. Prosedur TwofishEncryptCtr Melakukan proses enkripsi dengan algoritma Twofish berdasarkan mode operasi counter. 4. Prosedur TwofishDecryptCtr Melakukan proses dekripsi dengan algoritma Twofish berdasarkan mode operasi counter. III.3.3 Perancangan Modul Kelas-kelas diatas akan diimplementasikan dalam tiga modul, yaitu: 1. Modul SenderMode Modul SenderMode akan mengenkapsulasi kelas-kelas yang diperlukan untuk menjalankan aplikasi pada mode Sender, yaitu kelas Sender dan processinput. 2. Modul ReceiverMode Modul ReceiverMode akan mengenkapsulasi kelas yang menjalankan aplikasi pada mode Receiver, yaitu kelas Receiver. 3. Modul Twofish diperlukan untuk Modul Twofish akan mengenkapsulasi kelas yang diperlukan untuk melakukan enkripsi, yaitu kelas Twofish. III.3.4 Perancangan Data Data yang akan digunakan dalam perangkat lunak antara lain: 1. Data suara masukan Data suara masukan merupakan data suara yang diberikan oleh pengguna melalui microphone. Data suara ini pertama-tama berbentuk sinyal analog, kemudian akan dirubah menjadi sinyal digital dan akan menjadi input bagi aplikasi dalam mode Sender. 2. Data suara terenkripsi Data suara terenkripsi merupakan data suara yang akan dihasilkan setelah suara dienkripsi oleh aplikasi pada mode Sender. Data suara akan berbentuk blok-blok dalam bit yang berisi bit hasil enkripsi dan bit counter, agar dapat digunakan oleh aplikasi dalam mode Receiver. Data ini merupakan output dari mode Sender dan merupakan input untuk mode Receiver.

III-13 Data suara terenkripsi akan disimpan dalam file data suara terenkripsi setelah pengguna selesai memberikan masukan pada microphone. Sementara itu, selama aplikasi masih menerima masukan dari pengguna, data suara terenkripsi akan terus dialirkan per-blok ke aplikasi yang berada dalam mode Receiver. 3. Data suara keluaran Data suara keluaran merupakan output akhir yang dihasilkan aplikasi pada mode Receiver. Data ini akan dapat didengarkan langsung oleh pengguna tanpa perlu melakukan aksi apapun, karena setelah proses dekripsi selesai, data suara akan langsung diperdengarkan oleh aplikasi pada mode Receiver. Selain itu, setelah aplikasi selesai, data suara keluaran akan disimpan pada file data suara keluaran jika pengguna menginginkan dan dapat didengarkan kembali oleh pengguna kapanpun. III.3.5 Perancangan Antarmuka Antarmuka digunakan agar pengguna dapat berinteraksi dengan aplikasi. Pada aplikasi ini terdapat tiga layar utama: 1. Layar awal Layar awal ditampilkan saat aplikasi pertama dijalankan, layar ini berfungsi untuk menerima pilihan mode yang diinginkan pengguna. Layar awal dapat dilihat pada Gambar III-8. Choose which mode you want to run: Mode Receiver Mode Sender Gambar III-8 Layar Awal

III-14 2. Layar modul Sender Jika pengguna memilih menggunakan mode Sender, maka akan muncul antarmuka modul Sender seperti pada Gambar III-9. Gambar III-9 Layar Mode Sender Encrypt File Directory bertujuan untuk menyimpan nama file tempat data suara terenkripsi akan disimpan. Sebelum memulai proses Start Recording pada mode Sender, Encrypt File Directory harus diisi terlebih dahulu jika pengguna memilih untuk mengaktifkan fitur Save to File. Pengguna juga harus mengisi kunci enkripsi, alamat IP tujuan, serta port yang akan dibuka. 3. Layar modul Receiver Jika pengguna memilih menggunakan mode Receiver, maka akan muncul antarmuka modul Receiver seperti pada Gambar III-10.

III-15 Gambar III-10 Layar Mode Receiver Output File Directory bertujuan untuk menyimpan nama file tempat data suara keluaran akan disimpan. Sebelum memulai proses Start Listening pada mode Receiver, Output File Directory harus diisi terlebih dahulu jika pengguna memilih mengaktifkan fitur Save to File. Pengguna harus mengisi kunci enkripsi serta port yang akan digunakan.