Source: https://www.dfa.cornell.edu/sites/default/files/creating-digital-signatures.pdf