Number Theory And Cryptography