Projects

  Topological Persistance

Group project for Prof. Steve Oudot’s course on Topological Data Analysis. Efficient Java implementation of a binary Gaussian elimination on Dense and Sparse Matrices to compute barcodes from the filtration of a topological space.

  The LPS post-quantum cryptosystem

Project for Prof. Ben Smith’s Advanced Cryptology course. Python implementation of the post-quantum cryptosystem based on the subset sum problem and described in this paper by Vadim Lyubashevsky, Adriana Palacio, and Gil Segev.

  Elliptic Curve Cryptography

Project for Prof. Ben Smith’s Advanced Cryptology course. Python implementation that covers basic operations on elliptic curves, key exchange with Diffie Hellman (as described in RFC7748), and the first stage of Lenstra’s integer factorization algorithm. Some factorizations of large integers are included.

  SHAKE256

Project for Prof. Ben Smith’s Advanced Cryptology course. Implementation of SHAKE256, an extendable output instance of the SHA3 hash function, following the FIPS 202 standard. We then try to create increasingly significant collisions for small output sizes using different techniques. All code is in Python.

  Instance streams for the exploration of search spaces

Project supervised by Prof. Stéphane Graham Lengrand. Aimed at implementing in OCaml a stream-based approach to the exploration of search spaces. We address the problem of how to combine two streams disjunctively and conjunctively and test our implementation on randomly generated streams of strings.