Salih ÖZTÜRK - Karaelmas Kriptoloji Takımı
Zonguldak Bülent Ecevit Üniversitesi - salihenry7806@gmail.com
BLOWFİSH NEDİR
Blowfish, Bruce Schneier tarafından 1993 yılında tasarlanmış, çok sayıda şifreleyici ve şifreleme ürününe dahil olan; anahtarlanmış, simetrik bir blok şifreleyicidir. Blowfish ile ilgili olarak şu ana kadar etkin bir şifre çözme analizi var olmasa da, artık AES ya da Twofish gibi daha büyük ebatlı blok şifreleyicilerine daha fazla önem verilmektedir.Schneier; Blowfish'i bir genel kullanım algoritması olarak, eskiyen DES'ın yerini alması için ve diğer algoritmalarla yaşanan sorunlara çözüm olarak tasarlamıştır.O zamanlarda,birçok diğer tasarım lisanslı, patentle korunmakta ya da devlet sırrı olarak saklanmaktaydı.Bruce Schneier, bunu şu şekilde ortaya koymaktadır:
“ Blowfish, patentsizdir ve tüm ülkelerde bu şekilde yer alacaktır.
Algoritma genel kamusal alanda bulunmakta olup, herkes
tarafından özgürce kullanılabilir.
BLOWFİSH ŞİFRELEME ÖZELLİKLERİ
BLOWFİSH ÇALIŞMA PRENSİBİ
Çalışma prensibine geçmeden önce bilgileri tazelemekte fayda var.
1. Blok boyutu : 64 bit
2. Anahtar boyutu : 32 bit ila 448 bit değişken boyutu
3. Alt anahtar sayısı : 18 [P-dizisi]
4. Tur sayısı : 16
5. S-box sayısı : 4 [her biri 32 bitlik 512 girişe sahiptir]
Ana hatlarıyla çalışma şekli bu şekildedir.
Alt anahtarların oluşturulması:
Detaylı olarak çalışma şekline bakacak olursak;
64 bitlik açık veri 32 bitlik iki parçaya ayrılır.Sol taraftaki 32 bitlik blok ile P dizisinin ilk elemanı XOR işlemine girer.Buradan çıkan sonuç P1’ değeri olur ve F fonksiyonuna gönderilir. F fonksiyonundan çıkan değer ile 32 bitlik sağ araftaki blok XOR işlemine girer. Buradan çıkan sonuç F1’ değerini alır. Son olarak sol taraftaki P1’ değeri yeni turda sağ blok, sağ taraftaki F1’ değeri de sol blok kabul edilerek, aynı işlemler 15 tur daha tekrar edilir. Sonuçta P’ ve F’ler P dizisinin en son 2 girişine(17. ve 18. Giriş) kadar fonksiyona değer olarak gönderilir. Son turda yer değiştirme işlemi gerçekleşmez. P16’ değeri ile P17 değeri XOR işlemine sokulur. F16’ değeri ile de P18 değeri XOR işlemine sokulur. Son olarak sol taraftaki 32 bit veri ile sağ taraftaki 32 bit veri birleştirilerek 64 bit şifrelenmiş veri elde edilir.
F FONKSİYONUNUN AKIŞ ŞEMASI
F fonksiyonunun değeri ; (( S1(B1) + S2(B2)) XOR S3(B3)) + S4(B4) olur. Toplama işlemi burada mod 2^32 ye göre yapılır.
KAYNAKÇA
https://medium.com/ltunes/si̇metri̇k-blok-şi̇frelemealgori̇tmalari-ve-yapisi-c76fbe80ed4
https://www.slideshare.net/enescaglar/blowfish-ifreleme-algoritmas
https://www.geeksforgeeks.org/blowfish-algorithm-with-examples/
https://tr.wikipedia.org/wiki/Blowfish
https://www.morf.lv/introduction-to-data-encryption