1

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

sh34v3
  • 113
  • 4

2 Answers2

3

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]$

kelalaka
  • 49,797
  • 12
  • 123
  • 211
1

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...

poncho
  • 154,064
  • 12
  • 239
  • 382