0%

Book Description

None

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 CipherThe 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 TheoremFermat’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 ConstructionThe 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 protocolLamport’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”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 AlgorithmShor’s Algorithm
      1. 25.3.1 Factoring
      2. 25.3.2 The Discrete Fourier Transform
      3. 25.3.3 Shor’s AlgorithmShor’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
3.17.75.227