Lompat ke isi

Blowfish (penyandian)

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
BlowfishFFunction

Blowfish merupakan algoritme penyandian blok kunci simetris yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Pada saat itu, banyak sekali rancangan algoritma yang ditawarkan. Namun, hampir semua terhalang oleh paten atau kerahasiaan pemerintah Amerika Serikat. Schneier menyatakan bahwa Blowfish bebas paten dan akan berada dalam domain publik. Dengan pernyataan Schneier tersebut, Blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan algoritma kriptografi yang cepat, kuat, dan tidak terhalang oleh lisensi.[1]

Keberhasilan Blowfish dalam menembus pasar telah terbukti dengan diadopsinya Blowfish sebagai Open Cryptography Interface (OCI) pada kernel Linux versi 2.5 ke atas. Dengan diadopsinya Blowfish, dunia sumber terbuka menganggap Blowfish adalah salah satu algoritma yang terbaik. Kesuksesan Blowfish mulai memudar setelah kehadiran algoritma-algoritma dengan ukuran blok yang lebih besar, seperti AES. AES sendiri memang dirancang untuk menggantikan DES. Schneier pun lebih menyarankan Twofish untuk penggunaan modern.[2]

Algoritma

Struktur Feistel dari Blowfish

Blowfish memiliki ukuran blok 64 bit dan ukuran kunci dari 32 sampai 448 bit.[3] Algortime menggunakan sandi Feistel 16 ronde dan menggunakan kotak-S besar yang bergantung pada kunci. Strukturnya menyerupai CAST-128 yang menggunakan kotak-S tetap.

Diagram di sebelah menampilkan proses enkripsi Blowfish. Tiap garis menggambarkan 32 bit. Ada lima larik subkunci: satu larik-P (disimbolkan K pada diagram untuk membedakan dari teks asli P) berukuran 18 dan empat kotak-S berukuran 256 (, , , ).

Tiap ronde terdiri dari empat langkah:

  1. Lakukan XOR pada bagian kiri data (L) dengan nilai ke-r pada larik-P.
  2. Pakai hasil XOR sebagai masukan ke fungsi F Blowfish.
  3. Lakukan XOR pada keluaran fungsi F dengan bagian kanan data (R).
  4. Tukar L dan R.

Fungsi F memecah data 32 bit ke dalam empat data 8 bit. Keempat pecahan data tadi dimasukkan ke dalam kotak-S. Kotak-S menerima data 8 bit dan menghasilkan data 32 bit. Keluarannya dikenai modulus dan dikenai XOR untuk menghasilkan keluaran final 32 bit.[4]

Lihat pula

Bacaan lanjutan

Pranala luar

Referensi

  1. Bruce Schneier. Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish). Fast Software Encryption, Cambridge Security Workshop Proceedings. Springer-Verlag. 1993.
  2. McConnachie Dahna. Bruce Almighty: Schneier preaches security to Linux faithful. Computerworld. 27 Desember 2007.
  3. Bruce Schneier. Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish). Fast Software Encryption, Cambridge Security Workshop Proceedings. Springer-Verlag. 1993.
  4. Bruce Schneier. Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish). Fast Software Encryption, Cambridge Security Workshop Proceedings. Springer-Verlag. 1993.

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 29188040 (2026-05-02T15:40:38Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.