SlideShare a Scribd company logo
1 of 26
Siber Güvenlik ABD
Kriptoloji ve Güvenlik
Protokolleri Dersi
Final
Blowfish Algoritması, Kriptanalizi ve Algoritmaya
Yönelik Saldırı Yöntemleri
Uğur Günay
2
TDK kriptoloji,
isim
Gizli yazılar, şifreli belgeler bilimi veya incelemesi.
Kriptoloji Nedir? Kısa Tarihçesi
• Tanım
• Etimoloji
Kelime dilimize Fransızcadan geçmiş gözükse de;
İngilizce kökeni Antik Yunancadan gelmektedir «kryptos» gizli ve «-logia» eki çalışma
anlamına gelmekte, kriptolojinin iki ana dalından biri olan kriptografi deki «graphein»
eki ise yazmak anlamına gelmektedir.
[1] https://www.sozluk.gov.tr
[2] https://en.wikipedia.org/wiki/Cryptography
Tarihi M.Ö. 1900’lerde Mısırlılara kadar dayanan şifreleme bilimi, en büyük önemi 2. Dünya Savaşı ile birlikte kazanmaya başlamıştır.
Bu tarihten günümüze kadar, bilgi ve bilgisayar sistemlerinin gelişmesi ve iletişimin çağımızın en büyük gerekliliklerinden biri
olmasıyla birlikte, vazgeçilmez bir hal almaya başlamıştır.
3
Bilgi Güvenliği ve Kriptolojinin Bilgi Güvenliğindeki Yeri
Bilgi varlıklarının yetkisiz erişim, kullanım, paylaşım, değiştirilme ve imhaya karşı korunmasıdır.
Veri bütünlüğünün
korunması
Yetkisiz erişimin
engellenmesi
Mahremiyet ve
gizliliğin korunması
Kriptoloji de temel bilgi güvenliği koşulları şunlardır;
o İnkar edilemezlik (Non-Repudiation),
o Doğrulama (Authentication – Entity – Data Source)
o Gizlilik (Confidentiality)
o Veri Bütünlüğü (Data Integrity)
Kriptoloji
Kriptografi
Simetrik
Şifreleme
Blok
Şifreleme
Akış
Şifreleme
Asimetrik
Şifreleme
Şifreleme
Protokolleri
Kriptoanaliz
Kriptoloji’yi ana ve alt dallarına göre açıklamak için ise yandaki diyagram
hazırlanmıştır.
4
Blowfish Algoritması’nın Anlaşılması Öncesinde
Bilinmesi Gerekenler
• Simetrik Şifreleme nedir?
• Blok Şifreleme nedir?
• Feistel Ağı nedir?
Simetrik Şifreleme Nedir?
Simetrik Şifreleme; gizli anahtarlı şifreleme olarak da adlandırılır. Şifreleme ve şifre çözme işlemleri aynı
anahtarlama yöntemleri ile yapılır, gönderen ve alıcı taraf aynı şifreleme algoritmasını kullanmalıdır.
Bu yöntemde anahtar yönetimi iki şekildedir;
• One to Many : Gönderici ve her alıcı arasında aynı anahtar kullanılır.
• Many to Many : Her gönderici ve her alıcı arasında farklı anahtar kullanılır.
Anahtar Sayısı=1 Anahtar Sayısı=n.(n-1)/2
Simetrik şifrelemede Many to Many
yöntemi daha güvenli ancak daha zordur.
Her kişi arasında yapılacak şifreleme
sebebiyle, örneğin 10 kişi arasında
gerekecek şifreleme sayısı, 10.9/2 olarak
yani 45 olarak hesaplanır. Ayrıca birimler bu
şifrelemeleri kimlerle yaptıklarını kayıt
altında tutmalıdırlar.
6
Fiestel Ağı (Network)
Feistel ağları, ticari olarak ilk kez 1973'te Horst Feistel ve Don Coppersmith tarafından tasarlanan IBM'in Lucifer şifresinde
görülmüştür. Feistel ağları, ABD’de Federal Hükümetin DES'i (NSA tarafından yapılan değişikliklerle Lucifer tabanlı bir
şifre) kabul ettiğinde saygınlığı artmıştır. Feistel yapısının yinelemeli yapısı, şifreleme sisteminin donanımda
uygulanmasını kolaylaştırır.
Feistel ağının en önemli avantajı şifreleme ve şifre açma işlemlerinin benzer
veya aynı olmasıdır. Bu ağda, iki işlem arasındaki tek fark anahların sırası
olup, bu sayede kodlama işlemindeki çalışmayı yarı yarıya azalmaktadır.
Kullanılan en temel 3 işlem ise;
• Doğrusal karıştırma
• Yerine koyma şifrelemesi (subsitution cipher)
• Verinin bitlerinin yer değiştirmesi (blok şifreleme olarak belirtilebilir)
7
Blok Şifreleme Modları
Blok şifrelemede, plaintext (açık metin) bloklar halinde şifrelenir.
Blok şifreleme modları ,
• Electronic CodeBook (ECB) Mode : PT’nin her bir bloğu anahtar ile şifrelenir ve CT çıkar.
• Chain Block Chaining (CBC) Mode : Başlangıç vektörüyle XOR’lanan PT, şifreleme sonrasında sonraki bloğunu PT ‘si
ile XOR işlemine dahile edilerek zincirleme şekilde şifreleme gerçekleştirilir.
• Output FeedBack (OFB) Mode : CBC’den farklı olarak, öncelikle başlangıç vektörü şifreleme fonksiyonuna tutulur,
bu sonuç PT ile XOR’lanır çıkan CT sonraki adımda yine önce şifrelenir sonra PT ile XOR’lanarak zincir kurulur.
• Cipher FeedBack (CFB) Mode : Yöntem olarak OFB’ye benzer ancak farklılık, başlangıç vektörünün şifreleme
sonrasında PT ile XOR’lanmadan, sıradaki şifreleme bloğuna aktarılması şeklinde gerçekleşir.
• Counter (CTR) Mode : Her adımda başlangıç vektörüne benzer bir tanım, sayaç numarası (counter) ile
birleştirilerek şifrelenir devamında bu metin, PT ile XOR’lanır ve CT oluşturulur. Sonraki adımda tanım (nonce) sabit
tutulurken, sayaç numarası bir artırılır ve işleme devam edilir.
Tanımlanan modların formüllerine dair detay ise aşağıdaki tabloda paylaşılmıştır.
Mod Formulas Ciphertext
(ECB) Yi = F(PlainTexti, Key) Yi
(CBC) Yi = PlainTexti XOR Ciphertexti−1 F(Y, Key); Ciphertext0=IV
(CFB) Yi = Ciphertexti−1 Plaintext XOR F(Y, Key); Ciphertext0 = IV
(OFB) Yi = F(Yi−1, Key); Y0 = F(IV, Key) Plaintext XOR Yi
(CTR) Yi = F(IV + g(i), Key); IV = token() Plaintext XOR Yi
8
Blowfish Algoritması Nedir? Kısa Tarihçesi
1993 yılında Bruce Schneier tarafından tasarlanan Blowfish, simetrik bir anahtar şifreleme algoritmasıdır. Feistel
ağını kullanan Blowfish, 64 bitlik bloklarla şifreleme sağlamaktadır. DES şifreleme algoritmasına alternatif olması
için tasarlanmıştır.
İlk olarak Cambridge Algoritmaları Çalıştayı'nda tasarımcısı tarafından sunulan algoritma, en başından beri ücretsiz
ve patentsiz, lisanssız ve kopyalanmamış bir şifreleme yöntemi olarak tasarlanmıştır.
Avantajları;
• Ücretsizdir.
• Anahtar programı tamamlandıktan sonra az sayıda döngü ve döngü
işleminin basitliği sebebiyle nispeten hızlı bir şifreleme yöntemidir.
• Donanım ile gerçeklenmesi kolaydır.
• Sadedir (Şifrelemede sadece «XOR» ve «add» kullanır.)
Dezavantajları;
• Şifrelemeyi kullanırken 232’den fazla veri öbeğini şifrelemek,
algoritmanın zayıflayıp doğum günü saldırılarıyla bilgi sızdırılmasına
sebep olabilir.
9
Blowfish Şifreleme Algoritması
Algoritma iki bölümden oluşmaktadır;
• bir anahtar genişletme bölümü
• bir veri şifreleme bölümü.
Anahtar genişletmesi (P-array), en fazla 56 bayt (448 bit) değişken uzunluklu bir anahtarı, toplam 4168 baytlık
birkaç alt anahtar dizisine dönüştürür.
Blowfish algoritmasında, 16 tur bulunmakta ve her tur, anahtara bağımlı bir permütasyona, anahtara ve verilere
bağlı bir ikameden (S-Box yada Substitution Box) oluşmaktadır. Tüm işlemler XOR ve 32-bit sözcüklerden oluşan
eklemelerdir. (Fonksiyon açılımında detaylandırılmıştır).
10
Blowfish Algoritması
Alt anahtarlar:
Blowfish; büyük numaralı alt anahtarlar kullanmaktadır. Bu anahtarlar herhangi bir veri şifreleme veya şifre çözme
işleminden önce hesaplanmalıdır.
Algoritma iki alt anahtar dizisini tutar:
• 18 girişli P dizisi (P-array)
• Dört adet S kutuları (S-Boxes)
P-dizisinin, her turda bir adet girişi kullanılır ve son turdan sonra, veri bloğunun her bir yarısı, kullanılmayan kalan iki P
girişinden biriyle XOR edilir. P dizisi 18 adet 32-bit alt anahtardan oluşur (P1, P2, ..., P18 veya P0, P1, ..., P17)
S-kutuları 8-bit girişi kabul eder ve 32-bit çıkış üretir.
11
Blowfish Algoritması
Alt Anahtarların Oluşturulması:
Blowfish Algoritması’nda alt anahtarların hesaplanması şu şekilde açıklanabilir;
1. Önce P-dizisini, ardından dört S-kutusu sırasıyla sabit bir dizeyle başlatılır. Bu dize Pi’nin* onaltılık (Pi sayısının
hexadecimal- 0-9,a-f) basamaklarından oluşturulur. (*Pi sayısı içerisinde tekrar etmeyen serilerden oluşur.)
2. Anahtarın ilk 32 biti ile yapılan XOR işlemi sonrası P1, anahtarın ikinci 32 biti ile XOR P2 .... anahtarın tüm bitleri için
P-dizisi anahtar bitleri ile XOR’lanarak anahtarlama işlemi devam eder. Bu şekilde P anahtar dizisi oluşturulur.
3. Her birinde 256 giriş bulunan dört adet 32 bit S kutusu vardır:
S(1,0),S(1,1) ... S(1,255); S(2,0),S(2,1) ... S(2,255); S(3,0),S(3,1) ... S(3,255); S(4,0),S(4,1) ... S(4,255)
4. Sürekli değişen Blowfish algoritmasının çıktısıyla, P dizisinin tüm girişleri ve ardından dört S-kutusunu da sırayla
değiştirerek işleme devam edilir. Toplamda, gerekli tüm alt anahtarları oluşturmak için 521 yineleme gereklidir.
5.Uygulamalar, bu türetme işlemini birden çok kez yürütmek yerine alt anahtarları depolayabilir. Ancak depolanan alt
anahtarları sürekli kullanmak zafiyete yol açabilir.
12
Blowfish Algoritması
Şifreleme ve Şifre Çözme:
Blowfish’te, 16 tur (döngü) vardır. Giriş, 64 bitlik bir veri elemanıdır. Örnek
verilirse, açık metin (plaintext) «X» olarak varsayılsın
«X» sağ ve sol olmak üzere, 32-bit yarıya bölünür:
xL ile xR
Sonra, i = 1 ila 16 için:
P alt anahtar dizisine, önceki sayfada anlatıldığı üzere, önceden hesaplanan ve
pi sayısının onaltılık tabandaki değerlerinden biri atanarak başlanır.
xL = xL XOR P(i)
xR = F (xL) XOR xR
13
Blowfish Algoritması
F(xL) fonksiyonuna değinecek olursak, bu fonksiyon, yanda
detaylandırıldığı üzere, önceki adımlarda P(i) ile XOR’lanan sol kısmı
(xL) 4 adet 8’er bitlik çeyreklere böler ve bu çeyrekleri S-Kutularına
girdi olarak kullanarak 32 bit olarak çıkarır. Çıkarılan 32 bitlik
verilerin kullanımından bahsedecek olursak;
Öncelikle «S-Box1» ile «S-Box2» toplama (add – mod232) işlemine
tabi tutulur, çıkan sonuç «S-Box3» ile XOR işlemine tabi tutulur.
Fonksiyonun son aşamasında ise XOR’lanan kısım «S-Box4» ile tekrar
toplama (add – mod232) işleminden geçirilerek 32 bit uzunluğunda
bir çıktı oluşturulur.
Bu fonksiyonun kullanımı sonrasında ise sağ blok (xR) bu çıktıyla
XOR’lanır.
14
Blowfish Algoritması
Her döngü içinde yapılan tüm bu işlemler sonrasında başlangıçta solda
olan blok xL ile sağdaki blok xR, yer değiştirilerek sonraki adıma geçilir.
On altıncı turdan sonra, takas işlemini geri almak için xL ve xR'yi tekrar
değiştirilir. Bu turun sonunda ise
xR = xR XOR P17 (Sağ blok, başlangıçta oluşturulan 17 numaralı anahtar
ile XOR’lanarak son halini alır)
xL = xL XOR P18 (Sol blok, başlangıçta oluşturulan 17 numaralı anahtar
ile XOR’lanarak son halini alır)
işlemleri yapılır ve son olarak şifreleme metnini almak için xL ve xR'yi
yeniden birleştirilir. Yandaki şekilde de belirtildiği üzere son işlem
sonrası birleştirilen 32’şer bitlik veriler 64 bit şifreli metini (CipherText)
oluşturur.
xR xL
xL xR
cRcL
Şifre çözme, şifreleme ile tamamen aynıdır, ancak kullanılan anahtarlar (P1, P2, ..., P18) bu kez ters sırada kullanılır.
15
Blowfish Algoritması Kriptanalizi
Metin Şifreleme – Çığ Etkisi Analizi
Kriptanalize karşı sunulan herhangi bir şifreleme algoritmasının direnci çığ etkisi ile ölçülür , yani bir bit düz metin
veya anahtarda bile küçük bir değişiklik, şifre metinlerini birçok bit sayısına göre önemli ölçüde farklılaştırır.
Deneysel olarak düz metinler için bir bit farklılık gösteren iyi çığ etkisi gösterdiği bulunmuştur, her turun sonuçları
aşağıda verilmiştir.
Görüldüğü üzere 0,3 ile 0.30000000001 arasındaki farklılık döngülerde izlenmiş ve ilişkili bir durum görülmemiştir.
Tur Açık Metin1=0.3 Açık Metin2=0.30000000001
1 40F6CB26BBE4776A 9BB99294B01BBD8E
2 2652FE3338F04A0B 218A90959BBB3291
3 43B1848AF40D9DC5 F06B6704DE8E5461
4 E46F1E6847AF2AA FD8DABEB9D669997
5 62C6F5248A4A6BCC 7AB0BA1FD2EB559
6 15687B1D6E4C2941 173A04AF4BE303AF
... ... ...
16 776E8A9FB8F75872 4AA90ED7A7F496C6
16
Anahtar Uzayı Analizi
Herhangi bir kriptografik algoritmanın gücü, kaba kuvvet saldırısını olanaksız kılmak için anahtar alanının
büyüklüğüne bağlıdır.
P dizilerinin ve S kutularının değerleri, başlangıç değerine ve kaotik denklemle ilişkili ilgili parametrelerine bağlıdır.
Başlangıç değerinin sayısı 0.2 ila 0.8 arasında değişebilir ve bu nedenle anahtar boşluk, yaklaşık sonsuz derecede
büyük olan hesaplama makinesinin destekleyeceği logaritmanın ondalık kısmındaki, ondalık basamak sayısına
bağlıdır ve bu da kaba kuvvet saldırısını hesaplanabilir hale getirir.
Yapılan hesaplamalarda farklı atlama değerine sahip aynı başlangıç değeri için bile üretilen P dizileri ve S kutuları
tamamen farklıdır ve doğrusal değildir.
Aşağıdaki grafikte de görüleceği üzere P dizisi ve S kutusu için 4 farklı başlangıç değeri seçilerek yapılan
hesaplamada farklılık ve grafiklerin doğrusal olmadığı anlaşılacaktır.
Blowfish Algoritması Kriptanalizi
17
Anahtar Uzayı Analizi
Blowfish Algoritması Kriptanalizi
18
Anahtar Duyarlılık Analizi
Blowfish algoritması, kaotik denklem için farklı başlangıç değerleri ile denenerek, sonuçların düz metin ile
şifrelenmiş metin arasında lineer olmayan bir ilişki olduğunu ve böylece diferansiyel kriptanalize karşı yüksek direnç
sağladığını gösterir.
Örnekten anlaşılacağı üzere ilişkili başlangıç değerlerinin, şifreleme sonuçlarının arasında bir ilişki tespit
edilememiştir.
Blowfish Algoritması Kriptanalizi
Örnek Başlangıç Değeri Şifreleme Sonucu
Örnek 1 0.43728423 A8A81271EC3F92D0
Örnek 2 0.43728423008 1F26570DBCEFC409
Örnek 3 0.43728422999 1DEEDFBD12A21B26
Örnek 4 0.4372846578 9F2E0B32FA1A1D5D
19
Resim Şifreleme
Algoritmanın imajları şifrelemede etkinliğini ölçebilmek amacıyla, 1 GB RAM'li P(IV) işlemcinin sistem
yapılandırması ile Windows ortamında Mat Lab 6.0'da uygulama gerçekleştirilmiştir. Denenen algoritma, öncelikle
görüntü işlemeyi, görüntü analizini ve makine görüşünü desteklemek için sayısallaştırılmış görüntülerin bir
koleksiyonu olan USC-SIPI deposunda çeşitli görüntülerle test edilmiştir.
Soldaki orijinal resimler ve sağdaki şifrelenmiş bölümden test sonucu açıkça başarılıdır.
Blowfish Algoritması Kriptanalizi
20
Algoritmaya doğru en bilindik atak yöntemi, doğum günü ikilemi olarak bilinen yöntem ile sağlanmıştır.
64 bit bloklu bir blok şifresi için doğum günü sınırı, uygulamada kolayca erişilebilen sadece 32 GB'a karşılık gelir.
Sabit bir anahtar altında şifrelenen veri miktarı bu sınıra yaklaştığında, çalışma modunun güvenlik garantileri
parçalanmaya başlar. Bu sorun nedeniyle, anahtarların her zaman 2n/2 bloktan önce değiştirilmesi gerekir ve bu
gereklilik kriptograflar tarafından iyi bilinir. Ancak, saldırılar bilinen düz metin gerektirdiği ve yalnızca çok az bilgi
ortaya çıkardığı için uygulayıcılar tarafından genellikle en aza indirilir. Gerçekten de, standart kuruluşlar anahtarı
yalnızca 2n/2 bloktan hemen önce değiştirmeyi önerir. Ancak birçok uygulama bir anahtarın kullanımında herhangi
bir sınırlama getirmez.
Özellikle, büyük miktarda verinin aynı anahtar altında potansiyel olarak şifrelendiği 64 bit bloklu, blok şifrelemelerin
birçok kullanımı vardır. Varsayılan şifre olarak Blowfish kullanan OpenVPN uygulamasında, hızlı bağlantı ile 32 GB
veri bir saatten daha kısa sürede aktarılabilir
Blowfish Algoritmasına Yönelik Ataklar
21
Blok Şifresi Çarpışmalarını Kullanma - CBC modu
Uygulamada, blok şifreler değişken uzunluktaki
mesajlarla başa çıkmak için bir çalışma modu ile
kullanılır. CBC modu, en eski şifreleme modlarından
biridir ve hala yaygın olarak kullanılmaktadır.
Örnek olarak M mesajı seçilir ve mi bloklarına
bölünür. Devamında şu şekilde şifrelenir:
ci = Ek (mi ⊕ Ci-1),
burada c-1 genellikle (IV-initialization vector) olarak
gösterilen bir başlatma değeridir.
Blowfish Algoritmasına Yönelik Ataklar
22
Blok Şifresi Çarpışmalarını Kullanma
CBC'nin 2n/2 mesaj bloğuna kadar güvenli olduğu kanıtlanmıştır. Öte yandan CBC'ye karşı basit bir doğum günü saldırısı
vardır.
Aynı anahtarla (aynı mesajda veya farklı mesajlarda) şifrelenmiş 2n/2 mesaj bloğundan sonra, ci = cj olmak üzere iki şifre
bloğu arasında bir çarpışma beklenmektedir. Ek bir permütasyon olduğundan, çıktıdaki bir çarpışma, girişlerin aynı olduğu
anlamına gelir:
(mi ⊕ ci-1 = mj ⊕ cj-1)
Sonrasında ise iki düz metin bloğunun XOR’unu ortaya çıkarır:
mi ⊕ mj = ci-1 ⊕ cj-1.
Blowfish Algoritmasına Yönelik Atak
23
Uygulamalı Etkisi
Birçok bağlamda, iki düz metin bloğu arasındaki yalnızca xor'u kurtarmak pratik bir etkiye sahip bir saldırı için yeterli değildir.
Ancak, aşağıdaki koşullar yerine getirildiğinde bir saldırı yapılabilir:
• sabit bir sır tekrar tekrar gönderilir;
• düz metnin bir kısmı bilinmektedir.
Bu durumda, bir çarpışmanın sabit sır ile bilinen düz metin arasında xor'a sızması ihtimali vardır; bu derhal sırrı açığa çıkarır.
Daha kesin olarak, s + t ≥ n ile sırrın 2s kopyası ve bilinen 2t bloğu şifrelendiğinde, bu saldırının yüksek olasılıkla başarılı
olması beklenir.
Özellikle, her istekte bir kimlik doğrulama jetonu (token) gönderildiğinde şifreli HTTP bağlantılarının güvenliği için geçerlidir.
Tarayıcıdaki bir adam saldırganı, istekteki çoğu üstbilginin saldırgan tarafından tahmin edilebilir veya hatta kontrol edilebilir
olduğu gerçeğini kullanarak çok sayıda istek oluşturabilir ve kimlik doğrulama jetonunu ele geçirebilir.
Blowfish Algoritmasına Yönelik Atak
24
Genel Değerlendirme ve Görüşler
Sonuç
Deneysel sonuçlar, algoritmanın ile güvenlik seviyesini korurken, yüksek oranda doğrusal olmayan S kutuları ve P
dizileri ürettiğini açıkça göstermektedir.
Metin şifreleme kalitesi, anahtar duyarlılık testleri, anahtar boşluk analizi ve çığ etki analizi ile ölçülmüştür.
Algoritma, azaltılmış bir zaman karmaşıklığında blowfish'de kullanılan P dizileri ve S kutularının üretimi için
karmaşık teori kullanarak kaliteli şifre metinleri üretebilmektedir.
Görüntü Şifreleme için deneysel sonuçlara dayanarak, önerilen şifrenin minimum bellek gereksinimi ve
hesaplama süresi ile yüksek şifreleme kalitesi sunduğu gözlenebilir.
Ayrıca algoritma, Brute force saldırılarına ve orijinal ve şifreli görüntülerin istatistiksel kripto analizine karşı
yeterli direnç sunduğu anlaşılmaktadır.
Ancak blok değeri sebebiyle doğum günü açıklığına maruz kalabilmektedir.
25
Teşekkürler...
26
Kaynaklar
https://en.wikipedia.org/wiki/Blowfish_(cipher)
https://www.geeksforgeeks.org/blowfish-algorithm-with-examples/
https://www.schneier.com/academic/archives/1994/09/description_of_a_new.html
https://sweet32.info/
https://www.splashdata.com/splashid/blowfish.htm
https://www.youtube.com/watch?v=CxAfmNQG0yk
https://blog.securityevaluators.com/what-is-sweet32-4a62dca90296
https://en.wikipedia.org/wiki/S-box
https://www.schneier.com/academic/archives/1995/09/the_blowfish_encrypt.html
https://forums.ni.com/t5/LabVIEW/fpga-SCTL-s-and-Block-Memory/m-p/1665800?profile.language=en
https://www.researchgate.net/publication/276199364_Ensemble_Of_Blowfish_With_Chaos_Based_S_Box_
Design_For_Text_And_Image_Encryption

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Kriptoloji - Blowfish Algoritması - Blowfish Kripto Analizi ve Ataklar

  • 1. Siber Güvenlik ABD Kriptoloji ve Güvenlik Protokolleri Dersi Final Blowfish Algoritması, Kriptanalizi ve Algoritmaya Yönelik Saldırı Yöntemleri Uğur Günay
  • 2. 2 TDK kriptoloji, isim Gizli yazılar, şifreli belgeler bilimi veya incelemesi. Kriptoloji Nedir? Kısa Tarihçesi • Tanım • Etimoloji Kelime dilimize Fransızcadan geçmiş gözükse de; İngilizce kökeni Antik Yunancadan gelmektedir «kryptos» gizli ve «-logia» eki çalışma anlamına gelmekte, kriptolojinin iki ana dalından biri olan kriptografi deki «graphein» eki ise yazmak anlamına gelmektedir. [1] https://www.sozluk.gov.tr [2] https://en.wikipedia.org/wiki/Cryptography Tarihi M.Ö. 1900’lerde Mısırlılara kadar dayanan şifreleme bilimi, en büyük önemi 2. Dünya Savaşı ile birlikte kazanmaya başlamıştır. Bu tarihten günümüze kadar, bilgi ve bilgisayar sistemlerinin gelişmesi ve iletişimin çağımızın en büyük gerekliliklerinden biri olmasıyla birlikte, vazgeçilmez bir hal almaya başlamıştır.
  • 3. 3 Bilgi Güvenliği ve Kriptolojinin Bilgi Güvenliğindeki Yeri Bilgi varlıklarının yetkisiz erişim, kullanım, paylaşım, değiştirilme ve imhaya karşı korunmasıdır. Veri bütünlüğünün korunması Yetkisiz erişimin engellenmesi Mahremiyet ve gizliliğin korunması Kriptoloji de temel bilgi güvenliği koşulları şunlardır; o İnkar edilemezlik (Non-Repudiation), o Doğrulama (Authentication – Entity – Data Source) o Gizlilik (Confidentiality) o Veri Bütünlüğü (Data Integrity) Kriptoloji Kriptografi Simetrik Şifreleme Blok Şifreleme Akış Şifreleme Asimetrik Şifreleme Şifreleme Protokolleri Kriptoanaliz Kriptoloji’yi ana ve alt dallarına göre açıklamak için ise yandaki diyagram hazırlanmıştır.
  • 4. 4 Blowfish Algoritması’nın Anlaşılması Öncesinde Bilinmesi Gerekenler • Simetrik Şifreleme nedir? • Blok Şifreleme nedir? • Feistel Ağı nedir?
  • 5. Simetrik Şifreleme Nedir? Simetrik Şifreleme; gizli anahtarlı şifreleme olarak da adlandırılır. Şifreleme ve şifre çözme işlemleri aynı anahtarlama yöntemleri ile yapılır, gönderen ve alıcı taraf aynı şifreleme algoritmasını kullanmalıdır. Bu yöntemde anahtar yönetimi iki şekildedir; • One to Many : Gönderici ve her alıcı arasında aynı anahtar kullanılır. • Many to Many : Her gönderici ve her alıcı arasında farklı anahtar kullanılır. Anahtar Sayısı=1 Anahtar Sayısı=n.(n-1)/2 Simetrik şifrelemede Many to Many yöntemi daha güvenli ancak daha zordur. Her kişi arasında yapılacak şifreleme sebebiyle, örneğin 10 kişi arasında gerekecek şifreleme sayısı, 10.9/2 olarak yani 45 olarak hesaplanır. Ayrıca birimler bu şifrelemeleri kimlerle yaptıklarını kayıt altında tutmalıdırlar.
  • 6. 6 Fiestel Ağı (Network) Feistel ağları, ticari olarak ilk kez 1973'te Horst Feistel ve Don Coppersmith tarafından tasarlanan IBM'in Lucifer şifresinde görülmüştür. Feistel ağları, ABD’de Federal Hükümetin DES'i (NSA tarafından yapılan değişikliklerle Lucifer tabanlı bir şifre) kabul ettiğinde saygınlığı artmıştır. Feistel yapısının yinelemeli yapısı, şifreleme sisteminin donanımda uygulanmasını kolaylaştırır. Feistel ağının en önemli avantajı şifreleme ve şifre açma işlemlerinin benzer veya aynı olmasıdır. Bu ağda, iki işlem arasındaki tek fark anahların sırası olup, bu sayede kodlama işlemindeki çalışmayı yarı yarıya azalmaktadır. Kullanılan en temel 3 işlem ise; • Doğrusal karıştırma • Yerine koyma şifrelemesi (subsitution cipher) • Verinin bitlerinin yer değiştirmesi (blok şifreleme olarak belirtilebilir)
  • 7. 7 Blok Şifreleme Modları Blok şifrelemede, plaintext (açık metin) bloklar halinde şifrelenir. Blok şifreleme modları , • Electronic CodeBook (ECB) Mode : PT’nin her bir bloğu anahtar ile şifrelenir ve CT çıkar. • Chain Block Chaining (CBC) Mode : Başlangıç vektörüyle XOR’lanan PT, şifreleme sonrasında sonraki bloğunu PT ‘si ile XOR işlemine dahile edilerek zincirleme şekilde şifreleme gerçekleştirilir. • Output FeedBack (OFB) Mode : CBC’den farklı olarak, öncelikle başlangıç vektörü şifreleme fonksiyonuna tutulur, bu sonuç PT ile XOR’lanır çıkan CT sonraki adımda yine önce şifrelenir sonra PT ile XOR’lanarak zincir kurulur. • Cipher FeedBack (CFB) Mode : Yöntem olarak OFB’ye benzer ancak farklılık, başlangıç vektörünün şifreleme sonrasında PT ile XOR’lanmadan, sıradaki şifreleme bloğuna aktarılması şeklinde gerçekleşir. • Counter (CTR) Mode : Her adımda başlangıç vektörüne benzer bir tanım, sayaç numarası (counter) ile birleştirilerek şifrelenir devamında bu metin, PT ile XOR’lanır ve CT oluşturulur. Sonraki adımda tanım (nonce) sabit tutulurken, sayaç numarası bir artırılır ve işleme devam edilir. Tanımlanan modların formüllerine dair detay ise aşağıdaki tabloda paylaşılmıştır. Mod Formulas Ciphertext (ECB) Yi = F(PlainTexti, Key) Yi (CBC) Yi = PlainTexti XOR Ciphertexti−1 F(Y, Key); Ciphertext0=IV (CFB) Yi = Ciphertexti−1 Plaintext XOR F(Y, Key); Ciphertext0 = IV (OFB) Yi = F(Yi−1, Key); Y0 = F(IV, Key) Plaintext XOR Yi (CTR) Yi = F(IV + g(i), Key); IV = token() Plaintext XOR Yi
  • 8. 8 Blowfish Algoritması Nedir? Kısa Tarihçesi 1993 yılında Bruce Schneier tarafından tasarlanan Blowfish, simetrik bir anahtar şifreleme algoritmasıdır. Feistel ağını kullanan Blowfish, 64 bitlik bloklarla şifreleme sağlamaktadır. DES şifreleme algoritmasına alternatif olması için tasarlanmıştır. İlk olarak Cambridge Algoritmaları Çalıştayı'nda tasarımcısı tarafından sunulan algoritma, en başından beri ücretsiz ve patentsiz, lisanssız ve kopyalanmamış bir şifreleme yöntemi olarak tasarlanmıştır. Avantajları; • Ücretsizdir. • Anahtar programı tamamlandıktan sonra az sayıda döngü ve döngü işleminin basitliği sebebiyle nispeten hızlı bir şifreleme yöntemidir. • Donanım ile gerçeklenmesi kolaydır. • Sadedir (Şifrelemede sadece «XOR» ve «add» kullanır.) Dezavantajları; • Şifrelemeyi kullanırken 232’den fazla veri öbeğini şifrelemek, algoritmanın zayıflayıp doğum günü saldırılarıyla bilgi sızdırılmasına sebep olabilir.
  • 9. 9 Blowfish Şifreleme Algoritması Algoritma iki bölümden oluşmaktadır; • bir anahtar genişletme bölümü • bir veri şifreleme bölümü. Anahtar genişletmesi (P-array), en fazla 56 bayt (448 bit) değişken uzunluklu bir anahtarı, toplam 4168 baytlık birkaç alt anahtar dizisine dönüştürür. Blowfish algoritmasında, 16 tur bulunmakta ve her tur, anahtara bağımlı bir permütasyona, anahtara ve verilere bağlı bir ikameden (S-Box yada Substitution Box) oluşmaktadır. Tüm işlemler XOR ve 32-bit sözcüklerden oluşan eklemelerdir. (Fonksiyon açılımında detaylandırılmıştır).
  • 10. 10 Blowfish Algoritması Alt anahtarlar: Blowfish; büyük numaralı alt anahtarlar kullanmaktadır. Bu anahtarlar herhangi bir veri şifreleme veya şifre çözme işleminden önce hesaplanmalıdır. Algoritma iki alt anahtar dizisini tutar: • 18 girişli P dizisi (P-array) • Dört adet S kutuları (S-Boxes) P-dizisinin, her turda bir adet girişi kullanılır ve son turdan sonra, veri bloğunun her bir yarısı, kullanılmayan kalan iki P girişinden biriyle XOR edilir. P dizisi 18 adet 32-bit alt anahtardan oluşur (P1, P2, ..., P18 veya P0, P1, ..., P17) S-kutuları 8-bit girişi kabul eder ve 32-bit çıkış üretir.
  • 11. 11 Blowfish Algoritması Alt Anahtarların Oluşturulması: Blowfish Algoritması’nda alt anahtarların hesaplanması şu şekilde açıklanabilir; 1. Önce P-dizisini, ardından dört S-kutusu sırasıyla sabit bir dizeyle başlatılır. Bu dize Pi’nin* onaltılık (Pi sayısının hexadecimal- 0-9,a-f) basamaklarından oluşturulur. (*Pi sayısı içerisinde tekrar etmeyen serilerden oluşur.) 2. Anahtarın ilk 32 biti ile yapılan XOR işlemi sonrası P1, anahtarın ikinci 32 biti ile XOR P2 .... anahtarın tüm bitleri için P-dizisi anahtar bitleri ile XOR’lanarak anahtarlama işlemi devam eder. Bu şekilde P anahtar dizisi oluşturulur. 3. Her birinde 256 giriş bulunan dört adet 32 bit S kutusu vardır: S(1,0),S(1,1) ... S(1,255); S(2,0),S(2,1) ... S(2,255); S(3,0),S(3,1) ... S(3,255); S(4,0),S(4,1) ... S(4,255) 4. Sürekli değişen Blowfish algoritmasının çıktısıyla, P dizisinin tüm girişleri ve ardından dört S-kutusunu da sırayla değiştirerek işleme devam edilir. Toplamda, gerekli tüm alt anahtarları oluşturmak için 521 yineleme gereklidir. 5.Uygulamalar, bu türetme işlemini birden çok kez yürütmek yerine alt anahtarları depolayabilir. Ancak depolanan alt anahtarları sürekli kullanmak zafiyete yol açabilir.
  • 12. 12 Blowfish Algoritması Şifreleme ve Şifre Çözme: Blowfish’te, 16 tur (döngü) vardır. Giriş, 64 bitlik bir veri elemanıdır. Örnek verilirse, açık metin (plaintext) «X» olarak varsayılsın «X» sağ ve sol olmak üzere, 32-bit yarıya bölünür: xL ile xR Sonra, i = 1 ila 16 için: P alt anahtar dizisine, önceki sayfada anlatıldığı üzere, önceden hesaplanan ve pi sayısının onaltılık tabandaki değerlerinden biri atanarak başlanır. xL = xL XOR P(i) xR = F (xL) XOR xR
  • 13. 13 Blowfish Algoritması F(xL) fonksiyonuna değinecek olursak, bu fonksiyon, yanda detaylandırıldığı üzere, önceki adımlarda P(i) ile XOR’lanan sol kısmı (xL) 4 adet 8’er bitlik çeyreklere böler ve bu çeyrekleri S-Kutularına girdi olarak kullanarak 32 bit olarak çıkarır. Çıkarılan 32 bitlik verilerin kullanımından bahsedecek olursak; Öncelikle «S-Box1» ile «S-Box2» toplama (add – mod232) işlemine tabi tutulur, çıkan sonuç «S-Box3» ile XOR işlemine tabi tutulur. Fonksiyonun son aşamasında ise XOR’lanan kısım «S-Box4» ile tekrar toplama (add – mod232) işleminden geçirilerek 32 bit uzunluğunda bir çıktı oluşturulur. Bu fonksiyonun kullanımı sonrasında ise sağ blok (xR) bu çıktıyla XOR’lanır.
  • 14. 14 Blowfish Algoritması Her döngü içinde yapılan tüm bu işlemler sonrasında başlangıçta solda olan blok xL ile sağdaki blok xR, yer değiştirilerek sonraki adıma geçilir. On altıncı turdan sonra, takas işlemini geri almak için xL ve xR'yi tekrar değiştirilir. Bu turun sonunda ise xR = xR XOR P17 (Sağ blok, başlangıçta oluşturulan 17 numaralı anahtar ile XOR’lanarak son halini alır) xL = xL XOR P18 (Sol blok, başlangıçta oluşturulan 17 numaralı anahtar ile XOR’lanarak son halini alır) işlemleri yapılır ve son olarak şifreleme metnini almak için xL ve xR'yi yeniden birleştirilir. Yandaki şekilde de belirtildiği üzere son işlem sonrası birleştirilen 32’şer bitlik veriler 64 bit şifreli metini (CipherText) oluşturur. xR xL xL xR cRcL Şifre çözme, şifreleme ile tamamen aynıdır, ancak kullanılan anahtarlar (P1, P2, ..., P18) bu kez ters sırada kullanılır.
  • 15. 15 Blowfish Algoritması Kriptanalizi Metin Şifreleme – Çığ Etkisi Analizi Kriptanalize karşı sunulan herhangi bir şifreleme algoritmasının direnci çığ etkisi ile ölçülür , yani bir bit düz metin veya anahtarda bile küçük bir değişiklik, şifre metinlerini birçok bit sayısına göre önemli ölçüde farklılaştırır. Deneysel olarak düz metinler için bir bit farklılık gösteren iyi çığ etkisi gösterdiği bulunmuştur, her turun sonuçları aşağıda verilmiştir. Görüldüğü üzere 0,3 ile 0.30000000001 arasındaki farklılık döngülerde izlenmiş ve ilişkili bir durum görülmemiştir. Tur Açık Metin1=0.3 Açık Metin2=0.30000000001 1 40F6CB26BBE4776A 9BB99294B01BBD8E 2 2652FE3338F04A0B 218A90959BBB3291 3 43B1848AF40D9DC5 F06B6704DE8E5461 4 E46F1E6847AF2AA FD8DABEB9D669997 5 62C6F5248A4A6BCC 7AB0BA1FD2EB559 6 15687B1D6E4C2941 173A04AF4BE303AF ... ... ... 16 776E8A9FB8F75872 4AA90ED7A7F496C6
  • 16. 16 Anahtar Uzayı Analizi Herhangi bir kriptografik algoritmanın gücü, kaba kuvvet saldırısını olanaksız kılmak için anahtar alanının büyüklüğüne bağlıdır. P dizilerinin ve S kutularının değerleri, başlangıç değerine ve kaotik denklemle ilişkili ilgili parametrelerine bağlıdır. Başlangıç değerinin sayısı 0.2 ila 0.8 arasında değişebilir ve bu nedenle anahtar boşluk, yaklaşık sonsuz derecede büyük olan hesaplama makinesinin destekleyeceği logaritmanın ondalık kısmındaki, ondalık basamak sayısına bağlıdır ve bu da kaba kuvvet saldırısını hesaplanabilir hale getirir. Yapılan hesaplamalarda farklı atlama değerine sahip aynı başlangıç değeri için bile üretilen P dizileri ve S kutuları tamamen farklıdır ve doğrusal değildir. Aşağıdaki grafikte de görüleceği üzere P dizisi ve S kutusu için 4 farklı başlangıç değeri seçilerek yapılan hesaplamada farklılık ve grafiklerin doğrusal olmadığı anlaşılacaktır. Blowfish Algoritması Kriptanalizi
  • 17. 17 Anahtar Uzayı Analizi Blowfish Algoritması Kriptanalizi
  • 18. 18 Anahtar Duyarlılık Analizi Blowfish algoritması, kaotik denklem için farklı başlangıç değerleri ile denenerek, sonuçların düz metin ile şifrelenmiş metin arasında lineer olmayan bir ilişki olduğunu ve böylece diferansiyel kriptanalize karşı yüksek direnç sağladığını gösterir. Örnekten anlaşılacağı üzere ilişkili başlangıç değerlerinin, şifreleme sonuçlarının arasında bir ilişki tespit edilememiştir. Blowfish Algoritması Kriptanalizi Örnek Başlangıç Değeri Şifreleme Sonucu Örnek 1 0.43728423 A8A81271EC3F92D0 Örnek 2 0.43728423008 1F26570DBCEFC409 Örnek 3 0.43728422999 1DEEDFBD12A21B26 Örnek 4 0.4372846578 9F2E0B32FA1A1D5D
  • 19. 19 Resim Şifreleme Algoritmanın imajları şifrelemede etkinliğini ölçebilmek amacıyla, 1 GB RAM'li P(IV) işlemcinin sistem yapılandırması ile Windows ortamında Mat Lab 6.0'da uygulama gerçekleştirilmiştir. Denenen algoritma, öncelikle görüntü işlemeyi, görüntü analizini ve makine görüşünü desteklemek için sayısallaştırılmış görüntülerin bir koleksiyonu olan USC-SIPI deposunda çeşitli görüntülerle test edilmiştir. Soldaki orijinal resimler ve sağdaki şifrelenmiş bölümden test sonucu açıkça başarılıdır. Blowfish Algoritması Kriptanalizi
  • 20. 20 Algoritmaya doğru en bilindik atak yöntemi, doğum günü ikilemi olarak bilinen yöntem ile sağlanmıştır. 64 bit bloklu bir blok şifresi için doğum günü sınırı, uygulamada kolayca erişilebilen sadece 32 GB'a karşılık gelir. Sabit bir anahtar altında şifrelenen veri miktarı bu sınıra yaklaştığında, çalışma modunun güvenlik garantileri parçalanmaya başlar. Bu sorun nedeniyle, anahtarların her zaman 2n/2 bloktan önce değiştirilmesi gerekir ve bu gereklilik kriptograflar tarafından iyi bilinir. Ancak, saldırılar bilinen düz metin gerektirdiği ve yalnızca çok az bilgi ortaya çıkardığı için uygulayıcılar tarafından genellikle en aza indirilir. Gerçekten de, standart kuruluşlar anahtarı yalnızca 2n/2 bloktan hemen önce değiştirmeyi önerir. Ancak birçok uygulama bir anahtarın kullanımında herhangi bir sınırlama getirmez. Özellikle, büyük miktarda verinin aynı anahtar altında potansiyel olarak şifrelendiği 64 bit bloklu, blok şifrelemelerin birçok kullanımı vardır. Varsayılan şifre olarak Blowfish kullanan OpenVPN uygulamasında, hızlı bağlantı ile 32 GB veri bir saatten daha kısa sürede aktarılabilir Blowfish Algoritmasına Yönelik Ataklar
  • 21. 21 Blok Şifresi Çarpışmalarını Kullanma - CBC modu Uygulamada, blok şifreler değişken uzunluktaki mesajlarla başa çıkmak için bir çalışma modu ile kullanılır. CBC modu, en eski şifreleme modlarından biridir ve hala yaygın olarak kullanılmaktadır. Örnek olarak M mesajı seçilir ve mi bloklarına bölünür. Devamında şu şekilde şifrelenir: ci = Ek (mi ⊕ Ci-1), burada c-1 genellikle (IV-initialization vector) olarak gösterilen bir başlatma değeridir. Blowfish Algoritmasına Yönelik Ataklar
  • 22. 22 Blok Şifresi Çarpışmalarını Kullanma CBC'nin 2n/2 mesaj bloğuna kadar güvenli olduğu kanıtlanmıştır. Öte yandan CBC'ye karşı basit bir doğum günü saldırısı vardır. Aynı anahtarla (aynı mesajda veya farklı mesajlarda) şifrelenmiş 2n/2 mesaj bloğundan sonra, ci = cj olmak üzere iki şifre bloğu arasında bir çarpışma beklenmektedir. Ek bir permütasyon olduğundan, çıktıdaki bir çarpışma, girişlerin aynı olduğu anlamına gelir: (mi ⊕ ci-1 = mj ⊕ cj-1) Sonrasında ise iki düz metin bloğunun XOR’unu ortaya çıkarır: mi ⊕ mj = ci-1 ⊕ cj-1. Blowfish Algoritmasına Yönelik Atak
  • 23. 23 Uygulamalı Etkisi Birçok bağlamda, iki düz metin bloğu arasındaki yalnızca xor'u kurtarmak pratik bir etkiye sahip bir saldırı için yeterli değildir. Ancak, aşağıdaki koşullar yerine getirildiğinde bir saldırı yapılabilir: • sabit bir sır tekrar tekrar gönderilir; • düz metnin bir kısmı bilinmektedir. Bu durumda, bir çarpışmanın sabit sır ile bilinen düz metin arasında xor'a sızması ihtimali vardır; bu derhal sırrı açığa çıkarır. Daha kesin olarak, s + t ≥ n ile sırrın 2s kopyası ve bilinen 2t bloğu şifrelendiğinde, bu saldırının yüksek olasılıkla başarılı olması beklenir. Özellikle, her istekte bir kimlik doğrulama jetonu (token) gönderildiğinde şifreli HTTP bağlantılarının güvenliği için geçerlidir. Tarayıcıdaki bir adam saldırganı, istekteki çoğu üstbilginin saldırgan tarafından tahmin edilebilir veya hatta kontrol edilebilir olduğu gerçeğini kullanarak çok sayıda istek oluşturabilir ve kimlik doğrulama jetonunu ele geçirebilir. Blowfish Algoritmasına Yönelik Atak
  • 24. 24 Genel Değerlendirme ve Görüşler Sonuç Deneysel sonuçlar, algoritmanın ile güvenlik seviyesini korurken, yüksek oranda doğrusal olmayan S kutuları ve P dizileri ürettiğini açıkça göstermektedir. Metin şifreleme kalitesi, anahtar duyarlılık testleri, anahtar boşluk analizi ve çığ etki analizi ile ölçülmüştür. Algoritma, azaltılmış bir zaman karmaşıklığında blowfish'de kullanılan P dizileri ve S kutularının üretimi için karmaşık teori kullanarak kaliteli şifre metinleri üretebilmektedir. Görüntü Şifreleme için deneysel sonuçlara dayanarak, önerilen şifrenin minimum bellek gereksinimi ve hesaplama süresi ile yüksek şifreleme kalitesi sunduğu gözlenebilir. Ayrıca algoritma, Brute force saldırılarına ve orijinal ve şifreli görüntülerin istatistiksel kripto analizine karşı yeterli direnç sunduğu anlaşılmaktadır. Ancak blok değeri sebebiyle doğum günü açıklığına maruz kalabilmektedir.