Primarily for software developers but also useful for those who want to grasp the integral ideas and problems of modern data protection technologies, this book deals with the basic problems concerning software and data security. Stressed are the most common mistakes made by developers and the main principles to be reckoned with when developing security tools. Also provided is information on cryptography and cryptanalysis and a review of the means and methods commonly used for software security as well as a demonstration of the weak points of these methods.