Blowfish
Kriptografide Blowfish, 1993 yılında Bruce Schneier tarafından yapılan ve 1993'ten beri çok sayıda şifreleme ürününe dahil edilen (bir araya getirilen) anahtarlı, simetrik bir blok şifredir. Blowfish yazılımda iyi bir şifreleme oranına sahiptir ve 2008 yılına kadar hiçbir kriptanalitik saldırı modeli bulunamamıştır. Ancak, AES blok şifre algoritması artık daha fazla ilgi görmektedir.
Schneier Blowfish'i genel amaçlı bir algoritma olarak, eski DES algoritmasının yerine kullanılmak ve diğer şifreleme algoritmalarının sorunlarını ve zorluklarını ortadan kaldırmak için yaptı. Blowfish piyasaya sürüldüğünde, diğer birçok algoritma tescilli ya da sır niteliğindeydi. Schneier, "Blowfish patentsizdir ve tüm ülkelerde öyle kalacaktır. Algoritma bu vesileyle kamu malı haline getirilmiştir ve herkes tarafından serbestçe kullanılabilir."
Tasarımın temel özellikleri arasında anahtara bağlı S-kutuları ve çok karmaşık bir anahtar programı bulunmaktadır. Blowfish, anahtar değiştirme dışında birçok kişi tarafından kullanılan en hızlı blok şifrelerden biridir. Her yeni anahtarın ön işleme tabi tutulması gerekir ki bu da yaklaşık 4 kilobayt metnin şifrelenmesi ile aynı süreyi alır ki bu da diğer blok şifrelere kıyasla çok yavaştır. Bu, bazı uygulamalarda (ilk akıllı kartlar gibi en küçük gömülü sistemlerde) kullanımını durdurur, ancak diğer uygulamalarda bir sorun değildir. Uygulamalardan birinde, aslında iyidir: OpenBSD'de kullanılan şifre kırma yöntemi, Blowfish'ten gelen ve yavaş anahtar programından yararlanan bir algoritma kullanır; fikir, gereken ekstra hesaplama çabasının sözlük saldırılarına karşı koruma sağlamasıdır. Anahtar güçlendirmeye bakınız.
Blowfish 64 bit blok boyutuna ve 0'dan 448 bite kadar değişken bir anahtar uzunluğuna sahiptir. 16 turlu bir Feistel şifresidir ve anahtara bağlı büyük S-kutuları kullanır. Yapı olarak sabit S-kutuları kullanan CAST-128'e benzer.
1996'da Serge Vaudenay, kırılması için 28r + 1 bilinen düz metne ihtiyaç duyan bir bilinen düz metin saldırısı buldu, burada r tur sayısıdır. Ayrıca, sadece 2 4r + 1bilinen düz metin ile aynı saldırı tarafından tespit edilebilen ve kırılabilen bir zayıf anahtar sınıfı da bulmuştur. Bu saldırı normal Blowfish'e karşı kullanılamaz; anahtara bağlı S-kutularının bilindiğini varsayar. Vincent Rijmen, doktora çalışmalarında, dört tur kırabilen ve daha fazlasını kıramayan ikinci dereceden bir diferansiyel saldırı tanıttı. Hala 16 turun tamamını kırmak için kaba kuvvetle arama dışında bilinen bir yol yoktur. Yayınlanan C kodlarından birinde 1996 yılında bir işaret genişletme hatası bulunmuştur.
Blowfish'in tam yuvarlak versiyonu üzerinde 2008 yılına kadar kamuya açık olarak bilinen iyi bir kriptanaliz yoktur. Ancak 2007 yılında Bruce Schneier, Blowfish hala kullanılıyor olsa da bunun yerine yeni Twofish algoritmasının kullanılmasını önerdiğini belirtmiştir
İlgili sayfalar
- Gelişmiş Şifreleme Standardı
- eSTREAM - AB tarafından yürütülen yeni akış şifrelerinin bir değerlendirmesi.
- Twofish
- MacGuffin
Sorular ve Yanıtlar
S: Blowfish nedir?
C: Blowfish, 1993 yılında Bruce Schneier tarafından oluşturulan anahtarlı, simetrik bir blok şifredir. O zamandan beri birçok şifreleme ürününe dahil edilmiştir.
S: Blowfish ne için yapıldı?
C: Blowfish, eski DES algoritmasının yerini almak ve diğer şifreleme algoritmalarının sorunlarını ve zorluklarını ortadan kaldırmak için genel amaçlı bir algoritma olarak yapılmıştır.
S: Blowfish için anahtar uzunluğu ne kadar olabilir?
C: Blowfish için anahtar uzunluğu 0 ile 448 bit arasında değişebilir.
S: Blowfish'in tasarımının bazı özellikleri nelerdir?
C: Tasarımın bazı özellikleri arasında anahtara bağlı S-kutuları ve çok karmaşık bir anahtar programı bulunmaktadır.
S: Blowfish'in tam yuvarlak versiyonu üzerinde bilinen herhangi bir kriptanaliz var mı?
C: 2008 itibariyle, 16 turun tamamını kırmanın kaba kuvvetle arama dışında bilinen bir yolu yoktur.
S: Serge Vaudenay Blowfish'e karşı ne tür bir saldırı buldu?
C: Serge Vaudenay, kırmak için 28r + 1 bilinen düz metin gerektiren bir bilinen düz metin saldırısı buldu, burada r tur sayısıdır. Ayrıca, aynı saldırı tarafından yalnızca 24r + 1 bilinen düz metinle tespit edilebilen ve kırılabilen bir zayıf anahtar sınıfı buldu.
S: Bruce Schneier artık Blowfish yerine Twofish kullanılmasını öneriyor mu?
C: Evet, Bruce Schneier, DES gibi eski algoritmalara ve hatta AES gibi daha yeni algoritmalara kıyasla geliştirilmiş güvenlik önlemleri nedeniyle Blowfish yerine Twofish kullanılmasını önermektedir.