Hash Algoritmalarına Genel Bakış

Hash Algoritmalarına Genel Bakış

Hash Algoritmalarına Genel Bakış

Sadıkcan TULUK
07.04.2025

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

  1. Deterministik: Aynı girdi → her zaman aynı çıktı.

  2. Hızlı Hesaplama: Büyük veriler bile milisaniyeler içinde hash’lenir.

  3. Çarpışma Direnci: Farklı girdilerin aynı hash’i üretmesi çok zor olmalı.

  4. Tek Yönlülük: Hash’ten orijinal veri elde edilemez.


Hash Algoritmalarının Kullanım Alanları

  1. Veri Bütünlüğü Kontrolü

    • Dosya indirme sonrası hash karşılaştırması (örneğin, SHA-256 checksum).

  2. Parola Saklama

    • Veritabanlarında şifreler hash’lenerek tutulur (Argon2, bcrypt gibi özel algoritmalarla).

  3. Dijital İmzalar ve Blockchain

    • Bitcoin, SHA-256 kullanır; işlemler hash’lerle doğrulanır.

  4. 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 PHChttps://password-hashing.net/

  • Google Security Team. (2017). SHAttered: The SHA-1 Collision Attackhttps://shattered.io/

  • OWASP Foundation. (2023). Password Storage Cheat Sheethttps://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html