I am mostly self taught and have limited knowledge of the symbology in the image below. It is a diagram of a sub block the RIPEMD-160 algorithm:

A sub-block from the compression function of the RIPEMD-160 hash algorithm

Are such symbols standardized? Is there a good dictionary or atlas someone is aware of that could link such symbols to their definitions?

Here is the source: https://en.wikipedia.org/wiki/RIPEMD


It is RIPEMD-160 and the paper describes them as;

  • $f$ represents nonlinear functions at bit level: $exor, mux, -, mux, -$ and varies with rounds;

    • $f(j, x, y, z) = x ⊕ y ⊕ z \quad \quad \quad \quad \quad (0 ≤ j ≤ 15)$
    • $f(j, x, y, z) = (x ∧ y) ∨ (¬x ∧ z) \quad (16 ≤ j ≤ 31)$
    • $f(j, x, y, z) = (x ∨ ¬y) ⊕ z \quad \quad \quad (32 ≤ j ≤ 47)$
    • $f(j, x, y, z) = (x ∧ z) ∨ (y ∧ ¬z) \quad (48 ≤ j ≤ 63)$
    • $f(j, x, y, z) = x ⊕ (y ∨ ¬z) \quad \quad \quad (64 ≤ j ≤ 79)$
  • $\boxplus$ denotes addition modulo $2^{32}$

  • $rol_s$ denotes cyclic left shift (rotate) over $s$ positions. in the figure there is one fixed 10 and one variable with $s[i]$


I don't know of a glossary for symbols on these diagrams, however in this case:

  • $f$ is some sbox, that is, some lookup table (and whose details must be given somewhere else in the document where this image is found)

  • $\boxplus$ is either modular addition (modulo $2^w$, where $w$ is the number of bits in each line) or bit-wise exclusive-or. Most typically, it is modular addition; however that usage is commonly used in conjunction with $\oplus$; hence the alterative meaning is possible.

  • $<<$ is left-wise rotate, where each bit is moved a number of locations to the left and if a bit goes past the top of the word, it wraps around to the bottom; the number of locations each bit moves is either $s[i]$ or the fixed value 10 (as shown in the diagram). Now, $<<$ more commonly refers to a left-wise shift, where bits going past the top of the word are discarded, and we insert zeros on the right; however that would not make sense in this context.

The document this diagram came from should give more details...

  • $\begingroup$ Common, RIPEMD $\endgroup$
    – kelalaka
    Dec 4 '21 at 15:17
  • 1
    $\begingroup$ I'd say $f$ is some function, using an sbox to make it fast is an implementation detail. $\endgroup$ Dec 5 '21 at 17:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.