Karma İşaretçiler ve Veri Yapıları
Karma İşaretçiler ve Veri Yapıları
Bu bölümde, karma işaretçileri ve uygulamalarını tartışacağız. Karma işaretçi bir veridirkonuşacağımız sistemlerin çoğunda kullanışlı olduğu ortaya çıkan yapı. Bir karma işaretçisadece bazı bilgilerin bir şifreleme karmasıyla birlikte depolandığı bir işaretçibilgi. Normal bir işaretçi size bilgiyi almanın bir yolunu verirken, bir karma işaretçiayrıca bilgilerin değişmediğini doğrulamanız için bir yol sağlar.Şekil 1.4 Karma işaretçisi Karma işaretçisi, verilerin birzama içinde belirli bir noktada bu verinin değerinin kriptografik karması.Her türlü veri yapısını oluşturmak için karma işaretçiler kullanabiliriz. Sezgisel olarak, tanıdık bir veri alabilirizbağlantılı liste veya ikili arama ağacı gibi işaretçiler kullanan ve hash ile uygulayan yapıişaretçiler, normalde yaptığımız gibi işaretçiler yerine.Şekil 1.5'de karma işaretçiler kullanarak bağlantılı bir liste oluşturduk. Bu veriyi arayacağızbir blok zinciri oluşturur. Bir dizi bloğun olduğu normal bağlantılı bir listede olduğu gibi, her biri blok, bir blok zincirinde bir önceki blokta veriler ve listedeki bir önceki bloğa bir işaretçi içeririmleç bir karma imleciyle değiştirilir. Yani her blok bize sadeceönceki blok öyleydi, ancak değerin doğrulanmasına izin veren bu değerin bir özetini de içeriyordeğişmedi. Listenin başlığını saklıyoruz, ki bu sadeceen son veri bloğu.32Şekil 1.5 Blok zinciri Blok blok, işaretçiler yerine karma işaretçilerle oluşturulan bağlantılı bir listedir.Bir blok zinciri için bir kullanım örneği kurcalamaya açık bir kütüktür. Yani, bir günlük veri yapısı oluşturmak istiyoruz. bir grup veri depolar ve günlüğün sonuna veri eklememize izin verir. Ama eğer birisi değişirsegünlüğün başında olan verileri tespit edeceğiz. Bir blok zincirinin bu kurcalama özelliğine neden ulaştığını anlamak için, eğer birdüşman, zincirin ortasındaki verilerle uğraşmak istiyor. Özellikle, rakiphedef, öyle ki böyle yapmaktır ki, adeceblok zinciri kurcalamayı tespit edemez. Bu hedefe ulaşmak için, rakipbazı blok verileri k. Veriler değiştirildiğinden, k + 1 bloğundaki karma,tüm blok k, eşleşmeyecek. Unutmayın ki istatistiksel olarak yenihash işlevi çarpışmalara karşı dayanıklı olduğu için hash değiştirilen içerikle eşleşmez. Ve böylece yapacağızk bloğundaki yeni veriler ile k + 1 bloğundaki karma işaretçi arasındaki tutarsızlığı saptar.tabii ki rakip bir sonraki bloğun karmasını değiştirerek bu değişikliği denemeye devam edebilir. de. Düşman bunu yapmaya devam edebilir, ancak bu strateji, liste. Özellikle, hash işaretçisini listenin başlangıcında, Düşman onu değiştiremezse, düşman tespit edilmeden herhangi bir bloğu değiştiremez.Bunun sonucu, eğer rakip eğer bu zincirin herhangi bir yerinde veriyle uğraşmak istiyorsa,Hikayeyi tutarlı tutmak için, karma işaretçileri tamamen kurcalamak zorunda kalacakbaşa dönüş. Ve sonuçta birlikte gösterime girecek, çünkü bunu yapamayacaklistenin başı ile kurcalamak. Böylece ortaya çıkıyor, sadece bu tek karma işaretçisini hatırlayarak,esasen tüm listenin kurcalanmasının belirgin bir karmasını hatırladık. Böylece bir blok zincir oluşturabilirizbunun gibi istediğimiz kadar blok içerir, başında özel bir bloğa geri döner.genesis bloğu olarak adlandıracağımız liste. Blok zincir yapısının Merkle ‐ Damgard yapısına benzer olduğunu fark etmiş olabilirsiniz.önceki bölümde gördüğümüz Aslında, oldukça benzerler ve aynı güvenlik argümanıher ikisi için de geçerlidir.33Şekil 1.6 Kurcalama ile ilgili günlük kaydı Bir rakip, blok zincirinin herhangi bir yerinde verileri değiştirirse,Aşağıdaki bloktaki karma işaretçisinde yanlış. Listenin başlığını saklarsak,rakip tüm değiştiricileri değiştirilen verilerle tutarlı olacak şekilde değiştirir, baş işaretçiyanlış olacak ve kurcalamayı tespit edeceğiz.Karışık işaretçiler kullanarak oluşturabileceğimiz bir başka yararlı veri yapısı ikili bir ağaçtır. bir karma işaretçileri olan ikili ağaç, mucidi Ralph Merkle'den sonra Merkle ağacı olarak bilinir. Varsayalımveri içeren çok sayıda blok var. Bu bloklar ağacımızın yapraklarını oluşturur. Gruplandırıyoruzbu veriler iki çift halinde bloklanır ve daha sonra her bir çift için iki karması olan bir veri yapısı oluştururuzişaretçiler, bu blokların her birine birer tane. Bu veri yapıları ağacın bir sonraki seviyesini oluşturur. Bizbunları iki gruba ayırın ve her bir çift için aşağıdakileri içeren yeni bir veri yapısı oluşturun:

Leave a Reply

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