Contemporary Cryptography
A book published by
Artech House Publishers in the Computer
Security Series
Rolf Oppliger, Ph.D.
eSECURITY Technologies Rolf Oppliger
Breichtenstrasse 18
CH-3074 Muri b. Bern, Switzerland
E-Mail: rolf.oppliger@esecurity.ch
Phone/Fax: +41 079 654 84 37
The book provides an overview about contemporary cryptography.
The book is intended for computer scientists, electrical engineers, and mathematicians
both in research and practice. The book is also intended for computer practitioners,
consultants, and information officers who want to gain some insight into the fascinating
and fastly evolving field.
Foreword by Gene Spafford
Preface
1. Introduction
2. Cryptographic Systems
Part I: Mathematical Fundamentals
3. Discrete Mathematics
4. Probability Theory
5. Information Theory
6. Complexity Theory
Part II: Unkeyed Cryptosystems
7. One-Way Functions
8. Cryptographic Hash Functions
9. Random Bit Generators
Part III: Secret Key Cryptosystems
10. Symmetric Encryption Systems
11. Message Authentication Systems
12. Pseudorandom Bit Generators
13. Pseudorandom Functions
Part IV: Public Key Cryptosystems
14. Asymmetric Encryption Systems
15. Digital Signature Systems
16. Key Establishment
17. Entity Authentication
18. Secure Multi-Party Computation
Part IV: Epilogue
19. Key Management
20. Conclusions
21. Outlook
Abbreviations and Acronyms
Mathematical Notation
About the Author
Index
The following people have reviewed the book:
- Page 2, line 11 from the bottom: a closing quotation mark should be added after
"gráphein"
- Page 24, Figure 2.2: "5F F6 E0" must be appended to the hash value
- Page 25, line 7: "0xE423AB7D1767D13EF6EAEA6980" must be replaced with
"0xE423AB7D1767D13EF6EAEA69805FF6E0"
- Page 30, line 7: All letters K (representing a key) should be replaced with
a smallercase k
- Page 55, line 5: "n-1" should be replaced with "n" as the argument for Euler's
totient function (reported on February 9, 2008, by Chunhua Liu)
- Page 87, lines 8-10: The moduli most be 7, 11, and 13 instead of 1001 (reported on
March 15, 2007, by Nadav Benedek)
- Page 176, Definition 7.7, line 4, 1st word: "DHP" should be replaced with "DHDP"
- Page 176, last paragraph of Section 7.2.1: "DDHP" should be replaced with "DHDP"
(4 times)
- Page 191, lines 11 and 18 (twice): "F_q" is written in the wrong font
- Page 197, line 7 from the bottom: "(365-n)" should be replaced with "(365-n+1)"
- Page 198, line 4: "362/2" should be replace with "365/2"
- Page 202, line 9: "RFC 1320" should be replaced with "RFC 1321"
- Page 208, line 6 of Algorithm 8.5: "for i=o to N/16-1 do" should be replaced with
"for i=0 to N/16-1 do" (i.e., a small letter "o" should be replaced with a zero "0")
- Page 213, line 9 from the bottom: "M[1], M[1],...,M[N]" should be replaced with
"M[0], M[1],...,M[N-1]"
- Page 215, line 7 of Algorithm 8.10: "for i=0 to N do" should be replaced with
"for i=0 to N-1 do"
- Page 220, formula (9.1): The exponent "n-i" should be replaced with "i-1"
- Page 229, 3rd line from the bottom: "K" should be replaced
with "k" (small letters)
- Page 247, 2nd bullet (3rd line from the bottom): "K_1 and K_2" should be replaced
with "k_1 and k_2" (small letters)
- Page 271, footnote 31: "must" should be replaced with "need" (reported on June 27,
2005, by Martin F. Krafft)
- Page 280, line 9: "initialized as follows: three steps:" should be
replaced with "initialized in three steps:"
- Page 280, line 7 from the bottom: "(according to Algorithm 10.2)" should be
replaced with "according to the three steps enumerated above"
- Page 281, Algorithm 10.6: "i" and "j" should be removed from the input parameter list
- Page 300, line 7 from the bottom: "... a family of finite PRF ..." should be replaced with
"... a family of finite PRFs ..."
- Page 346, line 2 from the bottom: The letter "N" in "... < N^{0.292}..."
should be written in lower case
- Page 349, line 3: \phi(n) should be replaced with \phi(p) in the exponent
- Page 349, line 5: \phi(n) should be replaced with \phi(q) in the exponent
- Pages 353-357: In the toy example of the ElGamal encryption system, p should be set
to 17 (instead of 27 which is not a prime) and y is equivalent to 7^6 (mod
17) = 9. The encryption and decryption examples must be modified accordingly.
- Page 377, line 3 from the bottom: n_A should be replaced with n_B
- Page 379: In the toy example of the ElGamal DSS, g=2 is not a generator and
should be replaced, for example, with g=7
- Page 383, line 6 in Section 15.2.2.4: "for exmaple" should be replaced with
"for example"
- Page 397, line 4 from the bottom: "retuns" should be replaced with "returns"
- Page 398, line 5: The term "online solution" should be written in italics
- Page 440, line 3: "static" should be replaced with "dynamically changing"
- The CrypTool can be used
to visualize and experiment with most cryptographic algorithms and protocols
addressed in the book.
© 2010 Rolf Oppliger