However, the bad part is that the writing is simply horrible. There seems to be little planning and things simply don't flow at all. Here's a specific example, which is so bad as to almost be funny: There's a huge use of footnotes for side comments, mostly because of this "stream of consciousness" writing that doesn't work things in properly. The first footnote in chapter 4 says, believe it or not, "See Footnote 13". Huh? So I go digging through the later part of the chapter, looking desperately for this gem of knowledge that will be in footnote 13, and what is it? The definition of a graph! Now come on -- chapter 4 of a book, where we've been dealing with advanced topics in computer science, and they feel the need to define a graph!?!?! Through several levels of indirection in footnotes? Come on guys, what editor let that one through?
Oded is a great computer scientist, and a good guy, but please, PLEASE get a good editor for the other volumes, or maybe even a good writer to team up with!
The planned 3-volume series aims to provide a thorough presentation of the theory, written by a dominant figure in the field. This first volume introduces the basic notions: one-way functions, pseudorandom generators, various zero-knowledge proof systems and related concepts. Curiously, common cryptographic objects such as encryption schemes and signature schemes are only briefly discussed in an appendix -- the author has chosen to postpone these to the Volume 2 in the interest of in-depth discussion of the simpler objects. Hence this volume does not stand well on its own, and until Volume 2 is published the impatient reader may be disappointed. Fortunately, drafts of Volume 2 are available on-line: www.wisdom.weizmann.ac.il/~oded/foc-vol2.html
The presentation style is a tour de force of didactic sensitivity. The subject material is often problematic, because the mental gymnastics required are not quite like any other field. The author is fully aware of this, and provides ample intuitive discussion and motivation to help the reader through the more technical parts (without compromising rigorousness). A clear effort is made to present, or at least mention and reference, all interesting results pertaining to the discussion. This makes the book invaluable as a reference, though it could have been overwhelming had not the author taken care to separate these excursions from the main discussion. The exercises are usually well-considered and rewarding, and unlike some textbooks you won't find important results disguised as an optional exercise.
Those interested primarily in practical applications of cryptography may well find this book too abstract and irrelevant; the relation between this book and Schneier's "Applied Cryptography" is roughly like that between organic chemistry and cooking. However, for those taking academic interest in the field or trying to devise novel cryptographic schemes, this book is an effective way to get a solid grasp on the theory, and a delightful way to understand this exciting branch of computer science.