AccumulatedType - the type of values that can be accumulated with this scheme.public interface AccumulatorScheme<AccumulatedType extends org.cryptimeleon.math.serialization.Representable>
extends org.cryptimeleon.math.serialization.StandaloneRepresentable, org.cryptimeleon.math.serialization.annotations.RepresentationRestorer
| Modifier and Type | Method and Description |
|---|---|
AccumulatorDigest |
createDigest(java.util.Collection<? extends AccumulatedType> setOfValues)
Creates the accumulator for the given set of values (essentially a collision-resistant hash of
setOfValues). |
AccumulatorWitness |
createWitness(AccumulatorDigest digest,
java.util.Collection<? extends AccumulatedType> setOfAccumulatedValues,
AccumulatedType valueToComputeWitnessFor)
Creates a short witness that can be used to verify set membership in an accumulator.
|
default AccumulatorDigest |
delete(AccumulatorDigest digest,
java.util.Collection<? extends AccumulatedType> setOfValues,
AccumulatedType valueToDelete)
Given an accumulator for
setOfValues, computes an accumulator for setOfValues \ {additionalValue}. |
java.lang.Integer |
getMaxNumAccumulatedValues()
Returns maximum number of
AccumulatedTypes that can be simultaneously accumulated in the Accumulator
or null if unbounded. |
default AccumulatorDigest |
insert(AccumulatorDigest digest,
java.util.Collection<? extends AccumulatedType> setOfValues,
AccumulatedType additionalValue)
Given an accumulator for
setOfValues, computes an accumulator for
setOfValues union {additionalValue}. |
AccumulatedType |
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. |
default java.lang.Object |
restoreFromRepresentation(java.lang.reflect.Type type,
org.cryptimeleon.math.serialization.Representation repr) |
AccumulatorWitness |
restoreWitness(org.cryptimeleon.math.serialization.Representation repr)
Restores an
AccumulatorWitness from its representation. |
default AccumulatorWitness |
updateWitness(AccumulatorDigest oldDigest,
AccumulatorDigest newDigest,
java.util.Collection<? extends AccumulatedType> oldAccumulatedSet,
java.util.Collection<? extends AccumulatedType> newAccumulatedSet,
AccumulatedType valueToComputeWitnessFor,
AccumulatorWitness oldWitnessToBeUpdated)
Updates a set membership witness with regard to accumulator changes.
|
boolean |
verify(AccumulatorDigest accumulatorDigest,
AccumulatedType singleValue,
AccumulatorWitness witnessForSingleValue)
Verifies that the given
singleValue is indeed part of the accumulated set. |
AccumulatorDigest createDigest(java.util.Collection<? extends AccumulatedType> setOfValues)
setOfValues).AccumulatorWitness createWitness(AccumulatorDigest digest, java.util.Collection<? extends AccumulatedType> setOfAccumulatedValues, AccumulatedType valueToComputeWitnessFor)
setOfAccumulatedValues - the set of values accumulated (including valueToComputeWitnessFor)valueToComputeWitnessFor - the one value you want to prove is in thereverify(AccumulatorDigest, Representable, AccumulatorWitness)boolean verify(AccumulatorDigest accumulatorDigest, AccumulatedType singleValue, AccumulatorWitness witnessForSingleValue)
singleValue is indeed part of the accumulated set.default AccumulatorDigest insert(AccumulatorDigest digest, java.util.Collection<? extends AccumulatedType> setOfValues, AccumulatedType additionalValue)
setOfValues, computes an accumulator for
setOfValues union {additionalValue}.default AccumulatorDigest delete(AccumulatorDigest digest, java.util.Collection<? extends AccumulatedType> setOfValues, AccumulatedType valueToDelete)
setOfValues, computes an accumulator for setOfValues \ {additionalValue}.default AccumulatorWitness updateWitness(AccumulatorDigest oldDigest, AccumulatorDigest newDigest, java.util.Collection<? extends AccumulatedType> oldAccumulatedSet, java.util.Collection<? extends AccumulatedType> newAccumulatedSet, AccumulatedType valueToComputeWitnessFor, AccumulatorWitness oldWitnessToBeUpdated)
createWitness(AccumulatorDigest, Collection, Representable),
but this method may be more efficient.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))java.lang.Integer getMaxNumAccumulatedValues()
AccumulatedTypes that can be simultaneously accumulated in the Accumulator
or null if unbounded.AccumulatorWitness restoreWitness(org.cryptimeleon.math.serialization.Representation repr)
AccumulatorWitness from its representation.AccumulatorDigest restoreDigest(org.cryptimeleon.math.serialization.Representation repr)
AccumulatorDigest from its representation.AccumulatedType restoreAccumulatedValue(org.cryptimeleon.math.serialization.Representation repr)
AccumulatorType from its representation.default java.lang.Object restoreFromRepresentation(java.lang.reflect.Type type,
org.cryptimeleon.math.serialization.Representation repr)
throws java.lang.IllegalArgumentException
restoreFromRepresentation in interface org.cryptimeleon.math.serialization.annotations.RepresentationRestorerjava.lang.IllegalArgumentException