Crypt-Khazad
view release on metacpan or search on metacpan
/*
Definition of the 32-bit $U$ and $V$ matrices:
\begin{eqnarray*}
H & = & \left[\begin{array}{cc}
U & V \\
V & U
\end{array}\right], \\
U & = & \left[\begin{array}{cccc}
\gf{01} & \gf{03} & \gf{04} & \gf{05} \\
\gf{03} & \gf{01} & \gf{05} & \gf{04} \\
\gf{04} & \gf{05} & \gf{01} & \gf{03} \\
\gf{05} & \gf{04} & \gf{03} & \gf{01}
\end{array}\right], \\
V & = & \left[\begin{array}{cccc}
\gf{06} & \gf{08} & \gf{0b} & \gf{07} \\
\gf{08} & \gf{06} & \gf{07} & \gf{0b} \\
\gf{0b} & \gf{07} & \gf{06} & \gf{08} \\
\gf{07} & \gf{0b} & \gf{08} & \gf{06}
\end{array}\right].
\end{eqnarray*}
Definition of the corresponding $U$ and $V$ tables:
\begin{eqnarray*}
U_0[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{01} & \gf{03} & \gf{04} & \gf{05} \end{array}\right],\\%
U_1[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{03} & \gf{01} & \gf{05} & \gf{04} \end{array}\right],\\%
U_2[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{04} & \gf{05} & \gf{01} & \gf{03} \end{array}\right],\\%
U_3[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{05} & \gf{04} & \gf{03} & \gf{01} \end{array}\right];\\%
V_0[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{06} & \gf{08} & \gf{0b} & \gf{07} \end{array}\right],\\%
V_1[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{08} & \gf{06} & \gf{07} & \gf{0b} \end{array}\right],\\%
V_2[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{0b} & \gf{07} & \gf{06} & \gf{08} \end{array}\right],\\%
V_3[x] & = & S[x] \cdot \left[\begin{array}{cccc} \gf{07} & \gf{0b} & \gf{08} & \gf{06} \end{array}\right]; %
\end{eqnarray*}
In terms of $T_i$:
\begin{eqnarray*}
U_i[x] & = & T_i[x] \rrr 32,\\%
V_i[x] & = & T_i[x] \& \mathtt{0xffffffff}; %
\end{eqnarray*}
*/
( run in 0.562 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )