Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.
Cryptography in C and C++ and over 300,000 other books are available for Amazon Kindle – Amazon’s new wireless reading device. Learn more

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
33 used & new from $2.71

Have one to sell? Sell yours here
 
   
Cryptography in C and C++, Second Edition
 
 
Start reading Cryptography in C and C++ on your Kindle in under a minute.

Don’t have a Kindle? Get yours here.
 
  
4.5 out of 5 stars See all reviews (10 customer reviews)

List Price: $79.99
Price: $69.95 & this item ships for FREE with Super Saver Shipping. Details
You Save: $10.04 (13%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Only 4 left in stock--order soon (more on the way).

Want it delivered Tuesday, July 21? Choose One-Day Shipping at checkout. Details
18 new from $4.22 15 used from $2.71
Also Available in: List Price: Our Price: Other Offers:
Kindle Edition (Kindle Book) $39.96
Paperback 23 used & new from $18.94

Frequently Bought Together

Cryptography in C and C++, Second Edition + Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition + Practical Cryptography
Price For All Three: $139.25

Some of these items ship sooner than the others. Show details


Customers Who Bought This Item Also Bought

Practical Cryptography

Practical Cryptography

by Niels Ferguson
4.1 out of 5 stars (16)  $31.50
Cryptography for Developers

Cryptography for Developers

by Tom St Denis
4.3 out of 5 stars (3)  $53.95
The Design of Rijndael: AES - The Advanced Encryption Standard (Information Security and Cryptography)

The Design of Rijndael: AES - The Advanced Encryption Standard (Information Security and Cryptography)

by Joan Daemen
4.7 out of 5 stars (3)  $67.96
Handbook of Applied Cryptography (Discrete Mathematics and Its Applications)

Handbook of Applied Cryptography (Discrete Mathematics and Its Applications)

by Alfred Menezes
4.7 out of 5 stars (16)  $82.58
Hacking: The Art of Exploitation, 2nd Edition

Hacking: The Art of Exploitation, 2nd Edition

by Jon Erickson
4.3 out of 5 stars (56)  $32.97
Explore similar items


Editorial Reviews

Product Description
<p>This book covers everything you need to know to write professional-level cryptographic code. This expanded, improved second edition includes about 100 pages of new material as well as numerous improvements to the original text.</p>

<p>The chapter about random number generation has been completely rewritten, and the latest cryptographic techniques are covered in detail. Furthermore, this book covers the recent improvements in primality testing.</p>

About the Author
Michael Welschenbach currently works for SRC Security Research & Consulting GmbH in Bonn, Germany. He graduated with a master’s degree in mathematics from the University of Cologne, and has extensive experience in both pure and applied cryptological research. Currently, his favorite programming languages are C and C++. When not working, he enjoys spending time with his wife and two sons, programming, reading, and playing music.


Product Details

  • Hardcover: 504 pages
  • Publisher: Apress; 2nd edition (May 25, 2005)
  • Language: English
  • ISBN-10: 1590595025
  • ISBN-13: 978-1590595022
  • Product Dimensions: 9.4 x 7.1 x 1.2 inches
  • Shipping Weight: 2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars See all reviews (10 customer reviews)
  • Amazon.com Sales Rank: #213,455 in Books (See Bestsellers in Books)

    Popular in this category: (What's this?)

    #26 in  Books > Computers & Internet > Programming > Algorithms > Cryptography

Inside This Book (learn more)

What Do Customers Ultimately Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below.

Your tags: Add your first tag
 
Help others find this product — tag it for Amazon search
No one has tagged this product for Amazon search yet. Why not be the first to suggest a search for which it should appear?

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

 

Customer Reviews

10 Reviews
5 star:
 (6)
4 star:
 (3)
3 star:
 (1)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.5 out of 5 stars (10 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
58 of 60 people found the following review helpful:
4.0 out of 5 stars Helpful, June 18, 2001
By Dr. Lee D. Carlson (Baltimore, Maryland USA) - See all my reviews
(TOP 100 REVIEWER)    (REAL NAME)      
This book is an introduction to cryptography from a practical perspective and emphasizes how to write the code to implement it in real-world applications. The author has chosen the languages C and C++ to write the code, and this is acceptable since current cryptographic algorithms are usually written in these languages. The RSA and the new Rijndael algorithms are treated in detail, but unfortunately, the author has chosen not to discuss elliptic curve cryptography. The level of the book is suitable for the newcomer to cryptography, and assumes a strong knowledge of C and C++. Some background in number theory and algebra is also assumed.

In chapter 1, the author discusses briefly how the natural numbers are constructed via the Peano axioms. This discussion could have been omitted easily, for not enough detail is given, and one only needs to assume the natural numbers for the purpose of a book such as this. A full treatment of the construction of the natural numbers can be found elsewhere. The software used in the book is summarized in this chapter.

In chapter 2, the author begins to discuss the most important initial task for any implementation of cryptography, namely the problem of representing large numbers in computer memory. For performance reasons, the author chooses not to use dynamic memory management for large numbers, but instead uses a definition of static length. Large integers are represented by means of "unsigned short int". The software in the book makes use of assembler functions for high performance arithmetic. Chapter 3 then discusses briefly the semantics of the function interface, with the usual discussion about output versus return values.

Chapter 4 discusses C functions for arithmetic; there are some sentences that have unclear meaning possibly because of the translation. Karatsuba multiplication is treated and its performance compared with the usual multiplication, but is not used in the book. The division algorithm receives a very detailed treatment. This is followed in the next two chapters by a discussion of modular arithmetic. The important Montgomery algorithm is treated, and its importance in cryptography is discussed in great detail. This is followed in the next chapter by the functions used for implementing bitwise operations.

After a treatment of assignment and I/O in chapter 8, the author shows how to create functions for manipulating registers. This is a very helpful discussion, and implements ideas from the literature that are not usually found in books. Then in chapter 9, the author constructs C functions to do more high-level number-theoretic arithmetic, such as finding the multiplicative inverse and square roots in residue class rings. In addition, the author discusses in detail the Rabin, Fiat, and Shamir encryption schemes that use quadratic residues and their roots. A very nice discussion is then given on primality testing, including the Solvay-Strassen probabilistic primality test.

In chapter 11, a very short overview of random number generation is given. The Brent algorithm for determining periodicity is discussed, along with the chi-square test. The Blum-Blum-Shub algorithm for generating pseudorandom numbers is implemented in C.

The importance of testing algorithms is treated in chapter 12, the author being aware of the ISO 9000 standard. It is very helpful that a discussion of testing be included in a book on cryptography, given the importance of security in modern business and military applications. Although this chapter is merely a short overview of software testing, the author does give many references and has included many test functions in C for the software developed in the book. The author returns to the topic of software testing in C++ in chapter 17 of the book.

The author switches gears in the next chapter, which begins the second half of the book, where he begins to use C++ to develop the cryptographic code. In this chapter and the next, the constructors used for generating the large-integer objects are given, along with the operator overloading needed for processing these objects and the built-in C++ integer types simultaneously. Stream classes are used to define the functions for the formatted input of the large-integer objects. In this public interface, the author distinguishes between arithmetic and number theoretic functions. The latter do not overwrite the implicit first argument with the result, as do arithmetic functions, and so return values instead of pointers. Manipulators are used to control the output format for large-integer objects. This is followed in the next chapter by a short treatment of exception handling for the software developed in the book.

Finally in Chapter 16, the author discusses the RSA cryptosystem, and in great detail. The idea of an asymmetric cryptosystem is discussed, and the RSA algorithm is implemented using C. The author discusses the strengths and weaknesses of the RSA algorithm, along with a discussion of digital RSA signatures. The algorithm is then implemented in C++ at the end of the chapter in great detail. Readers who have not seen the coding involved with the implementation of the RSA algorithm will definitely appreciate the treatment here.

The last chapter of the book covers the new Rijndael algorithm and the Advanced Encryption Standard is discussed. This is the first time I have seen a discussion of the algorithm in a book, and the author does a good job. After a review of polynomial arithmetic over finite fields, the author outlines in detail the constructions employed in the algorithm. The reader is expected to know what a Feistel algorithm is though, since the author only devotes one sentence of explanation as to what it is. Although Feistel networks have long been employed in cryptography, newcomers to the field need a little more discussion here. On the enclosed CD-ROM, the author gives three implementations of the Rijndael algorithm.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
16 of 16 people found the following review helpful:
4.0 out of 5 stars Good book -- Wrong title, April 17, 2004
By A Customer
If truth in titling were a crime, someone would be in leg-irons over this one. This book should be entitled, "A Detailed Account of the Construction of a Large-Precision Number Library of the Sort that can be Used for RSA and Similar Cryptographic Systems, with a few Examples." The book fulfills this latter title exceptionally well.

The great majority of this book is a detailed, step-by-step account of the how the author constructed a C-language big-number library. It treats wrapping the C-libraries with C++ classes as a separate chapter -- nice touch. This treatise is thorough, well-written, and engaging. Nicely done. It is written from a mathematicians perspective, and its mathematical underpinnings may repel some programmers, but they need not fear. In the end the C-code is well-explained.

The only "cryptography" of note is a chapter on implementing RSA with the library. Indeed, the great majority of implementing RSA and similar ciphers is creating the big-number libraries. The RSA chapter is, fortunately, much more than a simple example. It is an excellent treatise of the pitfalls in implementing RSA. That is, RSA is more than a "simple example." If you are implemeting RSA with any big-number library, this chapter alone is worth the cost of admission.

There is a chapter on AES (Rijndael) cipher, but it is out of place here and an obvious paste-on, probably a last minute, hot-button item required by the publisher. It really has nothing you can't get from the original NIST documents on AES.

I'm willing to believe that the title and AES paste-on are the fault of the publisher, because otherwise Welschenbach did an excellent job -- lots of hard and careful work, well documeted. With a title-change, I'd give it a 5-star.

The question in the end is: Why would you want this book? Apart from general interest, the audiences that come to my mind are those who are constructing such libraries on their own, and those who need to use the software included with the book (on a non-commercial basis -- the software license prohibits commercial use).

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
13 of 14 people found the following review helpful:
3.0 out of 5 stars half large, numbers half cryptography, December 31, 2001
By "thecyberpunk" (Barrington, IL United States) - See all my reviews
This book is a great book, but I think the author spent too much time on numbers, and not enough on cryptography. Yes, cryptopgraphy is 95% number theory, but much of the book was creating a library for large numbers, learning to add, subtract, multiply, and divide in their lowest levels. The last few chapters are the only chapters that get into RSA and AES.
If this is what you are looking for than this book is for you, otherwise I recomend "Handbook of Applied Cryptography".
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
Ad
 
Most Recent Customer Reviews

5.0 out of 5 stars Good book with valuable source code
This book is really good for beginners in cryptography. However, the most useful thing in the book is the source code, which can be used for programming your own crypto protocols... Read more
Published on March 19, 2007 by Amitabh

5.0 out of 5 stars practical guide to software implementation of cryptography
This book offers a practical and relatively easy to read description of implementing cryptography algorithms, especially RSA, in software. Read more
Published on December 14, 2006 by David Harris

5.0 out of 5 stars Excellent!
Don't even try to do crypto routines in C/C++ without this book.

It will save you a lot of heartache.

Read it!
Published on November 3, 2004 by Eric Kent

4.0 out of 5 stars a book that takes the abstract and makes it practical
This book will only be appealing to avid crypto fans. The book takes the abstract concept of contemporary algorithms and provides mechanisms for the user to contstruct concrete... Read more
Published on July 13, 2002 by Harry Pandolfino

5.0 out of 5 stars The best that did help and worked
Finally a very good solution is available to overcome limitations in built-in data types!!we are a group of students from Velammal engineering college in India doing a project in... Read more
Published on January 24, 2002

5.0 out of 5 stars * The cryptographic reference for developpers *
If you are interested or involved in any way in both C/C++ development and cryptography, this book is a must. Read more
Published on October 30, 2001 by Andre Perroud

5.0 out of 5 stars Demasiado Bueno.
Este libro explica los conceptos mediante los cuales estan basados los algoritmos de encripcion, tanto simetricos como asimetricos, . Read more
Published on October 9, 2001 by Olinto Rodriguez

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
New! See all customer communities, and bookmark your communities to keep track of them.
This product's forum (0 discussions)
  Discussion Replies Latest Post
  No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]


Active discussions in related forums
   


Product Information from the Amapedia Community

Beta (What's this?)



Look for Similar Items by Category


Value Center Deals

Home Improvement Value Center
Let spectacular savings of up to 50% in the Home Improvement Value Center help motivate you to organize the closet, garage, and everything else.

Shop the Value Center

 

Big Savings in Books

Bargain Books
Find great titles at fantastic prices in our Bargain Books Store.
 

Organize Your World

Shop for storage products
Choose from the large selection of storage and organization products available in the Home Improvement Store.

Shop for more storage products now

 

Down to the Nuts and Bolts

Shop for Sockets and Socket Sets
Get to those hard-to-reach nuts and bolts with a huge selection of sockets and socket sets.

Shop all sockets and socket sets

 
Ad

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Where's My Stuff?

Shipping & Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue shopping: Top Sellers
Free
Free by Chris Anderson
Paranoia
Paranoia by Joseph Finder
The Adventures of Sherlock Holmes
The Adventures of Sherlock Holmes by Arthur Conan, Sir, 1859-1930 Doyle
My Soul to Lose
My Soul to Lose by Rachel Vincent

Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates