Chris Pollett > Students >
Molina

    ( Print View)

    [Bio]

    [Blog]

    [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]

Project Blog

Week 15 - May 10, 2022

Minutes

  • Go over report draft

To-Do

  • Do revisions on report draft
  • Start slides

Week 14 - May 3, 2022

Minutes

  • Go over what should be in the report
  • Discuss implementation of cipher block chaining

To-Do

  • Start working on slides
  • Have report draft by next week

Week 13 - April 26, 2022

Minutes

  • List of bugs found:
    • Forgot to scramble generator matrix; the generator matrix is G' = SGP, not G
    • Patterson's algorithm finds the moved errors, and the moved errors are equal to eP^-1
    • In the last step of decryption use the unscrambled generator in [G^t|(mSG)^t]
  • Other miscellaneous things found after it was mostly working:
    • When finding rref form columns are swapped to make the identity matrix appear on the left. After creating the nullspace, they must be swapped back in reverse order
    • In the last step of decryption, a modified rref was run on the top half of the matrix. Instead run it on the whole matrix and just don't clear the rightmost column
    • Rust cannot find a large, nonsingular matrix whith a high density and sometimes crashes when calculating the determinant. Use a lower density (half of the matrix) and reduce the length of the code (which is the size of the matrix) and it still works
    • In reduce() in both GF(2^m) and GF(2^tm), loop ranges were decreasing which doesn't work in Rust. For example 5..0 doesn't work and 1..6.rev() must be used

To-Do

  • Finish implementing the Regev system

Week 12 - April 19, 2022

Minutes

  • Show demo of McEliece system working

To-Do

  • Keep implementing the Regev system

Week 11 - April 12, 2022

Minutes

  • Go over error distribution in the Regev system

To-Do

  • Start implementing the Regev system

Week 10 - April 5, 2022

Minutes

  • Discuss where I am at on implementing McEliece

To-Do

  • Finish the last decoding steps of McEliece

Week 9 - March 29, 2022

Minutes

  • Learn how to find the square root of a polynomial over GF(2^mt)

To-Do

  • Implement the square root of a polynomial over GF(2^mt)

Week 8 - March 22, 2022

Minutes

  • Discuss finishing McEliece by end of spring break

To-Do

  • Find more suitable methods for finite fields

Week 7 - March 15, 2022

Minutes

  • Discuss inverse

To-Do

  • Implement inverse

Week 6 - March 8, 2022

Minutes

  • Discuss what to do for next week

To-Do

  • Finish encoding
  • Work on decoding
  • Read next paper

Week 5 - March 1, 2022

Minutes

  • Do the points from last week

To-Do

  • Finish generator matrix
  • Finish encoding part
  • Think about tests to run
  • Work on decoding

Week 4 - February 22, 2022

Minutes

  • Discuss the irreducible polynomial for the generator matrix
  • Learn about subgroups and extension fields

To-Do

  • Finish generator matrix
  • Finish encoding part
  • Think about tests to run
  • Work on decoding

Week 3 - February 15, 2022

Minutes

  • Discuss how to create the generator matrix

To-Do

  • Finish the generator matrix by next week
  • Read about decoding for next week

Week 2 - February 8, 2022

Minutes

  • Discuss how to find the generator matrix

To-Do

  • Implement creating the generator matrix

Week 1 - February 1, 2022

Minutes

  • Introductory meeting

To-Do

  • Get caught up to the point of last Fall

Week 4 - September 14, 2021

Minutes

  • Discuss the 3 matrices for the system

To-Do

  • Implement some of the matrices for the system before next week

Week 3 - September 7, 2021

Minutes

  • Discuss the 3 matrices for the system

To-Do

  • Implement the 3 matrices for the system
  • Implement encryption

Week 2 - August 31, 2021

Minutes

  • Pay attention to aspects of Rust that make implementation challenging
  • How to make a random permutation with a single for loop
  • Irreducible polynomials
  • How to generate irreducible polynomials

To-Do

  • Post CS 298 Proposal on Project Page
  • Implement up to Algorithm E
  • Implement Algorithm E and D if there is extra time

Week 1 - August 24, 2021

Minutes

  • Discuss how to finish 298 report

To-Do

  • Finish 298 Report

Week 15 - May 11, 2021

Finished

Week 14 - May 4, 2021

Minutes

  • Discuss what to do for next week
  • Discuss CS 298 Proposal

Finished

Not Finished

  • Finish description for Deliverable 3 and Deliverable 4
  • Debug Deliverable 3 by trying different seeds for random number
  • Continue reading [Dwork1997]
  • Make a graph that shows that the dual lattice is the set of points that are intersections of n hyperplanes

To-Do

  • Finish Deliverable 4 by next week
  • Finish CS 297 Report by next week
  • Finish everything else by next week

Week 13 - April 27, 2021

Minutes

  • Show slides from Deliverable 3
  • Discuss Report
  • Discuss what to do for next week

Finished

  • Coded Impagliazzo and Naor hash function, ran tests and made a distribution graph. Made slides showing graph.
  • Started reading [Hoffstein1998]. Updated proposal with what the next deliverable will be.
  • Finished pages 1-4 of [Ajtai1996] because it discusses Impagliazzo-Naor hash functions.
  • For Deliverable 1 and Deliverable 2, added description to explain what code is doing.
  • Under references, added links to papers.

To-Do

  • Finish description for Deliverable 3
  • Debug Deliverable 3 by trying different seeds for random number
  • Debug Deliverable 2 and show test cases
  • Continue reading [Dwork1997]
  • Look at CS 255 to read about Extended Euclidean Algorithm for Deliverable 4
  • Finish Deliverable 4 by next week
  • Do outline of Report by next week
  • Make a graph that shows that the dual lattice is the set of points that are intersections of n hyperplanes

Week 12 - April 20, 2021

Minutes

  • Finished Impagliazzo-Naor hash function (Deliverable 3)
  • Discussed what to do for the distribution graph of the hash function
  • Discussed dual lattices and hyperplanes
  • Discussed why inverting the hash function is equivalent to finding a short vector

To-Do

  • Under references, add links to paper
  • For Deliverable 1 and Deliverable 2, add description to explain what code is doing
  • Debug md5 and show test cases
  • For Deliverable 3, Code Impagliazzo and Naor hash function. Run tests and make a distribution graph.
  • Continue reading [Dwork1997]
  • Start reading [Hoffstein1998]. Make slides on what the next deliverable will be.
  • Make a graph that shows that the dual lattice is the set of points that are intersections of n hyperplanes

Week 11 - April 13, 2021

Minutes

  • Finish Deliverable 3 by next week

Week 10 - April 5, 2021

Minutes

  • Discuss [Dwork1997] paper
  • Discuss what Deliverable 3 is

To-Do

  • Under references, add links to paper
  • For Deliverable 1 and Deliverable 2, add description to explain what code is doing
  • For Deliverable 2, show some test cases for md5 to show that it works
  • For Deliverable 3, Code Impagliazzo and Naor hash function. Run tests and make a distribution graph.
  • Continue reading [Dwork1997]
  • Start reading [Hoffstein1998]

Week 9 - March 23, 2021

Minutes

  • Discuss not able to finish anything

To-Do

  • Have md5 finished by end of break
  • Continue reading [Dwork1997]
  • Work on hash function from [Dwork1997]
  • Update Deliverable 2 description

Week 8 - March 16, 2021

Minutes

  • Discuss when to finish Deliverable 2

To-Do

  • Have md5 finished by next Tuesday
  • Have questions on [Dwork1997] prepared by next Tuesday so that I can code the hash function
  • Have [Dwork1997] hash function finished by the Tuesday after Spring Break
  • Update Deliverable 2 description

Week 7 - March 9, 2021

Minutes

  • Discuss Dwork paper [Dwork1997]
  • Discuss dual vector space
  • Discuss linear transformations
  • Discuss the hash function from Dwork paper

To-Do

  • On website, get rid of download links to Deliverable 1 and create a new link on the green menu that opens a new page
  • Modify proposal to show correct paper for Paper 2: [Dwork1997] instead of [Miklos1996]
  • Continue reading Paper 1 [Dwork1997]
  • When reading article, take pictures of notes and doodles to show next time
  • When reading article, write down notes of things I don't understand
  • Code md5
  • Remind Professor Pollett next Monday to look for material that explains lattices
  • Next deliverable:
  • Continue coding md5
  • Code the hash function from [Dwork1997] with hard-coded input vectors, save generation of input vector for later
  • Code cipher-block chaining for each of the two hash functions
  • Update Proposal to show details of Deliverable 2

Week 6 - March 2, 2021

Minutes

  • Discuss what lattices are
  • Discuss what a shortest vector is
  • Discuss modular matrices
  • Discuss some lattice problems (Small Integer Solutions, Learning With Error, Decision Learning With Errors)
  • Discuss that it's better to show examples instead of lists
  • Use Microsoft Paint as scratch paper for next time

To-Do

  • Align blog content to the left
  • Continue reading [Miklos1995] if possible
  • Work out what the hash problem is from [Miklos1995] by reading other material that explains it
  • Work out how to code that
  • Code md5
  • Remind Professor Pollett the day before next Tuesday to go over Miklos article [Miklos1996]
  • Add link to slides and deliverable from last week

Week 5 - February 23, 2021

Minutes

  • Finished Deliverable 1 (See "Deliverable 1")
  • Showed slides about compiling Rust and using crates
  • Discuss what to do for next week

To-Do

  • Read journal version of Miklos article
  • Decide which parts I want to code
  • Look up libraries for the hash function
  • Look up homomorphic cryptography
  • Create slides about Miklos article
  • Update proposal to be more specific regarding which component to code
  • Make a table around schedule on Proposal
  • Think of any questions for next week

Week 4 - February 16, 2021

Minutes

  • Went over account and website, learned how to edit, copy, delete, and add pages.
  • Made change to proposal to replace 3 with 'three'.
  • Updated proposal with deliverable for next week

To-Do

  • Update Blog with summary of each meeting
  • Deliverable for next week: 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.

Week 3 - February 9, 2021

Minutes

  • Discussed improvements to make on proposal
  • Arranged 10 AM Tuesday meetings for the future

To-Do

  • Split up proposal deliverables into smaller pieces

Week 2 - February 2, 2021

Minutes

  • Decided on topic: lattice-based cryptography

To-Do

  • Write first draft of proposal

Week 1 - January 27, 2021

Minutes

  • none

To-Do

  • Enroll in CS 297