Hash fonksiyonları, herhangi bir boyuttaki veriyi (metin, dosya, şifre) sabit uzunlukta bir çıktıya (genellikle hexadecimal bir dizi) dönüştüren matematiksel algoritmalardır. Bu işlem tek yönlüdür hash’i bilmek, orijinal veriyi geri çözmek için yeterli değildir.
Temel Özellikleri
-
Deterministik: Aynı girdi → her zaman aynı çıktı.
-
Hızlı Hesaplama: Büyük veriler bile milisaniyeler içinde hash’lenir.
-
Çarpışma Direnci: Farklı girdilerin aynı hash’i üretmesi çok zor olmalı.
-
Tek Yönlülük: Hash’ten orijinal veri elde edilemez.
Hash Algoritmalarının Kullanım Alanları
-
Veri Bütünlüğü Kontrolü
-
Dosya indirme sonrası hash karşılaştırması (örneğin, SHA-256 checksum).
-
-
Parola Saklama
-
Veritabanlarında şifreler hash’lenerek tutulur (Argon2, bcrypt gibi özel algoritmalarla).
-
-
Dijital İmzalar ve Blockchain
-
Bitcoin, SHA-256 kullanır; işlemler hash’lerle doğrulanır.
-
-
Deduplikasyon (Yinelenen Veri Tespiti)
-
Aynı dosyaların hash’leri karşılaştırılarak depolama alanından tasarruf.
-
Popüler Hash Algoritmaları ve Karşılaştırmaları
Algoritma |
Çıktı Uzunluğu |
Güvenlik Durumu |
Kullanım Alanı |
MD5 |
128-bit |
Kırıldı (Çarpışma saldırıları) |
Eğitim, checksum (artık güvenli değil) |
SHA-1 |
160-bit |
Kırıldı (Google’ın 2017’de çarpışma gösterdi) |
Eski yazılım doğrulamaları |
SHA-256 |
256-bit |
Güvenli (NSA tasarımı) |
SSL sertifikaları, Bitcoin |
SHA-3 |
Değişken |
Güvenli (Keccak tabanlı) |
Yeni nesil uygulamalar |
Argon2 |
Değişken |
Parola için en güvenli |
Kullanıcı şifreleri |
Algoritmaların Detaylı İncelenmesi
1. MD5 (Message-Digest Algorithm 5)
-
Artıları: Hızlı, basit yapı.
-
Eksileri: 1996’dan beri çarpışma zafiyetleri biliniyor. Örnek: Farklı dosyalar aynı MD5 hash’ine sahip olabilir.
-
Kullanım: Artık sadece checksum için (güvenlik gerektirmeyen durumlarda).
2. SHA-1 (Secure Hash Algorithm 1)
-
Google’ın 2017’de SHAttered saldırısıyla pratikte çarpışma gösterildi.
-
Git gibi sistemler SHA-256’ya geçiş yaptı.
3. SHA-256 (SHA-2 Ailesi)
-
Bitcoin’in temel taşı.
-
Örnek Hash:
"hello"
→2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
4. SHA-3 (Keccak)
-
NIST’in 2015’te onayladığı en yeni standart.
-
SHA-2’den farklı bir matematiksel yapı (sponge construction).
5. Argon2
-
Parola hashleme için optimize edildi:
-
CPU/RAM zorlayıcı, brute-force’a dirençli.
-
2015’te Password Hashing Competition (PHC) birincisi.
-
Hangi Algoritmayı Ne Zaman Kullanmalı?
-
Veri bütünlüğü: SHA-256.
-
Parola saklama: Argon2, bcrypt veya PBKDF2.
-
Eğitim amaçlı: MD5/SHA-1 (zafiyetleri göstermek için).
Sonuç: Hash Fonksiyonlarının Geleceği
Kuantum bilgisayarlar, SHA-256 gibi algoritmaları tehdit edebilir. NIST, post-kuantum kriptografi projeleri (örn: SHA-3’ün geliştirilmiş versiyonları) üzerinde çalışıyor.
Kaynakça
-
Hill, L. S. (1929). Cryptography in an Algebraic Alphabet. The American Mathematical Monthly.
-
Stallings, W. (2017). Cryptography and Network Security: Principles and Practice. Pearson.
-
Singh, S. (1999). The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography. Anchor Books.
-
NIST. (2015). Secure Hash Standard (SHS), FIPS PUB 180-4.
-
Password Hashing Competition. (2015). Argon2: The Winner of PHC. https://password-hashing.net/
-
Google Security Team. (2017). SHAttered: The SHA-1 Collision Attack. https://shattered.io/
-
OWASP Foundation. (2023). Password Storage Cheat Sheet. https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html