FHERMA - Lookup table challenge
First place at an online competition organized by Fair Math to enrich the Polycircuit library.
I won the first prize (under the hectoplzm pseudonym) for the Lookup Table challenge on the FHERMA website. The objective was to implement a lookup table, that retrieves the n-th element of an array, using either the BFV or BGV Fully Homomorphic Encryption scheme.
To win the challenge, a solution with 100% accuracy was needed (BFV/BGV are exact schemes), and it also had to be the fastest. I was able to get my solution to run 26.3% faster than the second person thanks to optimizations with the OpenFHE library and with careful parallelization during deserialization.
I wrote an article detailing the solution on the FHERMA website, see here.
SUCFMTBAOA: Specific Universal Cycles For Magic Tricks But Also Other Applications
A project in collaboration with Antoine Dumezy based on the work of Persi Diaconis et al. on universal cycles.
The aim is to find perfect universal cycles, a new concept introduced in a paper that will be available around July. Because we are considering large cyclic permutations, the search space is very big, so universal cycles are hard to find. To our knowledge there is no known algorithm to build universal cycles of arbitrary length.
Along with algorithms to find almost perfect universal cycles with relative efficiency, the main result of this project is that for small values of n (n=3, n=4), no perfect universal cycle exist. We are currently actively searching for ways to generalize this result for all n.
Fully Homomorphic Encryption on Embedded Systems
This is my final year's project at the Ecole Centrale de Lille, in Partnership with the CRIStAL laboratory.
The aim is to make it possible to use Microsoft SEAL, a homomorphic encryption library, with embedded devices (namely robots) by non specialists. The idea is to create a high level implementation of SEAL in a ROS package to integrate flawlessly with existing robots.
The result of the project is a ROS2 package, available on Github, which provides ROS2 nodes to easily use CKKS, managing noise and relinearization. The package also contains two examples, a basic one to only send data, and a second one based on OpenCV to create a gray scale image from an encrypted one.
Other experimentations have been made with the SEAL Embedded library, which (as the name suggests) is optimised for embedded systems, namely on RISC-V based ESP32-C3 and ARM-M4 based nrf52840. The idea was to propose a RISC-V optimized implementation of CKKS, but did not (yet) have time to finish this project.