2. ÖZET
SHA-256 algoritması, 2001 yılında SHA-1'in halefi olarak Ulusal Güvenlik Ajansı tarafından
oluşturulan SHA-2'nin (Güvenli Karma Algoritma 2) bir çeşididir. SHA-256, 256 bit uzunluğunda bir
değer çıkaran patentli bir şifreleme karma işlevidir.
Hashing nedir? Şifrelemede veriler, alıcının bir anahtarı olmadığı sürece okunamayan güvenli bir
biçime dönüştürülür. Şifrelenmiş haliyle, veriler, genellikle şifresiz oldukları sürece, sınırsız boyutta
olabilir. Hashing işleminde, aksine, keyfi büyüklükteki veriler sabit boyutlu verilerle eşleştirilir. Örneğin,
512 bitlik bir veri dizisi, SHA-256 hash oluşturma yoluyla 256 bitlik bir dizeye dönüştürülür.
3. TARİHÇESİ
SHA’nın anlamı ‘Güvenli Hashing Algoritması’dır. SHA-1 ve SHA-2 bu algoritmanın iki farklı
sürümüdür. İkisinin yapıları farklıdır ve imzanın bit uzunlukları da değişiklik gösterir. SHA-2’yi SHA-1’in
halefi gibi görebilirsiniz ve biraz daha gelişmiştir.
Genellikle insanlar ayrım yaparken bit uzunluğuna dikkat ederler. SHA-1 160 bit hash’e sahipken,
SHA-2’de ise bunlar değişim gösterir fakat en popüleri benim de proje konum olan 256-bit olandır.
SHA-2 hashlerin çeşitliliği biraz kafa karıştırıcı olabilir çünkü web siteleri ve yazarlar farklı ifadeler
kullanılırlar. Eğer SHA-2, SHA-256 ya da SHA-256 bit gibi ifadeler görürseniz, aslında bunların hepsi
aynı şeyi ifade etmektedir. Eğer SHA-224, SHA-384 ya da SHA-512 gibi ifadeler görürseniz de, bunlar
SHA-2’nin alternatif bit uzunluğunu göstermektedir. Ayrıca SHA-2 384 gibi ifadeler kullanarak hem
algoritmayı, hem de bit uzunluğunu bir arada kullanan siteler de vardır.
8. YAPILAN ÇALIŞMALAR
1. SHA-256, SHA-1'in (topluca SHA-2 olarak anılır) halefi karma işlevlerinden biridir ve mevcut en
güçlü karma işlevlerden biridir. SHA-256 kodlama açısından SHA-1'den çok daha karmaşık değildir
ve henüz herhangi bir şekilde tehlikeye atılmamıştır. 256 bitlik anahtar, onu AES için iyi bir ortak
işlevi yapar. NIST (Ulusal Standartlar ve Teknoloji Enstitüsü) standardı ‘FIPS 180-4’ te
tanımlanmıştır. NIST ayrıca, uygulamanın doğruluğunu doğrulamak için bir dizi test vektörü sağlar.
9. KRİPTOANALİZ DETAY
SHA-256, aşağıdaki özelliklere sahip kriptografik hash fonksiyonudur.
Herhangi bir isteğe bağlı uzunluk mesajı sabit değerler sağlayabilir (buna özet mesajlar denir).
Tek yönlü bir işlev olmalıdır. Verilen X için araçlar H (X) 'i hesaplayabilir ancak H (X) verildiğinde X'i hesaplamanın bir yolu yoktur.
Zayıf çarpışma - hash'lerin eşit olduğu başka bir girdiyi tahmin etmek zor bir hesaplamadır. Örneğin, X verildiğinde, H (X) = H (Y) olacak
şekilde Y'yi bulmak zordur.
Her şeyden önce SHA-256 şifreleme teknikleri değildir. Bu, sabit uzunluktaki mesajları hesaplamak için bir karma yöntemdir ve Evet, birisi
karma alma işlevini bilebilir, ancak orijinal mesajları geri almanın bir yolu yoktur.
Blok zincirinde, bloklar markle kök ağacı ile inşa edilir (bu hafif ağaç, çocuklarının toplu özetlerini içerir. Yine çocuklar ve orijinal işlem
mesajlarının karması yapraklarda bulunur). nonce değeri, blokta görülebilen bir şeydir, tüm SHA-254 hashed'inin kalanı. Birisi orijinal işlem
değerini değiştirmeye çalışırsa, buna karşılık gelen karma değişiklikleri tekrar yukarı akış karmalarını değiştiren vb. Anlamına gelir. Ve blok,
aşağı akıştaki tüm bloğun değişmesine neden olan önceki blok özetini içerdiğinden. Bu şekilde, bir düğüm defteri değiştirebilir, ancak bu
defter kullanışlı değildir çünkü bu defteri yayınladıktan sonra hiçbir eş düğüm kabul etmeyecektir çünkü bu fikir birliğine aykırıdır (% 51
anlaşma kuralı).
Not: Blockchain'in kurcalanmaya karşı dayanıklı olduğunu söylüyoruz. ancak blok zincirini değiştirmek her zaman mümkündür, ancak bu
hesaplama açısından mümkün değildir.
10. ALGORİTMA DEĞERLENDİRME
Basitçe bir sayıyı ikiliye çevirin ve ardından AND, XOR, NOT, Rotate & OR gibi temel standart
transistör ve veriyolu süreçleri aracılığıyla çalışan bir dizi basit işlevi gerçekleştirin. Bu, ASIC'lerin veya
Uygulamaya Özgü Yongaların, hashlemeyi optimize edecek şekilde tasarlanabilmesinin bir parçasıdır.
SHA-256 durumunda çipler, bir girişten hash oluşturma hızını artırmak için adımlar boyunca
yinelemeleri optimize etmek için özel olarak tasarlanmıştır. Madencilik söz konusu olduğunda bu,
nonce ve ekstra nonce parametrelerini yineleyerek saniyede daha fazla hash hesaplayabileceğiniz ve
blok ödülünü kazanma olasılığınızın daha yüksek olduğu anlamına gelir.