Suggested Books for Learning Cryptography?
Kismet asks: "I see a lot of news and reviews about encryption on Slashdot regularly. The subject seems rather interesting. I suppose that cryptography is covered in CS classes, but for hobbyists, what is the best way to learn? What kind of math background does one need? Are there any good "beginning" books on the subject? What is the history of Cryptography? "
Best of all, it is a real pleasure to read. Schneier really captures the interesting aspects of the field.
For more info, check out the Slashdot review.
"Bugs are harder to cope with than features, because they are less well defined and less well designed."
"It may be remarked in passing that success is an ugly thing. Men are deceived by its false resemblences to merit."
Look for 'The Code Book : The Evolution of Secrecy from Mary, Queen of Scots to Quantum Cryptography' from Simon Singh. I flicked through it last night and comments on Amazon.com suggest that it is a good historical look at codes. Simon wrote 'Fermat's Last Theorem'; a book that made the search for mathematical proof read like a detective novel! FLT comes Highly Recommended. Reviews suggest that the Code Book is in a similar narritive style and that it does contain some technical mathematics. It is a history not a textbook but it might have some methods in appendices, as FLT does.
#$^)
The best book for learning crypto is, IMHO, the Handbook of Applied Cryptography, by Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone. You can find more about it at http://www.cacr.math.uwaterloo.ca/hac/.
/
BTW, I didn't really feel AC was really that great... he ignores of a lot of important details, which is fine for a simple overview, but it makes it hard to do anything useful based soley on the information contained within AC.
Really, the best referece is the conference papers from the Fast Software Encryption, Crypto, EuroCrypt, AusCrypt (now defunct?), and AsiaCrypt conferences (also the AES conferences, but there will only be 3 of those). Most (probably all, actually) are published in the LCNS series by Springer (lots of good titles, check them out).
Also, a lot of good stuff is available on the web, since most of the academic people who write papers put them up on the web, and commercial companies often publish things in RFCs, etc. Here are a few to start you out:
Blowfish: http://www.counterpane.com/bfsverlag.html
CAST5: http://www.ietf.org/rfc/rfc2144.txt
Tiger: http://www.cs.technion.ac.il/~biham/Reports/Tiger
MD2, MD4, MD5, RC5, and others are avaialable as RFCs as well (use the search, Luke!).
Ok, one more, all of the AES Canadates are
at http://www.nist.gov/aes/
Also, looking at crypto code often is helpful for understanding what's going on (since you can relate your programming knowledge to the crypto).
Good luck
I was going to list all the crypto books on my bookshelf, but some self-styled cypherpunk has borrowed Schneier's Applied Crypto and Menezes' disjointed Handbook of Applied Crypto.
One good book for working your way up from easy intro to much tougher advanced material is William Stalling's Cryptography and Network Security. It also has a great reference section for finding other texts. The book is used in a lot of university intro to crypto courses.
For math, try Concrete Mathematics: A Foundation for Computer Science, by Donald Knuth, Oren Patashnik, and Ronald Graham.
Doug Stinson Cryptography: Theory and Practice (Discrete Mathematics and Its Applications), is also good.
There are a lot of very advanced technical papers available on the web. This stuff will make your head hurt if you don't already have a decent background to draw on. Search the web for postings of the Crypto consortiums, look especially for Proceedings, Crypto '9x, EuroCrypt 9x, AsiaCrypt, IEEE Transactions on Information Theory, Communications of the ACM, and Cryptobytes, or try the legendary names in your favorite search engine.
the AC
Hemos is like...sci-fi fans;he thinks technology is cool, but he hasn't bothered to understand the science it's based on