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ülemeyecek ş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 özet 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 özet fonksiyonunun sonucudur.

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

Hashing algoritmaları ile ilgili bazı önemli noktalar şunlardır:
  • Özetleme algoritmaları için simetrik / asimetrik gibi bir sınıflandırma yoktur. Özetleme algoritmaları anahtar kullanmazlar.
  • Özetleme 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ı özetleme 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 özetleme 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üvenilirdir.

Güvenilir bir özetleme 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 özetleme algoritmaları SHA-1, SHA-2, CBC-MAC algoritmalarıdır.

Kaynakça:

Kodaz, H., Botsalı F.M (2010). Simetrik ve Asimetrik Şifreleme Algoritmalarının Karşılaştırılması, Selçuk Üniversitesi, Konya, Selçuk Teknik Dergisi, Cilt : 9, sayı : 1-2010

Kalaycı, T.E. (2003), Bilgi Teknolojilerinde Güvenlik ve Kriptoloji, Lisans Tezi, Bilgisayar Mühendisliği Bölümü, Ege Üniversitesi, İzmir

Şahin. F. (2015),Modern Blok Şifrelem Algoritmaları, İstanbul Aydın Üniversitesi Dergisi, Yıl 5, Sayı 17, Sayfa 47-60