Bugün sizlerle birlikte nedir, ne değildir sorularımıza devam edeceğiz ve ‘Hashing Nedir?’ sorusuna cevap bulmaya çalışacağız.
Hashing, bir matematiksel fonksiyonu kullanarak bir karakterler dizisi yani hash dizisi oluşturmaktır. Bu karakter dizileri aşırı güvenlidir ve mesajları güvenli bir şekilde göndermemizi sağlar.
Kriptografik Hash Fonksiyonları
Kriptografik hash fonskiyonları, bir hash’ın ekstra güvenli spesifik türleridir ve kriptografi için mükemmellerdir. Aşağıda size sıralayacaklarımız ise bahsi geçen hash fonksiyonlarının sahip oldukları özelliklerdir:
Belirleyici – Belirli bir giriş yani input değeri için her zaman tam hash değeri üretilmelidir.
Bilgisayarlar açısından verimli – Bilgisayarların hash’ı hızlı bir şekilde geri döndürebilmeleri gerekir. Çoğu bilgisayar bir hash fonksiyonunu saniyenin bir fraksiyonunda işleyebilir.
Ön plan saldırılarına direnç – Hash fonksiyonu giriş yani input değeri hakkında hiçbir bilgi vermemelidir.
Çarpışma direnci – Hash fonksiyonlarında aynı çıkışı yani output’u üreten iki tane input’a sahip olmanın imkansız ve ekstrem derecede zor olması gerekir. Input değeri herhangi bir uzunlukta ve karakterde olabileceği için bu değer için oluşabilecek olasılıklar sonsuzdur. Outputlar ise belirli bir uzunluğa sahiptir. Bu nedenle de belirli sayıda olasılıkları barındırırlar. Dolayısıyla, birden fazla input değerinin aynı output’u doğurması mümkündür. Çarpışma direnci yeterince güçlü değilse çarpışmalar bir ‘birthday attack’ yoluyla bulunabilir.
‘Birthday attack’ dediğimiz şey, olasılık teorisinin arkasındaki matematikten yararlanan ataklardır. Bir örnek vermemiz gerekirse, doğum günü örneğini yüksek ihtimalle duymuşsunuzdur. Çok olası bir durum olmasa da bir odada 27 kişi varsa iki insanın aynı doğum gününe sahip olmasının ihtimali %50’dir.
Peki bunun sebebi nedir?
Bir insanın ‘doğru’ doğum gününe sahip olma ihtimali 1/365’tir. İkinci bir insanın da aynı günde doğmuş olma ihtimali de 1/365’tir. İki kişinin de aynı gün doğmuş olma olasılığını bulmak için ikisinin olasılığını çarpmamız gerekir. Bu nedenle, 365 farklı doğum günü varsa 365 tane ihtimal var demektir. Yani, eşleşmenin %50 şansla olması için rastgele seçilmiş 23 insana denk gelen 365’in karekökü alınır.
Bu teori hashing’e uygulanırsa teknik olarak şunu elde ederiz; hiçbir hash fonksiyonu çarpışmaya dirençsiz değildir. Ancak bunun gerçekleşmesi de uzun zaman alır.
Blockchain’de Hashing Nedir? Bitcoin SHA-256 Algoritması
Bitcoin bir blockchain üzerinde çalışır ve ‘SHA-256’ hashing algoritmasını kullanır. Bitcoin için hash fonksiyonları 3 ana işlev için kullanılır:
Madencilik – Madenciler bir yapbozu çözmek için yarışırlar. Her bir madenci çoktan bildiği bloklardan bilgi alır ve bunların dışında bir blok oluşturur. Algoritmadan gelen output hedef numaradan daha küçükse geçerli olarak kabul edilir ve network’ün geri kalanı tarafından kabul edilebilir. Bundan sonra da madencilerin bir sonraki bloğu yaratma hakları olur.
Blokları birleştirme – Daha fazla güvenlik için blockchain’deki her blok bir öncekiyle birleştirilir. Bu, hash pointer denen bir diğer değişkenin adresini saklayan değişkenler tarafından sağlanır. Basite indirgemek gerekirse, her bir blok blockchain’deki bir önceki bloğun hash sonucunu içerir. Bu da blockchain’in geçmişinin kolayca takip edilebildiğinden emin olur ve zararlı bir bloğun eklenmesi ihtimalini ortadan kaldırır.
Anahtarlar yaratma – Bir kripto para gönderip almak için bir özel bir de genel anahtara ihtiyacınız vardır. Bu iki anahtar ise birbirine bir hash fonksiyonu ile bağlıdır. Bu, ortak anahtarınıza dayanarak özel anahtarınızı kimsenin çözememesini sağlamak için önemli bir bileşendir.
Hashing’in Önemi
Hash fonksiyonu kripto paralara yüksek düzeyde güvenlik sağlar. Teoride online olan her şeyin hacklenebileceği mantığı olsa da hash fonksiyonu son zamanlarda var olan maksimum zorluk seviyesini ortaya koyar.
Sıkça Sorulan Sorular
Hash mantığı nedir?
Hashing ne için kullanılır?
SHA-256 algoritması nedir?
Sorumluluk Reddi
Sorumluluk Reddi: Trust Project yönergelerine uygun olarak bu web sayfasındaki eğitim içeriği, iyi niyetle ve yalnızca genel bilgilendirme amacıyla sunulmaktadır. BeInCrypto yüksek kalitede bilgi sağlamaya, derinlemesine araştırma yapmaya ve okuyucular için bilgilendirici içerik oluşturmaya öncelik verir. Ortaklar, şirketi makalelerdeki yerleşimler için komisyonlarla ödüllendirebilir. Ancak bu komisyonlar tarafsız, dürüst ve yardımcı içerik oluşturma sürecini etkilemez. Bu bilgilere dayanarak okuyucu tarafından gerçekleştirilen herhangi bir işlemin riski kesinlikle okuyucunun kendisine aittir.