3. SHA



SHA


MD5, který předcházel tomuto aloritmu, jsme si již zmínili. Teď se podíváme na rodinu SHA.

Algoritmus SHA-1 byl poprvé uveden v roce 2001. Jako standard byl uznán o rok později.

SHA (Secure Hash Algorithm) je hashovací algoritmus, jenž transformuje vstupní text na text výstupní. Přičemž používá operace a hashovací funkce. Hash či otisk je vytvořen a připojen ke zprávě.


SHA je nadstavba algoritmů SHA-1, SHA-224, SHA-256, SHA-384 a SHA-512. Algoritmus SHA-1 má výstupní text dlouhý 160 bitů, číselné označení dalších algoritmů pak znamená délku výstupního textu při jejich použití (pokud použijeme SHA-384, délka výstupního textu pak bude 384 bitů). Algoritmy SHA-224, SHA-256, SHA-384 a SHA-512 jsou souhrnně nazývány také SHA-2 obr. 1.

Obr. 1 Rodina SHA



Princip

Principiálně jsou algoritmy podobné, my se blíže podíváme na algoritmus SHA-1 obr. 2.

Obr. 2 Runda SHA-1


  • do algoritmu vstupuje 512 bitů dlouhý vstupní text
  • ten se rozdělí na šestnáct bloků (označení blok 1...blok 16)
  • takto rozdělené bloky se zkopírují do schránky pro pozdější použití
  • vstupní bloky vstoupí do hashovací funkce
  • proběhnou operace cyklický posun vlevo o x pozic, či modulární součet
  • výstup z hashovací funkce se sečte (232) s uloženými nezměněnými vstupními bloky
  • sečtené bloky (označené blok u1...blok u16) jsou pak výstupen z rundy algoritmu SHA-1
  • výstup z rundy má 160 bitů


Při aplikaci algoritmů se setkáváme s pojmem integrita souboru, či integrita dat? Zkusili byste formulovat, co je to integrita a co je její hlavní myšlenkou?

  • pokud je integrita dat v pořádku, znamená to, že data dešifrovaná jsou totožná s daty šifrovanými a tudíž během transportu nedošlo k manipulaci
  • integrita zároveň zajištuje kompletnost přeneseného souboru či dat; (k čemu nám bude, že budeme znát jméno osoby, když její rodné číslo nepůjde rozeznat)


Použití

SHA a jeho modifikace jsou hojně využívány u protokolu SSL, či ochrany PGP, nebo jako součástí aplikací. Začleněny jsou také do programů kontrolující právě integritu přenesených dat, či aplikací pro kontrolu a ukládání hesel.


Bezpečnost

Bezpečnost algoritmu je opět dána nemožností zpětného zjištění původních dat. Jednou z možností je řešení diskrétního logaritmu, který, jak víme, řešení má, ale je velmi obtížné se k němu dopracovat.


Shrnutí

Mezi další hashovací algoritmy patří nástupce MD5, kterým je rodina algoritmů SHA.


Zdroje

JIROUŠEK, Radim. Principy digitální komunikace. Vyd. 1. Voznice: Leda, 2006, 309 s. ISBN 80-733-5084-X.