EN
EN

Hash Fonksiyonu (Özetleme Fonksiyonu) ve Birthday Attack


Hash Fonksiyonu (Özetleme Fonksiyonu) Nedir?

Hash fonksiyonu temel olarak verinin bütünlüğünü sağlamak için kullanılan bir yöntemdir. Orijinal veriyi ve özetini alan kullanıcının orijinal metnin değiştirilmediğinin anlaşılması hedeflenmektedir. Hash alınmış veri geri döndürülmeyecek şekilde karşı tarafa gönderilir. Hash fonksiyonları temel olarak iki amaçla kullanılır:

1) Verinin bütünlüğü kontrol edilir. Böylece verinin bir şekilde değişmediğinden emin olunur.

2) Büyük boyutlardaki verinin boyutu sabit uzunlukta olan daha küçük boyuta indirgenir. Böylece hedefe gönderilecek verinin boyutu düşürülmektedir.

Hash Çalışma Prensibi

“MERHABA” kelimesi için basit bir hash alma fonksiyonu aşağıdaki gibi tanımlanabilir:

Tüm harflerin Türkçe alfabeye göre sayısal değeri hesaplanır. Bu sayısal değerler “M=16”, “E=6”, “R=21”, “H=10”, “A=1”, “B=2”, “A=1” olarak bulunabilir. Tüm değerler toplanır. Sonuç olarak 16+6+21+10+1+2+1=57 olarak bulunur. Sonuç değeri olarak bulunan 57 hash fonksiyonunun sonucudur.

Kısacası hash fonksiyonu (“MERHABA”)=57’dir. 57 değerinden “MERHABA” ifadesi elde edilemez. Ancak “MERHABA” ifadesi aynı hash algoritmasına işleme sokulduğunda her defasında 57 değerini verir.

Hash algoritmaları ile ilgili bazı önemli noktalar şunlardır:

-Hash algoritmaları için simetrik/asimetrik gibi bir sınıflandırma yoktur. Hash algoritmaları anahtar kullanmazlar.
-Hash fonksiyonları tek yönlüdür. Bu sebeple, özetlenen veriden, asıl veri elde edilemez. Geri dönüştürülememenin garanti edilebilmesi için güçlü algoritmalar kullanılmalıdır.
-Aynı metin, aynı hash algoritması ile işleme koyulursa her defasında aynı sonuç ortaya çıkar. Bu sebeple bütünlük kontrolü gerçekleştirilebilir.
-Güçlü bir hash algoritması ile metin üzerindeki küçük bir değişiklik çıktıda büyük değişikliğe sebep olur.
-Blok uzunluğu ne kadar fazla olursa o kadar güvenlidir.

Güvenilir bir hash fonksiyonunda çakışma ihtimali oldukça az olmalıdır; çakışmaya dayanıklı olmalıdır. Aksi halde özellikle kimlik doğrulama işlemlerinde zafiyet ortaya çıkar. Örneğin “Aa123456!qwerty.asdfgh?” şeklindeki karmaşık bir parolanın özeti ile “Test123” gibi bir parolanın özeti aynı çıkar ise; kaba kuvvet veya sözlük saldırıları ile deneme yapıldığında, Test123 şeklindeki bir parola ile karmaşık şekilde parola kullanan bir kişinin oturumu açılabilir.

Hash algoritmaları sayısal imzalama sırasında kullanılmaktadır. Verinin kendisi imzalanarak gönderilmez, bunun yerine verinin özeti imzalanır böylece hem operasyonel maliyet, hem de iletişim maliyeti düşürülür. En yaygın kullanılan hash algoritmaları SHA-1, SHA-2, CBC-MAC algoritmalarıdır.

Birthday Attack

Doğum günü saldırıları, bir mesajın, yazılımın veya dijital imzanın bütünlüğünü doğrulamak için kullanılan karma algoritmalara karşı yapılır. Bir karma işlevi tarafından işlenen bir mesaj, giriş mesajının uzunluğundan bağımsız olarak sabit uzunlukta bir mesaj özeti (MD) üretir. Bu MD, mesajı benzersiz bir şekilde karakterize eder. Doğum günü saldırısı, bir karma işlevi tarafından işlendiğinde aynı MD'yi üreten iki rastgele mesaj bulma olasılığını ifade eder. Bir saldırgan, kullanıcısı olduğu gibi mesajı için aynı MD'yi hesaplarsa, kullanıcının mesajını güvenle onunla değiştirebilir ve alıcı MD'leri karşılaştırsa bile değiştirmeyi tespit edemez.

Doğum günü saldırısı, kaba kuvvet saldırıları sınıfına ait bir tür saldırıdır. Olasılık teorisindeki doğum günü probleminin arkasındaki matematiği kullanır. Bu saldırının başarısı büyük ölçüde doğum günü paradoksu probleminde açıklandığı gibi rastgele saldırı girişimleri ve sabit bir permütasyon derecesi arasında bulunan daha yüksek çarpışma olasılığına bağlıdır.

Kaynakça:

Kaynak1