SHA-256 (Secure Hash Algorithm 256-bit)
Tarihçe ve Genel Bakış
SHA-256, SHA-2 (Secure Hash Algorithm 2) ailesinin bir üyesidir ve 2001 yılında ABD Ulusal Güvenlik Ajansı (NSA) tarafından tasarlanmıştır. NIST (National Institute of Standards and Technology) tarafından standart olarak yayınlanan SHA-2 ailesi, SHA-1'in güvenlik açıklarına karşı geliştirilmiştir. SHA-256, herhangi bir boyuttaki veriyi alıp 256-bitlik (32 byte) sabit uzunlukta bir hash değeri oluşturur.
Çalışma Prensibi
SHA-256 algoritması aşağıdaki adımları takip eder:
- Girdi mesajına dolgu eklenerek uzunluğun 512 bitin katı olması sağlanır
- Mesaj 512 bitlik (64 byte) bloklara bölünür
- Her blok için 64 raund işlem uygulanır:
- İlk olarak, 8 adet 32-bitlik (A-H) değişken başlangıç değerleriyle tanımlanır
- Her raund için mesaj bloğu ve sabit değerler kullanılarak değişkenlerin değerleri güncellenir
- Bitsel işlemler, kaydırmalar ve aritmetik işlemler kullanılır
- Tüm bloklar işlendikten sonra A-H değişkenlerinde tutulan değerler birleştirilerek 256 bitlik hash değeri elde edilir
SHA-256'nin Güvenlik Özellikleri
Güvenlik Özellikleri
SHA-256, günümüz standartlarına göre güvenli kabul edilmektedir ve yaygın olarak kullanılmaktadır. SHA-1 ve MD5'teki güvenlik zaafiyetlerinin üstesinden gelmek için tasarlanmıştır. 256 bitlik çıktı uzunluğu, brute-force saldırılarına karşı yüksek direnç sağlar (2^256 olası değer). Bu algoritma için henüz pratik bir çakışma (collision) saldırısı bulunmamıştır.
Kullanım Alanları
SHA-256 şu alanlarda yaygın olarak kullanılmaktadır:
- Dijital imzalar ve SSL/TLS sertifikaları
- Parola hashleme (güvenlik protokollerinde)
- Dosya bütünlüğü kontrolü ve doğrulama
- Blok zinciri teknolojileri (Bitcoin ve diğer kripto paralar)
- Güvenli iletişim protokolleri
- Veri deduplication ve depolama sistemleri
SHA-256 vs Diğer Hash Algoritmaları
Özellik | SHA-256 | SHA-1 | MD5 |
---|---|---|---|
Hash Boyutu | 256 bit (32 byte) | 160 bit (20 byte) | 128 bit (16 byte) |
Güvenlik | Yüksek | Zayıf | Çok Zayıf |
Hız | Daha yavaş | Orta | Hızlı |
Bilinen Çakışma | Yok | Var (2017) | Var (2004) |
Yaygın Kullanım | Yüksek güvenlik gerektiren uygulamalar | Tarihsel uygulamalar (artık önerilmiyor) | Güvenlik gerektirmeyen uygulamalar |