private UInt32 SubByte (UInt32 a)
{
UInt32 value = 0xff & a;
UInt32 result = SBox[value];
value = 0xff & (a >> 8);
result |= (UInt32)SBox[value] << 8;
value = 0xff & (a >> 16);
result |= (UInt32)SBox[value] << 16;
value = 0xff & (a >> 24);
return result | (UInt32)(SBox[value] << 24);
}