Kriptografik Hash Fonksiyonu Nedir?
Hash fonksiyonu çeşitli uzunluktaki verilerin matematiksel fonksiyonlarla sabit uzunlukta eşsiz bir değer oluşturan işlemdir. Tek yönlü bir fonksiyondur ve bakıldığında işlemden geçirilen metinle özet değerle bir ilişki kurulmamakla birlikte elde edilen özet değerinden orijinal veri elde edilememektedir. Özetleme işleminde aynı veri için aynı değer üretilir fakat en ufak bir değişim olduğunda hash fonksiyonunun oluşturduğu değer de değişmektedir. Özet fonksiyonları verinin bütünlüğünü doğrulama, parolaları saklama, sayısal imza, mesaj doğrulama kodu gibi alanlarda yaygın olarak kullanılmaktadır. Bir başka kullanım alanı da günümüz de popüler olan Blockchain uygulamalarıdır.
Özet fonksiyonları MD ailesi, HAVAL, SHA ailesi, WHIRLPOOL, RIPEMD vb. algoritmalardır. Özet fonksiyonlarında farklı girdilerin tam olarak aynı çıktıları yaratması olasılığı da vardır. Bu durumda çakışma (collision) denir. Çakışma durumu hash fonksiyonları için istenen bir durum değildir ve fonksiyonunun güvenirliğini zedelemektedir. Özetleme fonksiyonları veri bütünlüğünü garanti etmesi, sabit ve küçük boyutlu çıktılar üretmesi, her girdi uzunluğu için hızlı çıktı üretmesi bu yaklaşımının üstünlükleridir. İdeal kriptografik hash fonksiyonunun güvenli kabul edilmesi için üç özelliğe sahip olması gerekir.
- Çakışma Direnci: Herhangi iki farklı girdinin aynı özeti çıktı olarak üretmemesidir
- Ters görüntüye dayanıklılık: Hash fonksiyonunun oluşturduğu özet değerinden orijinal verinin bulunamaması
- İkincil ters görüntüye dayanıklılık: İki ayrı mesajın aynı hash’inin olması çok zor olmalıdır.
MD serisi mesaj özetleme algoritmaları, Ron Rivest tarafından geliştirilmiştir. Son yıllara en çok kullanılan özetleme algoritmalarındandır. Bu algoritmaların tamamı, 128-bit çıktı verir.
SHA-1 serisi NSA (ulusal güvenlik Ajansı) tarafından geliştirilmiş ve NIST’ın desteğiyle ABD’de standart haline gelmiştir.160 bitlik çıktı oluşturmaktadır.
RIPE-MD-160 (RACE Integrity Primitives Evaluation Message Digest) algoritması, Avrupa Birliğinde kullanılan bir algoritmadır.160 bitlik çıktı oluşturur.
MAC(Message Authentication Codes) diğer fonksiyonlardan farkı oluşturmak ve doğrulamak için bir anahtara ihtiyaç duymaktadır. Anahtarlı özetlemeli mesaj doğrulama kodları (HMAC), bir anahtara dayalı ve tek yönlü çalışan bir özetleme yöntemidir ve hem veri bütünlüğünü hem de veri kaynağının doğrulanmasını sağlar. HMAC’lar, veri alışverişinde kullanılmakla birlikte, herhangi bir şahsa ait dosyalarının değiştirilip değiştirilmediğini kontrol etmek amacıyla da kullanılabilir.