Hash Collision nedir?
Hash Collision, iki farklı girdinin tam olarak aynı hash çıktısını verdiği durumdur. İki farklı anahtarın aynı dijital kilidi açması gibi düşünün. Nadirdir, ama zayıf bir algoritmayla karşılaşırsa sorun yaratabilir.
“Bir çarpışma varsa her şey bozulur.” Tam olarak doğru değil. Güçlü algoritmalar pratik bir Hash Collision olasılığını çok düşük tutar ve modern sistemler tek bir kusurun her şeyi altüst etmesini engelleyecek katmanlar ekler.
Hash Collision nasıl çalışır
Hash'i büyük veriye ait küçük bir etiket olarak düşünün. İşte girdiden hata anına kısa tur.
- Girdi: Herhangi bir mesaj, dosya veya işlemle başlarsınız.
- Hash: cryptographic hash functions ailesinden bir fonksiyon bu girdiyi sabit uzunlukta bir dizgeye çevirir.
- Çarpışma: Çıktılar sınırlı ama girdiler sonsuz olduğundan, iki farklı girdi aynı çıktıya eşleşebilir.
- Saldırı: Ciddi tehdit, birinin kasıtlı olarak iki farklı girdi oluşturup bunları çarpıştırabilmesi ve sonra birini diğerinin yerine koyabilmesidir.
- Savunma: İyi algoritmalar bu aramayı astronomik ölçüde maliyetli kılar, rastgele denemeler zaman ve para tüketir.
Evet, mesele bu.
Hash Collision neden önemli
Bu matematik ve kod köşesi neden ilginizi çekmeli?
- Yarar: Güçlü direnç, veri etiketlerinizin benzersiz kalmasını sağlar, böylece hileye yer azalır.
- Bakış açısı: Çarpışmalar; blockchain technology, yazılım güncellemeleri ve dosya doğrulama gibi bütünlük gerektiren alanlarda tehdit oluşturur.
- Alaka: Cüzdanlarda, borsalarda, kanıtlarda ve hash eşitliğine güvenen denetim araçlarında karşınıza çıkar.
Olanak varsa, savunmaları üst üste koyan şemaları tercih edin, örneğin Double Hashing, ve geniş çapta incelenmiş, uzun çıktı üreten algoritmaları kullanın.
Hash Collision'ın temel özellikleri
Bu olayı özel kılan ve not etmeye değer olanlar:
- Kaçınılmaz: Sonlu çıktı kümesi ve sınırsız girdiler nedeniyle bazı çiftler çarpışır, merdiven örneğine benzer bir sonuç ortaya çıkar.
- Zor: Modern hashlerde, kasıtlı bir çarpışma bulmak hesaplama açısından çok zordur.
- İmzalar: Birçok digital signatures bir hash'i imzalar, bu yüzden çarpışma direnci imza sahiplerini aldatmacaya karşı korur.
Hash Collision nasıl hesaplanır?
Çaba tahmini için doğum günü paradoksu fikri kullanılır. k bitlik bir hash için, herhangi bir çarpışma olasılığı yaklaşık %50 olan rastgele deneme sayısı yaklaşık olarak 2 üzeri k sayısının karekökü ile 1.1774 çarpımına eşittir.
n_fifty_percent ≈ 1.1774 * sqrt(2^k) Örnek: k 256 olduğunda, gereken denemeler akıl almaz derecede büyüktür, bu yüzden kaba kuvvetle çarpışma bulmak hafta sonu işi değildir.
Çeşitleri
Araştırmalarda ve saldırılarda farklı türler görünür:
- Collision: Herhangi iki farklı girdi aynı hash'i paylaşır.
- Second: Verilen bir girdiye karşılık gelen başka bir girdiyi bulmak.
- Preimage: Verilen bir hash için ona eşlenen herhangi bir girdi bulmak.
- Prefix: Seçilmiş önek çarpışması, farklı seçilmiş başlangıçlara sahip iki mesajın aynı hash ile sonuçlanmasıdır.
SHA256 için şu ana dek kamuya açık, pratik bir çarpışma bulunmamıştır. Birisi böyle bir şey iddia ederse, kontrol ve test sonuçları gelene kadar acele etmeyin.
Örnek
Bir saldırgan aynı txid'ye sahip iki farklı işlem oluşturabilse, imzaladıktan sonra ikizlerden birini değiştirerek Double Spending hilesini deneyebilir.
İlginç bilgi
MD5 çarpışmaları yıllar önce gösterildi ve SHAttered projesi iki farklı PDF ile halka açık bir SHA1 çarpışması üretti, bu da endüstriyi onu emekliye ayırmaya itti.
Özet
Tek cümleyle, Hash Collision iki farklı girdinin aynı dijital parmak izini paylaşmasıdır ve modern kriptografi bunun pratik bir sorun olmasını engellemek için yoğun çalışır.
