SHA-2: Revizyonlar arasındaki fark

Vikipedi, özgür ansiklopedi
[kontrol edilmemiş revizyon][kontrol edilmiş revizyon]
İçerik silindi İçerik eklendi
A.aycaacet (mesaj | katkılar)
İcerik
Etiketler: Mobil değişiklik Mobil ağ değişikliği
RabiaEry (mesaj | katkılar)
A.aycaacet tarafından yapılan 18472540 sayılı değişiklik geri alınıyor.
7. satır: 7. satır:
[[Kategori:Kriptografik algoritmalar]]
[[Kategori:Kriptografik algoritmalar]]
[[Kategori:Hash fonksiyonları]]
[[Kategori:Hash fonksiyonları]]


SHA-2
SHA-2 (Güvenli Hash Algoritması 2), Birleşik Devletler Ulusal Güvenlik Ajansı (NSA) tarafından tasarlanan bir şifreleme hash fonksiyonları kümesidir. [3] Şifreleme hash fonksiyonları, dijital veriler üzerinde çalışan matematiksel işlemlerdir; Hesaplanmış "hash" (algoritmanın yürütülmesinden elde edilen çıktı) ile bilinen ve beklenen bir hash değeri karşılaştırılarak, bir kişi verilerin bütünlüğünü belirleyebilir. Örneğin, indirilen bir dosyanın hash değerini hesaplamak ve sonucu önceden yayınlanmış bir hash değeri sonucuyla karşılaştırmak, indirmenin değiştirildiğini veya müdahale edilip edilmediğini gösterebilir. [4] Şifreleme hash fonksiyonlarının önemli yönü çarpışma direncidir: kimse aynı hash değeri çıktısına sahip iki farklı giriş değeri bulamaz. SHA-2, öncülü SHA-1'den önemli değişiklikler içeriyor. SHA-2 ailesi, 224, 256, 384 veya 512 bit olan digest (hash değerler) ile altı hash fonksiyoninden oluşur: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA -512/256. SHA-256 ve SHA-512 sırasıyla 32-bit ve 64-bit kelimelerle hesaplanan yeni hash fonksiyonlardır. Farklı kayma miktarları ve katkı sabitleri kullanıyorlar, ancak yapıları aksi takdirde hemen hemen aynıdır, yalnızca mermi sayıları farklıdır. SHA-224 ve SHA-384, ilk değerlerin farklı başlangıç ​​değerleriyle hesaplanan kesilmiş versiyonlarıdır. SHA-512/224 ve SHA-512/256 da SHA-512'nin kesilmiş versiyonlarıdır, ancak başlangıç ​​değerleri Federal Bilgi İşleme Standartları (FIPS) PUB 180-4'te açıklanan yöntem kullanılarak oluşturulmuştur. SHA-2 2001'de Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından bir ABD federal standardı (FIPS) tarafından yayınlandı. SHA-2 algoritma ailesi, ABD patenti 6829355'de patentlenmiştir. [5] Amerika Birleşik Devletleri patenti telif ücretsiz lisansıyla yayımladı. [6] 2005 yılında, SHA-1 çarpışmalarını, daha önce düşündüğünden daha az adımla yaklaşık 2.000 kez bulma algoritması ortaya çıkmıştır. [7] 2017'de bir SHA-1 çarpışma örneği yayınlandı. [8] SHA-1 tarafından bırakılan güvenlik marjı, amaçlanandan daha zayıf ve kullanımı dijital imza gibi çarpışma direncine bağımlı olan uygulamalar için artık önerilmiyor. SHA-2, SHA-1 algoritmasına bir miktar benzerlik taşımasına rağmen, bu saldırılar SHA-2'ye başarılı bir şekilde genişletilmemiştir. Şu anda, en iyi halka açık saldırılar, aşağıdaki şifreleme analizi ve doğrulama bölümünde gösterildiği gibi, 52 tur SHA-256 veya 57 SHA-512 sürüşü için preimage direncini ve 46 tur SHA-256 için çarpışma direncini kırmaktadır. [1] [2] ]]
ÖZET STANDARTI
NIPS, FIPS PUB 180-2 yayınıyla SHA ailesinde üç ek hash fonksiyonu fonksiyonleri ekledi. Algoritmalar, toplu olarak SHA-2 olarak bilinir ve bunların uzunlukları (bit olarak) adlandırır: SHA-256, SHA-384 ve SHA-512. Algoritmalar ilk olarak 2001'de FIPS PUB 180-2 taslağı içinde yayınlandı ve bu arada kamuoyu incelemesi ve yorumları kabul edildi. Ağustos 2002'de, FIPS PUB 180-2, Nisan 1995'te piyasaya sürülen FIPS PUB 180-1'in yerini alan yeni Güvenli Hash Standardı oldu. Güncellenmiş standart, güncellenmiş teknik notasyonla orijinal SHA-1 algoritmasını içeriyordu; SHA-2 ailesinin iç işleyişleri. [9] Şubat 2004'te, iki anahtarlı Üçlü DES'nin anahtar uzunluğuyla eşleşecek şekilde tanımlanan ilave bir varyant olan SHA-224'ü belirterek, FIPS PUB 180-2 için bir değişiklik bildirimi yayınlandı. [10] Ekim 2008'de standart, değişiklik bildiriminde yer alan SHA-224 dahil olmak üzere FIPS PUB 180-3'te güncellendi, ancak aksi takdirde standartta köklü değişiklikler yapılmadı. Standart güncelleme için birincil motivasyon, hash algoritmalarla ilgili güvenlik bilgilerini ve Özel Yayınlar 800-107 ve 800-57'ye yönelik kullanım önerilerini yerleştirmekti. [11] [12] [13] Ayrıntılı test verileri ve örnek ileti özetleri de standarttan kaldırılmış ve ayrı belgeler olarak sunulmuştur. [14] Ocak 2011'de NIST, 2013 yılının sonuna kadar federal hükümet kullanımına izin verebilen 80 bit'lik (SHA-1 tarafından sağlanan) minimum güvenlikten 112 bitlik bir güvenlikle (SHA tarafından sağlanan) bir değişiklik belirtti. SP800-131A yayınladı -2) bundan sonra minimum gereksinim olanı ve yayın tarihinden itibaren önerilen güvenlik seviyesidir. [15] Mart 2012'de standart, SHA-512/224 ve SHA-512/256 hash fonksiyonlerini ekleyerek ve SHA-512'nin kesik sürümleri için başlangıç ​​değerlerini üretmek için bir yöntem açıklayan FIPS PUB 180-4'te güncellendi. Buna ek olarak, hash verilerden önce girdi verilerini doldurma konusunda bir kısıtlama kaldırıldı; hash verilerin, gerçek zamanlı bir video veya ses yayını gibi eşzamanlı olarak içerik üretme ile eşzamanlı olarak hesaplanmasına izin verilmektedir. Nihai veri bloğunun doldurulması hala hash değeri, çıktıdan önce yapılmalıdır. [16] Temmuz 2012'de NIST, kriptografik anahtar yönetimi için rehberlik sağlayan SP800-57'yi revize etti. Yayın, 2013'ten sonra 112 bit'den daha düşük bir hash güvenliği olan dijital imzaların oluşturulmasını yasaklıyor. 2007'den önceki önceki gözden geçirme, kesimin 2010'un sonu olacağını belirtti. [13] Ağustos 2012'de NIST aynı şekilde SP800-107'yi revize etti. [12] NIST hash fonksiyonu yarışması 2012'de SHA-3 yeni hash fonksiyonunu seçti. [17] SHA-3 algoritması SHA-2'den türetilemez.

UYGULAMA
SHA-2 hash fonksiyonu, TLS ve SSL, PGP, SSH, S / MIME ve IPSec de dahil olmak üzere yaygın olarak kullanılan güvenlik uygulamalarında ve protokollerde uygulanmaktadır. SHA-256, Debian yazılım paketlerini [18] ve DKIM mesaj imzalama standardında kimlik doğrulama sürecinde yer alır; SHA-512, Ruanda soykırımı Uluslararası Ceza Mahkemesinden arşiv videosunun kimliğini doğrulayan bir sistemin parçasıdır. [19] DNSSEC'de SHA-256 ve SHA-512 kullanımı önerilmiştir. [20] Unix ve Linux üreticileri, güvenli şifre hash değeri için 256 ve 512 bit SHA-2'yi kullanmaya yöneliyor. [21] Bitcoin gibi birkaç kripto para birimi işlemleri doğrulamak ve istihkam kanıtını veya hissenin kanıtını hesaplamak için SHA-256 kullanır. ASIC SHA-2 hızlandırıcı yongalarının yükselişi, kripto tabanlı çalışma kanıtı şemalarının kullanılmasına yol açtı. SHA-1 ve SHA-2 hassas olmayan sınıflandırılmış bilgilerin korunması için diğer şifreleme algoritmaları ve protokolleri dahil olmak üzere bazı ABD Hükümeti uygulamalarında kullanılmak üzere yasalarca gerekli olan güvenli hash algoritmalarıdır. FIPS PUB 180-1, özel ve ticari kuruluşlar tarafından SHA-1'in benimsenmesini ve kullanılmasını da teşvik etti. SHA-1 hükümet kullanımlarının çoğunda artık kullanımdan kalkmıştır; ABD Ulusal Standartlar ve Teknoloji Enstitüsü "Federal ajanslar, SHA-1'i pratik olarak en kısa sürede çarpışma direnci gerektiren uygulamalar için kullanmayı bırakmalı ve 2010'dan sonra bu uygulamalarda SHA-2 ailesi hash fonksiyonları kullanmalıdır" diyor (Orijinal vurgu). [22] NIST, ABD devlet kurumlarının 2010'dan sonra SHA-1 kullanımlarını durdurması gerektiği yönünde [23] SHA-1'den göçü hızlandırmayı umuyordu. SHA-2 fonksiyonları başlangıçta, SHA-1'den daha iyi güvenlik olmasına rağmen hızlı bir şekilde uygulanmadı. Nedenleri arasında, Windows XP SP2 veya daha üstü [24] çalıştıran sistemlerde SHA-2 için eksiklik ve SHA-1 çarpışmaları henüz bulunmadığından acil olarak algılanamamaları olabilir. Google Chrome ekibi, web tarayıcısının 2014'ün sonlarından 2015'in başlarına kadar bir süre boyunca SHA-1'e bağlı TLS sertifikalarını kademeli olarak reddetmesini planlayan bir plan yaptığını duyurdu. [25] [26] [27] Benzer şekilde Microsoft, İnternet Explorer ve Edge'in Şubat 2017'den itibaren genel SHA-1 imzalı TLS sertifikalarını onaylamayacağını açıkladı [28].
ŞİFRELEME ANALİZi VE DOĞRULAMA
L, ileti özet akışındaki bitlerin sayısı olduğu bir hash fonksiyon için belirli bir ileti özetine karşılık gelen bir ileti bulmak daima 2L değerlendirmelerinde brute force araması kullanılarak yapılabilir. Buna bir pre-image saldırısı denir ve L'ye ve belirli bilgi işlem ortamına bağlı olarak pratik olmayabilir veya olmayabilir. Aynı mesaj özetini üreten ve çarpışma olarak bilinen iki farklı mesaj bulma ikinci kriter, doğum günü paradoxu kullanan ortalama sadece 2L / 2 değerlendirmeyi gerektirir. Şifre saklama gibi şifreleme hashları kullanan bazı uygulamalar yalnızca bir çarpışma saldırısından en az etkilenir. Belirli bir hesap için çalışan bir şifrenin oluşturulması, pre-image atağının yanı sıra önemsiz olabilen veya olmayabilecek orijinal şifrenin hash değerine (genellikle gölge dosyasında) erişilmesini gerektirir. Ters çevrilen şifre şifrelemesi (ör. Bir kullanıcının hesabına karşı başka bir yerde denemek için bir şifre elde etmek), saldırılar tarafından mümkün değildir. (Bununla birlikte, güvenli parola hash değeri bile zayıf parolaları brute force saldırılarını engelleyemez.) Belge imzalamada, bir saldırgan mevcut bir belgenin imzasını basitçe taklit edemez; saldırganın zararsız ve zarar verici bir çift belge üretmesi ve gizli anahtar sahibinin zararsız belgeyi imzalamasını istemek gerekir. Bunun mümkün olduğu pratik koşullar vardır; 2008'in sonuna kadar, yaygın olarak kullanılan web tarayıcıları tarafından kabul edilecek bir MD5 çarpışması kullanarak sahte SSL sertifikaları oluşturmak mümkündü. [29] SHA-3 yarışması sırasında kriptografik hash analizine olan ilginin artması, SHA-2 ailesinde birkaç yeni saldırı ortaya çıkardı; bunların en iyileri aşağıdaki tabloda verilmiştir. Sadece çarpışma saldırıları pratik bir karmaşıklığa sahiptir; Saldırıların hiçbiri tam tur hash fonksiyonuna kadar uzanmaz. FSE 2012'de Sony araştırmacıları, sözde çarpışma saldırılarının, SHA-256 üzerinde 52 tur ve SHAR-512 üzerinde 57 turda uzatılabileceğini düşündüren bir sunum yaptılar.
Yayınlanan

Yıl

Saldırı Metodu

Saldırı

Varyant

Yuvarlar

Karmaşıklık

Karşı Yeni Çarpışma Saldırıları 24 adete kadar SHA-2'ye kadar [31][31]

2008

Deterministik

Çarpışma

SHA-256

24/64

228.5





SHA-512

24/80

232.5

Adım azaltılmış SHA-2 için ön imgeler [32]

2009

Ortak noktada buluşmak

Ön imge

SHA-256

42/64

2251.7






43/64

2254.9





SHA-512

42/80

2502.3






46/80

2511.5

İleri düzey buluşma öncesi saldırı önleme saldırıları [33]

2010

Ortak noktada buluşmak

Ön imge

SHA-256

42/64

2248.4





SHA-512

42/80

2494.6

İndirgenmiş SHA-256 Üzerinde Yüksek Düzeyli Diferansiyel Saldırı [2]

2011

Diferansiyel

Sözde çarpışma

SHA-256

46/64

2178






33/64

246

Ön imgeler için çiftler: Skein-512 ve SHA-2 ailesine saldırılar [1]

2011

Çiftler

Ön imge

SHA-256

45/64

2255.5





SHA-512

50/80

2511.5




Sözde ön imge

SHA-256

52/64

2255





SHA-512

57/80

2511

Yerel Çatışmaları Geliştirme: Azaltılmış SHA-256'ya Yeni Saldırılar [34]

2013

Diferansiyel

Çarpışma

SHA-256

31/64

265.5




Sözde çarpışma

SHA-256

38/64

237

SHA-512 Uygulamaları ile Diferansiyel Çarpışma Araştırmasında Dallanma Sezgiselleri

2014

Sezgisel Diferansiyel

Sözde çarpışma

SHA-512

38/80

240.5

SHA-512/224 ve SHA-512 / 256'nın analizi [36]

2016

Diferansiyel

Çarpışma

SHA-256

28/64

practical





SHA-512

27/80

practical




Sözde çarpışma

SHA-512

39/80

practical

RESMİ DOĞRULAMA
Tüm FIPS onaylı güvenlik fonksiyonlarının uygulamaları, Ulusal Standartlar ve Teknikler Enstitüsü (NIST) ve Communications Security Establishment (CSE) ortaklaşa yürütülen CMVP programı aracılığıyla resmen doğrulanabilir. Gayrı resmi doğrulama için, çok sayıda test vektörü üretmek için bir paket, NIST sitesinde indirilebilir; Bununla birlikte, sonuçta ortaya çıkan doğrulama, bazı uygulamalar için kanun tarafından gerekli görülen resmi CMVP doğrulamasının yerine geçmez. Aralık 2013'ten itibaren, SHA-256'nın 900'den fazla geçerliliği olan ve yalnızca 5 tanesi, her iki türe de destek olmakla birlikte sekiz kat fazla olmayan bir bit uzunluğundaki mesajları işleyebilecek durumda olan 13'den fazla geçerliliği vardır (bkz. SHS Doğrulama Listesi).
TEST VEKTÖRLERİ

Boş bir dizenin hash değerleri (yani, sıfır uzunluklu bir girdi metni).
SHA224("")
0x d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
SHA256("")
0x e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA384("")
0x 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
SHA512("")
0x cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
SHA512/224("")
0x 6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4
SHA512/256("")
0x c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a


Mesajdaki ufak bir değişiklik bile (çok büyük olasılıkla), çığ etkisi nedeniyle çoğunlukla farklı hash sonucunu doğuracaktır. Örneğin, bu cümlenin sonuna bir periyot eklemek hash bitlerinin neredeyse yarısını (224'ün 111'ü) değiştirir:

SHA224("The quick brown fox jumps over the lazy dog")
0x 730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525
SHA224("The quick brown fox jumps over the lazy dog.")
0x 619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c
SÖZDE KOD
SHA-256 algoritması için sözde kod aşağıdaki gibidir. W [16..63] kelimelerinin bitleri arasındaki karıştırmada SHA-1'e kıyasla büyük bir artış olduğuna dikkat edin.

Not 1: Tüm değişkenler 32 bitlik işaretlenmeyen tamsayılardır ve ekleme modulo 232 olarak hesaplanır
Not 2: Her tur için bir yuvarlak sabit k [i] ve mesaj planlaması dizisinde w [i], 0 ≤ i ≤ 63 bir giriş var
Not 3: Sıkıştırma fonksiyoni, a ile h
Not 4: Bu sözde kodda sabitler ifade edilirken big-endian kongresi kullanılır,
Ve mesaj blok verilerini bayttan kelimelere ayrıştırırken, örneğin,
Doldurma işleminden sonra "abc" giriş mesajının ilk kelimesi 0x61626380'dir
Hash değerlerini başlatır:
(Ilk 8 basamağın 2..19'unun kareköklerinin kesirli kısımlarının ilk 32 biti):
H0: = 0x6a09e667
H1: = 0xbb67ae85
H2: = 0x3c6ef372
H3: = 0xa54ff53a
H4: = 0x510e527f
H5: = 0x9b05688c
H6: = 0x1f83d9ab
H7: = 0x5be0cd19
Yuvarlak sabitler dizisini başlatır:
(Ilk 64 asal 2..311'in küp köklerinin kesirli kısımlarının ilk 32 biti):
K [0..63]: =
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90bekfffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
Ön-işleme:
Uzunluk L bitlerinin orijinal mesajıyla başlayın
Tek bir '1' biti ekleyin
K '0' bitlerini ekleyin, burada K, L + 1 + K + 64'ün 512'nin bir katı olduğu şekilde> = 0 minimum sayıdır
L'yi 64 bitlik bir big-endian tamsayı olarak ekleyin, toplam işlem sonrası uzunluğu 512 bitin katına çıkarır
İletiyi ardışık 512-bit parçalar halinde işleyin:
Iletiyi 512-bit parçalar halinde kesme
Her parça için
64 girişli ileti dizisi dizisi w [0..63] 32 bitlik sözcükler oluştur
(W [0..63] 'deki başlangıç ​​değerleri önemli değil, pek çok uygulama bunları sıfırlar)
Parçayı ilk 16 kelimeye w [0..15] mesaj planlaması dizisine kopyala
İlk 16 kelimeyi, mesaj planı dizisinin kalan 48 kelimeye w [16..63] uzatın:
I için 16'dan 63'e
S0: = (w [i-15] sağa döner 7) xor (w [i-15] sağa döner 18) xor (w [i-15] haklar değiştirme 3)
S1: = (w [i-2] sağa döndür 17) xor (w [i-2] sağa döndür 19) xor (w [i-2] haklar değiştirme 10)
W [i]: = w [i-16] + s0 + w [i-7] + s1
Çalışma değişkenlerini geçerli hash değere başlat:
A: = h0
B: = h1
C: = h2
D: = h3
E: = h4
F: = h5
G: = h6
H: = h7
Sıkıştırma fonksiyoni ana döngü:
I için 0'dan 63'e
S1: = (e sağ sinyal 6) xor (e sağ sinyali 11) xor (e sağ sinyal 25)
Ch: = (e ve f) xor ((e değil) ve g)
Temp1: = h + S1 + ch + k [i] + w [i]
S0: = (sağa dönüş 2) xor (sağa dönüş 13) xor (sağ rota 22)
Maj: = (a ve b) xor (a ve c) xor (b ve c)
Temp2: = S0 + maj
H: = g
G: = f
F: = e
E: = d + temp1
D: = c
C: = b
B: = a
A: = temp1 + temp2
Sıkıştırılmış parçayı geçerli hash değerine ekleyin:
H0: = h0 + a
H1: = h1 + b
H2: = h2 + c
H3: = h3 + d
H4: = h4 + e
H5: = h5 + f
H6: = h6 + g
H7: = h7 + saat
Son hash değerini (big-endian) üretin:
Digest: = hash: = h0 ekleme h1 ekleme h2 ekleme h3 ekleme h4 ekleme h5 ekleme h6 ekleme h7

Ch ve maj değerlerinin hesaplanması, SHA-1 için anlatılanla aynı şekilde optimize edilebilir. SHA-224, SHA-256 ile aynıdır, ancak: Ilk hash değerleri h0 ile h7 farklıdır ve Çıktı h7 atlanarak oluşturulmuştur.

SHA-224 ilk hash değerlerini (büyük endian olarak):
(9'dan 16. asal kareler köklerinin kesirli kısımlarının ikinci 32 biti 23..53)
H [0..7]: =
0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4

SHA-512 yapıda SHA-256 ile aynıdır, ancak: Mesaj 1024 bit parçalara bölünür, Ilk hash değerler ve yuvarlak sabitler 64 bit'e genişletilir, 64 yerine 80 tur var, Mesaj planlama dizisi w, 64 32-bit kelime yerine 80 64-bit kelime, Ileti dizisi dizisi w'yi genişletmek için, döngü 16 ile 63 arasında değil, 16'dan 79'a, Yuvarlak sabitler ilk 80 asal 2.409, Hesaplamalar için kullanılan kelime boyutu 64 bit uzunluğundadır, Mesajın bitişik olarak eklenmiş uzunluğu (ön işleme tabi tutulmadan önce), 128 bitlik bir big-endian tamsayıdır ve Kullanılan kaydırma ve döndürme miktarı farklıdır.
SHA-512 başlangıç özet değeri (büyük endian olarak):
h[0..7] := 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1,
0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179
SHA-512 yuvarlama sabiti:
k[0..79] := [ 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538,
0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe,
0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235,
0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab,
0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725,
0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed,
0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, 0xd192e819d6ef5218,
0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53,
0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373,
0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c,
0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6,
0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc,
0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817]
SHA-512 Sum & Sigma:
S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)
S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)
s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)
s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)


SHA-384, SHA-512 ile aynıdır, ancak: H0 ila h7 arasındaki ilk hash değerler farklıdır (9'dan 16. asallara kadar alınmıştır) ve Çıktı h6 ve h7 atlanarak oluşturulmuştur.

SHA-384 başlangıç özet değeri (büyük endian olarak):
h[0..7] := 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17, 0x152fecd8f70e5939,
0x67332667ffc00b31, 0x8eb44a8768581511, 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4


SHA-512 / t, SHA-512 ile aynıdır: Ilk hash değerleri h0 ila h7, SHA-512 / t IV üretim fonksiyonu tarafından verilir, Çıktı, t0 bitlerinde h0 ile h7 arasındaki birleşmeyi keserek oluşturulur, T 384'e eşit değildir, bunun yerine SHA-384 belirtildiği gibi kullanılmalıdır ve T değerleri 224 ve 256 özellikle onaylanmış olarak belirtilmektedir. SHA-512 / t IV nesil fonksiyonu, t'nin ondalık gösterimi ile değiştirilen ASCII "SHA-512 / t" dizesindeki bir değiştirilmiş SHA-512'yi değerlendirir. Modifiye edilmiş SHA-512, SHO-512 ile aynıdır, ancak başlangıç ​​değerleri h0 ila h7 her biri 0xa5a5a5a5a5a5a5a5 onaltılık sabitiyle XOR yapılır. SHA-2 ailesi hash fonksiyonları için örnek C uygulaması RFC 6234'de bulunabilir.
SHA FONKSİYONUNUN KARŞILAŞTIRILMASI
Aşağıdaki tabloda iç durum, bir veri bloğunun her sıkıştırılmasından sonra "dahili hash toplam" anlamına gelir.

Daha fazla bilgi: Merkle-Damgård



Bitwise operations sütununda, "Rot" döndürme yok taşımayı, "Shr" ise sağ mantık kaymasını ifade eder. Bu algoritmaların hepsi, SHA-3 haricinde modüler ekleme uygular. Yukarıdaki performans numaraları, 64-bit modunda Linux altında 2.2 GHz hızında çalışan ve yalnızca genel karşılaştırma için kaba bir nokta olarak sunulan bir AMD Opteron 8354'ün tek parçalı bir uygulaması içindir. Modern işlemci mimarileri üzerinde daha ayrıntılı performans ölçümleri aşağıdaki tabloda verilmektedir.


'X86' etiketli performans numaraları, 64-bit işlemcilerde 32-bit kod kullanırken, 'x86-64' sayıları doğal 64-bit koddu. SHA-256, 32-bit hesaplamalar için tasarlanmışken x86 mimarisinde 64-bit işlemciler için optimize edilmiş koddan yararlanır. SHA-512'nin 32-bit uygulamaları 64-bit'lik eşyalarından önemli ölçüde daha yavaştır. Her iki algoritmanın farklı çıktı boyutlarına sahip varyantları, mesaj genişletme ve sıkıştırma fonksiyonları aynı olduğundan ve yalnızca başlangıç ​​hash değerleri ve çıktı boyutları farklı olduğu için benzer şekilde performans gösterecektir. MD5 ve SHA-1'in en iyi uygulamaları, modern işlemcilerde bayt başına 4,5 ila 6 devir arasında performans gösterir. Deneme Illinois Chicago Üniversitesi tarafından 3.5 GHz saat hızında bir Intel Xeon E3-1275 V2 çalıştıran hidra8 sistemi ve 3.8 GHz hızında bir AMD A10-5800K çalışan hydra9 sisteminde test edildi. [ 43] Yukarıdaki bayt hızları için atıfta bulunulan döngüler, SUPERCOP şifreleme kıyaslama yazılımını kullanarak 4,096 baytlık bir mesajı sindiren bir algoritmanın medyan performansıdır. [44] MiB / s performansı tek bir çekirdekteki CPU saat hızından çıkarılır; Gerçek dünya performansı, çeşitli faktörlere bağlı olarak değişecektir.
Ayrıca bakınız;
Comparison of cryptographic hash functions
Hash-based message authentication code
Hashcash
International Association for Cryptologic Research (IACR)
sha1sum (sha224sum, sha256sum, sha384sum and sha512sum) commands
Trusted timestamping

Sayfanın 15.02, 24 Nisan 2017 tarihindeki hâli

SHA-2, ABD Ulusal Güvenlik Ajansı (NSA) tarafından dizayn edilen bir kriptografik özet fonksiyonudur.

SHA-2'nin SHA'nın önceki versiyonlarından en büyük farkı farklı uzunluklarda çıktı verebilen ve farklı blok uzunluğu kullanan türlerinin bulunması. SHA ve SHA-1'de çıktı uzunluğunu metni 512 bitlik bloklara bölerek yapılan işlemler sonucu elde ediyordu. SHA-2'de ise metin 1024 ve 512 bitlik bloklara bölünebilerek, 224, 256, 384 ve 512 bitlik çıktı alınabiliyordu.