Class QRUOVParameters

java.lang.Object
org.bouncycastle.pqc.crypto.qruov.QRUOVParameters

public class QRUOVParameters extends Object
Parameter sets for the QR-UOV multivariate signature scheme (NIST PQC additional signatures Round 2 submission).

QR-UOV is a quotient-ring UOV variant operating over a small prime field F_q with q in {7, 31, 127}, a quotient ring extension F_q^L = F_q[X]/f(X) for a small irreducible f(X) = x^L - fc * x^fe - fc0, and dimensions (v, m).

The

invalid @link
{@link #qruov_*_shake
} constants use SHAKE as the pseudo-random generator (matching the kat_shake test vectors); the
invalid @link
{@link #qruov_*_aes
} constants use AES-CTR (matching the kat_aes test vectors). Algorithm output is otherwise identical apart from the PRG-driven expansions.
  • Field Details

    • PRG_AES

      public static final int PRG_AES
      See Also:
    • PRG_SHAKE

      public static final int PRG_SHAKE
      See Also:
    • qruov_1_q127_L3_v156_m54_shake

      public static final QRUOVParameters qruov_1_q127_L3_v156_m54_shake
    • qruov_1_q31_L3_v165_m60_shake

      public static final QRUOVParameters qruov_1_q31_L3_v165_m60_shake
    • qruov_1_q31_L10_v600_m70_shake

      public static final QRUOVParameters qruov_1_q31_L10_v600_m70_shake
    • qruov_1_q7_L10_v740_m100_shake

      public static final QRUOVParameters qruov_1_q7_L10_v740_m100_shake
    • qruov_3_q127_L3_v228_m78_shake

      public static final QRUOVParameters qruov_3_q127_L3_v228_m78_shake
    • qruov_3_q31_L3_v246_m87_shake

      public static final QRUOVParameters qruov_3_q31_L3_v246_m87_shake
    • qruov_3_q31_L10_v890_m100_shake

      public static final QRUOVParameters qruov_3_q31_L10_v890_m100_shake
    • qruov_3_q7_L10_v1100_m140_shake

      public static final QRUOVParameters qruov_3_q7_L10_v1100_m140_shake
    • qruov_5_q127_L3_v306_m105_shake

      public static final QRUOVParameters qruov_5_q127_L3_v306_m105_shake
    • qruov_5_q31_L3_v324_m114_shake

      public static final QRUOVParameters qruov_5_q31_L3_v324_m114_shake
    • qruov_5_q31_L10_v1120_m120_shake

      public static final QRUOVParameters qruov_5_q31_L10_v1120_m120_shake
    • qruov_5_q7_L10_v1490_m190_shake

      public static final QRUOVParameters qruov_5_q7_L10_v1490_m190_shake
    • qruov_1_q127_L3_v156_m54_aes

      public static final QRUOVParameters qruov_1_q127_L3_v156_m54_aes
    • qruov_1_q31_L3_v165_m60_aes

      public static final QRUOVParameters qruov_1_q31_L3_v165_m60_aes
    • qruov_1_q31_L10_v600_m70_aes

      public static final QRUOVParameters qruov_1_q31_L10_v600_m70_aes
    • qruov_1_q7_L10_v740_m100_aes

      public static final QRUOVParameters qruov_1_q7_L10_v740_m100_aes
    • qruov_3_q127_L3_v228_m78_aes

      public static final QRUOVParameters qruov_3_q127_L3_v228_m78_aes
    • qruov_3_q31_L3_v246_m87_aes

      public static final QRUOVParameters qruov_3_q31_L3_v246_m87_aes
    • qruov_3_q31_L10_v890_m100_aes

      public static final QRUOVParameters qruov_3_q31_L10_v890_m100_aes
    • qruov_3_q7_L10_v1100_m140_aes

      public static final QRUOVParameters qruov_3_q7_L10_v1100_m140_aes
    • qruov_5_q127_L3_v306_m105_aes

      public static final QRUOVParameters qruov_5_q127_L3_v306_m105_aes
    • qruov_5_q31_L3_v324_m114_aes

      public static final QRUOVParameters qruov_5_q31_L3_v324_m114_aes
    • qruov_5_q31_L10_v1120_m120_aes

      public static final QRUOVParameters qruov_5_q31_L10_v1120_m120_aes
    • qruov_5_q7_L10_v1490_m190_aes

      public static final QRUOVParameters qruov_5_q7_L10_v1490_m190_aes
  • Method Details

    • getName

      public String getName()
    • getCategory

      public int getCategory()
    • getQ

      public int getQ()
    • getL

      public int getL()
    • getV

      public int getV()
    • getM

      public int getM()
    • getFc

      public int getFc()
    • getFe

      public int getFe()
    • getFc0

      public int getFc0()
    • getTau1

      public int getTau1()
    • getTau2

      public int getTau2()
    • getTau3

      public int getTau3()
    • getTau4

      public int getTau4()
    • getPrgType

      public int getPrgType()
    • getCeilLog2Q

      public int getCeilLog2Q()
    • getSeedLen

      public int getSeedLen()
    • getSaltLen

      public int getSaltLen()
    • getMuLen

      public int getMuLen()
    • getBigV

      public int getBigV()
    • getBigM

      public int getBigM()
    • getBigN

      public int getBigN()
    • getPublicKeyBytes

      public int getPublicKeyBytes()
    • getPrivateKeyBytes

      public int getPrivateKeyBytes()
    • getSignatureBytes

      public int getSignatureBytes()