Source: https://www.apprendre-en-ligne.net/crypto/csd/extrait.pdf