Package paillier contains Paillier's cryptosystem (1999). All routines here from pseudocode §2.5. Fig 1: The Paillier Cryptosystem.
This module provides APIs for:
- generating a safe keypair
- encryption and decryption
- adding two encrypted values,
Enc(a)
andEnc(b)
, and obtainingEnc(a + b)
, and - multiplying a plain value,
a
, and an encrypted valueEnc(b)
, and obtainingEnc(a * b)
.
The encrypted values are represented as big.Int
and are serializable.
This module also provides JSON serialization for the PublicKey and the SecretKey.