paillier-in-set-zkp

0.9.0 • Public • Published

paillier-in-set-zkp

Encrypt a value and generates a Zero Knowledge Proof that can be used to verify that the encrypted value is inside a set of known values.

Based on this paper.

Installation

npm i paillier-in-set-zkp --save

Usage

const { encryptWithProof, verifyProof } = require('paillier-in-set-zkp')
const paillier = require('paillier-js')

const bits = 512

const {publicKey, privateKey} = paillier.generateRandomKeys(bits)
const validScores = [0,15,30,60]
const secretScore = 30

const [cipher, proof] = encryptWithProof(publicKey, secretScore, validScores, bits)

// Transmit cipher, proof and publicKey

const result = verifyProof(publicKey, cipher, proof, validScores, bits) // true

Contributions

Bug reports highly appreciated

PRs super welcome

Tests

Tests live in the index file in the shape of a bunch of asserts.

Tests get removed automatically at postinstall using sed.

License

MIT

/paillier-in-set-zkp/

    Package Sidebar

    Install

    npm i paillier-in-set-zkp

    Weekly Downloads

    3

    Version

    0.9.0

    License

    MIT

    Unpacked Size

    6.86 kB

    Total Files

    3

    Last publish

    Collaborators

    • framp