Retno Aji Wulandari
Abstract
Algotitma Twofish dapat diimplementasikan ke dalam banyak bahasa pemrograman dan algoritma serta sifat perancangannya terbuka bagi umum. Algoritma Twofish awalnya diimplementasikan ke dalam bahasa C. Kemudian berkembang ke berbagai bahasa pemrograman karena sifatnya yang open sorce. Dalam penelitian ini diimplementasikan ke dalam J2SE menjadi sebuah model kriptosistem berbasis desktop. Implementasi algoritma Twofish yang optimal dapat dilakukan dengan aplikasi yang tidak sering berubah-ubah kunci serta tidak menggunakan weak-key. Dalam fungsi F terdapat total 521 iterasi untuk menghasilkan semua subkunci ini yang dibutuhkan. Aplikasi kemudian dapat menyimpan subkunci ini dan tidak membutuhkan langkah-langkah proses penurunan berulang kali, kecuali kunci yang digunakan berubah. Kunci yang sering berubah akan membutuhkan proses penurunan baru pada iterasi yang panjang, hal ini akan membuat waktu kerja Twofish lebih panjang. Sedangkan penggunaan weak key dapat mengganggu hasil enkripsi dan deskripsi. Weak key membuat hasil enkripsi/deskripsi menjadi tidak konsisten. Tingkat keamanan algoritma Twofish ditentukan oleh jumlah iterasi dan panjang kunci dan kerahasiaan kunci yang digunakan. Jumlah iterasi yang digunakan dengan semestinya membuat jaringan feistel pada Twofish bekerja seara konsisten (16 iterasi), pengurangan jumlah iterasi akan mengurangi tingkat kekuatan ciphertext. Sedangkan peran panjang dan kerahasiaan kunci menjadi sangat krusial. Kunci yang panjang menjadi sama tingkat kebutuhannya dengan iterasi yang tidak dikurangi. Karena proses pembangkitan sub key akan menjadi lebih acak dan membutuhkan waktu lama untuk dipecahkan. Begitu juga dengan kerahasiaan kunci. Jika kunci sudah diketahui oleh pihak yang tidak berkepentingan, maka akan sangat mudah memecahkan ciphertext atau plaintext tanpa attack tertentu sekalipun