YALE UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE
 
|   | CPSC 467a: Cryptography and Computer Security   | Handout #10   | 
|  Professor M. J. Fischer  |                        | October 17, 2008   | 
  | 
  | 
  | 
|   | 
 
Study Guide for Midterm Examination
 
   1     Exam Coverage
The midterm examination will cover the topics of the first 11 lectures of the course (through October 13).
These topics are presented in several different formats:
     
     - In-person class lectures.
     
 
     - Written lecture notes, available on the course web site.
     
 
     - Written handouts, available on the course web site. I especially recommend handout 5 for
     reviewing number theory.
     
 
     - Textbook  (Stinson),  relevant  sections  from  chapters  1–5.  Roughly  speaking,  this  is  all  of
     chapter 1, sections 2.1–2.3, 2.7 from chapter 2, sections 3.1, 3.2, 3.5, 3.7 from chapter 3, a
     little bit about MAC’s (message authentication codes) from section 4.1 and 4.4, and sections
     5.1, 5.2.1, 5.2.3, 5.3, 5.7.1.
     
 
     - Other resources available in the library and on the web.
     
 
     - Problem sets and solutions.
 
   
2     Review Outline
Below I give a list of topics, concepts, definitions, theorems, algorithms, and protocols that we have
covered and that I expect you to know. This list is not inclusive, as I’m sure I have missed some
things.
                                                                                   
                                                                                   
     
     - Secret-message transmission problem.
          
          - Model.
              
              - Alice.
              
 
              - Bob.
              
 
              - Eve (passive eavesdropper).
              
 
              - Mallory (active eavesdropper).
              
 
              - Plaintext.
              
 
              - Ciphertext.
              
 
              - Key.
              
 
              - Encryption function.
              
 
              - Decryption function.
 
           
          - Attacks.
              
              - Known plaintext.
              
 
              - Chosen plaintext.
              
 
              - Known ciphertext.
              
 
              - Chosen ciphertext.
 
           
          - Breaking system.
              
              - Finding key.
              
 
              - Decrypting ciphertext.
              
 
              - Extracting partial information from ciphertext.
 
           
      
     - Information security in the real world.
                                                                                   
                                                                                   
     
 
     - Classical cryptography.
          
          - Cryptosystems.
              
              - Caeser cipher.
              
 
              - One-time pad.
              
 
              - Simple XOR system.
              
 
              - Monoalphabetic cipher.
              
 
              - Playfair cipher.
              
 
              - Hill cipher.
              
 
              - Polyalphabetic cipher.
              
 
              - Transposition techniques.
              
 
              - Rotor machines.
              
 
              - Steganography.
 
           
          - Security.
              
              - Kerckhoffs’s assumption (that only key is secret).
              
 
              - Statistical inference.
              
 
              - Brute force attack.
              
 
              - Redundancy.
              
 
              - Information-theoretic security.
 
           
          - Stream cipher.
              
              - Keystream generator.
              
 
              - Next-state generator.
 
           
          - Block cipher.
                                                                                   
                                                                                   
              
              - Block size.
              
 
              - Padding.
              
 
              - Chaining modes.
                 
                 - Electronic Codebook Mode (ECB).
                 
 
                 - Cipher Block Chaining Mode (CBC).
                 
 
                 - Cipher-Feedback Mode (CFB).
                 
 
                 - Output Feedback Mode (OFB).
                 
 
                 - Propagating Cipher-Block Chaining Mode (PCBC).
                 
 
                 - Recoverability from lost/damaged ciphertext blocks.
 
               
           
      
     - Data Encryption Standard (DES).
          
          - Feistel network.
          
 
          - Block size.
          
 
          - Key size.
          
 
          - Subkey.
          
 
          - S-box.
          
 
          - Rounds.
          
 
          - Decryption.
          
 
          - Group property of a cryptosystem.
          
 
          - Double encryption.
          
 
          - Birthday paradox.
 
                                                                                   
                                                                                   
      
     - Message Authentication Codes (MACs).
          
          - Definition.
          
 
          - Need for MACs; why encryption isn’t enough.
          
 
          - MACs from DES and other block ciphers.
 
      
     - Asymmetric cryptosystems.
          
          - Definition and requirements.
          
 
          - Public key model.
          
 
          - Need for resistence against chosen plaintext attack.
          
 
          - Man-in-the-middle attack (whereby Alice is fooled into thinking that Mallory’s public
          key really belongs to Bob).
 
      
     - RSA.
          
          - Components.
              
              - Modulus.
              
 
              - Encryption key.
              
 
              - Decryption key.
              
 
              - Encryption function.
              
 
              - Decryption function.
 
           
          - Algorithms needed.
              
              - Primality testing. [Know why needed, but actual method not covered on midterm.]
              
 
              - Finding modular inverse.
              
 
              - Fast modular exponentiation.
 
                                                                                   
                                                                                   
           
          - Theoretical basis.
              
              - Prime number theorem. [Not covered on midterm.]
              
 
              - Existence of modular inverse.
              
 
              - Proof that decryption function is inverse of encryption function.
 
           
          - Computational efficiency.
          
 
          - Security properties.
              
              - Factoring problem.
              
 
              - Computing ϕ(n) given factorization of n.
              
 
              - Factoring n given ϕ(n).
              
 
              - Factoring n given public and private keys. [Not covered on midterm.]
 
           
          - Hybrid system.
              
              - Use RSA for secure transmission of random session key.
              
 
              - Use symmetric cryptosystem for body of message.
 
           
      
     - Algebra.
          
          - Groups.
          
 
          - Abelian group
          
 
          - Subgroups.
          
 
          - Cyclic group, generator, and order of an element.
          
 
          - Order of subgroup divides order of group.
          
 
      
     - Number theory.
                                                                                   
                                                                                   
          
          - Modular arithmetic.
              
              - Divides (a|b).
              
 
              - Division theorem: a = bq + r, 0 ≤ r < b.
              
 
              - The remainder operator “a mod n”
              
 
              - The congruence relation a ≡ b (mod n)
              
 
              - Zn.
              
 
              - Computing in Zn for large n.
              
 
              - Fast modular exponentiation.
 
           
          - Z*n
              
              - Relatively prime pairs of numbers.
              
 
              - Euler’s totient function ϕ(n)
              
 
              - Euler’s theorem and Fermat’s little theorem.
              
 
              - Consequence: x ≡ y (mod ϕ(n)) implies ax ≡ ay  (mod n).
              
 
              - Greatest common divisor (gcd).
              
 
              - Euclidean gcd algorithm.
              
 
              - Diophantine equations and modular inverses.
              
 
              - Extended Euclidean algorithm.