ceremonyclient/nekryptology/pkg/paillier
2023-07-05 00:32:28 -05:00
..
paillier_test.go Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
paillier.go Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
psf_test.go Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
psf.go Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
README.md Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00

Paillier Cryptosystem

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) and Enc(b), and obtaining Enc(a + b), and
  • multiplying a plain value, a, and an encrypted value Enc(b), and obtaining Enc(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.