Jean-Philippe Aumasson's _Serious Cryptography_: https://nostarch.com/seriouscrypto
Ferguson and Schneier's _Cryptography Engineering_: https://www.amazon.com/Cryptography-Engineering-Principles-P... --- dated, a little wrong about some things, but not insane (like _Applied Cryptography_ is).
Hoffman, Pipher, and Silverman's _Introduction to Mathematical Cryptography_: https://www.amazon.com/Introduction-Mathematical-Cryptograph... --- a good first step into theoretical cryptography.
Why is "Applied Cryptography" insane? As an interested bystander, I'm curious to know more.
Including all the failed crypto. By the end of it, you've got used to reading the (usually very impressive) credentials of the researchers, and through explanation of what they did, and then how it all fell apart after a few years of attacks. If read about how people far clever than you got it wrong over and over again, it is near impossible to come away without the impression "here be dragons - really big and mean ones", and the corollary "don't even think of trying to do this stuff yourself - just stuff on the shelf that has been proven over time".
Would cryptography engineering be too advanced for me? I plan on developing my programming skills after I get a computer, but until then want to continue learning.
I'd say that if you've read and grokked Serious Cryptography, and you don't want to write code, something like _IMC_ (Silverman, above) is an interesting next step, in that you'll mostly be reasoning about math, and you'll be working at a much lower level than the basic RSA formulae.
It also depends on what aspects of cryptography are interesting to you. If you want, for instance, to get a much better grip on how bulk cryptography works, as opposed to signatures and key exchanges, your best next step might be papers. For instance, a good next step on block cipher cryptography would be the Heys tutorial: https://ioactive.com/wp-content/uploads/2015/07/ldc_tutorial...
Looks like I can't pick up IMC at my local library, so I'll have to wait a tad on that one, but I can start with papers right away. I can't quite say what my particular interests in cryptography are, but (I guess not too surprisingly) I have a desire to know more about Hash functions. Now I'm going to try to hunt down the papers for Skein. Thanks again!
- "Cryptography: A Very Short Introduction" by Piper and Murphy - This is a book in the Very Short Introduction series, so is a bit light on the math. If that's what you are looking for though, this is a good resource.
- "Cryptography Made Simple" by Nigel Smart - The choice of topics is quite eclectic (in the best way possible!). For ex. it is the first general crypto book I've read which talks about lattices (most post-quantum world crypto schemes are lattice based) and things like commitments and zero-knowledge proofs. Develops just the right amount of math to talk about a lot of different things.
- "Cryptography: Theory and Practice" by Stinson and Paterson - adequate, covers the usual topics (plus a chapter on post-quantum crypto).
- "Introduction to Modern Cryptography" by Katz and Lindell - basically a reference for the theory side of crypto. Quite math heavy (or to be more accurate, notation heavy, like theoretical crypto tends to be).
- "Real-World Cryptography" by David Wong - I have not read another crypto book which tackles as many topics, it has chapters on e2e encryption, cryptocurrency and hardware crypto. Is a bit too hand-wavey and doesn't properly explain the math sometimes, but it is great for self-learners and people who are looking for a book on topics not covered in other books.
- "Serious Cryptography" by Jean-Philippe Aumasson - from the No Starch Press stable. The exposition is quite good, and finds a decent balance between making it approachable and getting the details right.
- "Understanding Cryptography" by Paar and Pelzl - decent coverage of fundamental primitives (block/stream ciphers, public key encryption, hashes, signatures etc) but feels a bit outdated. For ex. there is a whole chapter on DES.
This isn't about cryptography but Code by Charles Petzold is also a fun book ( vaguely ) about information theory.
https://www.amazon.com.au/gp/aw/d/0385495323/ref=tmm_pap_swa...
Check out his other book - Fermat’s Last Theorem
It's quite accessible for non-math majors and includes source code. It seems to have been written with software engineers in mind. The formatting of the source code in Kindle isn't great but otherwise the book is excellent and balances between "cookbook" and "graduate level textbook". The author is also quite reputable having designed BLAKE2.
It’s probably the right book for anyone who needs to learn more about crypto but isn’t planning to become a full time cryptographer
Written by a past professor of mine. Grounded in a lot of math, but not intimidating.
I have not read the book, except to verify that it was real and looked plausible. If your comment was downvoted for content, I hope people will comment instead.
https://www.schneier.com/books/cryptography-engineering/
They cover the fundamentals from a practical engineering perspective. After reading it you can then pop up a level and read specs to understand specific deployed protocols (e.g. TLS) or down a level and read the details of individual cryptographic primitives / constructions.
We used the above two books in addition to Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone. I notice Boneh no longer uses the latter for CS255; perhaps it is too out of date now? At any rate, it is also available free on the web: https://cacr.uwaterloo.ca/hac/
Neil Koblitz has "A Course in Number Theory and Cryptography", which I haven't read, but is often used: https://www.amazon.com/Course-Number-Cryptography-Graduate-M...
Also, Boneh and Shoup is good and mentioned in other comments: https://toc.cryptobook.us/
It's a book co-authored by Dan Boneh, who's a professor from Stanfrod working on Crypto, and Blockchain. It's a huge book, but there's a lot of interesting stuff in there.
"Introduction to Modern Cryptography" by Katz & Lindell.
It starts from the basics, the proofs are thoroughly elaborated and it has an appendix covering the necessary math prerequisites.
https://libgen.is/book/index.php?md5=B5DB9B050F1044082F9ED26...
https://web.cs.ucdavis.edu/~rogaway/classes/227/spring05/boo...
I prefer a book format and haven't yet come across a good one on this topic yet.
https://inventwithpython.com/cracking/
Do the exericses. Learn the logic, don't get lost in learning C, you'll go crazy. Learn C or whatever when you learn exploit development.
Crypto and exploits are two very different things.