Tämä artikkeli käsittelee kryptografista tiivistefunktiota. Muita merkityksiä täsmennyssivulla.

SHA (lyhenne sanoista Secure Hash Algorithm) kuuluu kryptograafisiin tiivistefunktioihin. Sen eniten käytetty muoto on SHA-1, jota käytetään muun muassa useissa TLS-, SSL-, PGP-, SSH-, S/MIME- ja IPSec-ohjelmistoissa. MD-SHA-tiivistefunktioiden perhe alkoi vuonna 1990 MD4:llä joka nopeasti korvattiin heikkouksien vuoksi MD5:llä vuonna 1992.[1]

SHA-1
SHA-2

Yhdysvaltojen sähköistä salakuuntelua, vieraiden kielten osaamista ja salakirjoituksen purkua harjoittava tiedusteluelin National Security Agency (NSA) suunnitteli SHA:n, ja se julkaistiin Yhdysvaltojen hallituksen standardina.

Ensimmäinen versio SHA, joka yleisemmin tunnetaan nimellä SHA-0, julkaistiin vuonna 1993. Seuraaja SHA-1 (RFC 3174) julkaistiin vuonna 1995, minkä jälkeen on julkaistu SHA-2 ja SHA-3.

Julkaistuista standardeista kaksi ensimmäistä, SHA-0 ja SHA-1, on jo onnistuttu murtamaan.[2][3][4] Hyökkäysmenetelmien johdosta on kehitetty vahvennus törmäysten havaitsemiseen, jota voidaan käyttää SHA-1:n ja MD5:n kanssa.[5]

Tutkijat pitävät mahdollisena, että lähitulevaisuudessa myös SHA-2 murretaan, sillä se on niin samankaltainen edeltäjiinsä verrattuna.kenen mukaan? SHA-1-hyökkäystä ei ole vielä onnistuneesti käytetty SHA-2:een. SHA-2:n referenssitoteutus on esitelty IETF:n standardissa RFC 6234. SHA-2 algoritmi on sama SHA-224, SHA-256, SHA-384 ja SHA-512 variaatioissa eroten operandien koossa, alustusvektoreissa sekä lopullisen tiivisteen koossa.[6]

SHA-3-funktion standardointiprosessi aloitettiin vuonna 2005 sen jälkeen, kun SHA-1:n murtaminen osoitettiin mahdolliseksi.[7][8] Standardointiprosessi koostui useista osista, joista merkittävin oli vuosina 2007–2012 käyty kilpailu standardin pohjaksi otettavasta algoritmista. Kilpailun voitti belgialaisten ja italialaisten kryptologien kehittämä Keccak.[9]

NSA:n sijaan prosessista vastasi NIST. Standardin piti alun perin valmistua kokonaisuudessaan jo pian kilpailun päätyttyä, vuoden 2012 loppuun mennessä[2], mutta se vahvistettiin FIPS 202 standardiksi lopulta vasta elokuussa 2015.[10]

SHA:ssa on seuraavat algoritmit:[10][11]

Perhe Algoritmi Viestikoko Lohkokoko Tiivisteen koko (bittiä)
SHA-1 SHA-1 264 512 160
SHA-2 SHA-224 264 512 224
SHA-2 SHA-256 264 512 256
SHA-2 SHA-384 2128 1024 384
SHA-2 SHA-512 2128 1024 512
SHA-2 SHA-512/224 2128 1024 224
SHA-2 SHA-512/256 2128 1024 256
SHA-3 SHA3-224 224
SHA-3 SHA3-256 256
SHA-3 SHA3-384 384
SHA-3 SHA3-512 512
SHA-3 SHAKE128
SHA-3 SHAKE256

Katso myös muokkaa

Lähteet muokkaa

  1. The first collision for full SHA-1 (PDF) shattered.io. Viitattu 15.1.2020. (englanniksi)
  2. a b Tentative Timeline of the Development of New Hash Functions 12.7.2006. NIST. Arkistoitu 10.6.2008. Viitattu 13.6.2008. (englanniksi)
  3. Stevens, Marc; Bursztein, Elie; Karpman, Pierre; Albertini, Ange; Markov, Yarik; Petit-Bianco, Alex & Baisse, Clement: Announcing the first SHA1 collision Google Security Blog. 23.2.2017. Viitattu 30.10.2017. (englanniksi)
  4. Goodin, Dan: At death’s door for years, widely used SHA1 function is now dead Ars Technica. 23.2.2017. Viitattu 24.2.2017. (englanniksi)
  5. Marc Stevens: Counter-cryptanalysis (PDF) marc-stevens.nl. Viitattu 23.9.2022. (englanniksi)
  6. Improving SHA-2 Hardware Implementations researchgate.net. lokakuu 2006. doi:10.1007/11894063_24. Viitattu 15.1.2020. (englanniksi)
  7. Cryptographic Hash Algorithm Competition csrc.nist.gov. (englanniksi)
  8. SHA-3 Standardization 4.1.2017. NIST. Viitattu 30.10.2017. (englanniksi)
  9. SHA-3 Winner NIST. Viitattu 4.2.2017. (englanniksi)
  10. a b SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions FIPS PUB. NIST. Viitattu 24.2.2017. (englanniksi)
  11. Secure Hash Standard (SHS) NIST. Viitattu 24.2.2017. (englanniksi)

Aiheesta muualla muokkaa

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.