- Ang Blowfish ay isang 64-bit symmetric block cipher na may mga key na hanggang 448 bits.
- Gumagamit ito ng 16-round Feistel frame at mga kapalit na kahon para sa karagdagang seguridad.
- Nag-aalok ito ng mataas na bilis at flexibility, ngunit pinalitan ng AES ang paggamit nito sa maraming application.
- Sa kabila ng edad nito, nananatili itong maaasahang opsyon sa mga partikular na kapaligiran.

El Blowfish cipher Ito ay isang block cipher algorithm na nilikha noong 1993 ni Bruce Schneier bilang isang mabilis at secure na alternatibo sa DES. Ang paraan ng pag-encrypt na ito ay malawakang pinagtibay sa iba't ibang mga aplikasyon dahil sa kahusayan at kakayahang umangkop nito sa paggamit ng mga key na may iba't ibang laki. Para mas malaliman ang paksa ng cryptography, maaari mong basahin ang higit pa tungkol sa Ano ang cryptography?.
Sa paglipas ng mga taon, napatunayan na ang Blowfish ay isang maaasahang cipher, bagama't napalitan na ito ngayon sa maraming mga aplikasyon ng mas advanced na mga pamamaraan tulad ng AES. Gayunpaman, nananatili itong isang nauugnay na opsyon sa ilang partikular na konteksto kung saan prayoridad ang kaligtasan at bilis.
Ano ang Blowfish encryption?
Ang Blowfish ay isang simetrikong algorithm ng pag-encrypt na gumagana sa mga 64-bit na bloke at gumagamit ng mga susi na may sukat na 32 hanggang 448 bits. Dinisenyo ito upang mag-alok ng higit na mahusay na pagganap sa mga tuntunin ng bilis nang hindi isinasakripisyo ang seguridad. Kung interesado kang matuto tungkol sa iba pang mga simetrikong cipher , mayroon ding mahalagang impormasyon tungkol sa mga ito.
Gumagamit ang algorithm na ito ng 16-round Feistel cipher structure . Dahil sa modular na disenyo nito, madali itong maiangkop sa iba't ibang implementasyon ng hardware at software.
Mga pangunahing tampok ng algorithm
- Variable na haba ng key: Nagbibigay-daan sa mga custom na configuration sa pagitan ng 32 at 448 bits.
- Mabilis at mahusay: Idinisenyo upang maghatid ng mataas na pagganap sa software.
- Walang patent: Maaari itong ipatupad nang walang mga paghihigpit sa lisensya.
- Hindi ito nasira: Sa ngayon, walang nakitang epektibong pag-atake laban sa seguridad nito.
Paano Gumagana ang Blowfish Cipher
Ang Blowfish cipher ay gumagamit ng 18 subkey at apat na 256-entry substitution boxes (S-boxes) upang iproseso ang datos. Ang proseso ng pag-encrypt ay umaasa sa paulit-ulit na mga operasyon ng XOR at mga pagpapalit gamit ang mga istrukturang ito.
Ini-initialize ng input key ang mga subkey at S-box bago gamitin. Upang gawin ito, ang mga halaga ng mga istrukturang ito ay batay sa mga hexadecimal na numero ng π , na tinitiyak ang isang random na distribusyon ng data.
Proseso ng pag-encrypt
- Ang isang 64-bit block ay nahahati sa dalawang 32-bit na halves: kaliwa (L) at kanan (R).
- Ang kaliwang kalahati ay XORed gamit ang unang subkey at dumaan sa function na F.
- Ang resulta ay XORed sa kanang kalahati.
- Ang mga kalahati ay ipinagpapalit at ang proseso ay paulit-ulit para sa 16 na round.
- Pagkatapos ng huling round, dalawang panghuling XOR ang inilalapat kasama ang mga huling subkey.
Tinitiyak ng disenyong ito na kahit ang maliliit na pagbabago sa orihinal na teksto ay magreresulta sa malalaking pagkakaiba-iba sa ciphertext. Para sa mas komprehensibong pangkalahatang-ideya ng mga pamamaraan ng pag-encrypt, maaari mong bisitahin ang seksyon ng mga pamamaraan ng pag-encrypt.
Key Generation sa Blowfish
Ang paglikha ng susi sa Blowfish ay isang masalimuot na proseso na nangangailangan ng 521 na pag-ulit upang ganap na ma-initialize ang mga subkey at S-box. Ginagawa ito sa pamamagitan ng paulit-ulit na pag-encrypt ng isang bloke ng mga zero at pagpapalit ng mga halaga sa mga subkey at mga kapalit na kahon.
Dahil sa pagiging kumplikadong ito sa pangunahing henerasyon, pinipigilan ng Blowfish ang mga pag-atake batay sa mga paulit-ulit na pattern ng data.
Mga kalamangan at kawalan ng Blowfish
Kalamangan
- Mataas na bilis ng pag-encrypt at pag-decryption.
- Mga key ng variable na haba.
- Libre para sa pagpapatupad.
- Matatag na seguridad na walang mga ulat ng mga kritikal na kahinaan.
Disadvantages
- 64-bit blocks, na hindi gaanong secure kaysa sa 128-bit blocks na ginagamit ng AES.
- Ang pagpapatupad nito ay maaaring maging kumplikado dahil sa pangunahing proseso ng pagsisimula.
Blowfish kumpara sa iba pang mga algorithm ng pag-encrypt
Nakikipagkumpitensya ang Blowfish sa iba pang mga algorithm tulad ng DES, Triple DES, at AES . Kung ikukumpara sa DES, nag-aalok ang Blowfish ng mas mahusay na seguridad at mas malawak na kakayahang umangkop dahil sa pabagu-bagong haba ng key nito.
Gayunpaman, ang AES , kasama ang 128-bit blocks at mas na-optimize na istruktura, ay pumalit sa Blowfish sa karamihan ng mga modernong aplikasyon. Ang isang pinahusay na alternatibo sa Blowfish ay ang Twofish , na dinisenyo ng parehong may-akda bilang isang kandidato para sa pamantayan ng AES.
Ang pag-encrypt ng Blowfish ay nananatiling isang praktikal na opsyon sa ilang partikular na lugar kung saan prayoridad ang seguridad at bilis. Ang disenyo nito na walang patent at modular na istraktura ay ginagawa itong kaakit-akit para sa mga pagpapatupad kung saan ang flexibility ay susi. Bagama't naging popular ang AES, nananatiling isang kapaki-pakinabang na tool ang Blowfish sa mga kapaligiran na nangangailangan ng mabilis at maaasahang pag-encrypt.