Handbook of Applied Cryptography by Alfred J. Menezes, Scott A. Vanstone & Paul C. Van Oorschot