@BitcoinHaber: Kriptografik Özet

27 Eylül 2016 Salı

Kriptografik Özet

Tane Tane Blockchain Bölüm 4: 

Blok Zincirinin Yumurta Akı Kriptografik Özet

Tane Tane Blockchain yazı dizimizin önceki bölümünde Blok Zincirini pastaya benzetmiştik. Bu bölümde de pastanın yumurta akı gibi zincir halkalarını birarada tutan Hash yani Kriptografik Özet Fonksiyonundan bahsediyoruz. 

blockchain-hash-kriptografik-ozet-yumurta-aki
Hash yumurta akı gibidir

- Bitcoin anlatırken kriptografik özet fonksiyonundan bahsetmiştim, hatırlıyor musun?
- Cık. Yani o zaman da çok karışık göründüğü için hiç üzerine eğilmemiştim.  Sadece bitcoin gibi kriptoparalarda var sanıyordum. Blok zincirinde de mi var kripto?
- Olmaz mı? Zinciri bir arada tutan şey kripto. Pastadaki yumurta gibi.
- Ne menem birşeymiş bu? Öğrenmem şart mı?
- Hayatta blok zincirinden daha çok işine yarayabilecek bir bilgi bu. Benim elimde olsa bilmeyene bilgisayar mühendisi diploması vermezdim.
- Aman abi yakarsın öğrencilik kariyerimi.
- Sadece kripto adı kulağa korkutucu geliyor oysa gerçekten bir zorluğu yok.  Herşeyin kaynağı matematik hatta matematiğin de içinde fonksiyonlar konusu. Fonksiyonların içinde de özet fonksiyonu.  İngilizcesi HASH FUNCTION, belki merak edip google dan ararsın diye.
- Nedir bu haş? Yani özet fonksiyonu?
- Tanımını vikipedi'den okursun. Ben sana basit örnekler vereceğim daha kolay anlayacaksın. Diyelim ki bilgisayarında resimlerle dolu bir klasörün var. Bazı resimleri farklı isimlerle tekrar tekrar kaydetmiş olduğunu farkediyorsun. Yer açmak için çift olanları ayıklamak istiyorsun ama tek tek her resmi açıp bakmak da zahmetli bir iş. Kolaylaştıracak bir yöntem geliyor mu aklına?
- Dosya isimleri farklıysa dosya boyutuna bakarım. Mesela 4,344,640 Bayt gibi.
- Aferin! Dosya boyutu ayırdedici bir özelliktir. Aynı resmin farklı kopyalarının dosya boyu hep aynı olur. Bazen iki farklı resmin dosya boyları tesadüfen aynı olabilir ama bu küçük bir ihtimal. Eğer bir resmi paint gibi bir programla açıp bir nokta eklersen boyu değişir. Demek ki boyutu dosyanın imzası diye düşünmek - en azından bu örnek için – çok yanlış olmaz.
- Kolaymış.
- Bir başka örnek için sana bir sihirbazlık numarası yapacağım. Şimdi cebinden kimlik kartını çıkart ve bana göstermeden TC kimlik numaranın 1,3,5,7,9 uncu hanelerini topla. Kaç çıktı?


satoshi-nakamoto-tc-kimlik
TC Kimlik No
- 24
- Şimdi de 2,4,6,8 inci hanelerini topla. Kaç çıktı?
- bi bakayım.. Evet 20 çıktı
- 11 haneli TC kimlik numaranın son iki hanesini bana söylemedin değil mi?
- Söylemedim.
- Söylemediysen son iki hanenin 82 olduğunu nasıl bildim?
- Aaa? Hakikaten de son iki hanesi 82. Müthiş bir numara. Sırrı nedir?
- 10 * ((24*7+20) mod 10) + (24 + 20) mod 10
- Yani bir formülü mü varmış?
- Evet, tüm TC kimlik numaralarının son 2 hanesi checksum (toplam sağlaması) için ayrılmıştır. Böylece diğer rakamlardan biri bile yanlışlıkla değişse sağlama tutmaz. Son iki rakamına TC kimlik numaranın özeti diyebiliriz. İmzası da diyebiliriz.
- Anlamaya başladım.
- Şimdi de üçüncü örneğe geçelim. Bunun için cep telefonunu çıkar ve google dan şu aramayı yap: “SHA256 online
- Yaptım, bir sürü site çıktı. Hangisine gireyim?
- Farketmez çünkü hepsinde aynı sonucu alacağız. Beğendiğin bir tanesine tıkla. Sayfada şuna benzer şeyler olmalı. “Data” başlıklı bir metin alanı. Calculate başlıkı bir buton ve işlemin sonucunu gösteren bir alan. Başlıklar çok farklı da olabilir ama aşağı yukarı buna benzer bir sayfa gelmeli:

DATA : [                                                                  ]
SHA-256: [                                                              ]
Calculate

- Evet, bir tane buldum. Aynen dediğin gibi.  http://www.xorbin.com/tools/sha256-hash-calculator
- Şimdi giriş alanına şunu yaz. Küçük-büyük harflere ve boşluklara dikkat et, aynı yazdığım şekilde olmalı. Tırnak işaretlerini yazmıyorsun : “Tane Tane Blok Zinciri
- Evet yazdım.
- Sonucu görmek için butona bas. Aşağıdaki sonuç çıktı değil mi? 911e6332cbc238698d4c30d0614963425dbd62e14ca0416eb5f3f93724a005c5

- Aaaa evet. Sen bu siteye daha önceden girmiş miydin?
- Girmem gerekmiyor. Tıpkı herhangi bir hesap makinesinde 2 ve karekök tuşuna bastığında sonucun 1,414213562373095 çıkması kadar evrensel bir hesap yaptık. Başka bir hesap makinası da kullansan hatta sadece kağıt kalem ile karekök 2 yi de hesaplasan hep aynı sonucu bulursun.

- Yalnız bu SHA256 sayı değil karışık harfler döndürdü gibi
- Harf değil. Heksadesimal, yani 16 lık tabanda yazılmış büyük bir sayı çıktı.  Sayının uzunluğu 256 bit yani 256/8 = 32 bayt. Her harf 4 bite karşılık geliyor. 0 (hex) = 0000 (binary)  ve F (hex) = 1111 (binary)
- Çıkan sayı girdiğimiz yazının şifrelenmiş hali mi?
- Hayır özeti.  Şifre olsaydı uygun bir anahtar ile çözümü mümkün olurdu. Özeti ise hiçbir şekilde ilk haline getirmen mümkün değil.  Bir diğer özelliği de girdinin boyu ne olursa olsun hep aynı uzunlukta olması. Mesela 32 bayt.
- Özet fonksiyonu ne işe yarıyor? Yani blok zincirine faydası nedir?
- Hash, yani Özet Fonksiyonunun iki temel işlevi var. Bir tanesi bloğu oluşturan zincir halkalarını birbirine bağlamak. Her halka kendinden bir önce gelen halkanın özetini içeriyor. İkinci önemli görevi de İş Kanıtı (Proof of Work) algoritmasının temelini oluşturması. İş kanıtına daha sonra geleceğiz.
- Anladım. SHA-256 ile özet fonksiyonu aynı şey mi?
- SHA-256 fonksiyonu pek çok özet fonksiyonundan sadece bir tanesi. Bitcoin blok zincirinin kullandığı fonksiyon bu olduğundan en çok bilineni. Bunun dışında örneğin Ethereum zinciri kendi gelişrirdiği Ethhash  fonksiyonunu kullanıyor.
- Ethereum nedir?
- Tane tane dinlersen birazdan ona da geleceğiz.

Devam edecek...

İlgili Sayfalar
Tane Tane Bitcoin : Kriptografik Özet Fonksiyonu

Faydalı sayfalar
Vikipedi - Kriptografik Özet Fonksiyonu