Skip to main content

A simple implementation of the Paillier cryptosystem

Project description

paillier-lib

This package provides a simple implementation of the Paillier cryptosystem using gmpy2.

Usage

from paillierlib import paillier
from gmpy2 import mpz

key_pair = paillier.keygen()  # Optional param.: bit size (default = 2048)

m1 = mpz(10)
m2 = mpz(1)
c1 = paillier.encrypt(m1, key_pair.public_key)
c2 = paillier.encrypt(m2, key_pair.public_key)

# Example homomorphic operations
# Addition
paillier.decrypt(c1 + c2, key_pair.private_key) # => 11
paillier.decrypt(c1 - c2, key_pair.private_key) # => 9
paillier.decrypt(c1 + c1 + c2, key_pair.private_key) # => 21

# Multiplication (ciphertext with plaintext)
m3 = mpz(2)
paillier.decrypt(c1 * m3, key_pair.private_key) # => 20

Requirements

gmpy2 (tested v2.0.8)

Planned Work

  • Encode inputs, rather than requiring GMP MPZ objects.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paillierlib-0.0.2.tar.gz (2.7 kB view details)

Uploaded Source

File details

Details for the file paillierlib-0.0.2.tar.gz.

File metadata

  • Download URL: paillierlib-0.0.2.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

File hashes

Hashes for paillierlib-0.0.2.tar.gz
Algorithm Hash digest
SHA256 80c2db03dc136c82a59039b3e7a4dcc0ed3cec14b8732efb996d027999ed03f6
MD5 a26b4506e559fc74d5ec2ccdd04789a9
BLAKE2b-256 22b7b1731249cafc33326e66e350588244ecbcae8810f615226283937c34a415

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page