|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpaillierp.key.PaillierKey
paillierp.key.PaillierThresholdKey
paillierp.key.PaillierPrivateThresholdKey
public class PaillierPrivateThresholdKey
A private key for the threshold Paillier scheme CS1. This key is used to partially decrypt a ciphertext. At least PaillierThresholdKey.w cooperating decryption servers are needed in this scheme to produce a full decryption. The public information provided for in
The private key in this threshold scheme requires the following information to produce a partial decryption:
PaillierThresholdKey
PaillierKey
,
KeyGen
,
Serialized FormField Summary | |
---|---|
protected int |
id
The server's id in the range of [1, l ]. |
private static long |
serialVersionUID
This Serial ID |
protected java.math.BigInteger |
si
The secret share. |
Fields inherited from class paillierp.key.PaillierThresholdKey |
---|
delta, l, v, vi, w |
Fields inherited from class paillierp.key.PaillierKey |
---|
k, MAX_KEY_SIZE, n, nPlusOne, ns, nSPlusOne, rnd |
Constructor Summary | |
---|---|
PaillierPrivateThresholdKey(java.math.BigInteger n,
int l,
java.math.BigInteger combineSharesConstant,
int w,
java.math.BigInteger v,
java.math.BigInteger[] viarray,
java.math.BigInteger si,
int i,
long seed)
Creates a new private key for the generalized Paillier threshold scheme from the given modulus n , for use on l
decryption servers, w of which are needed to decrypt
any message encrypted by using this private key. |
|
PaillierPrivateThresholdKey(java.math.BigInteger n,
int l,
int w,
java.math.BigInteger v,
java.math.BigInteger[] viarray,
java.math.BigInteger si,
int i,
long seed)
Creates a new private key for the generalized Paillier threshold scheme from the given modulus n , for use on l
decryption servers, w of which are needed to decrypt
any message encrypted by using this public key. |
|
PaillierPrivateThresholdKey(byte[] b,
long seed)
Creates a new private key using a byte encoding of a key. |
Method Summary | |
---|---|
boolean |
canEncrypt()
Describes if this key can be used to encrypt |
int |
getID()
Returns the id of this private key. |
java.math.BigInteger |
getSi()
Returns the secret share key which corresponds to this private key package. |
byte[] |
toByteArray()
Encodes this key into a byte array. |
Methods inherited from class paillierp.key.PaillierThresholdKey |
---|
getCombineSharesConstant, getDelta, getL, getThresholdKey, getV, getVi, getW |
Methods inherited from class paillierp.key.PaillierKey |
---|
getK, getN, getNPlusOne, getNS, getNSPlusOne, getPublicKey, getRandomModN, getRandomModNSPlusOneStar, getRandomModNStar, getRnd, inModN, inModN, inModNS, inModNSPlusOne, inModNSPlusOneStar, inModNStar, inModNStar, isCiphertext, isPlaintext, setRnd, setRnd, updateRnd |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
protected java.math.BigInteger si
protected int id
l
]. This identifies
which verification key vi[id]
to use.
Constructor Detail |
---|
public PaillierPrivateThresholdKey(java.math.BigInteger n, int l, int w, java.math.BigInteger v, java.math.BigInteger[] viarray, java.math.BigInteger si, int i, long seed)
n
, for use on l
decryption servers, w
of which are needed to decrypt
any message encrypted by using this public key. The values
v
and vi
correspond to the public
values v and
vi=vl!si
needed to verify the zero knowledge proofs. si
is the secret share
for this decryption key, and i
is the ID.
n
- a safe prime product of p and q where
p'=(p-1)/2 and a'=(a-1)/2
are also both primesl
- number of decryption serversw
- threshold of servers needed to successfully decrypt any
ciphertext created by this public key. Note that
w
≤l
/2.v
- a generator of a cyclic group of squares in
Z*n
2viarray
- array of verification keys where vi[i]
is
v
l
!si
where si
is the private key
for decryption server i
si
- secret share for this serveri
- ID of the decryption server (from 1 to l
)seed
- a long integer needed to start a random number generatorpublic PaillierPrivateThresholdKey(java.math.BigInteger n, int l, java.math.BigInteger combineSharesConstant, int w, java.math.BigInteger v, java.math.BigInteger[] viarray, java.math.BigInteger si, int i, long seed)
n
, for use on l
decryption servers, w
of which are needed to decrypt
any message encrypted by using this private key. The values
v
and vi
correspond to the public
values v and
vi=vl!si
needed to verify the zero knowledge proofs. si
is the secret share
for this decryption key, and i
is the ID.
n
- a safe prime product of p and q where
p'=(p-1)/2 and a'=(a-1)/2
are also both primesl
- number of decryption serverscombineSharesConstant
- precomputed value (4*l
!)-1
mod n
w
- threshold of servers needed to successfully decrypt any
ciphertext created by this public key. Note that
w
≤l
/2.v
- a generator of a cyclic group of squares in
Z*n
2viarray
- array of verification keys where vi[i]
is
v
l
!si
where si
is the private key
for decryption server i
si
- secret share for this serveri
- ID of the decryption server (from 1 to l
)seed
- a long integer needed to start a random number generatorpublic PaillierPrivateThresholdKey(byte[] b, long seed)
b
- Byte array of the necessary values of this private keyseed
- a long integer needed to start a random number generatortoByteArray()
Method Detail |
---|
public boolean canEncrypt()
canEncrypt
in class PaillierKey
public java.math.BigInteger getSi()
public int getID()
PaillierThresholdKey.vi
corresponds with this
private key.
public byte[] toByteArray()
n
, l
, w
, v
,
vi
, id
, and si
will be encoded in that order.
Further, before each BigInteger (except n
) is the 4-byte
equivalent to the size of the BigInteger for later parsing.
toByteArray
in class PaillierThresholdKey
PaillierPrivateThresholdKey(byte[], long)
,
BigInteger.toByteArray()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |