- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Cryptography for Developers Paperback – Jan 1 2007
|New from||Used from|
Special Offers and Product Promotions
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
About the Author
Tom St Denis is the author of the industry standard LibTom series of projects. Tom is a senior software developer and cryptographer for the Advanced Micro Devices Corporation. He has been engaged in various international development contracts and speaking engagements since 2004. He is at work on his next book, Cryptography for Developers.
Inside This Book(Learn More)
Most Helpful Customer Reviews on Amazon.com (beta)
The book's writing is clear and focused, not surprising given that the author has written before. St Denis makes a good choice to focus on new material for this book, specifically pointing you at other books for a background in cryptography and "bignum" math (very, very large numbers, which require atypical methods to manipulate).
If you're a C code developer, you'll get the material very well. If you're C isn't very strong, or you need the code for another language, you'll probably have some difficulty in making use of it (depending on how skilled you are with C). However, the code is clear and well annotated, so you can make pretty good sense of it pretty quickly.
Chapter 2 starts off with a bang and covers ASN.1 encoding. This is not a very common topic, so this is one of the only places you may find this sort of thing covered well. Right away you can see what you're in for: very clear background info, good use of illustrations, well written code with lots of annotations, and very sharp focus.
Chapter 3 covers random numbers (specifically RNGs and PRNGs). While you'll want to complement this with something like the CRC Applied Crypto chapters on random numbers, you'll get a pretty good idea of how to gather and make use of random numbers. One probem I noticed here was that notes that Yarrow and Fortuna are RNGs but later (and, I believe, correctly) states that they are PRNG algorithms. Overall, though, a good treatment of the topic and a discussion of where to use random numbers, how to test them, the limits of the tests, and what pitfalls to watch out for.
Chapter 4 is really one of the meaty chapters and covers AES very in depth. Many of the concepts covered here are reused in other chapters, so make sure you get this one under your belt.
Chapters 5 and 6 cover hash functions and message authentication code algorithms, respectively. Again, great treatment of a limited subset of the algorithms out there and very good discussions about the myths, truths, and appropriate uses of the algorithms. Very good, useful insights all around.
Chapter 7 covers encryption and authentication modes, providing you with code that starts to really put it all together.
Chapter 8 covers large integer arithmatic, but also states that it's no replacement for St Denis' other book on BigNum math. Another very useful topic covered here somewhat looks at optimizations and how to make efficient code. Again, valuable insights that you can apple to other topics.
Chapter 9 covers public key algorithms, but sadly doesn't give much code. This is a disappointment and unexpected, given how much code is in the rest of the book. Perhaps it was a length consideration or by design, I don't know.
I'm not a cryptographer, so I can't attest to the veracity of the code. I didn't spot any obvious errors in the code design or use, however. Finally, this book wont replace Applied Crypto (either the Schneier or the CRC tomes), you'll want to use this book in tandem with those volumes. So few algorithms are covered that you'll really want to have studied those first before you can make full use of this volume.
Finally, one other thing that's missing is a unified set of links and references. He would have benefitted the reader had he done so, because so much material is covered and referenced.
St Denis has produced a clear, focused volume that's well organized. If you want to go from algorithm outlines to implementations, this is the book to work with. The quality of the writing and production is higher than many other Syngress books, and that's much appreciated.
WHAT THIS BOOK DOES CORRECTLY
- Gives very decent explanations of the concepts at a high level (and semi low level)
- Uses lots of "why would you want/need to do this" type of examples
WHAT THIS BOOK FAILS AT
- You will *see* source code snippets throughout the text. But alas they are just that. Why not provide complete code!?!?! Luckily you can download other peoples source code but it won't *sync up* with the snippets of the authors or align with his explanations.
- At first glance it *seems* like all the info is given, but it is not. Example, for the RSA key generation in Ch.9, he explains how to generate the public modulus, private exponent and so on, but *not* how to generate the public exponent. How completely USELESS IS THAT? It's like giving somebody a car without wheels. Again,you can find this by searching the web (but you shouldn't have to)
So it is a strange book to read in that *it seems* like it's leading you down the correct hallway, only to find the door locked at the end. For a book on cryptography (secrets/encryption) it's ironic that some important and basic information is left out.
So this book is a pretty good start, but it's not the final book you will buy (but it could have been).
What this book needs to do to be better is simple
** List complete source code at the end of the book (or online) that syncs up with the chapters explanations, in the manner that there should be a single file called "md5.c" or "md5.pl" (i.e. perl) that is very wordy and has comments like "here we are exponentiating the message" as mentioned in section blah of chapter blah. The program(s) should be simply called like "md5 input.txt output.hex". Done and done!
I also think a chapter should be devoted to openssl, how to use it to generate keys and certificates. AND I'm talking about the actual commands from start to finish.
So to sum up this book in a single word: INCOMPLETE.
Look for similar items by category
- Books > Computers & Technology > Programming > Algorithms > Cryptography
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Security & Encryption
- Books > Computers & Technology > Web Development > Security & Encryption > Encryption
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering