This document is a project report submitted by Arjun Shukla to his professor R.R. Tiwari on cryptography. It includes a certificate signed by Prof. Tiwari to confirm Arjun undertook the project on cryptography under his supervision. The report also acknowledges Prof. Tiwari's guidance and support. It contains an index of topics to be covered in the project report including introduction, history of cryptography, definitions, security services, attacks on cryptosystems, hash functions, applications and a conclusion.