Techniques Used For Cryptography