Introduction to Cryptography with Coding Theory, 3rd Edition

Book description

For courses in Cryptography, Network Security, and Computer Security.

This ISBN is for the Pearson eText access card.

A broad spectrum of cryptography topics, covered from a mathematical point of view

Extensively revised and updated, the 3rd Edition of Introduction to Cryptography with Coding Theory mixes applied and theoretical aspects to build a solid foundation in cryptography and security. The authors’ lively, conversational tone and practical focus inform a broad coverage of topics from a mathematical point of view, and reflect the most recent trends in the rapidly changing field of cryptography.

Key to the new edition was transforming from a primarily print-based resource to a digital learning tool. The eText is packed with content and tools, such as interactive examples, that help bring course content to life for students and enhance instruction.

Pearson eText is a simple-to-use, mobile-optimized, personalized reading experience. It lets students highlight, take notes, and review key vocabulary all in one place, even when offline. Seamlessly integrated videos and other rich media engage students and give them access to the help they need, when they need it.

Educators can easily customize the table of contents, schedule readings, and share their own notes with students so they see the connection between their eText and what they learn in class – motivating them to keep reading, and keep learning. And, reading analytics offer insight into how students use the eText, helping educators tailor their instruction.

NOTE: Pearson eText is a fully digital delivery of Pearson content and should only be purchased when required by your instructor. This ISBN is for the Pearson eText access card. In addition to your purchase, you will need a course invite link, provided by your instructor, to register for and use Pearson eText.

Table of contents

  1. Introduction to Cryptography with Coding Theory
  2. Contents
  3. Preface
  4. Chapter 1 Overview of Cryptography and Its Applications
    1. 1.1 Secure Communications
      1. 1.1.1 Possible Attacks
      2. 1.1.2 Symmetric and Public Key Algorithms
      3. 1.1.3 Key Length
    2. 1.2 Cryptographic Applications
  5. Chapter 2 Classical Cryptosystems
    1. 2.1 Shift Ciphers
    2. 2.2 Affine Ciphers
    3. 2.3 The Vigenère Cipher
      1. 2.3.1 Finding the Key Length
      2. 2.3.2 Finding the Key: First Method
      3. 2.3.3 Finding the Key: Second Method
    4. 2.4 Substitution Ciphers
    5. 2.5 Sherlock Holmes
    6. 2.6 The Playfair and ADFGX Ciphers
    7. 2.7 Enigma
    8. 2.8 Exercises
    9. 2.9 Computer Problems
  6. Chapter 3 Basic Number Theory
    1. 3.1 Basic Notions
      1. 3.1.1 Divisibility
      2. 3.1.2 Prime Numbers
      3. 3.1.3 Greatest Common Divisor
    2. 3.2 The Extended Euclidean Algorithm
    3. 3.3 Congruences
      1. 3.3.1 Division
      2. 3.3.2 Working with Fractions
    4. 3.4 The Chinese Remainder Theorem
    5. 3.5 Modular Exponentiation
    6. 3.6 Fermat’s Theorem and Euler’s Theorem
      1. 3.6.1 Three-Pass Protocol
    7. 3.7 Primitive Roots
    8. 3.8 Inverting Matrices Mod n
    9. 3.9 Square Roots Mod n
    10. 3.10 Legendre and Jacobi Symbols
    11. 3.11 Finite Fields
      1. 3.11.1 Division
      2. 3.11.2 GF(28)
      3. 3.11.3 LFSR Sequences
    12. 3.12 Continued Fractions
    13. 3.13 Exercises
    14. 3.14 Computer Problems
  7. Chapter 4 The One-Time Pad
    1. 4.1 Binary Numbers and ASCII
    2. 4.2 One-Time Pads
    3. 4.3 Multiple Use of a One-Time Pad
    4. 4.4 Perfect Secrecy of the One-Time Pad
    5. 4.5 Indistinguishability and Security
    6. 4.6 Exercises
  8. Chapter 5 Stream Ciphers
    1. 5.1 Pseudorandom Bit Generation
    2. 5.2 Linear Feedback Shift Register Sequences
    3. 5.3 RC4
    4. 5.4 Exercises
    5. 5.5 Computer Problems
  9. Chapter 6 Block Ciphers
    1. 6.1 Block Ciphers
    2. 6.2 Hill Ciphers
    3. 6.3 Modes of Operation
      1. 6.3.1 Electronic Codebook (ECB)
      2. 6.3.2 Cipher Block Chaining (CBC)
      3. 6.3.3 Cipher Feedback (CFB)
      4. 6.3.4 Output Feedback (OFB)
      5. 6.3.5 Counter (CTR)
    4. 6.4 Multiple Encryption
    5. 6.5 Meet-in-the-Middle Attacks
    6. 6.6 Exercises
    7. 6.7 Computer Problems
  10. Chapter 7 The Data Encryption Standard
    1. 7.1 Introduction
    2. 7.2 A Simplified DES-Type Algorithm
    3. 7.3 Differential Cryptanalysis
      1. 7.3.1 Differential Cryptanalysis for Three Rounds
      2. 7.3.2 Differential Cryptanalysis for Four Rounds
    4. 7.4 DES
      1. 7.4.1 DES Is Not a Group
    5. 7.5 Breaking DES
    6. 7.6 Password Security
    7. 7.7 Exercises
    8. 7.8 Computer Problems
  11. Chapter 8 The Advanced Encryption Standard: Rijndael
    1. 8.1 The Basic Algorithm
    2. 8.2 The Layers
      1. 8.2.1 The SubBytes Transformation
      2. 8.2.2 The ShiftRows Transformation
      3. 8.2.3 The MixColumns Transformation
      4. 8.2.4 The RoundKey Addition
      5. 8.2.5 The Key Schedule
      6. 8.2.6 The Construction of the S-Box
    3. 8.3 Decryption
    4. 8.4 Design Considerations
    5. 8.5 Exercises
  12. Chapter 9 The RSA Algorithm
    1. 9.1 The RSA Algorithm
    2. 9.2 Attacks on RSA
      1. 9.2.1 Low Exponent Attacks
      2. 9.2.2 Short Plaintext
      3. 9.2.3 Timing Attacks
    3. 9.3 Primality Testing
    4. 9.4 Factoring
      1. 9.4.1 x2≡y2
      2. 9.4.2 Using ar≡1
    5. 9.5 The RSA Challenge
    6. 9.6 An Application to Treaty Verification
    7. 9.7 The Public Key Concept
    8. 9.8 Exercises
    9. 9.9 Computer Problems
  13. Chapter 10 Discrete Logarithms
    1. 10.1 Discrete Logarithms
    2. 10.2 Computing Discrete Logs
      1. 10.2.1 The Pohlig-Hellman Algorithm
      2. 10.2.2 Baby Step, Giant Step
      3. 10.2.3 The Index Calculus
      4. 10.2.4 Computing Discrete Logs Mod 4
    3. 10.3 Bit Commitment
    4. 10.4 Diffie-Hellman Key Exchange
    5. 10.5 The ElGamal Public Key Cryptosystem
      1. 10.5.1 Security of ElGamal Ciphertexts
    6. 10.6 Exercises
    7. 10.7 Computer Problems
  14. Chapter 11 Hash Functions
    1. 11.1 Hash Functions
    2. 11.2 Simple Hash Examples
    3. 11.3 The Merkle-Damgård Construction
    4. 11.4 SHA-2
      1. Padding and Preprocessing
      2. The Algorithm
    5. 11.5 SHA-3/Keccak
    6. 11.6 Exercises
  15. Chapter 12 Hash Functions: Attacks and Applications
    1. 12.1 Birthday Attacks
      1. 12.1.1 A Birthday Attack on Discrete Logarithms
    2. 12.2 Multicollisions
    3. 12.3 The Random Oracle Model
    4. 12.4 Using Hash Functions to Encrypt
    5. 12.5 Message Authentication Codes
      1. 12.5.1 HMAC
      2. 12.5.2 CBC-MAC
    6. 12.6 Password Protocols
      1. 12.6.1 The Secure Remote Password protocol
      2. 12.6.2 Lamport’s protocol
    7. 12.7 Blockchains
    8. 12.8 Exercises
    9. 12.9 Computer Problems
  16. Chapter 13 Digital Signatures
    1. 13.1 RSA Signatures
    2. 13.2 The ElGamal Signature Scheme
    3. 13.3 Hashing and Signing
    4. 13.4 Birthday Attacks on Signatures
    5. 13.5 The Digital Signature Algorithm
    6. 13.6 Exercises
    7. 13.7 Computer Problems
  17. Chapter 14 What Can Go Wrong
    1. 14.1 An Enigma “Feature”
    2. 14.2 Choosing Primes for RSA
    3. 14.3 WEP
      1. 14.3.1 CRC-32
    4. 14.4 Exercises
  18. Chapter 15 Security Protocols
    1. 15.1 Intruders-in-the-Middle and Impostors
      1. 15.1.1 Intruder-in-the-Middle Attacks
    2. 15.2 Key Distribution
      1. 15.2.1 Key Pre-distribution
      2. 15.2.2 Authenticated Key Distribution
    3. 15.3 Kerberos
    4. 15.4 Public Key Infrastructures (PKI)
    5. 15.5 X.509 Certificates
    6. 15.6 Pretty Good Privacy
    7. 15.7 SSL and TLS
    8. 15.8 Secure Electronic Transaction
    9. 15.9 Exercises
  19. Chapter 16 Digital Cash
    1. 16.1 Setting the Stage for Digital Economies
    2. 16.2 A Digital Cash System
      1. 16.2.1 Participants
      2. 16.2.2 Initialization
      3. 16.2.3 The Bank
      4. 16.2.4 The Spender
      5. 16.2.5 The Merchant
      6. 16.2.6 Creating a Coin
      7. 16.2.7 Spending the Coin
      8. 16.2.8 The Merchant Deposits the Coin in the Bank
      9. 16.2.9 Fraud Control
      10. 16.2.10 Anonymity
    3. 16.3 Bitcoin Overview
      1. 16.3.1 Some More Details
    4. 16.4 Cryptocurrencies
    5. 16.5 Exercises
  20. Chapter 17 Secret Sharing Schemes
    1. 17.1 Secret Splitting
    2. 17.2 Threshold Schemes
    3. 17.3 Exercises
    4. 17.4 Computer Problems
  21. Chapter 18 Games
    1. 18.1 Flipping Coins over the Telephone
    2. 18.2 Poker over the Telephone
      1. 18.2.1 How to Cheat
    3. 18.3 Exercises
  22. Chapter 19 Zero-Knowledge Techniques
    1. 19.1 The Basic Setup
    2. 19.2 The Feige-Fiat-Shamir Identification Scheme
    3. 19.3 Exercises
  23. Chapter 20 Information Theory
    1. 20.1 Probability Review
    2. 20.2 Entropy
    3. 20.3 Huffman Codes
    4. 20.4 Perfect Secrecy
    5. 20.5 The Entropy of English
      1. 20.5.1 Unicity Distance
    6. 20.6 Exercises
  24. Chapter 21 Elliptic Curves
    1. 21.1 The Addition Law
    2. 21.2 Elliptic Curves Mod p
      1. 21.2.1 Number of Points Mod p
      2. 21.2.2 Discrete Logarithms on Elliptic Curves
      3. 21.2.3 Representing Plaintext
    3. 21.3 Factoring with Elliptic Curves
      1. 21.3.1 Singular Curves
    4. 21.4 Elliptic Curves in Characteristic 2
    5. 21.5 Elliptic Curve Cryptosystems
      1. 21.5.1 An Elliptic Curve ElGamal Cryptosystem
      2. 21.5.2 Elliptic Curve Diffie-Hellman Key Exchange
      3. 21.5.3 ElGamal Digital Signatures
    6. 21.6 Exercises
    7. 21.7 Computer Problems
  25. Chapter 22 Pairing-Based Cryptography
    1. 22.1 Bilinear Pairings
    2. 22.2 The MOV Attack
    3. 22.3 Tripartite Diffie-Hellman
    4. 22.4 Identity-Based Encryption
    5. 22.5 Signatures
      1. 22.5.1 BLS Signatures
      2. 22.5.2 A Variation
      3. 22.5.3 Identity-Based Signatures
    6. 22.6 Keyword Search
    7. 22.7 Exercises
  26. Chapter 23 Lattice Methods
    1. 23.1 Lattices
    2. 23.2 Lattice Reduction
      1. 23.2.1 Two-Dimensional Lattices
      2. 23.2.2 The LLL algorithm
    3. 23.3 An Attack on RSA
    4. 23.4 NTRU
      1. 23.4.1 An Attack on NTRU
    5. 23.5 Another Lattice-Based Cryptosystem
    6. 23.6 Post-Quantum Cryptography?
    7. 23.7 Exercises
  27. Chapter 24 Error Correcting Codes
    1. 24.1 Introduction
    2. 24.2 Error Correcting Codes
    3. 24.3 Bounds on General Codes
      1. 24.3.1 Upper Bounds
      2. 24.3.2 Lower Bounds
    4. 24.4 Linear Codes
      1. 24.4.1 Dual Codes
    5. 24.5 Hamming Codes
    6. 24.6 Golay Codes
      1. Decoding G24
    7. 24.7 Cyclic Codes
    8. 24.8 BCH Codes
      1. 24.8.1 Decoding BCH Codes
    9. 24.9 Reed-Solomon Codes
    10. 24.10 The McEliece Cryptosystem
    11. 24.11 Other Topics
    12. 24.12 Exercises
    13. 24.13 Computer Problems
  28. Chapter 25 Quantum Techniques in Cryptography
    1. 25.1 A Quantum Experiment
    2. 25.2 Quantum Key Distribution
    3. 25.3 Shor’s Algorithm
      1. 25.3.1 Factoring
      2. 25.3.2 The Discrete Fourier Transform
      3. 25.3.3 Shor’s Algorithm
      4. 25.3.4 Final Words
    4. 25.4 Exercises
  29. Appendix A Mathematica® Examples
    1. A.1 Getting Started with Mathematica
    2. A.2 Some Commands
    3. A.3 Examples for Chapter 2
    4. A.4 Examples for Chapter 3
    5. A.5 Examples for Chapter 5
    6. A.6 Examples for Chapter 6
    7. A.7 Examples for Chapter 9
    8. A.8 Examples for Chapter 10
    9. A.9 Examples for Chapter 12
    10. A.10 Examples for Chapter 17
    11. A.11 Examples for Chapter 18
    12. A.12 Examples for Chapter 21
  30. Appendix B Maple® Examples
    1. B.1 Getting Started with Maple
    2. B.2 Some Commands
    3. B.3 Examples for Chapter 2
    4. B.4 Examples for Chapter 3
    5. B.5 Examples for Chapter 5
    6. B.6 Examples for Chapter 6
    7. B.7 Examples for Chapter 9
    8. B.8 Examples for Chapter 10
    9. B.9 Examples for Chapter 12
    10. B.10 Examples for Chapter 17
    11. B.11 Examples for Chapter 18
    12. B.12 Examples for Chapter 21
  31. Appendix C MATLAB® Examples
    1. C.1 Getting Started with MATLAB
    2. C.2 Examples for Chapter 2
    3. C.3 Examples for Chapter 3
    4. C.4 Examples for Chapter 5
    5. C.5 Examples for Chapter 6
    6. C.6 Examples for Chapter 9
    7. C.7 Examples for Chapter 10
    8. C.8 Examples for Chapter 12
    9. C.9 Examples for Chapter 17
    10. C.10 Examples for Chapter 18
    11. C.11 Examples for Chapter 21
  32. Appendix D Sage Examples
    1. D.1 Computations for Chapter 2
    2. D.2 Computations for Chapter 3
    3. D.3 Computations for Chapter 5
    4. D.4 Computations for Chapter 6
    5. D.5 Computations for Chapter 9
    6. D.6 Computations for Chapter 10
    7. D.7 Computations for Chapter 12
    8. D.8 Computations for Chapter 17
    9. D.9 Computations for Chapter 18
    10. D.10 Computations for Chapter 21
  33. Appendix E Answers and Hints for Selected Odd-Numbered Exercises
  34. Appendix F Suggestions for Further Reading
  35. Bibliography
  36. Index

Product information

  • Title: Introduction to Cryptography with Coding Theory, 3rd Edition
  • Author(s): Wade Trappe, Lawrence C. Washington
  • Release date: February 2020
  • Publisher(s): Pearson
  • ISBN: 9780136758181