Mathematics Section:
(If it’s here, I have it. If it’s reviewed, I have, at a minimum, read all of the crypto-relevant parts.)


A Million Random Digits: with 100,000 Normal Deviates
null, The RAND Corporation. 1955 (Currently out of print). 600 pages.
Categories: Mathematics
Just like the book says, this book contains one million random digits. The book was anything but predictable. In fact, I didn't know how it was going to end until the last page.
You may laugh, but this was a useful tool when the RAND corporation wrote this book back in 1955. Randomness is central to cryptography (S box design, session key generation, challenge/response algorithms, zero knowledge proofs, etc.) If you can track this book down, you're going to pay a lot for it (or you can now download it for free).


A Short Course on Computer Viruses
Cohen, Frederick B. 1994, 2nd edition. 288 pages.
Categories: Information Warfare, Mathematics
I occasionally review books here, not because they are predominantly cryptography oriented, but because they say something about cryptography that other books do not. This book briefly discusses how cryptography (in the context of integrity shells) can stop computer viruses.
Since Fred Cohen was in the business of promoting his integrity shell, he of course demonstrates (with 2 pages of equations no less!) that they are more cost effective than virus scanners, because in comparison, with virus scanners one incurs "the cost of cleanup for attacks that monitors don’t detect." He summaries this argument with "Except under the most contrived circumstances, integrity shells are the most cost effective of the anti-virus techniques currently available for untrusted systems, and this gap will widen with the passage of time." Yeah right.
Dr. Cohen is best know for "Cohen’s Result" -- a straightforward restatement of the Turing halting problem, where halting should occur if a sequence belonging to a virus set is generated. This is obviously as impossible as predicting computational halting in the general case. Wish I could have received a PhD for that.


Adventures in Group Theory: Rubik's Cube, Merlin's Machine, and Other Mathematical Toys
Joyner, David. 2002. 262 pages.
Categories: Mathematics, Top Picks
If you want to understand cryptography, you’ll need some good background in group theory. You might as well learn how to solve permutation-based puzzles in the process. I slowly worked through ever page of this book and thoroughly enjoyed it. It also helps that I own all the puzzles discussed in the book (hockypuck, Rubik’s Domino, Masterball, Pyraminx, Rubik’s 2x2, Rubik’s 3x3, Skweb, Megaminx, Merlin’s Magic, Lights Out, Orbix, Rubik’s Clock, and the Rubicon). If you’re going to work through all the mathematics (highly recommended), then make sure you print out a copy of the errata page and keep it with the book.


Algorithmic Information Theory: Cambridge Tracts in Theoretical Computer Science 1
Chaitin, Gregory J. 1987. 175 pages.
Categories: Mathematics
The only reason this doesn't get a "thumbs up" is because it is a less mature explanation of his current work on Algorithmic Information Theory (AIT). But 14 years later, he brought us three (most likely "thumbs up") books on AIT, entitled "The Unknowable", "The Limits of Mathematics", and "Exploring Randomness" respectively. AIT is a blending of information theory and complexity theory, which is perhaps the most promising new way to theoretically formalize patterns and structures. This requires self-referential mathematics, for which the author chooses LISP in all of his books.


Art of Computer Programming Volume 2, The: Seminumerical Algorithms
Knuth, Donald E. 1998, 3rd edition. 762 pages.
Categories: Mathematics, Programming, Reference
Having been called the "father of algorithms", Knuth is well respected for formalizing much of computer science. The Art of Programming Volume 2 explores topics relevant to cryptography, such as randomness (193 pages!), modular arithmetic, the Chinese remainder theorem, the extended Euclidian algorithm, factoring, prime numbers, and much more.
The book is becoming dated, in that there have been many advances in the mathematical/algorithmic topic areas covered in this book, and most books don’t write their source code examples in assembly language these days. However, it is still a phenomenal work.


Chinese Remainder Theorem: Applications in Computing, Coding, Cryptography
Ding, C. / Pei, D. / Salomaa, A.. 1996. 213 pages.
Categories: Mathematics
The book covers some fun stuff, like the Chinese using the CRT to compute the numbers of different size blocks required for building the Great Wall of China, and of Chinese generals that had their soldiers line up in group of which the general merely counted the remainder to keep their true numbers secret. But on the whole, this book is not for someone with a casual interest in the subject, and definitely requires background in number theory, information theory, and abstract algebra. Not light reading.


Compression Algorithms for Real Programmers
Wayner, Peter. 2000. 240 pages.
Categories: Mathematics, Steganography
I include this book because compression is almost always an important step prior to encryption for improved security and speed. Indeed, any modern crypto system that produces compressible output should be considered suspect. Also, anyone wishing to embark on stego will need to understand how their covers are compressed.
Although techy at points (i.e. Fourier stuff), the book should be consulted for concepts only, and not for developing code (even thought the title indicates otherwise). It covers standard coding theory, dictionaries, adaptive approaches, and wavelets, with respect to images, audio, and video. A nice 40 page section in the back details important compression related patents.


Cryptography Demystified
Hershey, John E. 2003. 356 pages.
Categories: General Interest, Mathematics, Newly Added Books, Top Picks
As "Cryptography Decrypted" is a great "from the ground up" tutorial in cryptography for the non-technical, so "Cryptography Demystified" is for those with a computer science or math degree. The author crafts notions of cryptographic security, then leads you down less-than traditional, but highly illuminating paths to get there. This book is very unconventional and refreshing original – certainly not another rehash of introductory cryptography topics. You’ll find yourself carefully reading every page. While a math background in statistics, calculus, linear algebra, and automata theory is not required to absorb this book cover to cover, it does help you complete the exercises. 58 pages contain the detailed solutions to the chapter questions. Go get this book.


Excursions in Number Theory
Ogilvy, C. Stanley / Anderson, John T. 1988. 168 pages.
Categories: Mathematics
Very simple introduction to basic concepts in number theory. Good treatment of congruence (modular) arithmetic. Costs (at time of reviewing) $6. Can be easily read in a few hours at most.


Explorations in Quantum Computing
Williams, Colin P. / Clearwater, Scott H. 1997. 256 pages.
Categories: Mathematics, Quantum
Explorations in Quantum Computing was the first book of its kind (I was lucky enough to get a copy before it hit the stores). Thinking on quantum computation/computers has evolved greatly since the publication of this book, but it's full of lots of timeless foundational kinda stuff. This book has simplified lots of nasty details without compromising content. While not primarily an encryption book, a large portion of the text deals with how quantum computers can quickly break asymmetric key encryption systems, such as RSA. Some background in linear algebra is required, and previous exposure to quantum mechanics is helpful but not required.


Exploring Randomness
Chaitin, Gregory J. 2001. 164 pages.
Categories: Mathematics
Algorithmic Information Theory (AIT) is what you get when you mix Turing's computation theory with Shannon's information theory. AIT demonstrates that randomness arises naturally in pure mathematics, and can be equated with incompressibility. You'll recall that long ago, Russell and Whitehead attempted to develop all of mathematics from a few clearly stated axioms and rules of inference in pure logic. But AIT claims that "The classical logical effort to concentrate axioms into a minimal irredundant set was an attempt to achieve incompressibility and therefore randomness".
Instead of using self referential mathematics (like Gödel), the author uses LISP. One of the interesting results of AIT is that you can prove that you can never determine the lower bound of a computer program size complexity.
Annoying parts of the book include the author's insistence that he should be credited with formulating what is known to everyone else as Kolmogrov complexity. Additionally, the author would like AIT to impress beyond it's abilities with statements like "AIT will lead to the major breakthrough of 21st century mathematics, which will be information-theoretic and complexity based characterizations and analyses of what is life, what is mind, what is intelligence, what is consciousness, of why life has to appear spontaneously and then to evolve."


Handbook of Theoretical Computer Science Volume A: Algorithms and Complexity
Leeuwen, J. van (Editor). 1994. 996 pages.
Categories: Mathematics, Programming, Reference
Extensive coverage of complexity theory, number theory, and a good deal of crypto to boot. In my opinion, volumes A and B are far more useful, and up to date than the three book series "The Art of Computer Programming" by Knuth, at least a far as crypto is concerned. Ronald Rivest wrote the crypto section.


Information Hiding: Steganography and Watermarking - Attacks and Countermeasures (Advances in Information Security, Volume 1)
Johnson, Neil F. / Duric, Zoran / Jajodia, Sushil G. 2001. 160 pages.
Categories: Cryptanalysis, Mathematics, Steganography
Gets a thumbs up even though it is expensive for size (137 pages), and its choice of stego tools were out of date even when the book was published. However, it redeems itself with its gentle introduction to stego and its analysis of signatures left by particular stego tools (steganalysis). Very few books deal with steganalysis, and information on this topic has been traditionally hard to find (no thanks to Fravia hiding all the juicy details).


Mathematical Cryptology for Computer Scientists and Mathematicians
Patterson, Wayne. 1987. 312 pages.
Categories: Mathematics, Programming
This was undoubtedly a top notch math-oriented introduction to cryptography back in 1987, but today it is of course dated. Has the predilections typical of 80s crypto books -- namely an emphasis on DES and in breaking Knapsacks. The author offers enough original ways of looking at timeless topics so that the book often tends to nicely round out one's collection. All of the code examples are in pascal. This is a book that should be updated and republished.


Mathematical Theory of Communication, The
Shannon, Claude / Weaver, Warren. 1949. 117 pages.
Categories: Mathematics
The security of most crypto systems depend on information entropy - a concept frequently misrepresented in many security texts. Shannon's work on Information Theory defined and formalized entropy, redundancy, compressibility, and channel capacity. Instead of buying the book, you can get a free download from Bell Labs.


Number Theory: A Programmer's Guide
Herkommer, Mark. 1999. 425 pages.
Categories: Mathematics, Programming, Top Picks
Perhaps the best book from which a programmer could learn number theory on his own time. 425 pages of theory with code examples of nearly everything discussed (included on CD in back). Most of the number theory is directly applicable to modern cryptography. This is a "best of it's kind" book. It looks like it may have gone out of print already, so track down a used copy soon.


Number Theory in Science and Communication: With Applications in Cryptography, Physics, Digital Information, Computing, and Self-Similarity
Schroeder, Manfred. 1997, 3rd edition. 420 pages.
Categories: Mathematics, Top Picks
Number Theory in Science and Communication is now in its third edition (97), and has kept up with advances since its original publication in 1984. While not primarily a cryptography book, it is a great primer for anyone who wants to understand the mathematics behind crypto (such as residues, Galois fields, primitive roots, indexes, the Chinese Remainder Theorem, etc).


Pleasures of Counting, The
Korner, T. W. 1997. 534 pages.
Categories: History, Mathematics
This survey of math and math history is a gem. I wish I had come across it in my mid-teens, as it makes some of the lower hanging mathematics fun and relevant. The book’s aim is to help the mathematically-minded pre-university or freshman year student broaden his/her mathematical interests, without using calculus (except for apologetically in one little section). There are interesting problems to work in every topic area. The book is reviewed here because it offers 72 pages on the mathematics and history of WWII cryptography, and 20 pages on complexity theory and information theory, all with interesting exercises. Keep this in mind for high school graduation gifts.

The books I haven't finished reading yet...


A Course On Group Theory
Rose, John S. 1978. 310 pages.
Categories: Mathematics
Haven't finished reading this book yet.



A Course in Combinatorics
van Lint, J. H. / Wilson, R. M. 2001, 2nd edition. 550 pages.
Categories: Mathematics, Newly Added Books
Haven't finished reading this book yet.



A Course in Number Theory and Cryptography: Graduate Texts in Mathematics, No 114
Koblitz, Neal. 1994, 2nd edition. 235 pages.
Categories: Mathematics
Haven't finished reading this book yet.



A First Course in Abstract Algebra
Fraleigh, John B. 2000, 6th edition. 536 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Algebraic Aspects of Cryptography: Algorithms and Computation in Mathematics, Vol 3
Koblitz, Neal. 1998. 224 pages.
Categories: Mathematics
Haven't finished reading this book yet.



An Introduction to Information Theory: Symbols, Signals and Noise
Pierce, John Robinson. 1980. 305 pages.
Categories: Mathematics
Haven't finished reading this book yet.



An Introduction to Kolmogorov Complexity and Its Applications
Li, Ming / Vitanyi, Paul M. 1997, 2nd edition. 637 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Claude Elwood Shannon: Collected Papers
Shannon, Claude Elwood / Sloane, Neil J. A. (Editor) / Wyner, Aaron D. (Editor). 1993. 924 pages.
Categories: Mathematics, Reference
Haven't finished reading this book yet.



Cryptanalysis of Number Theoretic Ciphers
Wagstaff Jr., Samuel S. / Atallah, Mikhail J. (Editor). 2003. 318 pages.
Categories: Cryptanalysis, Mathematics, Newly Added Books
Haven't finished reading this book yet.
Even so, it appears that despite the title (an emphasis on "Cryptanalysis"), it seems to only contains 22 pages on how one might actually attack cryptosystems.


Cryptological Mathematics
Lewand, Robert Edward. 2000. 199 pages.
Categories: Mathematics, Newly Added Books, Pen and Paper
Haven't finished reading this book yet.



Groups and Symmetry
Armstrong, M. A. 1988, 2nd edition. 324 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Introduction to Coding and Information Theory
Roman, Steven. 1996. 323 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Limits of Mathematics, The
Chaitin, Gregory J. 1997. 160 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Mathematics of Ciphers, The: Number Theory and RSA Cryptography
Coutinho, S. C. 1999. 235 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Number Theory for Computing
Yan, Song Y. 2000. 381 pages.
Categories: Mathematics, Programming
Haven't finished reading this book yet.



Permutation Groups
Dixon, John D. / Mortimer, Brian. 1996. 346 pages.
Categories: Mathematics
Haven't finished reading this book yet.



Prime Numbers: A Computational Perspective
Crandall, Richard / Pomerance, Carl. 2001. 545 pages.
Categories: Mathematics, Programming
Haven't finished reading this book yet.



Unknowable, The
Chaitin, Gregory J. 1999. 122 pages.
Categories: Mathematics
Haven't finished reading this book yet.