Chris Pollett > Students >

    ( Print View)



    [CS 297 Proposal]

    [Deliverable 1]

    [Deliverable 2]

    [Deliverable 3]

    [Deliverable 4]

    [McEliece System]

    [Regev System]

    [RSA System]

    [CS 297 Report-PDF]

    [CS 298 Proposal]

    [CS298 Slides-PDF]

    [CS298 Report-PDF]

CS297 Proposal

Implementing and Testing Three Lattice-Based Cryptosystems

Michaela Molina (

Advisor: Dr. Chris Pollett


Implement three lattice-based cryptosystems in Rust: the first by Miklos Ajtai which is based off a cryptographic hash and has a worst-to-average case reduction, the second by Hoffstein, Piper, and Silverman called NTRU which is public key and does not have a worse-to-average case reduction, and the third by Regev which is public key and has a worse-to-average case reduction. Focus on the last two systems. Run benchmarking of the different systems. Implement some worse to average case reduction algorithm.


Week 1: Jan 27-Feb 1Introductory week
Week 2: Feb 2-Feb 8Finalize topic
Week 3: Feb 9-Feb 15Finalize proposal
Week 4: Feb 16-Feb 22Complete Deliverable 1
Week 5: Feb 23 - Mar 1Read [Dwork1997]
Week 6: Mar 2 - Mar 8Read [Dwork1997]
Week 7: Mar 9 - Mar 15Work on Deliverable 2
Week 8: Mar 16 - Mar 22Work on Deliverable 2
Week 9: Mar 23 - Mar 29Work on Deliverable 3
Week 10: Mar 30 - Apr 5Work on Deliverable 3
Week 11: Apr 6 - Apr 12Work on paper 2
Week 12: Apr 13 - Apr 19Work on paper 2
Week 13: Apr 20 - Apr 26Work on Deliverable 4
Week 14: Apr 27 - May 3Work on Deliverable 4, CS 297 outline
Week 15: May 4 - May 10Complete CS 297 report


The full project will be done when CS298 is completed. The following will be done by the end of CS297:

1. Write a short program that demonstrates 3 functions from crate; Create slides to explain what the function does, and how to compile Rust; create no more than 8 slides. Completed: See "Deliverable 1"

2.Implement md5 in Rust, show tests to show that it works.

3.Implement Impagliazzo-Naor hash function, run tests, and make a distribution graph ([Dwork1997])

4.Implement modular polynomial ring multiplication, division, inverse from [Hoffstein1996]

5. CS 297 report


[Ajtai1996] "Generating hard instances of lattice problems." Miklos M. Ajtai. Proceedings of the twenty-eighth annual ACM symposium on Theory of computing. Association for Computing Machinery, New York, NY, United States. 1996.

[Dwork1997] "Positive applications of lattices to cryptography." Cynthia Dwork. Mathematical Foundations of Computer Science 1997. MFCS 1997. Lecture Notes in Computer Science, vol 1295. Springer, Berlin, Heidelberg.

[Hoffstein1998] "NTRU: A ring-based public key cryptosystem." Jeffrey Hoffstein, Jill Pipher, and Joseph H. Silverman. International Algorithmic Number Theory Symposium. Springer, Berlin, Heidelberg. 1998.

[Regev2009] "On lattices, learning with errors, random linear codes, and cryptography." Oded Regev. Journal of the ACM (JACM) 56.6. Association for Computing Machinery, New York, NY, United States. 2009.