SHA-2

SHA-2 (Сигурносни алгоритам хеширања) је скуп криптографских хеш функција направљен од стране Националне Безбедносне Агенције (NSA). SHA је скраћеница за Сигурносни Алгоритам Хеширања. Криптографске хеш функције су математичке операције које се врше над дигиталним подацима; упоређивањем обрађеног "хеша" (резултата извршавања алгоритма) са познатом и очекиваном хеш вредношћу, можемо утврдити целовитост података. На пример, обрађивањем хеша скинутог фајла и упоређивањем резултата са претходно објављеном хеш вредношћу можемо утврдити да ли је фајл мењан или компромитован. Кључна одлика криптографске хеш функције је његова отпорност на сударање, тј. није могуће наћи два различита уноса који као резултат дају исту хеш вредност.
SHA-2 укључује значајне промене у односу на свог претходника SHA-1. SHA-2 породица се састоји од 6 хеш функција са обрадама (хеш вредностима) од 224, 256, 384 или 512 бита: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
SHA-256 и SHA-512 су новије хеш функције обрађиване 32-битним односно 64-битним речима. Користе различите помераје и адитивне константе, али су им структуре осим тога скоро исте, разликују се само по броју рунди. SHA-224 и SHA-384 су једноставно окрњене верзије прва два, обрађене другим почетним вредностима. SHA-512/224 и SHA-512/256 су такође окрњене верзије SHA-512, али су почетне вредности генерисане методом прописаном Федералним Стандардом за Обраду Података (FIPS) PUB 180-4. SHA-2 је објављен 2001. год. од стране Националног Института за Стандарде и Технологију, америчког федералног стандарда (FIPS). SHA-2 породица алгоритама патентирана је под бројем 6829355. САД су ослободиле патент плаћања лиценце.
2005. год. појавио се алгоритам за проналажење судара SHA-1 алгоритма у око 2000 мање корака него до тада. Иако до данас није објављен ниједан пример судара код SHA-1 алгоритма, отпортност на сударе је мања од очекиване тако да се његово коришћење више не препоручује за послове који се ослањају на отпорност код судара, као на пример дигитални потпис. Иако је SHA-2 сличан SHA-1, напади никад нису успешно изведени.
Хеш стандард

The bitwise rotation uses different constants for SHA-512. The given numbers are for SHA-256. The red is addition modulo 232.
Објављивањем FIPS PUB 180-2, NIST додаје три додатне 3 хеш функције SHA породици. Ти алгоритми су познати као SHA-2, названих по дужини обрадних речи (у битовима): SHA-256, SHA-384, и SHA-512. Алгоритми су прво објављени 2001. год. у FIPS PUB 180-2 и у то време су прихватане јавне критике и коментари. Августа 2002, FIPS PUB 180-2 постаје нови Стандард Сигурног Хеширања и тиме замењује дотадашњи FIPS PUB 180-1 објављен 1995. Унапређени стандард је садржао првобитни SHA-1 алгоритам, са унапређеном техничком документацијом у којој је детаљно описан начин рада алгоритама SHA-2 породице.
Фебрара 2004., објављена је промена FIPS PUB 180-2 описујући нову варијанту,SHA-224, који је дефинисан да се поклапа са дужином кључа двокључног Triple DES-а. Октобра 2008. стандард је ажуриран у објави FIPS PUB 180-3 додајући SHA-224 као стандард, без фундаменталних промена у стандарду. Основна мотивација за унапређењем стандарда, било је премештање безбедносних информација о хеш алгирмима и препорукама за њихово коришћење у специјалне публикације 800-107 и 800-57. Детаљан тест података и пример обраде порука су уклоњени из стандарда и сада су доступни у засебним документима.
Јануара 2011. NIST објављује SP800-131A, у ком описује прелазак са дотадашње минималне безбедности од 80 битова (SHA-1) које су државне институције користиле до 2013. на 112 битну беубедност (SHA-2) што постаје минимална и препоручена безбедност након тога.[1]
Марта 2012. стандард је унапређен у објави FIPS PUB 180-4, тада су додате хеш функције SHA-512/224 и SHA-512/256 и опсиан је метод за генерисање почетних вредности за окрњене верзије SHA-512. Поред тога скинута је забрана допуњавања улазних података пре хеширања, што је дозвољавало да је хеш подаци рачунају истовремено када се генерише садржа, налик на пренос звука и видеа у реалном времену. Додавање финалног блока података мора да се заврши пре резултата хеширања.[2] Јула 2012[3]. NIST ревидира SP800-57, што пружа упутство за руковање криптографским кључевима. Ова публикација забрањује прављење дигиталних потписа који имају хеш безбедност мању од 112 бита након 2013. Претходна ревизија 2007. наводи да прелазак буде најкасније до краја 2010. Августа 2012. NIST проверава SP800-107 на исти начин.
Апликације
За више детаља на ову тему погледајте Cryptographic hash function § Applications.
SHA-2 хеш функција се користи у неким широко коришћеним сигурносним апликацијама и протоколима, као што су TLS, SSL, PGP, SSH, S/MIME и IPsec.
SHA-256 се користи као део процеса овере Debian GNU/Linux софтверских пакета[4], као и у DKIM стандарду за потписивање порука; SHA-512 је део система за оверавање архивског видеа из Медђународног суда правде за геноцид у Руанди. SHA-256 и SHA-512 су препоручени за коришћење у DNSSEC.[5] Јуникс и Линукс дистрибутери прелазе на коришћење 256битног и 512битног SHA-2 за сигурносно хеширање шифра.[6]
Неколико криптовалута као на пример Биткоин, користе SHA-256 за оверавање трансакција и рачунање proof-of-work и proof-of-stake. Напредовањем ASIC SHA-2 убрзавајућих чипова, довело је до коришчења proof-of-work шема заснованих на шифровању.
SHA-1 и SHA-2 су сигурни хеш алгоритми неопходни у одређеним државним установа САД, укључујући коришћење других криптографских алгоритама и протокола, за заштиту осетљивих информација. FIPS PUB 180-1 такође охрабрује прихватање и коришћење SHA-1 од стране приватних и трговинских организација. SHA-1 се више не користи у већини државних установа; Национални институт за Стандарде и Технологију у САД, препоручује државним службама да престану коришћење SHA-1 за послове који захтевају отпорност на судар и да користе неки од SHA-2 породице хеш функција након 2010. год. [7] NISТова директива је требало да убрза престанак коришћења SHA-1.
Упркос бољој сигурности, функционалности SHA-2 нису брзо привхаћене. Разлог можда лежи у томе што је недостајала подршка за системе на којима је био Windows XP SP2 или нека старија верзија, [8] као и у чињеници да идаље није пронађен судар код SHA-1 . Google Chrome тим је најавио да ће њихови прегледачи престати са коришћењем SHA-1-зависних
TLS сетификата у периоду од краја 2014 до ране 2015.[9][10][11]
Криптоанализа и овера
За хеш функције где L представља број бита у датој обрађеној поруци, наћи поруку која одговара датој необрађеној,може се одредити коришћењем”насилног“ алгоритма, односно “Brute force” алгоритма претрагому 2L израза. Ово се назива “preimage attack” и може, али и не мора бити ефикасно, у зависности од броја бита – L и од самог рачунарског окружења. Други критеријум јесте наћи две различите необрађене поруке које обрадом дају исти сегмент битова. Ово се назива колизија, и коришћењем такозваног “birthday attack” (криптографског напада), њихов број износи у просеку само 2L/2.
На неке апликације које користе криптографски хеш, као што је складиштење лозиник, колизија представља минималан проблем. Направити лозинку која одговара датом налогу захтева “preimage attack” , као и приступ хешу првобитне шифре, обично у shadow фајловима, што може, али опет и не мора бити једноставно. Чак ни безбедне хеш вредности лозинке не могу спречити да се, горе поменутим „насилним“ алгоритмом „нападну“ и открију неке не тако сигурне шифре.
У случајевима потписивања докумената, нападач не може просто лажирати потпис постојећег документа – нападач би морао да створи/напише два документа, један безазлен и један штетан и да онда натера или на неки начин учини да посредник приватног кључа потпише штетан документ. Постоје и ситуације у којима је могуће следеће: све до краја 2008. године, било је могуће креирати кривотворен SSL сертификат користећи MD5 колизију која је била прихваћена коришћењем интернет прегледача.
Повећавањем занимања за анализом криптографског хеша за време такмичења SHA3 довело је до новог напада на SHA-2 породицу. Једини практичан проблем јесте колизија, односно „колизиони напади“: ни један напад не указује на пуну хеш функцију.
На FSE 2012, истраживачи у Сонију су одржали презентацију указујући на то да псеудо-колизиони напади могу да се повећају чак на 52 рунди на SHA-256 и 57 рунди на SHA-512 користећи "biclique pseudo-preimage" напад.
| Објављено у | Година | Метод напада | Напад | Врста | Рунда | Комплексност |
|---|---|---|---|---|---|---|
| Нови напад судара против SHA-2 до 24 корака[12] |
2008 | Детерминистички | Судар | SHA-256 | 24/64 | 228.5 |
| SHA-512 | 24/80 | 232.5 | ||||
| Preimages за умањени број корака SHA-2[13] | 2009 | Човек-у-средини (МИТМ) | Preimage | SHA-256 | 42/64 | 2251.7 |
| 43/64 | 2254.9 | |||||
| SHA-512 | 42/80 | 2502.3 | ||||
| 46/80 | 2511.5 | |||||
| Напредни човек-у-средини (МИТМ) preimage напад[14] |
2010 | Човек-у-средини (МИТМ) | Preimage | SHA-256 | 42/64 | 2248.4 |
| SHA-512 | 42/80 | 2494.6 | ||||
| Диференцијални напад вишег реда на редуковани SHA-256[15] |
2011 | Диференцијал | Псеудо-судар | SHA-256 | 46/64 | 2178 |
| 46/64 | 246 | |||||
| Bicliques за Preimages: Напад на Skein-512 и SHA-2 фамилију[16] |
2011 | Biclique | Preimage | SHA-256 | 45/64 | 2255.5 |
| SHA-512 | 50/80 | 2511.5 | ||||
| Псеудо-preimage | SHA-256 | 52/64 | 2255 | |||
| SHA-512 | 57/80 | 2511 | ||||
| Побољшање локалног судара: Нови напад на редуковани SHA-256[17] |
2013 | Диференцијал | Судар | SHA-256 | 31/64 | 265.5 |
| Псеудо-судар | SHA-256 | 38/64 | 237 | |||
| Хеористика гранања у диференцијалном судару Претрага апликацијама до SHA-512[18] |
2014 | Хеористика диференцијала | Псеудо-судар | SHA-512 | 38/80 | 240.5 |
| Анализа SHA-512/224 и SHA-512/256[19] | 2016 | Диференцијал | Судар | SHA-256 | 28/64 | практичан |
| SHA-512 | 27/80 | practical | ||||
| Псеудо-судар | SHA-512 | 39/80 | practical |
Званична овера
Имплементација свих сигурносних функција, одобрених од стране FIPS-а, може бити оверена кроз CMVP програгам, који заједнички воде Национални институт за Стандарде и Технологију (NIST) и Установа за безбедне комуникације (CSE).
Примери SHA-2 варијанти
Хеш вредности празних стрингова.
Шаблон:Color 0x d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f Шаблон:Color 0x e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 Шаблон:Color 0x 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b Шаблон:Color 0x cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e Шаблон:Color 0x 6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4 Шаблон:Color 0x c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a
Чак ће и мала промена у поруци највероватније довести до различите хеш вредности. На пример додавање тачке на крај ове реченице мења вредност хеша са 111 на 224 бита:
Шаблон:Color 0x 730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525 Шаблон:Color 0x 619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c
Псеудокод
У наставку следи псеудокод за SHA-256 алгоритам.
Шаблон:Color Шаблон:Color Шаблон:Color Шаблон:Color Шаблон:Color Шаблон:Color Шаблон:Color h0 := 0x6a09e667 h1 := 0xbb67ae85 h2 := 0x3c6ef372 h3 := 0xa54ff53a h4 := 0x510e527f h5 := 0x9b05688c h6 := 0x1f83d9ab h7 := 0x5be0cd19 Шаблон:Color Шаблон:Color 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, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 Шаблон:Color append the bit '1' to the message append k bits '0', where k is the minimum number >= 0 such that the resulting message length (modulo 512 in bits) is 448. append length of message (without the '1' bit or padding), in bits, as 64-bit big-endian integer (this will make the entire post-processed length a multiple of 512 bits) Шаблон:Color break message into 512-bit chunks for each chunk create a 64-entry message schedule array w[0..63] of 32-bit words Шаблон:Color copy chunk into first 16 words w[0..15] of the message schedule array Шаблон:Color for i from 16 to 63 s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-15] rightshift 3) s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2] rightshift 10) w[i] := w[i-16] + s0 + w[i-7] + s1 Шаблон:Color a := h0 b := h1 c := h2 d := h3 e := h4 f := h5 g := h6 h := h7 Шаблон:Color for i from 0 to 63 S1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25) ch := (e and f) xor ((not e) and g) temp1 := h + S1 + ch + k[i] + w[i] S0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22) maj := (a and b) xor (a and c) xor (b and c) temp2 := S0 + maj h := g g := f f := e e := d + temp1 d := c c := b b := a Шаблон:Not a typo := temp1 + temp2 Шаблон:Color h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d h4 := h4 + e h5 := h5 + f h6 := h6 + g h7 := h7 + h Шаблон:Color digest := hash := h0 append h1 append h2 append h3 append h4 append h5 append h6 append h7
Обрађивање ch and maj вредности се може оптимизовати на исти начин као и код SHA-1.
SHA-224 је исти као SHA-256, осим што:
- Почетне вредности
h0доh7су различите и - Излаз се конструише избегавањем
h7
Шаблон:Color h[0..7] := 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
SHA-512 има исту структуру као SHA-256, али:
- порука се цепа у 1024-битне гомиле,
- има 80 рунди уместо 64,
- распоред порука, низ w има 80 64-битних речи уместо 64 32-битне речи,
- како би се проширио низ, петља иде од 16 до 79 уместо од 16 до 63,
- рундне константе су засноване на првих 80 простих бројева 2..409,
- реч која се користи за израчунавања је дугачка 64-бита,
- додата реч на поруку у пред-процесирању је дугачка 128-бита у big-endian означавању
- shift и rotate вредности су различите
Шаблон:ColorШаблон:Color h h[0..7] := 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179 Шаблон:Color Шаблон:Color 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] Шаблон:Color Шаблон:Color S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39) S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41) Шаблон:Color 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, осим што:
- Почетне вредности
h0доh7су различите и - излаз се прави избегавањем
h6иh7
Шаблон:Color Шаблон:Color h[0..7] := 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17, 0x152fecd8f70e5939, 0x67332667ffc00b31, 0x8eb44a8768581511, 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4
SHA-512/t је исти као SHA-512 осим што:
- Почетне вредности
h0доh7су дате функцијом SHA-512/t IV генерације, - Излаз се прави скраћивањем и повезивањем t битова од
h0доh7, - t не може бити 384, уместо тога SHA-384 треба да користи како је прописано,
- t вредности 224 и 256 су посебно препоручене
Поређење SHA функција
У табели испод, унутрашње стање је "унутрашња хеш вредност" после сваке компресије блока података. Шаблон:Further
| Алгоритам и варијанта | Величина излаза (битови) |
Величина унутрашњег стања (битови) |
Величина блока (битови) |
Максимална дужина поруке (битови) |
Рунде | Операције | Заштита (битови) |
Пример извршењаШаблон:Refn (MiB/s) | |
|---|---|---|---|---|---|---|---|---|---|
| MD5 (as reference) | 128 | 128 Шаблон:Nowrap |
512 | Неограничено[20] | 64 | And, Xor, Rot, Шаблон:Nowrap Or | Шаблон:Bad | 335 | |
| Шаблон:Nowrap | 160 | 160 Шаблон:Nowrap |
512 | 264 − 1 | 80 | And, Xor, Rot, Шаблон:Nowrap Or | Шаблон:Bad | - | |
| Шаблон:Nowrap | 160 | 160 Шаблон:Nowrap |
512 | 264 − 1 | 80 | Шаблон:Depends | 192 | ||
| Шаблон:Nowrap | SHA-224 SHA-256 |
224 256 |
256 Шаблон:Nowrap |
512 | 264 − 1 | 64 | And, Xor, Rot, Шаблон:Nowrap Or, Shr | Шаблон:Good | 139 |
| SHA-384 SHA-512 Шаблон:Nowrap Шаблон:Nowrap |
384 512 224 256 |
512 Шаблон:Nowrap |
1024 | 2128 − 1 | 80 | And, Xor, Rot, Шаблон:Nowrap Or, Shr | Шаблон:Good | 154 | |
| Шаблон:Nowrap | SHA3-224 SHA3-256 SHA3-384 SHA3-512 |
224 256 384 512 |
1600 Шаблон:Nowrap |
1152 1088 832 576 |
Неограничено[21] | 24[22] | And, Xor, Rot, Not | Шаблон:Good | - |
| SHAKE128 SHAKE256 |
Шаблон:Nowrap Шаблон:Nowrap |
1344 1088 |
Шаблон:Good | - | |||||
Шаблон:Template reference list
У колони са битовским операцијама, "rot" заправо значи rotate no carry, а "shr" right logical shift. Сви ови алгоритми користе модуларно сабирање осим SHA-3.
Резултати перформанси изнад одговарају једно-нитнонј импементацији на AMD Opteron 8354 такта 2.2 GHz под Линуксом у 64-битном моду, и служе само као груба основа за општа поређења. Детаљнија мерења перформанси на савременим архитектурама процесора се налазе у табели испод.
| CPU архитектура | Фреквенција | Алгоритам | Дужина речи (битови) | Циклуси/бајт x86 | MiB/s x86 | Циклуси/бајт x86-64 | MiB/s x86-64 |
|---|---|---|---|---|---|---|---|
| Intel Ivy Bridge | 3.5 GHz | SHA-256 | 32-bit | 16.80 | 199 | 13.05 | 256 |
| SHA-512 | 64-bit | 43.66 | 76 | 8.48 | 394 | ||
| AMD Piledriver | 3.8 GHz | SHA-256 | 32-bit | 22.87 | 158 | 18.47 | 196 |
| SHA-512 | 64-bit | 88.36 | 41 | 12.43 | 292 |
Перформансе означене са 'x86' покретане су коришћењем 32-битног кода на 64-битним процесорима, док су 'x86-64' природни 64-битни кодови. И ако је SHA-256 дизајниран за 32-битне прорачуне, заправо има користи од кода оптимизованог за 64-битне процесоре на x86 архитектури. 32-битна имплементација SHA-512 је доста спорија од свог 64-битног рођака. Варијанте оба алгоритма са различитим величинама на излазу, ће се понашати слично, док су проширења поруке и функције компресије исте, и само почетне хеш вредности и величине на излазу су различите. Најбоље импементације MD5 и SHA-1 имају између 4.5 и 6 циклуса по бајту на модерним процесорима.
Испитивање је извршено од стране Универзитет Илиноја у Чикагу на њиховом hydra8 систему, који покреће Inter Xeon E3-1275 V2 са брзином такта од 3,5 GHz, и на њиховом hydra9 систему који покреће AMD A10-5800K са брзином такта од 3.8 GHz.[23] Претходно поменута брзина циклуса у битовима је средња брзна алгоритма који обрађује 4,096-битне поруке користећи SUPERCOP криптографски софтвер за рангирање.[24] MiB/s су изведени из брзине часовника процесора на једом језгру, реалне перформансе могу зависити од разних фактора.
Референце
- ↑ FIPS SP 800-131A Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths
- ↑ Federal Register Notice 2012-5400, Announcing Approval of FIPS Publication 180-4
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ John Markoff, A Tool to Verify Digital Records, Even as Technology Shifts, New York Times, January 26, 2009
- ↑ Ulrich Drepper, Unix crypt with SHA-256/512
- ↑ Шаблон:Cite web
- ↑ Microsoft Corporation,Overview of Windows XP Service Pack 3 Шаблон:Wayback
- ↑ Chromium Blog, September 5, 2014, Gradually sunsetting SHA-1
- ↑ Шаблон:Cite web
- ↑ Filippo Valsorda, The Unofficial Chrome SHA1 Deprecation FAQ
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite paper
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ SUPERCOP Benchmarks Measurements of hash functions, indexed by machine Шаблон:Wayback
- ↑ Шаблон:Cite web