This is the first book to take readers all the way from basic number theory through the inner workings of ciphers and protocols to their strengths and weaknesses. It is also the first book that does the number theory correctly and presents cryptosystems as practical workable algorithms. The author shows readers how to break ciphers and how to design ones that are hard to break. The book includes numerous examples of ciphers in use today and describes many algorithms in pseudocode that allows easy programming. This book will have a broad and eager audience, from those in the military to the Internet administrator and from e-commerce practitioners to hackers.