fhe
v0.0.4
Published
A reference library for the qCrypt implementation of Fully Homomorphic Encryption (FHE) by Craig Gentry
Downloads
13
Maintainers
Readme
node-gentry
A reference library for the qCrypt implementation of Fully Homomorphic Encryption (FHE) by Craig Gentry. Built for qCrypt.
Install
npm install fhe
Information
This library makes use of the BigInteger.js library by Peter Olson. Inspired by a Python demonstration by Christopher Swenson.
This library is intended for educational purposes ONLY and is NOT suitable for production use.
Usage
// Optionally, pass in an object to the constructor to set custom FHE params
var fhe = require("fhe")();
// Simple explainer for the FHE parameters
// (debug purposes)
fhe.explainParameters();
// Run a test encryption / decryption bit cycle
// This method returns a boolean as a result
// true === success
// false === something went wrong
console.log(fhe.runTest());
For custom implementations
// Generate a keypair (public key and private key)
var keyPair = fhe.genKeyPair();
// Encrypt a bit
var bit = 1;
var ciphertext = fhe.encryptBit(keyPair.public, bit);
// Decrypt the bit
var decrypted = fhe.decryptBit(keyPair.secret, ciphertext);
// Verify the decrypted bit is the same as the original
console.log(decrypted === bit);
Method List
Initiation
Debug
Crypto
- genKeyPair ( )
- Returns an object containing secret and public parameters
- genSecret ( )
- genPublic ( secret )
- getD ( secret )
- getRem ( a, b )
- encryptBit ( public, bit )
- decryptBit ( secret, ciphertext )