Bouncy Castle Cryptography Library 1.85

org.bouncycastle.pqc.crypto.sdith
Class SDitHParameters

java.lang.Object
  extended byorg.bouncycastle.pqc.crypto.sdith.SDitHParameters

public class SDitHParameters
extends java.lang.Object

SDitH 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. The current Bouncy Castle port wires up the Hypercube / Category 1 / GF(256) variant matching the shipped reference KAT vectors. Additional variants can be added by populating new constants here and adding the corresponding precomputed tables to SDitHPrecomputed.

The numeric fields follow the reference param.h convention: : code length, : code dimension, : Hamming weight bound on the SD solution, : splitting factor (number of twists), : number of MPC evaluation points per iteration, : number of parallel MPC repetitions, : hypercube dimension (2^D leaf parties), , , , , : in bytes, : extension-field byte width (3 or 4), : SHA3 variant used for commitments and Fiat-Shamir, : SHAKE variant used as XOF.


Field Summary
static int FIELD_GF256
           
static int FIELD_P251
           
static SDitHParameters sdith_hypercube_cat1_gf256
           
static SDitHParameters sdith_hypercube_cat1_p251
           
static SDitHParameters sdith_hypercube_cat3_gf256
           
static SDitHParameters sdith_hypercube_cat3_p251
           
static SDitHParameters sdith_hypercube_cat5_gf256
           
static SDitHParameters sdith_hypercube_cat5_p251
           
static SDitHParameters sdith_threshold_cat1_gf256
           
static SDitHParameters sdith_threshold_cat1_p251
           
static SDitHParameters sdith_threshold_cat3_gf256
           
static SDitHParameters sdith_threshold_cat3_p251
           
static SDitHParameters sdith_threshold_cat5_gf256
           
static SDitHParameters sdith_threshold_cat5_p251
           
static int VARIANT_HYPERCUBE
           
static int VARIANT_THRESHOLD
           
 
Method Summary
 int getCategory()
           
 int getCommitSize()
           
 int getD()
           
 int getDimD()
           
 int getField()
           
 int getFpointMask()
           
 int getFpointSize()
           
 int getHaNSlice()
           
 int getHashBits()
           
 int getHashSize()
           
 int getK()
           
 int getM()
           
 int getMd()
           
 java.lang.String getName()
           
 int getNbParties()
          Threshold variant: number of MPC parties.
 int getNbRevealed()
          Threshold variant: number of revealed parties per execution.
 int getRhoSize()
           
 int getSaltSize()
           
 int getSeedSize()
           
 int getT()
           
 int getTau()
           
 int getTreeMaxOpenLeaves()
          Threshold variant: upper bound on Merkle authentication-path nodes per execution.
 int getVariant()
           
 int getW()
           
 int getWd()
           
 int getXofBits()
           
 int getYSize()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 (); for GF(p251) it is 251 (= the prime field size). The Merkle tree always has max capacity but only 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()

Bouncy Castle Cryptography Library 1.85