Questions tagged [seal]

Microsoft SEAL is a fast and user-friendly homomorphic encryption library created by Microsoft Research. It is written in C++ and works on Windows, Linux, and macOS. The most recent version of Microsoft SEAL is publicly available at https://github.com/Microsoft/SEAL.

Introduction

Microsoft SEAL is an easy-to-use homomorphic encryption library, developed by researchers in the Cryptography Research Group at Microsoft Research. Microsoft SEAL is written in standard C++ and has no external dependencies, making it is easy to compile in many different environments. The current version includes .NET Standard wrappers for the public API.

The first version of Microsoft SEAL was released at the end of 2015 and the library has since then been in constant development with several major releases per year. Microsoft SEAL is licensed under the MIT license and can be downloaded at https://github.com/Microsoft/SEAL.

Homomorphic Encryption

Homomorphic encryption refers to a new type of encryption scheme that allows computations to be directly on encrypted data without requiring decryption first. The result of such encrypted computations remains encrypted and can thus only be interpreted the owner of a secret key (in most cases the data owner). Such functionality can for example enable a cryptographically private cloud storage and computation service. In particular, Microsoft SEAL implements the BFV scheme for encrypted modular arithmetic, and the CKKS scheme for encrypted approximate fixed-precision arithmetic.

Both the BFV and the CKKS scheme are highly performant post-quantum secure RLWE-based homomorphic encryption schemes. Such encryption schemes are currently not standardized by any major standards organization, but a recently launched effort by the HomomorphicEncryption.org group attempts to instead create a consortium standard describing secure parameters, a standard API, and a programming model for several schemes, including the BFV and the CKKS schemes. Microsoft SEAL implements the secure parameters recommended by the standard.

Documentation and Questions

The GitHub repository front page provides a detailed installation guide for multiple platforms. For a hands-on learning experience, Microsoft SEAL contains extensively commented example projects demonstrating core concepts of the library. In addition, the header files contain detailed comments for the public API.

When asking questions it is important to know the specific version of Microsoft SEAL that is being used, as well as seeing the complete code producing the issue. In particular, the values set in the encryption parameters (EncryptionParameters class) are critical to know, as the behavior of the encryption scheme depends totally on these parameters. Before asking your question please look at the highest voted questions under this tag, as these tend to address many of the common issues, misunderstandings, and fundamental challenges in using Microsoft SEAL.

79 questions
0
votes
0 answers

Using Ten SEAL to square an array

I have tried to use the SEAL variant for python (tenSEAL, here is their repo,https://github.com/OpenMined/TenSEAL/tree/main) to square a simple array. I could not get quite the result I wanted. Here is my code: import tenseal as ts import numpy as…
Bluetail
  • 1,093
  • 2
  • 13
  • 27
0
votes
0 answers

Compile when I use SEAL4.0

When I compiled homomorphic multiplication using SEAL4.0, the following error was reported. This is my c++ code. void multiply_by_random_mask(Ciphertext &ciphertext, shared_ptr random, …
kit tom
  • 21
  • 1
0
votes
2 answers

Omnetpp Debugger: fatal error: 'library/library.h' file not found

I want to debug a omnetpp program and the program uses external library seal. The program is able to access seal library in normal run mode but in debugger mode. It is unable to access the external library.
Infinity
  • 441
  • 2
  • 5
  • 12
0
votes
1 answer

Creating an array of Ciphertexts in Microsoft SEAL using C++

I want to create an array of packed ciphertexts using the BFV homomorphic encryption scheme in Microsft SEAL, C++. If I have 8192 slots in one packed BFV ciphertext, I want to create an array of 10 such ciphertexts to perform various operations on…
0
votes
0 answers

How to implement key_switching function between two client in MS SEAL?

I am trying to implement a client/server secure computation platform for multiple clients.I am going to do it through Microsoft SEAL library in python version. Now I am looking for an example of key_switching function to between to public key. My…
0
votes
0 answers

Division/Bit-shift in Palisade Homomorphic Encryption

I am trying to convert a benchmark to homomorphic domain, and I'm using Palisade library for that due to its support of multiple schemes like BFV, BGV, CKKS. I am currently using BFV scheme. There is a line in the code- y = x >> 6. This line in my…
0
votes
0 answers

Seal Reports - Error in model 'VarianceModel': Unexpected error when executing the following SQL statement

I hope, I raising my problem in correct forum. I am getting error when I execute report and giving parameters to Store procedure. when I select value form enumerate list and sending parameter as select value ID its send numeric ID value in round…
0
votes
1 answer

What is the multiplicative depth of a single relu layer for encrypted inference?

For a single square activation (x^2), the multiplicative depth is 1, and for a polynomial activation like x^3 + x, the multiplicative depth is 2. For a convolution (wx + b), multiplicative depth is 1. What's the depth for a single ReLU layer?
0
votes
0 answers

PHP openssl_open fails to open seal

I have been trying to setup a simple openssl_seal and openssl_open script in PHP (8.0.8 is my Version installed), I don't get any errors but openssl_open always returns FALSE. Can anyone tell me if I did something wrong? $algo = 'aes-256-gcm'; $iv =…
Sunny
  • 125
  • 9
0
votes
1 answer

SEAL: How to read Relinkeys data in forms of modulo coefficients?

When running examples in SEAL (v3.6), I can print out polynomial coefficients of secret_key, public_key data using support functions ofstream sk; sk.open(filename, ios::binary); for (uint64_t i = 0; i < poly_modulus_degree; i++) { sk <<…
France
  • 29
  • 4
0
votes
1 answer

Fail to install Mircosoft SEAL

When i used vcpkg to install SEAL, it occurs this: Please ensure you're using the latest portfiles with `.\vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: seal:x86-windows Vcpkg version:…
0
votes
1 answer

Issue with Authorize.Net payment gateway logo

If we don't include the code given below then is there any chances that payments get failed in live site?
Chandni Soni
  • 377
  • 4
  • 16
0
votes
1 answer

How to use CRT batch technique in Microsoft SEAL 3.1?

Can you please tell me whether SEAL 3.1 supports PolyCRTBuilder class? I am trying to run the following program but failed because the class is not declared in this scope. /** Suppose I have two arrays x = [1,2,3,4,5] and xMean = [3,3,3,3,3]. I…
0
votes
1 answer

Azure function failing to Load Nuget package - Working locally

I have been developing an azure function that Would receive encrypted data and do some operations on this data and then return. I am however having an issue with the Microsoft SEAL Nuget package. When I run my function Locally there is no issue and…
k.dog
  • 35
  • 1
  • 1
  • 7
0
votes
0 answers

System.DllNotFoundException Raised when trying to run Microsoft SEAL in C# Project

I am currently working on a Xamarin.Forms based application that demonstrates the uses of homomorphic encryption. I followed the examples that were given on the Github page and I am now attempting to use this package myself. I installed the Nuget…
k.dog
  • 35
  • 1
  • 1
  • 7