The aim of this course is to introduce the fundamental ideas of public key cryptography and discuss some of the algorithms used. The emphasis will be in understanding Knapsack, RSA,DSA and discuss the attacks to these systems.