I have not implemented the inverse cipher here as it is not required in counter mode.
Though simple to implement, it has been established to be very secure.
Encrypting texts or files require not just the mode of operation.
The Inverse Cipher is largely a mirror of the Cipher routine, with parallel functions for Cipher, Sub Bytes and Shift Rows.
The Mix Columns routine is slightly more complex in the inverse.
The Rijndael algorithm works in GF(2), in which arithmetic results can always be stored within one byte – which is pretty convenient for computers.