sha ne demek?
SHA (Secure Hash Algorithm), kriptografik özet fonksiyonları ailesidir. Bu algoritmalar, herhangi bir boyuttaki veriyi alıp, sabit boyutlu bir "özet" (hash) değeri üretir. Özet değeri, girdinin benzersiz bir temsilidir.
Temel Özellikleri:
- Tek yönlü: Girdi verisinden özet değerini hesaplamak kolaydır, ancak özet değerinden girdi verisini elde etmek (tersine çevirmek) pratik olarak imkansızdır.
- Deterministik: Aynı girdi her zaman aynı özet değerini üretir.
- Çarpışma direnci: İki farklı girdinin aynı özet değerini üretmesi (çarpışma) son derece düşük bir olasılıktır. İdeal olarak, çarpışma olmamalıdır, ancak pratikte bu mümkün değildir. SHA algoritmaları, çarpışma direncini en üst düzeye çıkarmak için tasarlanmıştır.
SHA Ailesi:
Farklı SHA sürümleri bulunmaktadır ve her bir sürüm farklı özet uzunluklarına sahiptir. Yaygın olarak kullanılan bazı SHA sürümleri şunlardır:
- SHA-1: 160 bit özet değeri üretir. Güvenlik açıkları tespit edildiğinden, artık önerilmemektedir.
- SHA-2: SHA-256 ve SHA-512 gibi farklı uzunluklarda özet değerleri üreten bir algoritma ailesidir. SHA-256, 256 bit özet değeri üretir ve daha güvenli kabul edilir. SHA-512, 512 bit özet değeri üretir.
- SHA-3: SHA-2'ye alternatif olarak geliştirilmiştir. SHA-3, farklı bir tasarıma (Keccak algoritması) sahiptir ve SHA-2'deki potansiyel zayıflıklardan etkilenmez.
Kullanım Alanları:
SHA algoritmaları, çeşitli güvenlik uygulamalarında yaygın olarak kullanılır:
- Veri bütünlüğü kontrolü: Bir dosyanın veya verinin değiştirilip değiştirilmediğini doğrulamak için kullanılır. Orijinal verinin özeti hesaplanır ve daha sonra aynı verinin özeti tekrar hesaplanır. İki özet değeri karşılaştırıldığında, farklılık varsa verinin değiştirildiği anlaşılır.
- Dijital imzalar: Dijital imzalarda, bir belgenin özeti özel anahtarla şifrelenir. Bu, belgenin kimliğini ve bütünlüğünü doğrulamak için kullanılır.
- Parola depolama: Parolalar genellikle açık metin olarak saklanmaz. Bunun yerine, parolaların özetleri saklanır. Bir kullanıcı parolayı girdiğinde, girilen parolanın özeti hesaplanır ve veritabanındaki özetle karşılaştırılır. Bu, parolaların çalınması durumunda bile güvenliği artırır.
- Blok zincir: Blok zincir teknolojisinde, blokların bütünlüğünü sağlamak için SHA algoritmaları kullanılır. Her blok, önceki bloğun özetini içerir, bu da blok zincirinin değiştirilmesini zorlaştırır.