This paper reviews several popular symmetric cryptosystems, monoalphabetic and polyalphabetic. Their susceptibility to cryptanalysis is examined. Asymmetric cryptosystems are introduced through public key cryptography. The Rivest-Shamir-Adelman cryptosystem is explained. Then the Merkle-Hellman system based on the zero-one knapsack problem is presented. Standard attacks on the zero-one knapsack problem are rejected as too time-consuming. Herlestam's proposed attack is discussed in detail. The results of theoretical examination and computer tests show that it is not quick, as claimed. The recent polynomial time algorithm of A. Shamir solving most instances of the Merkle-Hellman system is studied in detail.