SHA
Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
SHA (Secure Hash Algorithm – Saugus Maišos algoritmas) – maišos algritmas, iš pranešimo, kurio ilgis mažesnis už 264 bitų SHA-1 suskaičiuojantis 160 bitų ilgio santrauką. SHA256, SHA384, SHA512 atitinkamai 256, 384 ir 512 bitų ilgio santraukas.
[taisyti] Sąntraukos skaičiavimas
- Pradinis tekstas suskirstomas į N blokų po 512 bitų (64 baitus).
- Jei paskutiniame Mn bloke trūksta informacijos iki 512 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 f0,f1,...,f79 . Kiekviena ft,0 < = t < = 79 , operuoja su trimis 32-bitų žodžiais B, C, D ir grąžina vieną 32-bitų žodį:
, kai 0 < = t < = 19
, kai 20 < = t < = 39
, kai 40 < = t < = 59
, kai 60 < = t < = 79
- Naudojamos konstantos:
Kt = 5A 82 79 99, kai 0 < = t < = 19
Kt = 6E D9 EB A1, kai 20 < = t < = 39
Kt = 8F 1B BC DC, kai 40 < = t < = 59
Kt = CA 62 C1 D6, kai 60 < = t < = 79
- 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ė.