- 1 Eki 2017
- 3,874
- 483
- 6
Özetleme (Hashing) Algoritmaları
Özetleme (Hashing) fonksiyonu temel anlamda veri bütünlüğünün sağlanması için kullanılan yöntemlerden biridir. Orijinal veriyi ve özeti temin eden kullanıcının orijinal metnin değiştirilmediğinin tespit edilmesi gerekmektedir. Hash alınan veri geri dönüştürülmeyecek biçimde karşı tarafa iletilir.
Hash fonksiyonlarının en temeldeki iki amacı şunlardan oluşmaktadır:
Veri bütünlüğü kontrol edilir. Bu şekilde verinin değiştirilmediğinden emin olunabilir.
Büyük boyutlara sahip verilerin boyutu sabit uzunluktaki küçük boyutlara indirgenir. Bu şekilde hedefe iletilecek verinin de boyutu düşürülmektedir.
Hash Çalışma Prensibi
Örnek olarak "MERHABA" kelimesi ele alınırsa basit anlamda özet alma fonksiyonu şu şekilde tanımlanabilir:
Bütün harfler Türkçe alfabe kapsamında sayısal değerler ile değerlendirilir. Bu sayısal değerler ise M=16, E=6, R=21, H=10, A=1, B=2, A=1 olarak ele alınabilir. Sonuç olarak 16+6+21+10+1+2+1=57 olarak bulunur. Sonuç değeri olarak bulunan 57 özet fonksiyonunun sonucudur.
Özetle Hash fonksiyonu ("MERHABA")=57 olarak bulunabilir. 57 değerinden "MERHABA" ifadesi elde edilememektedir. Fakat "MERHABA" ifadesi özetleme, hash fonksiyonuna göre 57 değerini vermektedir.
HASH Fonksiyonunun Özellikleri
HASH, özetleme fonksiyonunun özellikleri genel olarak şunlardır:
Özetleme fonksiyonlarında simetrik ve asimetrik gibi sınıflandırma söz konusu değildir.
Özetleme algoritmalarında anahtar kullanımı yoktur.
Özetleme fonksiyonları tek yönlüdür. Bundan dolayı özetlenen veri üzerinden asıl veri elde edilmez.
Aynı metin aynı özetleme fonksiyonu ile işleme konulursa sürekli aynı sonuç ortaya çıkar. Bundan dolayı bütünlük kontrolü de gerçekleştirilebilir.
Güçlü özetleme algoritması ile birlikte metin üzerinde yapılan küçük değişiklik, çıktı üzerinde büyük değişikliğe neden olur.
Blok uzunluğu çok fazla olursa fonksiyon da o kadar güvenilir olur.
Güvenilir hash fonksiyonlarında çakışma ihtimali oldukça azdır. Çakışmaya dayanıklı olması gereken hash fonksiyonlarında aksi durumda ciddi sorunlardan söz etmek de mümkün olabilir. Örnek olarak "Aa123456!qwerty.asdfgh?" şeklindeki karmaşık olan bir parolanın özeti ile "Test123" gibi parolanın özeti aynı çıkarsa dış saldırılar ile birlikte bu iki parola kullanılarak oturum açılabilir.
Hash fonksiyonları sayısal imzalama esnasında kullanılmaktadır. Veri imzalanarak karşı tarafa iletilmez, aksine verinin özeti imzalanır. Böylelikle hem maliyet hem operasyonel hem de iletişim maliyeti düşürülebilir. En yaygın olarak kullanılmakta olan özetleme fonksiyonları ise SHA-1, SHA-2, CBC-MAC algoritmalarıdır.
Özetleme (Hashing) fonksiyonu temel anlamda veri bütünlüğünün sağlanması için kullanılan yöntemlerden biridir. Orijinal veriyi ve özeti temin eden kullanıcının orijinal metnin değiştirilmediğinin tespit edilmesi gerekmektedir. Hash alınan veri geri dönüştürülmeyecek biçimde karşı tarafa iletilir.
Hash fonksiyonlarının en temeldeki iki amacı şunlardan oluşmaktadır:
Veri bütünlüğü kontrol edilir. Bu şekilde verinin değiştirilmediğinden emin olunabilir.
Büyük boyutlara sahip verilerin boyutu sabit uzunluktaki küçük boyutlara indirgenir. Bu şekilde hedefe iletilecek verinin de boyutu düşürülmektedir.
Hash Çalışma Prensibi
Örnek olarak "MERHABA" kelimesi ele alınırsa basit anlamda özet alma fonksiyonu şu şekilde tanımlanabilir:
Bütün harfler Türkçe alfabe kapsamında sayısal değerler ile değerlendirilir. Bu sayısal değerler ise M=16, E=6, R=21, H=10, A=1, B=2, A=1 olarak ele alınabilir. Sonuç olarak 16+6+21+10+1+2+1=57 olarak bulunur. Sonuç değeri olarak bulunan 57 özet fonksiyonunun sonucudur.
Özetle Hash fonksiyonu ("MERHABA")=57 olarak bulunabilir. 57 değerinden "MERHABA" ifadesi elde edilememektedir. Fakat "MERHABA" ifadesi özetleme, hash fonksiyonuna göre 57 değerini vermektedir.
HASH Fonksiyonunun Özellikleri
HASH, özetleme fonksiyonunun özellikleri genel olarak şunlardır:
Özetleme fonksiyonlarında simetrik ve asimetrik gibi sınıflandırma söz konusu değildir.
Özetleme algoritmalarında anahtar kullanımı yoktur.
Özetleme fonksiyonları tek yönlüdür. Bundan dolayı özetlenen veri üzerinden asıl veri elde edilmez.
Aynı metin aynı özetleme fonksiyonu ile işleme konulursa sürekli aynı sonuç ortaya çıkar. Bundan dolayı bütünlük kontrolü de gerçekleştirilebilir.
Güçlü özetleme algoritması ile birlikte metin üzerinde yapılan küçük değişiklik, çıktı üzerinde büyük değişikliğe neden olur.
Blok uzunluğu çok fazla olursa fonksiyon da o kadar güvenilir olur.
Güvenilir hash fonksiyonlarında çakışma ihtimali oldukça azdır. Çakışmaya dayanıklı olması gereken hash fonksiyonlarında aksi durumda ciddi sorunlardan söz etmek de mümkün olabilir. Örnek olarak "Aa123456!qwerty.asdfgh?" şeklindeki karmaşık olan bir parolanın özeti ile "Test123" gibi parolanın özeti aynı çıkarsa dış saldırılar ile birlikte bu iki parola kullanılarak oturum açılabilir.
Hash fonksiyonları sayısal imzalama esnasında kullanılmaktadır. Veri imzalanarak karşı tarafa iletilmez, aksine verinin özeti imzalanır. Böylelikle hem maliyet hem operasyonel hem de iletişim maliyeti düşürülebilir. En yaygın olarak kullanılmakta olan özetleme fonksiyonları ise SHA-1, SHA-2, CBC-MAC algoritmalarıdır.