MD5

Iš testwiki.
14:01, 26 lapkričio 2022 versija, sukurta imported>Homobot (Nebenaudojamo skydelių datavimo šalinimas.)
(skirt) ← Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija → (skirt)
Pereiti į navigaciją Jump to search

Šablonas:Šaltiniai MD5 (Message-Digest algorithm 5) – žinutės santraukos algoritmas, plačiai naudojama kriptografijos maišos funkcija su 128 bitų (16 baitų) maišos reikšme.

Santraukos 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 būtų užpildyta likusi bloko dalis.
  • Pradinis kontrolinis blokas MD0 yra užpildytas.

A: 01 23 45 67

B: 89 ab cd ef

C: fe dc ba 98

D: 76 54 32 10

  • Naudojamos keturios pagalbinės funkcijos kurios operuoja su trimis 32-bitų žodžiais, ir grąžina vieną 32-bitų žodį.

F(X,Y,Z) = XY or not X Z

G(X,Y,Z) = XZ or Y not Z

H(X,Y,Z) = X xor Y xor Z

I(X,Y,Z) = Y xor (X and not Z)

  • Su kiekvienu bloku Mq atliekamas kontrolinio bloko MDq skaičiavimas, naudojantis ankstesniu kontroliniu bloku MDq1. Yra atliekami tokie veiksmai:

Kopijuojamas blokas q į X X[j]=M[q*16+j]. Išsaugomos A,B,C,D reikšmės

AA=A

BB=B

CC=C

DD=D

Atliekami skaičiavimai:

A = B + ((A + F(B,C,D) + X[k] + T[i]) <<< s)

A = B + ((A + G(B,C,D) + X[k] + T[i]) <<< s)

A = B + ((A + H(B,C,D) + X[k] + T[i]) <<< s)

A = B + ((A + I(B,C,D) + X[k] + T[i]) <<< s)

Sudedame:

A = A + AA

B = B + BB

C = C + CC

D = D + DD

  • Atlikus šiuos veiksmus visiems blokams gautos A,B,C,D reikšmės yra maišos funkcijos reikšmė.

Šablonas:Komp-stub