Class SDitHParameters
- java.lang.Object
-
- org.bouncycastle.pqc.crypto.sdith.SDitHParameters
-
public class SDitHParameters extends java.lang.ObjectSDitH parameter set descriptor.SDitH (Syndrome-Decoding-in-the-Head) has 24 NIST-submitted variants formed from the cross of:
- MPC structure: Hypercube or Threshold,
- NIST category: 1, 3, or 5,
- Field: GF(256) or P251.
public static finalconstants here and adding the corresponding precomputed tables toSDitHPrecomputed.The numeric fields follow the reference param.h convention:
m: code length,k: code dimension,w: Hamming weight bound on the SD solution,d: splitting factor (number of twists),t: number of MPC evaluation points per iteration,tau: number of parallel MPC repetitions,dimD: hypercube dimension (2^D leaf parties),seedSize,rhoSize,saltSize,commitSize,hashSize: in bytes,fpointSize: extension-field byte width (3 or 4),hashBits: SHA3 variant used for commitments and Fiat-Shamir,xofBits: SHAKE variant used as XOF.
-
-
Field Summary
Fields Modifier and Type Field Description static intFIELD_GF256static intFIELD_P251static SDitHParameterssdith_hypercube_cat1_gf256static SDitHParameterssdith_hypercube_cat1_p251static SDitHParameterssdith_hypercube_cat3_gf256static SDitHParameterssdith_hypercube_cat3_p251static SDitHParameterssdith_hypercube_cat5_gf256static SDitHParameterssdith_hypercube_cat5_p251static SDitHParameterssdith_threshold_cat1_gf256static SDitHParameterssdith_threshold_cat1_p251static SDitHParameterssdith_threshold_cat3_gf256static SDitHParameterssdith_threshold_cat3_p251static SDitHParameterssdith_threshold_cat5_gf256static SDitHParameterssdith_threshold_cat5_p251static intVARIANT_HYPERCUBEstatic intVARIANT_THRESHOLD
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetCategory()intgetCommitSize()intgetD()intgetDimD()intgetField()intgetFpointMask()intgetFpointSize()intgetHaNSlice()intgetHashBits()intgetHashSize()intgetK()intgetM()intgetMd()java.lang.StringgetName()intgetNbParties()Threshold variant: number of MPC parties.intgetNbRevealed()Threshold variant: number of revealed parties per execution.intgetRhoSize()intgetSaltSize()intgetSeedSize()intgetT()intgetTau()intgetTreeMaxOpenLeaves()Threshold variant: upper bound on Merkle authentication-path nodes per execution.intgetVariant()intgetW()intgetWd()intgetXofBits()intgetYSize()
-
-
-
Field Detail
-
VARIANT_HYPERCUBE
public static final int VARIANT_HYPERCUBE
- See Also:
- Constant Field Values
-
VARIANT_THRESHOLD
public static final int VARIANT_THRESHOLD
- See Also:
- Constant Field Values
-
FIELD_GF256
public static final int FIELD_GF256
- See Also:
- Constant Field Values
-
FIELD_P251
public static final int FIELD_P251
- See Also:
- Constant Field Values
-
sdith_hypercube_cat1_gf256
public static final SDitHParameters sdith_hypercube_cat1_gf256
-
sdith_hypercube_cat3_gf256
public static final SDitHParameters sdith_hypercube_cat3_gf256
-
sdith_hypercube_cat5_gf256
public static final SDitHParameters sdith_hypercube_cat5_gf256
-
sdith_hypercube_cat1_p251
public static final SDitHParameters sdith_hypercube_cat1_p251
-
sdith_hypercube_cat3_p251
public static final SDitHParameters sdith_hypercube_cat3_p251
-
sdith_hypercube_cat5_p251
public static final SDitHParameters sdith_hypercube_cat5_p251
-
sdith_threshold_cat1_gf256
public static final SDitHParameters sdith_threshold_cat1_gf256
-
sdith_threshold_cat3_gf256
public static final SDitHParameters sdith_threshold_cat3_gf256
-
sdith_threshold_cat5_gf256
public static final SDitHParameters sdith_threshold_cat5_gf256
-
sdith_threshold_cat1_p251
public static final SDitHParameters sdith_threshold_cat1_p251
-
sdith_threshold_cat3_p251
public static final SDitHParameters sdith_threshold_cat3_p251
-
sdith_threshold_cat5_p251
public static final SDitHParameters sdith_threshold_cat5_p251
-
-
Method Detail
-
getNbRevealed
public int getNbRevealed()
Threshold variant: number of revealed parties per execution. Zero for hypercube variants.
-
getTreeMaxOpenLeaves
public int getTreeMaxOpenLeaves()
Threshold variant: upper bound on Merkle authentication-path nodes per execution. Zero for hypercube variants.
-
getNbParties
public int getNbParties()
Threshold variant: number of MPC parties. For GF(256) this is 256 (1 << dimD); for GF(p251) it is 251 (= the prime field size). The Merkle tree always has1 << dimDmax capacity but onlygetNbParties()leaves are populated for the p251 variants.
-
getName
public java.lang.String getName()
-
getVariant
public int getVariant()
-
getField
public int getField()
-
getCategory
public int getCategory()
-
getM
public int getM()
-
getK
public int getK()
-
getW
public int getW()
-
getD
public int getD()
-
getT
public int getT()
-
getTau
public int getTau()
-
getDimD
public int getDimD()
-
getSeedSize
public int getSeedSize()
-
getRhoSize
public int getRhoSize()
-
getSaltSize
public int getSaltSize()
-
getCommitSize
public int getCommitSize()
-
getHashSize
public int getHashSize()
-
getFpointSize
public int getFpointSize()
-
getHashBits
public int getHashBits()
-
getXofBits
public int getXofBits()
-
getWd
public int getWd()
-
getYSize
public int getYSize()
-
getHaNSlice
public int getHaNSlice()
-
getMd
public int getMd()
-
getFpointMask
public int getFpointMask()
-
-