1. An apparatus comprising a substitution component (e.g., 710 ) that performs substitution based on a triangular matrix (e.g., 712 ) and an input vector (e.g., {right arrow over (x)} A ) to generate an output vector (e.g., {right arrow over (w)}), the apparatus comprising: memory (e.g., 808 ) that stores output sub-vectors of the output vector; a first permuter (e.g., 802 ) that permutates one or more previously generated output sub-vectors (e.g., {right arrow over (w)} 1 , {right arrow over (w)} j ) of the output vector based on one or more corresponding permutation coefficients (e.g., T(j,1),. .. , T(j,j−1)) to generate one or more permuted sub-vectors, wherein each permutation coefficient corresponds to a different sub-matrix in a current block row of the triangular matrix; an XOR gate array (e.g., 804 ) that performs exclusive disjunction on (i) the one or more permuted sub-vectors and (ii) a current input sub-vector of the input vector to generate an intermediate sub-vector; a second permuter (e.g., 806 ) that permutates the intermediate sub-vector based on a permutation coefficient corresponding to another sub-matrix in the current block row to generate a current output sub-vector of the output vector.