public class NguyenAccumulatorScheme extends java.lang.Object implements AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>, org.cryptimeleon.math.hash.UniqueByteRepresentable
setup(BilinearGroup, int), then disseminate
the Representation of the resulting NguyenAccumulatorScheme to other parties.| Constructor and Description |
|---|
NguyenAccumulatorScheme(org.cryptimeleon.math.structures.groups.elliptic.BilinearGroup bilinearGroup,
org.cryptimeleon.math.structures.groups.GroupElement g,
org.cryptimeleon.math.structures.groups.GroupElement g_Tilde,
org.cryptimeleon.math.structures.groups.GroupElement g_Tilde_Power_S,
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector t) |
NguyenAccumulatorScheme(org.cryptimeleon.math.serialization.Representation repr) |
| Modifier and Type | Method and Description |
|---|---|
NguyenDigest |
createDigest(java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> setOfValues)
Creates the accumulator for the given set of values (essentially a collision-resistant hash of
setOfValues). |
NguyenWitness |
createWitness(AccumulatorDigest digest,
java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> setOfAccumulatedValues,
org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement valueToComputeWitnessFor)
Creates a short witness that can be used to verify set membership in an accumulator.
|
NguyenWitness |
createWitness(java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> setOfAccumulatedValues,
org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement valueToComputeWitnessFor) |
boolean |
equals(java.lang.Object o) |
java.lang.Integer |
getMaxNumAccumulatedValues()
Returns maximum number of
AccumulatedTypes that can be simultaneously accumulated in the Accumulator
or null if unbounded. |
org.cryptimeleon.math.serialization.Representation |
getRepresentation() |
int |
hashCode() |
org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement |
restoreAccumulatedValue(org.cryptimeleon.math.serialization.Representation repr)
Restores an accumulated value of type
AccumulatorType from its representation. |
AccumulatorDigest |
restoreDigest(org.cryptimeleon.math.serialization.Representation repr)
Restores an
AccumulatorDigest from its representation. |
NguyenWitness |
restoreWitness(org.cryptimeleon.math.serialization.Representation repr)
Restores an
AccumulatorWitness from its representation. |
static NguyenAccumulatorScheme |
setup(org.cryptimeleon.math.structures.groups.elliptic.BilinearGroup bilinearGroup,
int size) |
static NguyenAccumulatorScheme |
setup(int securityParameter,
int size) |
org.cryptimeleon.math.hash.ByteAccumulator |
updateAccumulator(org.cryptimeleon.math.hash.ByteAccumulator accumulator) |
NguyenWitness |
updateWitness(AccumulatorDigest oldDigest,
AccumulatorDigest newDigest,
java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> oldAccumulatedSet,
java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> newAccumulatedSet,
org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement valueToComputeWitnessFor,
AccumulatorWitness oldWitnessToBeUpdated)
Updates a set membership witness with regard to accumulator changes.
|
boolean |
verify(AccumulatorDigest accumulatorDigest,
org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement singleValue,
AccumulatorWitness witnessForSingleValue)
Verifies that the given
singleValue is indeed part of the accumulated set. |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitdelete, insert, restoreFromRepresentationpublic NguyenAccumulatorScheme(org.cryptimeleon.math.structures.groups.elliptic.BilinearGroup bilinearGroup,
org.cryptimeleon.math.structures.groups.GroupElement g,
org.cryptimeleon.math.structures.groups.GroupElement g_Tilde,
org.cryptimeleon.math.structures.groups.GroupElement g_Tilde_Power_S,
org.cryptimeleon.math.structures.groups.cartesian.GroupElementVector t)
public NguyenAccumulatorScheme(org.cryptimeleon.math.serialization.Representation repr)
public static NguyenAccumulatorScheme setup(org.cryptimeleon.math.structures.groups.elliptic.BilinearGroup bilinearGroup, int size)
public static NguyenAccumulatorScheme setup(int securityParameter, int size)
public NguyenDigest createDigest(java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> setOfValues)
AccumulatorSchemesetOfValues).createDigest in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>public NguyenWitness createWitness(AccumulatorDigest digest, java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> setOfAccumulatedValues, org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement valueToComputeWitnessFor)
AccumulatorSchemecreateWitness in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>setOfAccumulatedValues - the set of values accumulated (including valueToComputeWitnessFor)valueToComputeWitnessFor - the one value you want to prove is in thereAccumulatorScheme.verify(AccumulatorDigest, Representable, AccumulatorWitness)public NguyenWitness createWitness(java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> setOfAccumulatedValues, org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement valueToComputeWitnessFor)
public boolean verify(AccumulatorDigest accumulatorDigest, org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement singleValue, AccumulatorWitness witnessForSingleValue)
AccumulatorSchemesingleValue is indeed part of the accumulated set.verify in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>public NguyenWitness updateWitness(AccumulatorDigest oldDigest, AccumulatorDigest newDigest, java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> oldAccumulatedSet, java.util.Collection<? extends org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement> newAccumulatedSet, org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement valueToComputeWitnessFor, AccumulatorWitness oldWitnessToBeUpdated)
AccumulatorSchemeAccumulatorScheme.createWitness(AccumulatorDigest, Collection, Representable),
but this method may be more efficient.updateWitness in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>oldDigest - the "old" digestnewDigest - the "new" digestoldAccumulatedSet - the set accumulated in oldDigestnewAccumulatedSet - the set accumulated in newDigestvalueToComputeWitnessFor - the value (present in oldDigest and in newDigest)
for which a witness shall be computedoldWitnessToBeUpdated - a witness for valueToComputeWitnessFor being part of oldDigestvalueToComputeWitnessFor being part of newDigest
(same as createWitness(newAccumulatedSet, valueToComputeWitnessFor))public java.lang.Integer getMaxNumAccumulatedValues()
AccumulatorSchemeAccumulatedTypes that can be simultaneously accumulated in the Accumulator
or null if unbounded.getMaxNumAccumulatedValues in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>public NguyenWitness restoreWitness(org.cryptimeleon.math.serialization.Representation repr)
AccumulatorSchemeAccumulatorWitness from its representation.restoreWitness in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>public AccumulatorDigest restoreDigest(org.cryptimeleon.math.serialization.Representation repr)
AccumulatorSchemeAccumulatorDigest from its representation.restoreDigest in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>public org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement restoreAccumulatedValue(org.cryptimeleon.math.serialization.Representation repr)
AccumulatorSchemeAccumulatorType from its representation.restoreAccumulatedValue in interface AccumulatorScheme<org.cryptimeleon.math.structures.rings.zn.Zn.ZnElement>public org.cryptimeleon.math.serialization.Representation getRepresentation()
getRepresentation in interface org.cryptimeleon.math.serialization.Representablepublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic org.cryptimeleon.math.hash.ByteAccumulator updateAccumulator(org.cryptimeleon.math.hash.ByteAccumulator accumulator)
updateAccumulator in interface org.cryptimeleon.math.hash.UniqueByteRepresentable