Source: https://cours.etsmtl.ca/mgr850/documents/cours/MGR850_A14_Cours-06_cryptoAsym.pdf