# SHA-2

SHA-2 hash kriptografiko multzo bat da (SHA-224, SHA-256, SHA-384, SHA-512) Segurtasun Agentziak (NSA) diseinatua eta 2001ean argitaratua izan zen National Institute of Standards and Technology (NIST) prozesuen informazio estandar (FIPS) gisa.
Hash funtzio bat datu multzo bat, test fitxero bbat adibidez, tamaina bereko balore (hash) batean bihurtzen du algoritmo baten bitartez. Hash balioa datuen osotasuna eta integritatea baliozkotzen du. SHA-2 aldaketa asko dakartza bere arbasoarekin konparatuz, SHA-1; eta lau hash funtzio multzoen datza, 224, 256, 384 edo 512.
Hashing algortimo batek ematen duen segurtasuna datu-multzo jakin baterako balio bakar bat sortzeko duen gaitasunaren mende dago. Hash funtzio batek bi datu-multzo ezberdinetarako balio bera sortzen duenean, talka bat gertatu dela esaten da. Talka batek erasotzaile batek informazio segururako sarbidea ematen duten datu-multzoak konputazionalki eraikitzeko aukera areagotzen du edo ordenagailuko datu-fitxategiak aldatzeko, ondoriozko hash balioa aldatuko ez den eta, beraz, detekzioa saihesteko. Hash-funtzio indartsua mota honetako eraso konputazionalekiko erresistentea dena da, eta hash-funtzio ahula talkak gerta daitezkeela ia ziurra dagoena da. Azkenik, hautsitako hash funtzioa talkak sortzeko metodo konputazionalak ezagutzen diren bat da.
2005ean, SHA-1-en segurtasun-akatsak identifikatu ziren, ahultasun matematiko bat existitzea ahalbidetuz eta, horrela, hash-funtzio indartsuago bat garatzeko beharra frogatuz.SHA-2 SHA-1 algoritmoaren antzera jokatzen duen arren, eraso hauek ez dira behar bezala hedatu SHA-2ra.

## Hash Funtzioa

FIPS PUB 180-2-ren publikazioa, NIST-ek 3 hash funtzio berri gehitu zituen SHA familiara, bere bit tamainaren arabera izendatutak: SHA-256, SHA-384, SHA-512.
2001 urtean algoritmoak argitaratuak izan ziren FIPS PUB 180-2 zirriborroan. 2002ko abuztuan, FIPS PUB 180-2 hash seguruen estandarrean bilakatu zen, FIPS PUB 180-1 ordezkatuz. Eguneratze estandarrak SHA-1 jatorrizko algoritmoa barne hartzen zuen, SHA-2 familiaren barne funtzionamendua deskribatzen zuenarekin bat datorren idazkera teknikoarekin.
2004ko otsailean, FIPS PUB 180-2 aldaketarako oharra argitaratu zen, aldaera gehigarri bat zehaztuz (SHA-224) gakoaren luzera DES Hirukoitzarekin bat etortzeko. 2008ko urrian, FIPS PUB 180-3 bertsioan eguneratu zen estandarra, aldaketa oharraren SHA-224 barne, baina estandarra funtsean aldatu gabe. Eguneratze estandarraren lehen motibazioa 800-107 eta 800-57, "special Publications" erabiltzeko gomendioen algoritmoen segurtasun informazioa eta gomendioak birbanatzea izan da. Probako datu zehatzak eta "Laburpenak" mezuen laginak ere kendu dira estandarra eta dokumentu bereizi gisa hornitua.
2012ko martxoan, FIPS PUB 180-4 eguneratu zen, SHA-512/224 eta SHA-512/256 hash funtzioak gehituz eta SHA-512 bertsio moztua erabiliz hasierako balioak sortzeko metodo bat deskribatuz. Gainera, hash-a kalkulatzeko sarrerako datuak betetzeari buruzko aurreko muga ezabatu zen, hash datuak edukiaren sorrerarekin batera kalkulatzea ahalbidetuz, hala nola bideo edo audio baten denbora errealean emititzea. Datu blokearen azken betegarria hash-aren irteera baino lehen gertatu behar da.
SHA-256 eta SHA-512 hash funtzio berriak dira 32 eta 64 bit-eko 8 hitzekin. Desplazamendu eta konstante ezberdinak erabiltzen dituzte, baina, beraien egitura birtualki berdinar dira, iterazio kopuruan soilik ezberdinak direnak. SHA-224 eta SHA-384 aurreko funtzioen bertsio moztuak dira hasierako balore ezberdinak kalkulatuak izan direnak. SHA-2 algoritmoen familia Ameriketako Estatu Batuetan patentatuak izan ziren eta copyright gabeko lizentziapean kaleratu ziren.
2013. urteko amaieran, eraso publiko onenak SHA-256-ren 64 iteraziotik 46 iterazio apurtzea lortu zuten, eta SHA-512-ren 80-tik 46 iterazio.

## SHA funtzioen konparaketa

| Algoritmoa eta bariantea | Irteera tamaina (bit-etan) | Bloke tamaina (bit-etan) | Mezuaren tamaina maximoa (bit-etan) | Hitzaren luzeera (bit-etan) | Iterazioak | Aurkitutako kolisioak |
| MD5 | 128 | 512 | $2^{64}-1$ | 32 | 64 | Bai |
| SHA-1 | 160 | 512 | $2^{64}-1$ | 32 | 80 | Bai |
| SHA-224 | 224 | 512 | $2^{64}-1$ | 32 | 64 | Ez |
| SHA-256 | 256 | 512 | $2^{64}-1$ | 32 | 64 | Ez |
| SHA-384 | 384 | 1024 | $2^{128}-1$ | 64 | 80 | Ez |
| SHA-512 | 512 | 1024 | $2^{128}-1$ | 64 | 80 | Ez |

## Aplikazioak

SHA-2 hash funtzioak segurtasun aplikazio nahiz protokolo askotan daude inplementatuak: TLS, SSL, PGP, SSH, Bitcoin eta abar.
Bitcoin cripto-txanpona SHA-256arekiko menpekotasuna du. SHA-256 Debian GNU/Linux-ensoftware paketeak identifikatzeko erabiltzen da, baita DKIM sinatutako mezu estandarretan. Unix eta Linux-en hornitzaileek SHA-256 eta SHA-512 erabiltzen hasi dira segurtasun pasa hitzetan.
SHA-1 eta SHA-2 AEBetako gobernuko zenbait aplikaziotan legeak eskatzen dituen segurtasun hash-ak dira, beste algoritmo kriptografiko eta protokolo batzuk erabiltzearekin batera, informazio sailkatua eta sentikorra babesteko. Gobernuak SHA-1 erabiltzeari uzten ari da, AEBko Arau eta Teknologia Institutu Nazionala adierazten duen bezela, “Agentzia federalek SHA-1 erabiltzeari utzi beharko liokete ... talka erresistentzia behar duten aplikazioak lehenbailehen, eta 2010etik aurrera SHA-2 hash funtzioen familiak erabili beharko lituzkete aplikazio hauetarako”.
SHA-2 funtzioak ez dira SHA-1 bezain erabiliak, seguruagoak izan arren. Arrazoien artean, Windows XP SP2 edo lehenagoko sistemetan SHA-2 euskarririk ez egotea izan daiteke, edo SHA-1-en oraindik talkarik ez aurkitzea.

## Kriptoanalisia eta baliozkotzea

Prozesatutako mezua L bit kopurua duen funtzio baterako, prozesatutako mezuarekin bat datorren mezu bat aurkitzea beti lor daiteke 2^L indar gordinaren bilaketa erabiliz. Honi, irudiaren aurreko erasoa deritzo eta praktikoa izan daiteke L balorearen arabera eta erabiltzen den ingurune informatikoaren arabera. Bigarren irizpidea, bi mezu ezberdinei funtzioa aplikatzea eta tratatutako mezu berdina lortzea, talka bezela ezagutua dena, 2^(L/2) ebaluazio behar dira urtebetetze erasoa erabiltzen bada.
Helburu praktikoetarako, eraso mota berri honen inguruan kezka handia dago, eraso eraginkorragoak erabiltzea baimendu dezakeelako. Halako kasurik ikusi ez den arren, gero eta sinesmen handiagoa dago hashing algoritmo berri eta sendoagoak erabiltzeko. Hash sistema kriptografikoak erabiltzen dituzten zenbait aplikaziok, adibidez pasahitzak gordetzeko, talka eraso batek gutxienez eragiten die. Kontu baterako funtzionatzen duen pasahitz bat sortzeak irudiaren aurreko eraso bat eskatzen du, jatorrizko pasahitzaren hash-era sartzeaz gain. Enkriptaturiko pasahitz bat berreskuratzea ezinezkoa da erasoen bitartez. Hala ere, hash sistema seguru bat erabiltzearren ezin dira sahiestu indar gordineko erasoak pasahitz ahuletan (1234, adibidez).
Sinatutako dokumentuen kasuan, erasotzaile batek ezin du sinadura bat sinatu besterik ez zegoen lehendik zegoen dokumentu batetik, erasotzaileak bi dokumentu bikote sortu beharko lituzke, bat kaltegabea eta bestea kaltetuta, eta jabearen gako pribatua eskuratu beharko luke kaltegabeko dokumentua sinatzeko.
Irudi aurreko bi eraso daude SHA-2ren aurkako erdibideko topaketa bakoitzean, errepikapen kopurua murrizten dutenak. Lehenengoa, SHA-256ri dagokionez, 41 txandatan ebazten da 2^253,5 denborazko konplexutasuna eta 2^16ko konplexutasun espaziala duten 64 txandari dagokionez; SHA-512ri dagokionez, 46 txandatan ebazten da 80 txandatan 2^502 denborazko konplexutasuna eta 2^22ko espazio konplexutasuna duten 80 txandatan.

#### Baliozkotze ofiziala

Segurtasun funtzio guztien FIPS onartutako inplementazioak ofizialki CMVP programa baten bidez balioztatzen dira eta nahitaez Estandar eta Teknologia Institutu Nazionalak (NIST) eta Komunikazioen Segurtasun Establezimenduak (CSE) indarrean jartzen dituzte hauek exekutatuz. Egiaztapen informal bat egiteko, [[NIST]en web orrialdean proba bektorea asko sortzeko pakete bat dago.

## SHA-2ren aldaeren adibideak

Hash balioak karaktere kate hutsarentzat.
Mezuan aldaketa txiki batek ere (probabilitate izugarriarekin) hash guztiz desberdina eragingo du, elur-jausiaren efektuaren ondorioz. Adibidez, esaldiaren amaieran puntu bat gehitzea.

## Erreferentziak

* ↑ «Cryptanalysis of SHA-1 - Schneier on Security» www.schneier.com (Noiz kontsultatua: 2021-12-20).
* ↑ https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/documents/fips180-2withchangenotice.pdf
* ↑ https://www.federalregister.gov/documents/2008/10/17/E8-24743/announcing-approval-of-federal-information-processing-standard-fips-publication-180-3-secure-hash
* ↑ https://csrc.nist.gov/publications/detail/sp/800-107/rev-1/final
* ↑ https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-3/archive/2012-07-10
* ↑ https://www.federalregister.gov/documents/2012/03/06/2012-5400/announcing-approval-of-federal-information-processing-standard-fips-publication-180-4-secure-hash
* ↑ https://datatracker.ietf.org/ipr/858/
* ↑ https://eprint.iacr.org/2011/037.pdf
* ↑ https://web.archive.org/web/20111107215111/http://google.com/codesearch/p?hl=en#nywQboHfkw4/apt/apt-pkg/acquire-item.cc&q=SHA256
* ↑ https://csrc.nist.gov/projects/hash-functions/nist-policy-on-hash-functions
* ↑ https://web.archive.org/web/20080530175317/https://download.microsoft.com/download/6/8/7/687484ed-8174-496d-8db9-f02b40c12982/Overview%20of%20Windows%20XP%20Service%20Pack%203.pdf
* ↑ https://eprint.iacr.org/2009/477.pdf

## Bibliografia

* Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. Selected Areas in Cryptography 2003: pp. 175-193
* «Proposed Revision of Federal Information Processing Standard (FIPS) 180, Secure Hash Standard». Federal Register 59 (131): 35317-35318. 1994-ko uztailak 11.

## Ikus, gainera

* Kriptografia
* Hashing
* Timestamping
* sha1sum (sha224sum, sha256sum, sha384sum, sha512sum)

## Kanpo estekak

* Nist-en SHA-256, SHA-384 eta SHA-512 deskribapena.
* Nist-en CSRC material kriptografikoa Hash estandar seguruarentzako.
* SHA-256/384/512 proba bektorialak, NESSIE proiektuarenak.
* SHA-1 eta SHA-2 proba bektorialak, NIST-en web ofizialetik.
* NIST Cryptographic Hash Project, SHA-3 algortimoa aukeratzeko txapelketa.
* RFC 3874. SHA-224.
* RFC 6234. SHA, HMAC eta HKDF algoritmoak.
* Datuak: Q1968605