Mathematical Tools For Cryptography