Author |
---|

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

Aims and Scope |
---|

The book provides an overview about contemporary cryptography.

Target Audience |
---|

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.

Table of Contents |
---|

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

Reviews |
---|

The following people have reviewed the book:

- Martin Schweitzer (ACM Computing Reviews, September 2005)
- Patrick Mueller (Information Security, November 2005, p. 74)

Errata List |
---|

- 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"

News |
---|

- A second edition of this book was published in 2011.

Additional Material |
---|

- A set of slides is published with a Creative Commons Attribution No Derivatives (cc by-nd) 3.0 license (view licence deed, view legal code). Please, feel free to download and use the slides at will (e.g., to teach classes on contemporary cryptography). We appreciate any feedback or comment.
- The CrypTool can be used to visualize and experiment with most cryptographic algorithms and protocols addressed in the book.

© 2010 Rolf Oppliger