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
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
To-Do
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
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
Week 15 - May 11, 2021
Finished
- Made graph that shows that the dual lattice is the set of points that are intersections of n hyperplanes Graph-PDF
- Verified that md5 (Deliverable 2) works by testing on 2000 test cases
- Fixed Deliverable 3 by using a different random number generator which uses a new seed from the operating system
- Finished reading [Dwork1997] and [Hoffstein1998]
- Finished Deliverable 4 - implementing polynomial inverse
- Finished draft of CS 297 Report
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
To-Do
|