RIPEMD-320 — криптографическая хеш-функция, разработанная Хансом Доббертином, Антоном Боселаерсом и Бартом Принилом в 1996 году.
Размер хэша — 320 бит.
Размер блока входных данных — 512 бит.
Уязвимостей на текущий момент[когда?] не обнаружено.
RIPEMD-320 является развитием RIPEMD-160, и предназначена для приложений, которые требуют более длинного хэша и не нуждаются в большей безопасности, чем приложения уровня RIPEMD-160.
nonlinear functions at bit level: exor, mux, -, mux, -
f(j, x, y, z) = x XOR y XOR z (0 <= j <= 15)
f(j, x, y, z) = (x AND y) OR (NOT(x) AND z) (16 <= j <= 31)
f(j, x, y, z) = (x OR NOT(y)) XOR z (32 <= j <= 47)
f(j, x, y, z) = (x AND z) OR (y AND NOT(z)) (48 <= j <= 63)
f(j, x, y, z) = x XOR (y OR NOT(z)) (64 <= j <= 79)
for i := 0 to t-1 {
A := h0; B := h1; C := h2; D = h3; E = h4;
A' := h5; B' := h6; C' := h7; D' = h8; E' = h9;
for j := 0 to 79 {
T := rol_s(j)(A [+] f(j, B, C, D) [+] X[i][r(j)] [+] K(j)) [+] E;
A := E; E := D; D := rol_10(C); C := B; B := T;
T := rol_s'(j)(A' [+] f(79-j, B', C', D') [+] X[i][r'(j)] [+] K'(j)) [+] E';
A' := E'; E' := D'; D' := rol_10(C'); C' := B'; B' := T;
if j == 15 {
T := B; B := B'; B' := T;
} else if j == 31 {
T := D; D := D'; D' := T;
} else if j == 47 {
T := A; A := A'; A' := T;
} else if j == 63 {
T := C; C := C'; C' := T;
} else if j == 79 {
T := E; E := E'; E' := T;
}
}
h0 := h0 + A; h1 := h1 + B; h2 := h2 + C; h3 := h3 + D; h4 := h4 + E;
h5 := h5 + A'; h6 := h6 + B'; h7 := h7 + C'; h8 := h8 + D'; h9 := h9 + E';
}