Learn R Programming

HEtools

Homomorphic encryption (Brakerski and Vaikuntanathan (2014) doi:10.1137/120868669) using Ring Learning with Errors (Lyubashevsky et al. (2012) https://eprint.iacr.org/2012/230) is a form of Learning with Errors (Regev (2005) doi:10.1145/1060590.1060603) using polynomial rings over finite fields. Functions to generate the required polynomials (using 'polynom'), with various distributions of coefficients are provided. Additionally, functions to generate and take coefficient modulo are provided.

Installation

You can install the development version of HEtools from GitHub with:

if (!require('remotes')) install.packages('remotes')
remotes::install_github("bquast/HEtools")

Example

This is a basic example which shows you how to solve a common problem:

library(HEtools)
#> Loading required package: polynom
polynomial = polynomial(c(5, 3, 6))
print(polynomial)
#> 5 + 3*x + 6*x^2

CoefMod(polynomial, 5)
#> 3*x + x^2

Copy Link

Version

Install

install.packages('HEtools')

Monthly Downloads

188

Version

1.0.0

License

MIT + file LICENSE

Maintainer

Bastiaan Quast

Last Published

December 8th, 2023

Functions in HEtools (1.0.0)

GenPolyMod

Generate Polynomial Modulo
CoefMod

Coefficient Modulo
GenUnif

Generate Polynomial with Uniform Distribution Coefficients
GenDiscrGauss

Generate Polynomial with Discrete Gaussian Coefficients
GenTernary

Generate Polynomial with Ternary