|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
---|---|
AbstractPaillier | An abstract class of the simple Paillier cryptosystem. |
ByteUtils | A set of static utilities for manipulating Bytes. |
Paillier | A simple implementation of the generalized Paillier encryption scheme CS1. |
PaillierThreshold | A simple implementation of the threshold Paillier encryption scheme CS1. |
PartialDecryption | A partial decryption in the Threshold Paillier encryption scheme with necessary data to proceed with the full decryption. |
Provides the structures and methods to encrypt data with the Paillier encryption scheme with thresholding. This package a simplified implementation of what is specified in the paper A Generalization of Paillier's Public-Key System with Applications to Electronic Voting by Damgård et al. Within this paper, the authors generalize the Paillier encryption scheme to permit computations modulo ns+1, allowing block length for encryption to be chosen freely. In addition to this undertaking, Damgård et al. also constructed a threshold variant of the scheme.
This package provides the following features of the paper
Of particular note, this implementation is simple as s is fixed to be 1. This allows for simplicity at this stage of the design. Further, we hope to have added methods which would make the actual use of this package to be easy and flexible.
Future features would include support for encrypting arbitrary length strings/byte arrays to avoid padding issues.
Notice of typo: There is a typo in the calculation of
λ0,i on both pages 17 and 19. The correct
calculation of the Lagrange coefficient for interpolating the value of a
polynomial is
&lambdaSj,i=Δ
Πi'∈S\i
(j-i')/(i-i').
The error is that the numerator of the fraction is j-i' not
j-i. The corresponding calculation of
λS0,i must be corrected
accordingly.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |