Elementary Number Theory, Cryptography and Codes