HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
Added support for processing queries with the NOT operator homomorphically.
Introduced the NOT Expr, and a corresponding inline NOT QueryExpr Within the weights, or CNF, framework:
Extensions to the ExpandOr() function to queries with NOT operators, via a new function negate()
New function Tidy() which eliminates duplicate columns in inner clauses, or columns and their negation in inner clauses that can be created by squashing ORs. It also eliminates empty clauses,
Put the code from build() which constructed the corresponding weights into a new function buildWeights(), and extended this to the case there are negations of columns
New framework which evaluates queries homomorphically directly from the string:
New function removeOr() within the QueryBuilder class which generates a new query string which is logically equivalent, but only has Ands and Nots
Overloaded contains() function that takes a string instead of a QueryType, and evaluates the RPN directly using a stack of ciphertexts
Added support for processing queries with the NOT operator homomorphically. Introduced the NOT Expr, and a corresponding inline NOT QueryExpr Within the weights, or CNF, framework:
Updated CI
Bug Fix for unsafe use of sprintf
Co-authored-by: @TabOg Co-authored-by: @jlhcrawford Co-authored-by: @hamishun Co-authored-by: @faberga