public class PSExtendedVerificationKey extends PSVerificationKey implements VerificationKey, org.cryptimeleon.math.hash.UniqueByteRepresentable, CommonInput
PSExtendedSignatureScheme.generateKeyPair(int).
The reason for storing those further variables is the combined usage of the PSExtendedSignatureScheme
with the PedersenCommitmentScheme is for being able blind and unblind messages before and after signing them.
This is achieved by using the same g and Y_i in the PedersenCommitmentScheme as provided by the
PSExtendedSignatureScheme.
This allows a user to receive a signature on a commitment for a message and
to then calculate the signature for the uncommitted message, and thereby receive a signature of a signer for a
message without the signer knowing the content of the message.CommonInput.CommonInputVector, CommonInput.EmptyCommonInputgroup2ElementsTildeYi, group2ElementTildeG, group2ElementTildeXEMPTY| Constructor and Description |
|---|
PSExtendedVerificationKey(org.cryptimeleon.math.structures.groups.GroupElement group1Element,
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector group1ElementsYi,
org.cryptimeleon.math.structures.groups.GroupElement group2ElementTildeG,
org.cryptimeleon.math.structures.groups.GroupElement group2ElementTildeX,
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector group2ElementsTildeYi)
Extended constructor for the extended verification key in the ACS allowing direct instantiation.
|
PSExtendedVerificationKey(org.cryptimeleon.math.structures.groups.Group groupG1,
org.cryptimeleon.math.structures.groups.Group groupG2,
org.cryptimeleon.math.serialization.Representation repr)
Extended constructor for the extended verification key in the ACS (from representation).
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(java.lang.Object o) |
org.cryptimeleon.math.structures.groups.GroupElement |
getGroup1ElementG() |
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector |
getGroup1ElementsYi() |
org.cryptimeleon.math.serialization.Representation |
getRepresentation() |
byte[] |
getUniqueByteRepresentation() |
int |
hashCode() |
org.cryptimeleon.math.hash.ByteAccumulator |
updateAccumulator(org.cryptimeleon.math.hash.ByteAccumulator byteAccumulator) |
getGroup2ElementsTildeYi, getGroup2ElementTildeG, getGroup2ElementTildeX, getNumberOfMessagespublic PSExtendedVerificationKey(org.cryptimeleon.math.structures.groups.GroupElement group1Element,
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector group1ElementsYi,
org.cryptimeleon.math.structures.groups.GroupElement group2ElementTildeG,
org.cryptimeleon.math.structures.groups.GroupElement group2ElementTildeX,
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector group2ElementsTildeYi)
group1Element - GroupElement g is a generator from Group 1group1ElementsYi - Array of GroupElement containing Y_i from Group 1group2ElementTildeG - GroupElement g_Tilde is a generator from Group 2group2ElementTildeX - GroupElement x_Tilde from Group 1group2ElementsTildeYi - Array of GroupElement containing Y_i_Tilde from Group 2public PSExtendedVerificationKey(org.cryptimeleon.math.structures.groups.Group groupG1,
org.cryptimeleon.math.structures.groups.Group groupG2,
org.cryptimeleon.math.serialization.Representation repr)
groupG1 - Group group 1 from BilinearMapgroupG2 - Group group 2 from BilinearMaprepr - Representation of PSExtendedVerificationKeypublic org.cryptimeleon.math.serialization.Representation getRepresentation()
getRepresentation in interface org.cryptimeleon.math.serialization.RepresentablegetRepresentation in class PSVerificationKeypublic org.cryptimeleon.math.structures.groups.GroupElement getGroup1ElementG()
public org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector getGroup1ElementsYi()
public boolean equals(java.lang.Object o)
equals in class PSVerificationKeypublic int hashCode()
hashCode in class PSVerificationKeypublic org.cryptimeleon.math.hash.ByteAccumulator updateAccumulator(org.cryptimeleon.math.hash.ByteAccumulator byteAccumulator)
updateAccumulator in interface org.cryptimeleon.math.hash.UniqueByteRepresentablepublic byte[] getUniqueByteRepresentation()
getUniqueByteRepresentation in interface org.cryptimeleon.math.hash.UniqueByteRepresentable