SHA

SHA (Secure Hash Algorithm – Saugus Maišos algoritmas) – maišos algoritmas, iš pranešimo, kurio ilgis mažesnis už  bitų SHA-1 suskaičiuojantis 160 bitų ilgio santrauką. SHA256, SHA384, SHA512 atitinkamai 256, 384 ir 512 bitų ilgio santraukas.

 Santraukos skaičiavimas 
 Pradinis tekstas suskirstomas į N blokų po 512 bitų (64 baitus, SHA-1, SHA-224, SHA-256) arba 1024 bitus (128 baitus, SHA-384, SHA-512, SHA-512/224, SHA-512/256)
 Jei paskutiniame  bloke trūksta informacijos iki 512/1024 bitų, bloko gale pridedamas 1 ir tiek 0, kad užpildyti likusią bloko dalį paliekant 64 bitus pradinio teksto ilgiu bitais išsaugoti.
 Naudojamos funkcijos  . Kiekviena  , operuoja su trimis 32-bitų žodžiais B, C, D ir grąžina vieną 32-bitų žodį:

 , kai 

, kai 

, kai 

, kai 
 Naudojamos konstantos:
Kt = 5A 82 79 99, kai 

Kt = 6E D9 EB A1, kai 

Kt = 8F 1B BC DC, kai 

Kt = CA 62 C1 D6, kai 

 Inicializuojamas H :
H0 = 67 45 23 01

H1 = EF CD AB 89

H2 = 98 BA DC FE

H3 = 10 32 54 76

H4 = C3 D2 E1 F0.

 Naudojami du buferiai, kurie turi po 5 žodžius, bei vienas buferis, turintis 80 žodžių.
 Pirmojo buferio žodžiai vadinami A, B, C, D, E,
 Antrojo buferio žodžiai vadinami  
 Trečiojo buferio žodžiai vadinami  
 Naudojamas vieno žodžio dydžio laikinasis buferis TEMP.
 Skaičiuojant santrauką, kiekvienas duomenų blokas M apdorojamas atskirai. Kiekvieno bloko apdorojimas susideda iš 80 žingsnių.
 Kiekvienas blokas  iš eilės apdorojami taip:
 blokas Mi dalinamas į 16 žodžių  .
 kiekvienam Wt kur skaičiuojam  
 priskiriam .
 kiekvienam t,   
 priskiriama

 Atlikus šiuos veiksmus visiems blokams gautos  reikšmės yra maišos funkcijos reikšmė.

Kategorija:Kriptografija