Source: https://www.math.u-bordeaux.fr/~cbachocb/Enseignements/CodesCryptoL1/M1MI2016_DS2-corr.pdf