public class SmallerThanPowerFragment extends DelegateFragment
SendThenDelegateFragment.ProverSpec, SendThenDelegateFragment.ProverSpecBuilder, SendThenDelegateFragment.SendThenDelegateAnnouncement, SendThenDelegateFragment.SubprotocolSpec, SendThenDelegateFragment.SubprotocolSpecBuilder, SendThenDelegateFragment.WitnessValues| Modifier and Type | Field and Description |
|---|---|
protected int |
base |
protected org.cryptimeleon.math.expressions.exponent.ExponentExpr |
member |
protected int |
power |
protected SetMembershipPublicParameters |
pp |
| Constructor and Description |
|---|
SmallerThanPowerFragment(org.cryptimeleon.math.expressions.exponent.ExponentExpr member,
int base,
int power,
SetMembershipPublicParameters pp)
Instantiates the fragment.
|
| Modifier and Type | Method and Description |
|---|---|
static SetMembershipPublicParameters |
generatePublicParameters(org.cryptimeleon.math.structures.groups.elliptic.BilinearGroup group,
int base)
Generates public parameters to use for a given base.
|
protected SendThenDelegateFragment.ProverSpec |
provideProverSpecWithNoSendFirst(SchnorrVariableAssignment externalWitnesses,
SendThenDelegateFragment.ProverSpecBuilder builder)
Run by the prover to set up witness values for variables this fragment proves knowledge of itself (i.e.
|
protected SendThenDelegateFragment.SubprotocolSpec |
provideSubprotocolSpec(SendThenDelegateFragment.SubprotocolSpecBuilder builder) |
provideAdditionalCheck, provideProverSpec, provideSubprotocolSpec, restoreSendFirstValue, simulateSendFirstValuecheckTranscript, compressTranscript, debugFragment, decompressTranscript, generateAnnouncement, generateAnnouncementSecret, generateResponse, generateSimulatedTranscript, restoreAnnouncement, restoreResponseprotected final int base
protected final int power
protected final org.cryptimeleon.math.expressions.exponent.ExponentExpr member
protected final SetMembershipPublicParameters pp
public SmallerThanPowerFragment(org.cryptimeleon.math.expressions.exponent.ExponentExpr member,
int base,
int power,
SetMembershipPublicParameters pp)
member - an expression whose value shall be between 0 and base^power (exclusive).
In the easiest case, this is a SchnorrZnVariable, but it can be any affine linear combination
of SchnorrZnVariables.base - a number (generally the bigger this number, the bigger the public parameters but the shorter the proof)power - a number (protocol computation and communication cost is linear in this number)pp - honestly generated public parameters for a set membership proof for {0, ..., base-1}.
Can be generated by generatePublicParameters(BilinearGroup, int)public static SetMembershipPublicParameters generatePublicParameters(org.cryptimeleon.math.structures.groups.elliptic.BilinearGroup group, int base)
group - the group to use for this fragmentbase - the desired base (see constructor)protected SendThenDelegateFragment.ProverSpec provideProverSpecWithNoSendFirst(SchnorrVariableAssignment externalWitnesses, SendThenDelegateFragment.ProverSpecBuilder builder)
DelegateFragment
Run by the prover to set up witness values for variables this fragment proves knowledge of itself (i.e. those specified in DelegateFragment#provideSubprotocolSpec(SubprotocolSpecBuilder)).
A typical example implementation can be found in SmallerThanPowerFragment.
provideProverSpecWithNoSendFirst in class DelegateFragmentexternalWitnesses - the witness values for external variablesbuilder - helper object to instantiate a ProverSpecProverSpecBuilder#build().protected SendThenDelegateFragment.SubprotocolSpec provideSubprotocolSpec(SendThenDelegateFragment.SubprotocolSpecBuilder builder)
provideSubprotocolSpec in class DelegateFragment