Source: https://math.unice.fr/~sdescomb/AES/coursaes.pdf