Skip to content

herumi/she-wasm

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Build Status

Two-level homomorphic encryption for Node.js by WebAssembly

Abstract

This library supports two kinds of lifted ElGamal encryption,

  • which can add two ciphertexts many times, and
  • can multiply two ciphertexts once.

For two vectors x = (x1, ..., xn) and y = (y1, ..., yn), EncG1(x1) * EncG2(y1) + ... + EncG1(xn) * EncG2(yn) = EncGT(x1 * y1 + ... + xn * yn).

see mcl

News

  • 2022/Jul/20 v1.0.0
  • 2020/Dec/27 change file layout
  • 2020/Dec/18 sec.decWithZkpDec(c, aux) returns [m, zkp] that zkp proves dec(c) = m for CipherTextGT c, and aux.verify(c, zkp, m) returns the correctness where aux = pub.getAuxiliaryForZkpDecGT().
  • 2020/Nov/06 sec.decWithZkpDec(c, pub) returns [m, zkp] that zkp proves dec(c) = m for CipherTextG1 c, and pub.verify(c, zkp, m) returns the correctness.

Demo

for Node.js

node test

How to use

The version v0.7.0 breaks backward compatibility of the entry point.

  • Node.js : const she = require('she-wasm')
  • React : const she = require('she-wasm/browser')
  • HTML : <script src="https://herumi.github.io/she-wasm/browser/she.js"></script>

Doc

How to build

Install Emscripten.

git submodule update --init --resurcive
cd src
make

License

modified new BSD License http://opensource.org/licenses/BSD-3-Clause

Author

MITSUNARI Shigeo(herumi@nifty.com)

Sponsors welcome

GitHub Sponsor

About

Two-level homomorphic encryption for Node.js by WebAssembly

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published