Twofish

penyandian blok
Revisi sejak 9 November 2008 10.08 oleh Borgx (bicara | kontrib) ({{rapikan}})

Twofish merupakan algoritma yang beroperasi dalam mode block. Algoritma Twofish sendiri merupakan pengembangan dari algoritma Blowfish. Perancangan Twofish dilakukan dengan memperhatikan kriteria-kriteria yang diajukan National Institute of Standards and Technology (NIST) untuk kompetisi Advanced Encryption Standard (AES). Tujuan dari perancangan Twofish yang selaras dengan kriteria NIST untuk AES adalah sebagai berikut:


  1. Merupakan cipher blok dengan kunci simetri dan blok sepanjang 128 bit.
  2. Panjang kunci yang digunakan adalah 128 bit, 192 bit. Dan 256 bit.
  3. Tidak mempunyai kunci lemah.
  4. Efisiensi alogoritma, baik pada Intel Pentium Pro dan perangkat lunak lainnya dan platform perangkat keras.
  5. Rancangan yang fleksibel. Rancangan yang fleksibel ini dapat diartikan misalnya dapat menerima panjang kunci tambahan, dapat diterapkan pada platform dan aplikasi yang sangat variatif, serta cocok untuk cipher aliran, fungsi hash, dan MAC.
  6. Rancangan yang sederhana agar memudahkan proses analisis dan implementasi algoritma.


Selain kriteria-kriteria yang telah disebutkan di atas, pada Twofish ditambahkan kriteria performansi sebagai berikut:


  1. Menerima kunci dengan panjang berapapun hingga 256 bit
  2. Mengenkripsikan data dalam waktu kurang dari 500 clock cycles per blok pada Intel Pentium, Pentium # Pro, dan Pentium II, untuk versi algoritma yang teroptimasi sepenuhnya.
  3. Mampu untuk membentuk sebuah kunci 128 bit (untuk kecepatan enkripsi yang optimal) dalam waktu yang kurang dari waktu yang dibutuhkan untuk mengenkripsikan 32 blok pada Pentium, Pentium Pro, dan Pentium II.
  4. Tidak menggunakan operasi-operasi yang membuat Twofish tidak efisien pada mikroprosesor selain 32 bit, mikroprosesor 8 bit, dan mikroprosesor 16 bit. Twofish juga tidak menggunakan operasi-operasi yang dapat mengurangi efisiensinya pada mikroprosesor 64 bit.

[1]