Source: https://cours.etsmtl.ca/gti619/documents/cours/Cours-06-A-Cryptographie_cle_publique.pdf