Number theory tools for Cryptographic Applications