Kriptografik bir karma fonksiyon olan SHA256 algoritması, veri bütünlüğünü ve özgünlüğünü güvence altına almak için yaygın olarak kullanılır.
Girdi verilerini 512 bit (64 bayt) sabit boyutta parçalarda işler ve benzersiz bir 256 bit (32 bayt) karma üretir.
Bu özellik, tüm veri kümesinin belleğe yüklenmesini gerektirmeden verilerin daha küçük parçalar halinde işlendiği artımlı karma sağlar.
Bu işlevsellik özellikle gömülü cihazlar gibi sınırlı kaynaklara sahip sistemler için veya büyük dosyaları işlerken faydalıdır.
Artımlı karma, işlenen her veri yığınıyla güncellenen bir dahili durumu koruyarak çalışır.
Bu durum, verilerin bir kerede veya daha küçük segmentlerde karma olup olmadığına bakılmaksızın nihai karma değerinin tutarlı kalmasını sağlar.
Algoritmanın tasarımı, kısmi karmaları tam bir şekilde birleştirmeyi imkansız hale getirerek güvenliğini uzunluk uzatma saldırılarına karşı koruyor.
SHA256’nın teknik iş akışı
Giriş mesajı, uzunluğunun 512 bitin katı olduğundan emin olmak için ön işlemden geçirilir.
Tek bir ‘1’ bit ve ardından sıfır ile başlayarak dolgu uygulanır ve orijinal mesaj uzunluğu 64 bit değer olarak eklenir.
Bu, algoritmanın blok tabanlı işleme ile uyumluluk sağlar.
Araştırmacılara göre, her 512 bit yığın her biri 32 bitlik 16 kelimeye ayrılmıştır.
Bu kelimeler, bitsel kaymalar ve Xors gibi mantıksal işlemler kullanılarak 64’e genişletilir.
Algoritma daha sonra bu kelimeleri, asal sayılardan türetilen sabitler ve önceden tanımlanmış değerlerle başlatılan sekiz çalışma değişkeni kullanarak 64 tur hesaplama gerçekleştirir.
Operasyonlar şunları içerir:
- Mantıksal fonksiyonlar ve ya da xor gibi ve değil.
- Sonuçların 32 bit içinde uymasını sağlamak için modüler ilave.
- Doğruluk ve doğrusal olmama için sağ dönüşler ve vardiyalar.
Her turun sonunda, çalışma değişkenleri bu işlemlerin sonuçlarına göre güncellenir.
Birden fazla parça işlenirse, bir yığıntan çıkış karma değerleri bir sonraki giriş olarak hizmet eder.
Tüm parçalar işlendikten sonra, sekiz çalışma değişkeni son 256 bit karma değerini üretmek için birleştirilir.
Bu değer, giriş verilerinin dijital parmak izi olarak hizmet eder ve orijinal içeriği ortaya çıkarmak için tersine çevrilemez.
Uygulamalar ve avantajlar
Artımlı karma, bellek kısıtlamalarının veya büyük veri kümelerinin tüm verilerin bir kerede işlenmesini pratik hale getirdiği senaryolarda özellikle yararlıdır.
Örnekler şunları içerir:
- Akış veya şanzıman sırasında dosya bütünlüğünün doğrulanması.
- Gömülü sistemlerde karma yazılım güncellemeleri.
- İşlemlerin aşamalı olarak karma olduğu blockchain uygulamaları.
SHA256 uygulayan kütüphaneler tipik olarak işlevler sağlar update
parçaları işlemek için ve finalize
Nihai karma üretmek için.
Bu yaklaşım, çeşitli kullanım durumlarında verimlilik ve tutarlılık sağlar.
Are you from SOC/DFIR Team? - Join 500,000+ Researchers to Analyze Cyber Threats with ANY.RUN Sandbox - Try for Free