Skip to content

MachinaIO/mxx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mxx: Lattice-Based Cryptography Library

This library is intended to support primitive-level lattice-based cryptography developed by Machina-iO. mxx is a primitive library upon which we may build more complex constructions, potentially for academic papers.

Applications of mxx include:

Prerequisites

  • OpenFHE (System install required in /usr/local/lib), make sure to install our fork in /feat/improve_determinant branch

Overview

Matrix Element

In the LWE setting, matrix elements are integers, and in the RLWE setting, matrix elements are polynomials. Since we want matrix elements to be generic over types, we define basic common functionality as a trait.

Matrix

The core of lattice operations is represented as a matrix. Both disk-based and memory (RAM)-based storage are supported as two options.

Sampler

For basic matrix sampling, there are:

  1. Hash sampler
  2. Uniform sampler

The trapdoor sampler is used for lattice trapdoor sampling techniques (detailed in the algorithm described in Implementing Token-Based Obfuscation under (Ring) LWE).

BGG+ Encoding

An encoding scheme introduced in Fully Key-Homomorphic Encryption, Arithmetic Circuit ABE, and Compact Garbled Circuits, known as BGG+ encoding.

Circuit

Arithmetic circuits that can be evaluated homomorphically through arithmetic gate operations.

License

Licensed under the [MIT license](./LICENSE).

About

Primitive-level lattice-based cryptography

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages