Metode dan Perancangan Sistem

9. Hasil dari 16 round enkripsi akan melalui output whitening, yaitu proses peng-XOR-an 16 round enkripsi dengan K 4 , K 5 , K 6 , dan K 7. Gambar 4. Swap Blok Terakhir dan Output Whitening Langkah-langkah dalam proses dekripsi pada algoritma twofish, sama dengan proses enkripsi, tetapi hanya arahnya saja yang berlawanan. Proses yang dilalui secara berurutan yaitu : output whitening, swap blok trakhir, 16 iterasi dekripsi, dan input whitening. Input untuk proses dekripsi adalah ciphertext dan kunci, untuk memperoleh plaintext. Kunci untuk dekripsi sama dengan dengan kunci enkripsi, karena algoritma twofish merupakan algoritma kriptografi dengan kunci bersifat simetris.

3. Metode dan Perancangan Sistem

Prototype Model adalah metode pengembangan perangkat lunak yang banyak digunakan. Metode ini memungkinkan adanya interaksi antara pengembang sistem dengan pengguna sistem nantinya, sehingga dapat mengatasi ketidakserasian antara pengembang dan pengguna. Bagan mengenai prototype model dapat dilihat pada Gambar 5. Gambar 5 Bagan Prototype Model [6] Tahap-tahap dalam Prototype Model adalah sebagai berikut: 1. Listen to Costumer; Pada tahap ini dilakukan analisis terhadap permasalahan yang ada, yaitu mendapatkan data dan literatur yang terkait dengan proses enkripsi dan dekripsi terhadap data file, menggunakan algoritma twofish; melalui dokumen dan referensi yang ada. 2. Build; Selanjutnya setelah memperoleh data dan mengetahui proses enkripsi dan dekripsi dengan twofish, langkah berikutnya adalah membuat perancangan proses enkripsi dan dekripsi dengan menggunakan Data Flow Diagram DFD dan flowchart. Proses enkripsi dan dekripsi diterapkan pada semua data file. Kunci yang digunakan sesuai dengan ketentuan algoritma twofish yaitu 128 bit, dengan penyesuaian pada masukan panjang data kunci yang bersifat fleksibel. Modifikasi juga dilakukan untuk hasil enkripsi yaitu berupa heksadesimal. Pada proses pembentukan kunci, begitu juga pesan yang akan dienkripsi, jika tidak sesuai dengan ketentuan algoritma twofish, maka akan dilakukan penyesuaian. Penyesuaian dilakukan karena algoritma twofish merupakan algoritma yang berjenis block cipher. Pada algoritma twofish penyesuaian panjang data kunci menggunakan padding yaitu penambahan bit 0, sedangkan dalam penelitian ini penyesuaian untuk panjang data kunci dilakukan melalui proses pengulangan kunci, ide ini didasarkan pada konsep substitusi berulang pada algoritma vigenere cipher. Sedangkan penyesuaian untuk panjang data plaintext, dilakukan melalui proses padding, yaitu penambahan bit 0, pada block yang tidak mencapai 16 byte. Pada tahap ini juga, dilakukan perancangan user interface. 3. Costumer Test Pada Tahap ini dilakukan pengujian sistem, yaitu menjalankan proses implementasi sistem, dengan menguji data file, yaitu data .doc, .pdf, .jpeg, .png, dan .mp3. Pada tahap ini juga akan diuji apakah hasil yang diberikan oleh kriptosistem sudah sesuai dengan konsep kriptografi dan algoritma twofish, menguji waktu proses yang digunakan, serta perubahan ukuran file, setelah proses enkripsi dan dekripsi dijalankan. Perancangan Sistem Perancangan sistem merupakan gambaran, dan perancangan dari sistem yang akan dibuat. Pada bagian ini, tool yang digunakan adalah Data Flow Diagram DFD. DFD digunakan untuk menggambarkan hubungan sistem dengan lingkungan, mulai dari proses masukan hingga menjadi keluaran. Data Flow Diagram DFD Diagram konteks atau DFD level 0 dipakai untuk menggambarkan interaksi dan aliran data yang berlangsung antara entitas di luar sistem dengan sistem itu sendiri. Bagan diagram konteks dari aplikasi ini terlihat pada Gambar 6. Gambar 6 Diagram Konteks Diagram konteks sistem pada Gambar 6, dapat dijelaskan sebagai berikut. User memasukkan plaintext untuk dilakukan proses enkripsi. Sistem akan memberikan plain yang telah dienkripsi dan kunci hasil enkripsi. User memasukkan cipher hasil enkripsi dan kunci ke dalam sistem, dan sistem akan memberikan output berupa plain hasil dekripsi. Proses yang ada pada diagram konteks kemudian diuraikan dalam bentuk yang lebih luas, yaitu DFD level 1. Dalam DFD level 1, diuraikan secara bertingkat dimana peringkat yang lebih tinggi mendeskripsikan secara lebih rinci apa yang dilakukan masing-masing proses. Gambar 7 Diagram DFD Level 1 Gambar 7 menunjukkan DFD level 1 dari sistem, yang dapat dijelaskan sebagai berikut. Pada level 1 dari sistem ini terdapat dua proses, proses enkripsi dan proses dekripsi. Pada proses enkripsi, User memasukkan plain ke dalam sistem, dan sistem akan memberikan output berupa data yang telah dienkripsi, dan kunci yang digunakan saat proses enkripsi. Pada proses dekripsi, user memasukkan cipher yang merupakan hasil enkripsi yang akan didekripsi, beserta kunci ke dalam sistem, dan sistem akan memberikan output berupa data yang telah didekripsi kepada user. Proses enkripsi dan dekripsi dengan algoritma Twofish Pada penelitian ini, kunci yang digunakan adalah kunci dengan panjang 128 bit. Aplikasi yang dikembangkan pada penelitian ini, memberikan fleksibilitas penggunaan teori dalam aplikasi, berupa proteksierror trapping terhadap panjang data yang dimasukkan sebagai kunci. Jika data yang dimasukkan dalam isian kunci, tidak dalam panjang 128 bit, maka akan dilakukan penyesuaian untuk mencapai 128 bit, sehingga tidak muncul error pada proses pembuatan kunci. Hal berikutnya yang dimodifikasi dalam penelitian ini adalah pada hasil enkripsi ciphertext dari algoritma twofish. Ciphertext yang dihasilkan oleh algoritma Twofish, berbentuk array of byte, yaitu data berupa karakter-karakter yang tidak dapat dicetak, misalnya karakter white space. Dengan alasan inilah sehingga dilakukan proses mengubah nilai tiap elemen tersebut menjadi karakter hexadecimal. Langkah-langkah proses penjadwalan kunci ke dalam 128 bit kunci 16 byte, dimana 1 karakter 1 byte di dalam sistem, adalah sebagai berikut: 1. Simpan kunci dalam variabel byte array. - byte[ ] kunci. 2. Buat 1satu variable array penampung dengan panjang 16 byte. - byte[16] buffer. 3. Inisialisasi variable index i dan j, dengan nilai masing-masing adalah 0. 4. Lakukan perulangan selama nilai i kurang dari panjang kunci  Salin nilai kunci ke-i ke dalam buffer ke-j buffer[j] := kunci[i]  Increment nilai variable index i dan j sebesar 1. i:=i+1, j:=j+1  Jika panjang j sama dengan panjang kunci, reset nilai j menjadi 0, dengan maksud supaya pembacaan kunci dimulai dari depan lagi. Karena ketika nilai j = panjang kunci, berarti pembacaan sudah sampai di belakang. 5. Ulangi langkah 4 sampai i bernilai 16 6. Output buffer Proses penjadwalan kunci dalam bentuk flowchart, ditunjukkan pada Gambar 8. Gambar 8 Flowchart Proses Pembentukan Kunci Kriptosistem yang dibangun, berfungsi untuk melakukan proses enkripsi- dekripsi pada semua data file, sesuai dengan ketentuan algoritma twofish. Langkah-langkah yang dikerjakan dalam proses enkripsi, adalah sebagai berikut : 1 Memulai proses enkripsi plaintext dengan ukuran block 128 bit; 2 Memasukkan kunci yang akan digunakan dalam proses; 3 Jika panjang kunci yang dimasukkan kurang dari 128 bit maka akan dilakukan penyesuaian panjang kunci, untuk mencapai 128 bit; 4 Memasukkan file yang akan dienkripsi; 5 Jika plaintext berukuran 128 bit maka tidak terjadi proses padding; 6 Jika plaintext berukuran lebih dari 128 bit, maka proses padding akan dilakukan; 7 Langkah selanjutnya yaitu proses enkripsi 1 satu block, jika data belum habis dibaca maka akan berulang, namun jika data habis dibaca maka sistem akan menampilkan hasil enkripsi; dan 7 Selesai. Proses enkripsi dalam bentuk flowchart, ditunjukkan pada Gambar 9. Gambar 9. Flowchart Proses Enkripsi Langkah-langkah yang dikerjakan dalam proses dekripsi, adalah sebagai berikut : 1 Memulai proses dekripsi ciphertext dengan ukuran block 128 bit; 2 Memasukkan kunci yang akan digunakan dalam proses; 3 Jika panjang kunci yang dimasukkan kurang dari 128 bit, maka akan dilakukan penyesuaian panjang kunci, untuk mencapai 128 bit; 4 Memasukkan file yang akan didekripsi; 5 Membaca 1 satu block 16 byte cipher data; 6 Langkah selanjutnya yaitu proses dekripsi 1 satu block, jika data belum habis dibaca, maka akan berulang; 7 Menghapus padding; 8 Sistem menampilkan hasil dekripsi; dan 9 Selesai. Proses dekripsi dalam bentuk flowchart, ditunjukkan pada Gambar 10. Gambar 10 Flowchart Proses Dekripsi

4. Pembahasan dan Pengujian