2. BLOWFİSHAlgoritmaSimetrik şifreleme algoritmasıdır.Şifreleme ve deşifreleme işlemlerinde aynı anahtarlar kullanılır.Blok şifreleme yöntemi kullanılmaktadır.Blowfish’te veriler 64 bitlik bloklar halinde şifrelenir.Blowfish’te 32 bitlik 18 adet alt anahtar bulunmaktadır: P1, P2, … P18F fonsiyonu için 4 adet S-Box kullanılır.
3. Veriler, basit bir fonksiyonun 16 kez kullanılmasıyla şifrelenir. Her turda anahtar bağımlı permutasyon ve veriye bağımlı yer değiştirme işlemleri yürütülür.BLOWFİSHAlgoritma64 bitlik açıkveri 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ç P’ değeri olur ve F fonksiyonuna gönderilir.F fonksiyonundan dönen değer ile 32 bitlik sağ taraftaki blok XOR işlemine girer. Buradan çıkan sonuç F’ değerini alır.Son olarak sol taraftaki P’ değeri yeni turda sağ blok, sağ taraftaki F’ değeri de sol blok kabul edilerek, aynı işlemler 15 tur daha tekrar edilir.
4. BLOWFİSHAlgoritmaSonuç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. P(16)’ değeri ile P(17) değeri XOR işlemine sokulur. F(16)’ değeri ile de P(18) 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.
5. BLOWFİSHAlt Anahtarların BulunmasıBlowfish algoritması 18 farklı alt anahtar (P) kullanmaktadır.P dizisinin başlangıç değerleri pi sayısının ilk 3 rakamı hariç hexadecimal dijitlerinden türetilen değerlerle elde edilir. (Örn:0x243f6a88)Daha sonra 128 bitlik gizli anahtarımız 32 bitlik olmak üzere 4 farklı blok haline getirilir. Bunlara (K1,K2,K3,K4) diyelim.K dizisi elemanları sırası ile P dizisi elemanları ile XOR lanır. Bu işlemden çıkan sonuçlar ise yine P dizisi elemanlarını ifade eder.
6. BLOWFİSHAlt Anahtarların BulunmasıDaha sonra sadece ‘0’ lardan oluşan bir metin(T) Blowsifh algoritmasına sokulur. Bu algoritma sonucunda gelen 64 bitlik metin (T) 32 bit, 32 bit olmak üzere 2 parçaya ayrılır. İlk 32 bitlik dizi P(1) in, ikinci 32 bitlik dizide P(2) nin yeni değerleridir.T metni tekrar algoritmaya gönderilir, fakat bu sefer algoritmada yeni P elemanları kullanılır, algoritmadan dönen değerler P dizisinin 3. ve 4. elemanlarıdırlar.Bu işlem P dizisi tamamlanıncaya kadar (P=18) tekrarlanır.
7. BLOWFİSHGizli Kutuların Bulunması (S-Box)Gizli kutular 4 adettir ve 8*32 boyutlarındadır.İlk değerleri Pi sayısından elde edilen değerleri içerir.P dizisinde son iki elemanı (T) yine algoritmaya gönderilir. Buradan dönen sonuç 1. gizli kutunun ilk iki elemanını ifade eder.(S(0,0) ve S(0,1))İlk elemanı oluşturan metin (T) tekrar algoritmaya gönderilir bu sefer algoritmada yeni S değerleri kullanılır ve bu işlem sonucunda dönen değer 3. ve 4. elemanları oluşturur.
8. BLOWFİSHGizli Kutuların Bulunması (S-Box)Bu işlem 1. kutu tamamlanıncaya kadar devam eder. (256 deger)Bu döngü geriye kalan diğer 3 gizli kutu içinde gerçekleştirilir.Tek farkı ilk gönderilicek metin (T) bir önceki kutunun son iki elemanın değerleridir.Tüm bu döngü işlemleri sonunda pi sayısından elde edilen geçici değerlerin yerini asıl değerler alacaktır.