SHA-2
SHA-2 és un conjunt de funcions hash criptográficas (SHA-224, SHA-256, SHA-384, SHA-512) dissenyades per l'Agència de Seguritat Nacional (NSA) i publicada en 2001 pel Institut Nacional d'Estàndarts i Tecnologia (NIST) com un Estàndar Federal de Processament de l'Informació (FIPS).
Una funció hash és un algoritme que transforma ("digerix") un conjunt arbitrari d'elements de senyes, com pot ser un ficher de text, en un únic valor de llongitut fixa (el "hash"). El valor hash calculat pot ser utilisat per a la verificació de l'integritat de còpies d'una senya original sense la necessitat de proveir la senya original. Esta irreversibilitat significa que un valor hash pot ser lliurement distribuït o almagasenat, ya que només s'utilisa per a fins de comparació. SHA significa algoritme de hash segur. SHA-2 inclou un significante número de canvis respecte al seu predecessor, SHA-1; i consistix en un conjunt de quatre funcions hash de 224, 256, 384 o 512 bits.
La seguritat proporcionada per un algoritme hash és sumament depenent de la seua capacitat de produir un únic valor per a un conjunt de senyes donades. Quan una funció hash produïx el mateix valor per a dos conjunts de senyes distintes, llavors es diu que s'ha produït una colisió. Una colisió aumenta la possibilitat de que un atacant puga elaborar computacionalment conjunts de senyes que proporcionen accés a informació segura o per a alterar fichers de senyes informàtiques de tal forma que no canviara el valor hash resultant i aixina eludir la detecció. Una funció hash forta és aquella que és resistent a este tipo d'atacs computacionals mentres que una funció hash dèbil és aquella a on existix una creència casi certera de que es poden produir colisions. Finalment, una funció hash quebrantada és aquella sobre la que es coneix métodos computacionals per a produir colisions.
En 2005, es varen identificar falles de seguritat en el SHA-1, permetent que existira una debilitat matemàtica i evidenciant aixina la necessitat d'elaborar una funció hash més forta.[1] Encara que el SHA-2 es comporta de forma pareguda a l'algoritme SHA-1, estos atacs no han segut estesos satisfactòriament a SHA-2.
La competició de funcions hash de la NIST va seleccionar una nova funció hash, el SHA-3, en 2012.[2] A diferència de SHA-2 en SHA-1, l'algoritme SHA-3 no és derivació de el SHA-2.
Funció hash
[editar | editar còdic]La rotació de bit usa diferents constants per a el SHA-512. Els números proporcionats corresponen a la SHA-256. El roig és suma mòdul 232.
En la publicació de el FIPS PUB 180-2, NIST va afegir tres noves funcions hash en la família de SHA. Els algoritmes eren comunament coneguts com SHA-2, especificats posteriorment per la seua llongitut (en bits): SHA-256, SHA-384, i SHA-512.
Els algoritmes varen ser prèviament publicats en 2001 en el borrador FIPS PUB 180-2, moment en el qual s'acceptaven revisions públiques i comentaris. En agost de 2002, FIPS PUB 180-2 es va convertir en el nou estàndar de hash segur, reemplaçant el FIPS PUB 180-1, el qual va ser publicat en abril de 1995. L'actualisació de l'estàndart va incloure l'algoritme original SHA-1, en la notació tècnica consistent en la que descrivia el funcionament intern de la família SHA-2.[3]
En febrer de 2004, es va publicar una notícia de modificació per a FIPS PUB 180-2, especificant una variant adicional (SHA-224) per a que coincidira la llongitut de la clau en la de Triple DES.[4] En octubre de 2008, l'estàndart va ser actualisat en el FIPS PUB 180-3, incloent el SHA-224 de la notificació de modificació pero sense modificar fonamentalment l'estàndart. La primera motivació de l'actualisació de l'estàndart va ser redistribuir l'informació de seguritat dels algoritmes de hash i recomanacions per al seu us en la "Special Publications" 800-107 i 800-57.[5][6][7] Senyes de prova detallats i eixemples de mensages "resumits" varen ser també eliminats de l'estàndart i varen ser proporcionats com a documents separats.[8]
En març de 2012, l'estàndart va ser actualisat a FIPS PUB 180-4, afegint les funcions hash SHA-512/224 i SHA-512/256, i descrivint un método per a la generació inicial de valors per mig de versions truncades de el SHA-512. Adicionalment, una restricció prèvia de la farcidura de les senyes d'entrada per al càlcul del hash va ser eliminada, permetent que les senyes hash anaren calculats simultàneament en la generació del contingut, tal com una retransmissió en temps real d'un vídeo o àudio. La farcidura final del bloc de senyes deu seguir ocorrent abans de l'eixida del hash.[9]
La SHA-256 i SHA-512 són noves funcions hash en 8 paraules de tamany 32 i 64 bits, respectivament. Usen diferents desplaçaments i constants, pero la seua estructura són per una atra part virtualment idèntica, diferenciant-se únicament pel número de iteraciones. SHA-224 i SHA-384 són simples versions de truncat de les dos anteriors funcions i estes són calculades en diferents valors inicials. SHA-512/224 i SHA-512/256 són també versions truncades de SHA-512, pero els valors inicials són generats usant un método descrit en el FIPS PUB 180-4. La família d'algoritmes SHA-2 estan patentats en els Estats Units d'Amèrica (palés en identificació 6829355) i varen ser lliberats baix una llicència lliure de drets d'autor.[10]
A finals de 2013, els millors atacs públics varen conseguir trencar les 46 de les 64 iteraciones de el SHA-256[11] i 46 de les 80 iteraciones de el SHA-512. Informació més detallada en la secció "Criptoanálisis i validació" següent.[12]
Comparació de funcions SHA
[editar | editar còdic]En la taula d'avall, estat intern significa "suma hash interna" despuix de cada compressió d'un bloc de senyes.
| Algoritme i variant |
Tamany d'eixida (bits). | Tamany de l'estat intern (bits). | Tamany del bloc (bits). | Tamany màxim del mensage (bits). | Llongitut de la paraula (bits). | Iteraciones | Operacions | Colisions trobades | Eixemple de rendiment (MiB/s)[13] | |
|---|---|---|---|---|---|---|---|---|---|---|
| MD5 (com a referència) | 128 | 128 | 512 | 264 - 1 | 32 | 64 | +, and, or, xor, rot | Si | 335 | |
| SHA-0 | 160 | 160 | 512 | 264 - 1 | 32 | 80 | +, and, or, xor, rot | Si | - | |
| SHA-1 | 160 | 160 | 512 | 264 - 1 | 32 | 80 | +, and, or, xor, rot | Si | 192 | |
| SHA-2 | SHA-224 SHA-256 |
224 256 |
256 | 512 | 264 - 1 | 32 | 64 | +, and, or, xor, shr, rot | Cap | 139 |
| SHA-384 SHA-512 SHA-512/224 SHA-512/256 |
384 512 224 256 |
512 | 1024 | 2128 - 1 | 64 | 80 | +, and, or, xor, shr, rot | Cap | 154 | |
| SHA-3 | 224/256/384/512 | 1600 (5×5 array de paraules de 64-bit) |
1152/1088/832/576 | Illimitat | 64 | 24 | and, xor, not, rot | Cap | ||
Les senyes de rendiments descrits anteriorment varen ser realisats en una implementació d'un únic fil (bri) d'un AMD Opteron 8354 a 2.2 GHz baix un Linux x64, i només servixen per a una ruda comparació general. Per a un major detall de les medicions de rendiment en arquitectura de processadors moderns es facilita la següent taula.
| Arquitectura CPU | Freqüència | Algoritme | Tamany paraula (bits). | Cicle/Byte x86 | MiB/s x86 | Cicle/Byte 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 |
Els resultats de rendiment etiquetats com a 'x86' varen ser obtinguts usant un còdic de 32 bits en processadors de 64 bits, mentres que els etiquetages com a 'x86-64' són còdics de 64 bits. Mentres que SHA-256 està dissenyat per a operacions de 32 bits, es beneficia computacionalment del còdic optimisat per a processadors de 64 bits. Les implementacions de 32 bits per a SHA-512 són significativament més llentes que els seus equivalent en 64 bits. Les variacions d'abdós algoritmes en diferent tamanys d'eixida tenen un rendiment similar, ya que les funcions d'expansió i compressió del mensage són idèntiques, i únicament vària els valors inicials i els tamanys d'eixida. Les millors implementacions de el MD5 i SHA-1 conseguixen un rendiment entre 4,5 i 6 cicles per byte en processadors moderns.
Els ensajos varen ser portat a terme per l'Universitat d'Illinois en Chicago en el seu sistema hydra8 eixecutat en un Intel Xeon E3-1275 V2 a una freqüència de rellonge de 3,5 GHz, i en el seu sistema hydra9 eixecutada en un AMD A10-5800K en una freqüència de 3,8 GHz.[14] Les velocitats referenciadas com a cicles per bytes són la mijana del rendiment d'un algoritme tractant en un mensage de 4096 bytes usant el software de "benchmarking" criptográfico SUPERCOP.[15] El rendiment MiB/s es extrapolan de la velocitat del rellonge d'una CPU d'un sol núcleu, rendiment que varia en el món real per numerosos factors.
Vore també
[editar | editar còdic]- [[Archiu:{{#switch:Criptografia|20px|Vore el portal sobre Criptografia]] Portal:Criptografia. Contingut relacionat en Criptografia.
- Funcions Hash
- Sagellat de temps
- Hash basat en Message Authentication Code (HMAC) o Keyed Hash
- Criptografia financera
- Comandos de terminal sha1sum (sha224sum, sha256sum, sha384sum i sha512sum)
Notes
[editar | editar còdic]- Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. Selected Areas in Cryptography 2003: pp. 175-193
- [enllaç trencat]
Referències
[editar | editar còdic]- ↑ «Schneier on Security: Cryptanalysis of SHA-1». Schneier.com. Consultat el 8 de novembre de 2011.
- ↑ NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition
- ↑ Federal Register Notice 02-21599, Announcing Approval of FIPS Publication 180-2
- ↑ FIPS 180-2 with Change Notice 1
- ↑ Federal Register Notice E8-24743, Announcing Approval of FIPS Publication 180-3
- ↑ FIPS SP 800-107 Recommendation for Applications Using Approved Hash Algorithms
- ↑ FIPS SP 800-57 Recommendation for Key Management: Part 1: General
- ↑ NIST Algorithm Examples, Secure Hashing
- ↑ Federal Register Notice 2012-5400, Announcing Approval of FIPS Publication 180-4
- ↑ Consultat el 17 de febrer de 2008.
- ↑ Mario Lamberger and Florian Mendel, Higher-Order Differential Attack on Reduced SHA-256, consultat el 24 d'agost de 2012.
- ↑ Yu Sasaki, Lei Wang, and Kazumaro Aoki, Preimage Attacks on 41-Step SHA-256 and 46-Step SHA-512, consultat el 3 de giner de 2010.
- ↑ «Crypto++ 5.6.0 Benchmarks». Archivat des d'el original, el 14 d'octubre de 2016. Consultat el 13 de juny de 2013.
- ↑ SUPERCOP Benchmarks Measurements of hash functions, indexed by machine
- Archivat el 4 de decembre de 2013 archivat en Wayback Machine.
- ↑ «SUPERCOP Benchmarking Toolkit». Archivat des d'el original, el 15 de febrer de 2015. Consultat el 2 de giner de 2014.
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «SHA-2» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.