CIS 556, Fall 2016
Final Project

For the research project, you should try to do something nontrivial, tractable, and open. If you're more theoretical, you can try to prove an extension of existing work, or do a theoretical analysis of something related to cryptography. If you're more applied, you can design and analyze a protocol to solve some new problem, implement an interesting algorithm, or do a cryptography-related experimental or measurement study.

If you have any questions about scope, or want ideas or suggestions, feel free to send an email or come to office hours.

Project Proposal (due 11/10)

Please write a 1-page proposal listing the following and submit to Canvas. (One per group.)


Presentations will be held during class time on 11/29 and 12/1. Presentations can be on slides or chalkboard. Provide an overview of the problem you're trying to solve and your results. Groups of one present for 10 minutes; groups of two for 15, and three 20.

  1. Andreea
  2. Gabrielle and Jack
  3. Yibang and Jinshuo
  4. Eddie, Kushmitha, and Marvin
  5. John
  1. Satya
  2. David and Daniel
  3. Nova
  4. Tanner, Joe, and Paul
  5. Alex
  6. Anna

Final Paper (due 12/16)

Your final report should be written in the style of an academic paper, typeset in LaTeX, 10-15 pages. The usual components of a paper are:

Project Ideas

  1. Look through the programs/accepted papers of Crypto 2016, Eurocrypt 2016, Asiacrypt 2016 or the ePrint Archives and find something that interests you.

  2. Side-channel attacks (Applied)

    Re-implement a recent side-channel attack.


  3. Side-channel attack defenses (Applied)

    Implement a proposed defense against side-channels and measure its efficacy.

  4. Factoring

    1. (Mathematical) Mersenne Factorization Factory by Kleinjung, Bos, and Lenstra 2014
    2. (Mathematical) Batch NFS by Bernstein and Lange 2014
    3. (Mathematical) [Crandall and Pomerance] Given a large integer N, come up with two distinct, irreducible, degree 3 polynomials f(x), g(x) with coefficients bounded by N^(1/6) and an integer m such that f(m) = g(m) = 0 mod N. Work out how this would improve the number field sieve.

  5. Discrete log (Math)

    Study recent advances in discrete log algorithms.


  6. Kleptography

    Study kleptography in theory or in practice.


  7. Weak keys (Applied+math)

    Acquire cryptographic keys and look for key generation vulnerabilities. (Coordinate with Nadia and Luke if you're interested.)


  8. Privacy-enhancing technologies (Protocol analysis/implementation)

  9. Ideal lattices/Post-quantum cryptography (Theory/math)

    Study constructions and attacks on ideal lattices

  10. The ongoing saga of multilinear maps (Theory)

    Study candidate multilinear maps and cryptanalyses.