Cryptographic techniques have applications far beyond the obvious uses of encoding and decoding information. For Internet developers who need to know about capabilities, such as digital signatures, that depend on cryptographic techniques, there's no better overview than Applied Cryptography, the definitive book on the subject. Bruce Schneier covers general classes of cryptographic protocols and then specific techniques, detailing the inner workings of real-world cryptographic algorithms including the Data Encryption Standard and RSA public-key cryptosystems. The book includes source-code listings and extensive advice on the practical aspects of cryptography implementation, such as the importance of generating truly random numbers and of keeping keys secure.
|von Bruce Schneier|
The most comprehensive text on computer-era cryptology.
Habitues of sci.crypt will be familiar with Bruce Schneier's
*Applied Cryptography*; if any of them have but one text on crypto
for reference, it will almost certainly be *Applied Cryptography*.
It is the de facto standard reference on modern cryptography as
well as serving as an excellent introduction to the subject.
The art is very old - Julius Caesar was the first recorded user of
cryptography for military purposes - and reached a watershed when
computers were put to work in order to break German and Japanese
ciphers. Indeed, that was the first *real* application of electronic
computers. A natural development was the use of computers for the
development of cryptographic systems.
That is where Bruce Schneier's remarkable book begins. It is notable
for two reasons: the breadth and depth of coverage, and the high
standard of technical communication.
As a reference its scope is encyclopaedic, providing descriptions
and assessments of just about every non-military crypto system
developed since computers were first applied to the purpose. There
are also military-cum-government algorithms amongst the collection,
some from the old Soviet Union and others from South Africa. It is
not just an A-Z procession of algorithms; the author progresses
in a logical manner through the many technical aspects of cryptography.
It is common to find that masters of mysterious technical arts are
poor communicators. Bruce Schneier demonstrates exceptional skill
as a technical communicator. Here is a book about an esoteric
subject - one built on a foundation of theoretical mathematics - that
ordinary folk can read. Sure, one needs to be motivated by an interest
in the subject, and the technical level sometimes requires a more than
ordinary background in number theory and the like - but a degree in
theoretical mathematics is not necessary to derive pleasure and profit
from reading *Applied Cryptography*.
A thirty-page chapter provides a brief, but lucid account of the
necessary mathematical background, spanning information theory,
complexity theory, number theory, factoring, prime number generation,
and modular arithmetic. Even if one needs no other information than
a useful description of modular arithmetic the book is worth looking
at; I can't think of any better source outside full-blown mathematical
texts, and the author does it without being obscure.
The book is divided into parts, beginning with protocols (the
introductory chapter is an excellent overview of crypto as it
is presently applied) from the basic kind through to the esoteric
that find application in digital cash transactions. Public key
encryption, the second - and most significant - watershed in cryptography, is introduced with an explanation of how it is used
in hybrid systems.
Part II deals with cryptographic techniques and discusses the
important issues of key length, key management, and algorithm
types. The strength of a crypto system relies very heavily on the
length of the key, the way in which it is generated, and key
management. A chapter is devoted to the practical aspects of using
algorithms (which one, public-key as against symmetric crypto,
hardware versus software) for various purposes (such as
communications and data storage).
Part III is about particular algorithms, providing for each one
a background of its development, a description, its security, and
how it is likely to stand up to attack. The algorithms are divided
into classes: block (some twenty-one are described);
pseudo-random-sequence generators and stream ciphers (PKZIP is a
stream cipher); real random-sequence generators; one-way hash
functions; public-key; public-key digital signature; identification
schemes; key-exchange algorithms; and other special algorithms.
Many specific algorithms are described with information about
Part IV is entitled, The Real World; in the words of the author,
"It's one thing to design protocols and algorithms, but another
thing to field them in operational systems. In theory, theory
and practice are the same; in practice they are different".
A chapter discusses a number of implementations, including IBM
Secret-Key Management Protocol, Mitrenet (an early public-key
system), ISDN Packet Data Security Overlay, STU-III, Kerberos,
KryptoKnight, Sesame, PEM, PGP, MSP, smart cards, universal
electronic payment system, and Clipper.
Another chapter discusses politics and puts the problems of US
export restrictions into context and deals with patents. It also
has information about bodies with an interest in public access to
cryptography and standards, and legal issues.
An afterword by Matt Blaze should be required reading by everyone
who thinks a good cryptosystem is all that one needs for security;
the human factor can undo the strongest system.
A final part contains C source code for DES, LOKI91, IDEA, GOST,
Blowfish, 3-Way, RC5, A5, and SEAL. North American readers can
obtain a 3-disk set containing code for some forty-one algorithms,
four complete systems, source code for some other utilities,
text files, errata, and notes on new protocols and algorithms.
Who, apart from crypto professionals and aficionados, is likely
to find *Applied Cryptography* of interest? Anyone with an
intelligent interest in the art, and who wants something more
substantial than a quasi adventure account of modern crypto;
anyone with a responsibility for protecting data and/or
communications; network administrators; builders of firewalls;
students and teachers of computer science; programmers; and
anyone with a serious interest in theoretical mathematics - I'm
sure the list could be expanded considerably.
Apart from a book to be read, it is the most complete and up-to-date
resource and reference presently available. The list of references
(1653 of them) is a resource in its own right. An essential
acquisition for libraries.
The book, of necessity, contains highly technical material, but it
can be read. The publishers, Wiley's, are to be congratulated.
Reviewed by Major Keary firstname.lastname@example.org
DISCLAIMER: The opinions expressed are my own. I have no interest,
financial or otherwise, in the success or failure of this book,
and - apart from a review copy - I have received no compensation
from anyone who has.
A must-have book
Schneier undoubtedly owns the most recognizable face in cryptography-land. This book is the reason, and it's not a bad one either.
Every computer scientist should own this book, which is well worth the price. It's a good starter, but if you're really looking for depth in cryptography, you could do not better than Stinson's "Cryptography: theory and practice" (mostly theory, actually).
Schneier's book is light on mathematics and detail, but is for the most part an enjoyable read and gives enough detail for you to code (but not to understand) your favourite cryptographic algorithm (provided it's pre-1995).
Pop out the third version, please Bruce.
Deserves all five stars!
As a layman to crypto, I found this book fascinating. It offers great insight to the technologies, and specifically analyzes several algorithms.
This is widely considered the de facto text on the subject. I can see why - the text is comprehensive, and the format is very readable. It takes the reader from layman to technical - you can read this at any level and still get great value from it.
Using this book, I've been able to solidify my understanding of the different technologies. Schneier's analysis of numerous algorithms has proven invaluable - both in selecting an algorithm, as well as assessing the security of commercial systems.
I've had my copy for a couple of years, and it's been a constant reference. Well worth the money.