AgileFintechLab

Transforming Fintech with Agile

Cryptocurrency Encryptıon Ve SHA-256

Kripto para sistemlerinden veri doğrulamaya kadar birçok alanda kullanılan şifreleme yöntemleri hem bu sistemin güvenirliği hem de tercih edilebilirliği konusunda etkin bir rol oynamaktadır.
ECC, SHA-256, RSA, AES ve HMAC gibi türleri bulunan şifreleme algoritmalardan en çok tercih edileni şüphesiz SHA-256.

SHA-256, Bitcoin ve diğer birçok kripto para sisteminin temel yapı taşlarından biridir. Bu hashing algoritması 256 bitlik çıktı üretir ve verilerin şifrelenmesinde, blokların doğrulanmasında, işlem geçmişinin güvenliğinde kullanılır. SHA-256 algoritması, herhangi bir veri kümesinin benzersiz bir özetini oluşturur.SHA-256’nın, Bitcoin gibi kripto para birimlerinin güvenliğini sağlamak için nasıl çalıştığını daha yakından inceleyelim:

  1. Hashing ve Blok Zinciri

Kripto para birimlerinde, işlemler bloklar halinde kaydedilir ve bu bloklar birbirine zincirlenir (blockchain). SHA-256, her bir blokta yapılan işlemleri özetlemek için kullanılır. Bu işlem, işlemin veri bütünlüğünü sağlamak için kritiktir. Bir işlem kaydedildiğinde, işlemin verileri SHA-256 algoritması aracılığıyla hash’lenir. Hashing sonucu elde edilen 256-bit uzunluğundaki “parmak izi” her işlem için benzersizdir.

Her yeni blok, önceki bloğun hash’ini içerir, bu da blockchain’in “değiştirilemez” olmasını sağlar. Eğer bir blokta herhangi bir değişiklik yapılırsa, bloktaki hash değişecektir ve bu da zincirin tümünü etkiler. SHA-256, tüm blok zincirinin güvenliğini sağlamak için kritik bir rol oynar çünkü her blok, önceki bloğun hash’ine dayanarak güvenli bir şekilde zincire bağlanır.Blockchain teknolojisinin güvenlik özelliğinin güçlü olmasının en önemli nedenlerinden biri de bu yöntemdir.

  1. Madencilik (Mining) ve SHA-256
    Bitcoin gibi kripto para birimlerinde madencilik süreci, SHA-256 algoritmasının temelini oluşturur. Madencilik, işlemleri doğrulama ve yeni bloklar ekleme işlemidir. Madenciler, belirli bir hedef hash değeri elde edene kadar karmaşık matematiksel problemleri çözerler. Bu işlem sırasında madenciler, SHA-256 algoritmasını kullanarak her blok için bir “hash” değeri hesaplarlar.
    Madencilerin amacı, SHA-256 kullanarak blokta yer alan işlemleri doğrulayan ve belirli bir hedef hash değerini (bu hedef genellikle belirli bir sayının altında bir değer) bulan bir hash üretmektir. Bu hedef hash’e ulaşan madenci, işlemi doğrular ve blockchain’e yeni bir blok ekler. Madenci, bu başarı için ödüller alır (genellikle Bitcoin).Önceki zamanlarda bitcoin miktarı
    cezbedici olsa da 2016 daki kırılımla beraber buradaki miktarlarda da ciddi bir azalış gözlemlenmiştir.
  2. Gizlilik ve Güvenlik
    SHA-256’nin bir başka önemli özelliği, kripto para işlemlerinin gizliliğini ve güvenliğini sağlamasıdır. Hashing işlemi tek yönlüdür; yani, bir hash oluşturduktan sonra, bu hash’ten orijinal veriye geri dönmek neredeyse imkansızdır. Bu, Bitcoin gibi dijital para birimlerinde işlemlerin güvenliğini sağlamak için kritik bir avantajdır.
    Örneğin, Bitcoin işlem geçmişi bir blockchain üzerinde saklanır, ancak her işlem yalnızca o işlemi gerçekleştiren kişiye ait olmayan bir hash değeri içerir. Bu sayede, blockchain üzerindeki veriler güvenli bir şekilde saklanırken, kullanıcıların kimlikleri anonim kalabilir.
  3. İşlem Hızları ve SHA-256
    SHA-256’nın işlem hızları genellikle çok yüksektir, ancak her hash işlemi karmaşık bir hesaplama gerektirir. Madencilik sürecinde bu işlem, yoğun hesaplama gücü ve zaman gerektirir. Bu nedenle, Bitcoin madenciliği gibi büyük ağlar, bu algoritmayı çalıştırmak için büyük miktarda enerji harcar. Ancak bu da Bitcoin ve diğer kripto paraların güvenliğini sağlayan bir özelliktir, çünkü saldırganların sistem üzerinde değişiklik yapabilmesi için yüksek hesaplama gücü ve büyük enerji kaynakları gereklidir.Ancak bu özellik Bitcoin’in bir ödeme aracı olmasının önünde de bir engeldir.Her ne kadar değeri sabit olmayan bir coin ile alışveriş yapmak mantıklı olmasa da ileriki dönemlerde ödeme sektörünün hızına yetişen bir şekilde buradaki sürelerin geliştirilmesi gerekmektedir.

Teknik Süreç Temel Adımları

1-Mesajın Uzunluğunun Eklenmesi:

İşlem yapılacak veri (mesaj) 512-bitlik bloklar halinde işlenir.
Mesajın sonuna, mesajın uzunluğunu belirten bir 64-bitlik veri eklenir. Bu, toplam veri uzunluğunu 512-bit katlarına tam bölünecek şekilde hizalar.

Padding (Doldurma):
Mesajın sonunda, işlem yapılacak veri bloğunun 512 bitlik uzunluğa ulaşması için 1 bitlik bir ‘1’ eklenir, ardından kalan boşluklar 0 ile doldurulur.
Bu işlem, algoritmanın başında yapılır ve mesajın orijinal içeriğini bozmadan veri boyutunu hizalar.

  1. Başlangıç Değerleri (Initial Hash Values)

SHA-256 algoritmasında, başlangıçta belirli sabit değerlerle başlanan 8 adet 32-bitlik değer bulunur.. Bu başlangıç değerleri şunlardır:

H0 = 0x6a09e667
H1 = 0xbb67ae85
H2 = 0x3c6ef372
H3 = 0xa54ff53a
H4 = 0x510e527f
H5 = 0x9b05688c
H6 = 0x1f83d9ab
H7 = 0x5be0cd19

  1. Mesajın İşlenmesi (Message Schedule)

SHA-256, her bir 512-bitlik veri bloğu için belirli bir işlem sürecini takip eder. Bu süreçte kullanılan message schedule, 64 adet 32-bitlik kelimeden oluşur. Mesaj bloğu her 512-bit’lik işlemde şu şekilde işlenir:
İlk 16 kelime, mesajın doğrudan 512-bit’lik bloğundan alınır.
Geriye kalan 48 kelime, daha önce hesaplanan bir dizi şifreleme adımıyla oluşturulur. Bu adımlar, önceki kelimeler ve matematiksel işlevlerle birleştirilir.

  1. SHA-256 Hesaplama Adımları

SHA-256 hesaplama süreci, 64 adımda gerçekleşir ve her adımda şu işlem uygulanır:
Mesaj planı (message schedule) kullanılarak, her bir veri bloğu işlenir.
Değişkenler (working variables), bu adımlar boyunca güncellenir. Bu değişkenler, H0, H1, H2, H3, H4, H5, H6, H7 başlangıç değerlerinden türetilir.
Her bir adımda, H0-H7 değişkenleri yeni hash değerleriyle güncellenir.
Bu güncelleme, karmaşık bit düzeyindeki hesaplamalarla yapılır ve burada kullanılan temel işlemler şunlardır:
Şifreleme Fonksiyonları: Ch, Maj, S0, S1, σ0, σ1 gibi fonksiyonlar kullanılır.
Sabit Sabitler (K): SHA-256, her adımda kullanılmak üzere sabit bir dizi 32-bitlik sabit değer içerir. Bu sabitler, algoritmanın güvenliğini artırmak için kullanılır.
Bit Döndürme (Rotation) ve Kaydırma (Shift):Right-rotate (dönme) ve right-shift (kaydırma) gibi bit düzeyindeki işlemlerle hash değerleri üzerinde manipülasyon yapılır.
Bu manipülasyonlar, farklı bit dizilerini karıştırarak hash’in güçlü ve benzersiz olmasını sağlar.

  1. Sonuç (Final Hash)

İşlem sonunda, H0-H7 değişkenlerinin birleşiminden 256-bitlik (32 byte) bir hash değeri elde edilir. Bu hash değeri, girdi mesajının özeti olarak kabul edilir ve verinin doğruluğunu kontrol etmek için kullanılır.

Sonuç olarak, SHA-256, güçlü bir güvenlik sağlamak için kullanılan, verimli ve güvenilir bir şifreleme algoritmasıdır. Kripto para sistemlerinden veri doğrulamasına kadar çok geniş bir kullanım alanına sahiptir. Bu algoritmanın tasarımındaki temel unsurlar, veri bütünlüğü, gizlilik ve güvenlik sağlamak amacıyla dikkatlice optimize edilmiştir. Bu nedenle, dijital güvenlik alanında SHA-256, günümüzün en önemli ve etkili araçlarından biri olarak öne çıkmaktadır.

Gizem Özdemir

*PS Bu içerik hazırlanırken herhangi bir AI desteği kullanılmamıştır.

Yorum bırakın