private uint SubWord( uint x) { return S[x & 255] | (((uint)S[(x >> 8) & 255]) << 8) | (((uint)S[(x >> 16) & 255]) << 16) | (((uint)S[(x >> 24) & 255]) << 24); }