Karma işlevlerden ihtiyaç duyacağımız
Karma işlevlerden ihtiyaç duyacağımız
: Bulmaca dostu. Karma işlevlerden ihtiyaç duyacağımız üçüncü güvenlik mülkübulmaca dostu oldukarını. Bu özellik biraz karmaşık. Önce ne olduğunu açıklayacağızBu mülkün teknik gereksinimleri ve daha sonra bunun nedenini gösteren bir uygulamaözellik yararlıdır.Bir bulmaca fonksiyonu H, olası her n-bit çıktı için H-bulmaca dostu olduğu söyleniry değeri, k yüksek min ‐ entropisi olan bir dağılımdan seçildiyse, x'i bulmak mümkün değildir.H (k ‖ x) = y zaman içinde 2'de önemli ölçüde azn.Sezgisel olarak bunun anlamı şudur: eğer birisi karma fonksiyonunu hedeflemek istiyorsabelirli bir çıkış değeri y, eğer girdinin uygun şekilde rastgele seçilmiş bir kısmı varsa,tam olarak o hedefe ulaşan başka bir değer bulmak çok zordur.Uygulama: Arama Yapboz.Şimdi, bunun yararlılığını gösteren bir uygulamayı düşünelimEmlak. Bu uygulamada, bir arama bulmacası, matematiksel bir problem oluşturacağız.çözümü bulmak için çok geniş bir alan aramayı gerektirir. Özellikle, bir arama bulmacasınınkısayollar. Yani, bu geniş alanı aramaktan başka geçerli bir çözüm bulmanın bir yolu yoktur.1 Ters çıkarımlar geçerli değildir. Yani, çarpışmalar bulmak mümkündür, ancak bunların hiçbiriform H (nonce ‖ msg) == H (nonce '‖ msg'). Örneğin, yalnızca iki farklı vakanın bulunduğu bir çarpışma bulabilirseniz,aynı mesaj için aynı taahhüdü oluşturur, daha sonra taahhüt şeması hala bağlayıcıdır, ancakaltta yatan karma işlevi çarpmaya dayanıklı değildir.29Arama bulmaca. Bir arama bulmaca● karma işlevi, H,● yüksek min ‐ entropi dağılımından seçilen bir değer, id (bulmacayı ‐ ID olarak adlandırıyoruz)● ve bir hedef kümesi YBu bulmacanın çözümü bir değer, x, öyle kiH (id ‖ x) ∈ Y.Sezgi şudur: H'nin n bit çıkışı varsa, 2'den herhangi birini alabilirn değerleri. Bulmacayı çözmebir girişin bulunmasını gerektirir, böylece çıkış Y setinde kalır, bu genellikletüm çıkışlar kümesi. Y boyutu bulmacanın ne kadar zor olduğunu belirler. Y, tüm n bit dizelerinin kümesiysebulmaca önemsizdir, oysa Y sadece 1 elemente sahipse bulmaca maksimum derecede zordur. Gerçek şu ki bulmaca kimliği yüksek min ‐ entropi hiçbir kısayol olmasını sağlar. Aksine, eğer belirli birKimliğin değeri büyük olasılıkla, o zaman biri bulmacanın çözümünü önceden hesaplayarak hile yapabilirdibu kimliğe sahip.Bir arama bulmacası bulmaca dostu ise, bu bulmacanın çözme stratejisi olmadığı anlamına gelir.x'in rastgele değerlerini denemekten çok daha iyi. Ve böylece, zor bir bulmaca oluşturmak istiyorsakçözmek, uygun şekilde rasgele bir şekilde bulmaca kimliklerini üretebildiğimiz sürece bunu yapabiliriz. bizlerbu fikri daha sonra bir tür hesaplama bulmacası olan Bitcoin madenciliği hakkında konuştuğumuzda kullanacağız.SHA-256. Karma işlevlerinin üç özelliğini ve bunların her birinin bir uygulamasını tartıştık.Şimdi bu kitapta çokça kullanacağımız belirli bir hash işlevini tartışalım. Bir sürühash işlevleri var, ancak bu Bitcoin'in öncelikle kullandığı ve kullanımı oldukça iyi.Buna SHA ‐ 256 denir.Karma işlevlerimizin keyfi uzunluktaki girdiler üzerinde çalışmasını istediğimizi hatırlayın. Neyse ki, sürece sabit uzunluklu girişlerde çalışan bir karma işlevi oluşturabiliriz, dönüştürmek için genel bir yöntem vardır rasgele uzunluk girişlerinde çalışan bir karma işlevine dönüştürün. Buna Merkle ‐ Damgard dönüşümü denir.SHA ‐ 256, bu yöntemi kullanan bir dizi yaygın olarak kullanılan karma işlevlerden biridir. İçindeortak terminoloji, altta yatan sabit uzunlukta çarpışma dayanıklı hash fonksiyonu denirsıkıştırma işlevi. Altta yatan sıkıştırma fonksiyonunun çarpışma olması durumunda kanıtlanmıştırdaha sonra genel hash fonksiyonu da çarpışmalara karşı dayanıklıdır.Merkle ‐ Damgard dönüşümü oldukça basit. Sıkıştırma işlevinin m uzunluktaki girdileri aldığını varsayalımve daha küçük bir uzunluktaki bir çıktı üretir. Herhangi bir boyutta olabilen karma işlevinin girdisi,uzunluğu m ‐ n olan bloklara ayrılmıştır. İnşaat aşağıdaki gibi çalışır: her bloğu birlikte geçirinönceki bloğun sıkıştırma fonksiyonuna çıkışı. Bu durumda giriş uzunluğunun(m ‐ n) + n = m, sıkıştırma fonksiyonunun giriş uzunluğu. İlk blok için,daha önceki blok çıktısı yok, bunun yerine bir Başlatma Vektörü (IV) kullanıyoruz. Bu numara yeniden kullanıldıher hash işlev çağrısı için ve pratikte bunu bir standart belgesinde arayabilirsiniz.son bloğun çıktısı döndürdüğünüz sonuçtur.

Leave a Reply

Your email address will not be published. Required fields are marked *