Toeplitz Hash Algorithm

From HandWiki
Toeplitz Hash
General
Related toReceive Side Scaling

The Toeplitz Hash Algorithm describes hash functions that compute hash values through matrix multiplication of the key with a suitable Toeplitz matrix.[1] The Toeplitz Hash Algorithm is used in many network interface controllers for receive side scaling.[2][3]

As an example, with the Toeplitz matrix [math]\displaystyle{ T }[/math] the key [math]\displaystyle{ k }[/math] results in a hash [math]\displaystyle{ h }[/math] as follows:

[math]\displaystyle{ h = T\cdot k = \begin{pmatrix}1 & 1 & 0 & 1 \\0 & 1 & 1 & 0 \\1 & 0 & 1 & 1 \\\end{pmatrix} \cdot \begin{pmatrix}1\\1\\0\\0\\\end{pmatrix} = \begin{pmatrix}0 \\1 \\1 \\\end{pmatrix} }[/math]

where the entries are bits and all operations are modulo 2. In implementations the highly redundant matrix is not necessarily explicitly stored.

References