Preface to the First American Edition

Mathematics is a misunderstood and even maligned discipline. It's not the brute computations they drilled into us in grade school. It's not the science of reckoning. Mathematicians do not spend their time thinking up cleverer ways of multiplying, faster methods of adding, better schemes for extracting cube roots.

—Paul Hoffman, The Man Who Loved Only Numbers

THE FIRST AMERICAN EDITION IS A TRANSLATION OF the second German edition, which has been revised and expanded from the first German edition in a number of ways. Additional examples of cryptographic algorithms have been added, such as the procedures of Rabin and El Gamal, and in the realization of the RSA procedure the hash function RIPEMD-160 and formatting according to PKCS #1 have been adopted. There is also a discussion of possible sources of error that could lead to a weakening of the procedure. The text has been expanded or clarified at a number of points, and errors have been corrected. Additionally, certain didactic strategies have been strengthened, with the result that some of the programs in the source code differ in certain details from those presented in the book. Not all technical details are of equal importance, and the desire for fast and efficient code is not always compatible with attractive and easy-to-read programs.

And speaking of efficiency, in Appendix D running times are compared to those for certain functions in the GNU Multiprecision Library. In this comparison the FLINT/C exponentiation routine did not do at all badly. As a further extension, Appendix F provides references to some arithmetic and number-theoretic packages.

The software has been expanded by several functions and in places has been significantly overhauled, and in the process a number of errors and points of imprecision were removed. Additional test functions were developed and existing test functions expanded. A security mode was implemented, whereby security-critical variables in the individual functions are deleted by being overwritten. All C and C++ functions are now clearly cited and annotated in the appendices.

Since current compilers represent varying stages of development of the C++ standard, the C++ modules of the FLINT/C package have been set up in such a way that both traditional C++ header files of the form xxxxx.h and the new ANSI header files can be used. For the same reason the use of the operator new() has been checked, as always, as to whether the null pointer is returned. This type of error handling does not make use of the ANSI standard exceptions, but it nonetheless functions with current compilers, while the method that conforms to the standard, by which new() generates an error via throw(), is not universally available.

Although the focus of this book is the fundamentals of asymmetric cryptography, the recent nomination of Rijndael by the American National Institute of Standards and Technology (NIST) to be the advanced encryption standard (AES) encouraged me to include a final chapter (Chapter 11) with an extensive description of this algorithm. I am indebted to Gary Cornell, at Apress, for bringing up the subject and convincing me that this would be a worthwhile complement to the topics of this book. I would like to thank Vincent Rijmen, Antoon Bosselaers, Paulo Barreto, and Brian Gladman for their kind permission to include the source code for their Rijndael implementations in the source code that accompanies this book.

I wish to thank all the readers of the first edition, particularly those who called errors to my attention, made comments, or suggested improvements. All their communications were most welcome. As always, the author assumes all responsibility for errors that may yet remain in the text or the software, as well as for any new errors that may have crept in.

I offer my heartfelt thanks to Gary Cornell, at Apress, and again to Hermann Engesser, Dorothea Glaunsinger, and Ulrike Stricker, at Springer-Verlag, for their unstinting commitment and friendly collaboration.

I am deeply grateful to my translator, David Kramer, who has contributed with distinguished expertise and indefatigable dedication many valuable hints, which have been incorporated into the German edition of this book as well.

Warning

Before making use of the programs contained in this book please refer to the manuals and technical introductions for the relevant software and computers. Neither the author nor the publisher accepts any responsibility for losses due to improper execution of the instructions and programs contained in this book or due to errors in the text or in the programs that despite careful checking may remain. The programs in the downloadable source code are protected by copyright and may not be reproduced without permission of the publisher.

Disclaimer

In this book frequent use is made of the term "leading zeros." The use of this term is in no way to be construed as alluding to any person or persons, in public or private life, living or dead, and any such correspondence is entirely coincidental.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
13.58.44.229