All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.pqc.crypto.qtesla.Parameter Maven / Gradle / Ivy

Go to download

The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.4.

There is a newer version: 1.79
Show newest version
package org.bouncycastle.pqc.crypto.qtesla;

final class Parameter
{

    /**
     * Dimension, (Dimension - 1) is the Polynomial Degree for Heuristic qTESLA Security Category-1
     */
    public static final int N_I = 512;

    /**
     * Dimension, (Dimension - 1) is the Polynomial Degree for Provably-Secure qTESLA Security Category-1
     */
    public static final int N_I_P = 1024;

    /**
     * Dimension, (Dimension - 1) is the Polynomial Degree for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int N_III_SIZE = 1024;

    /**
     * Dimension, (Dimension - 1) is the Polynomial Degree for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int N_III_SPEED = 1024;

    /**
     * Dimension, (Dimension - 1) is the Polynomial Degree for Provably-Secure qTESLA Security Category-3
     */
    public static final int N_III_P = 2048;

    /**
     * N_LOGARITHM = LOGARITHM (N) / LOGARITHM (2) for Heuristic qTESLA Security Category-1
     */
    public static final int N_LOGARITHM_I = 9;

    /**
     * N_LOGARITHM = LOGARITHM (N) / LOGARITHM (2) for Provably-Secure qTESLA Security Category-1
     */
    public static final int N_LOGARITHM_I_P = 10;

    /**
     * N_LOGARITHM = LOGARITHM (N) / LOGARITHM (2) for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int N_LOGARITHM_III_SIZE = 10;

    /**
     * N_LOGARITHM = LOGARITHM (N) / LOGARITHM (2) for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int N_LOGARITHM_III_SPEED = 10;

    /**
     * N_LOGARITHM = LOGARITHM (N) / LOGARITHM (2) for Provably-Secure qTESLA Security Category-3
     */
    public static final int N_LOGARITHM_III_P = 11;

    /**
     * Modulus for Heuristic qTESLA Security Category-1
     */
    public static final int Q_I = 4205569;

    /**
     * Modulus for Provably-Secure qTESLA Security Category-1
     */
    public static final int Q_I_P = 485978113;

    /**
     * Modulus for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int Q_III_SIZE = 4206593;

    /**
     * Modulus for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int Q_III_SPEED = 8404993;

    /**
     * Modulus for Provably-Secure qTESLA Security Category-3
     */
    public static final int Q_III_P = 1129725953;

    /**
     * Q <= 2 ^ Q_LOGARITHM for Heuristic qTESLA Security Category-1
     */
    public static final int Q_LOGARITHM_I = 23;

    /**
     * Q <= 2 ^ Q_LOGARITHM for Provably-Secure qTESLA Security Category-1
     */
    public static final int Q_LOGARITHM_I_P = 29;

    /**
     * Q <= 2 ^ Q_LOGARITHM for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int Q_LOGARITHM_III_SIZE = 23;

    /**
     * Q <= 2 ^ Q_LOGARITHM for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int Q_LOGARITHM_III_SPEED = 24;

    /**
     * Q <= 2 ^ Q_LOGARITHM for Provably-Secure qTESLA Security Category-3
     */
    public static final int Q_LOGARITHM_III_P = 31;

    public static final long Q_INVERSE_I = 3098553343L;
    public static final long Q_INVERSE_I_P = 3421990911L;
    public static final long Q_INVERSE_III_SIZE = 4148178943L;
    public static final long Q_INVERSE_III_SPEED = 4034936831L;
    public static final long Q_INVERSE_III_P = 861290495L;

    /**
     * B Determines the Interval the Randomness is Chosen in During Signing for Heuristic qTESLA Security Category-1
     */
    public static final int B_I = 1048575;

    /**
     * B Determines the Interval the Randomness is Chosen in During Signing for Provably-Secure qTESLA Security Category-1
     */
    public static final int B_I_P = 2097151;

    /**
     * B Determines the Interval the Randomness is Chosen in During Signing for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int B_III_SIZE = 1048575;

    /**
     * B Determines the Interval the Randomness is Chosen in During Signing for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int B_III_SPEED = 2097151;

    /**
     * B Determines the Interval the Randomness is Chosen in During Signing for Provably-Secure qTESLA Security Category-3
     */
    public static final int B_III_P = 8388607;

    /**
     * B = 2 ^ B_BIT - 1 for Heuristic qTESLA Security Category-1
     */
    public static final int B_BIT_I = 20;

    /**
     * B = 2 ^ B_BIT - 1 for Provably-Secure qTESLA Security Category-1
     */
    public static final int B_BIT_I_P = 21;

    /**
     * B = 2 ^ B_BIT - 1 for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int B_BIT_III_SIZE = 20;

    /**
     * B = 2 ^ B_BIT - 1 for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int B_BIT_III_SPEED = 21;

    /**
     * B = 2 ^ B_BIT - 1 for Provably-Secure qTESLA Security Category-3
     */
    public static final int B_BIT_III_P = 23;

    public static final int S_BIT_I = 10;
    public static final int S_BIT_I_P = 8;
    public static final int S_BIT_III_SIZE = 8;
    public static final int S_BIT_III_SPEED = 9;
    public static final int S_BIT_III_P = 8;

    /**
     * Number of Ring-Learning-With-Errors Samples for Heuristic qTESLA Security Category-1
     */
    public static final int K_I = 1;

    /**
     * Number of Ring-Learning-With-Errors Samples for Provably-Secure qTESLA Security Category-1
     */
    public static final int K_I_P = 4;

    /**
     * Number of Ring-Learning-With-Errors Samples for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int K_III_SIZE = 1;

    /**
     * Number of Ring-Learning-With-Errors Samples for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int K_III_SPEED = 1;

    /**
     * Number of Ring-Learning-With-Errors Samples for Provably-Secure qTESLA Security Category-3
     */
    public static final int K_III_P = 5;

    /**
     * Number of Non-Zero Entries of Output Elements of Encryption for Heuristic qTESLA Security Category-1
     */
    public static final int H_I = 30;

    /**
     * Number of Non-Zero Entries of Output Elements of Encryption for Provably-Secure qTESLA Security Category-1
     */
    public static final int H_I_P = 25;

    /**
     * Number of Non-Zero Entries of Output Elements of Encryption for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int H_III_SIZE = 48;

    /**
     * Number of Non-Zero Entries of Output Elements of Encryption for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int H_III_SPEED = 48;

    /**
     * Number of Non-Zero Entries of Output Elements of Encryption for Provably-Secure qTESLA Security Category-3
     */
    public static final int H_III_P = 40;

    /**
     * Number of Rounded Bits for Heuristic qTESLA Security Category-1
     */
    public static final int D_I = 21;

    /**
     * Number of Rounded Bits for Provably-Secure qTESLA Security Category-1
     */
    public static final int D_I_P = 22;

    /**
     * Number of Rounded Bits for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int D_III_SIZE = 21;

    /**
     * Number of Rounded Bits for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int D_III_SPEED = 22;

    /**
     * Number of Rounded Bits for Provably-Secure qTESLA Security Category-3
     */
    public static final int D_III_P = 24;

    /**
     * Bound in Checking Error Polynomial for Heuristic qTESLA Security Category-1
     */
    public static final int KEY_GENERATOR_BOUND_E_I = 1586;

    /**
     * Bound in Checking Error Polynomial for Provably-Secure qTESLA Security Category-1
     */
    public static final int KEY_GENERATOR_BOUND_E_I_P = 554;

    /**
     * Bound in Checking Error Polynomial for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int KEY_GENERATOR_BOUND_E_III_SIZE = 910;

    /**
     * Bound in Checking Error Polynomial for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int KEY_GENERATOR_BOUND_E_III_SPEED = 1147;

    /**
     * Bound in Checking Error Polynomial for Provably-Secure qTESLA Security Category-3
     */
    public static final int KEY_GENERATOR_BOUND_E_III_P = 901;

    public static final int REJECTION_I = KEY_GENERATOR_BOUND_E_I;
    public static final int REJECTION_I_P = KEY_GENERATOR_BOUND_E_I_P;
    public static final int REJECTION_III_SIZE = KEY_GENERATOR_BOUND_E_III_SIZE;
    public static final int REJECTION_III_SPEED = KEY_GENERATOR_BOUND_E_III_SPEED;
    public static final int REJECTION_III_P = KEY_GENERATOR_BOUND_E_III_P;

    /**
     * Bound in Checking Secret Polynomial for Heuristic qTESLA Security Category-1
     */
    public static final int KEY_GENERATOR_BOUND_S_I = 1586;

    /**
     * Bound in Checking Secret Polynomial for Provably-Secure qTESLA Security Category-1
     */
    public static final int KEY_GENERATOR_BOUND_S_I_P = 554;

    /**
     * Bound in Checking Secret Polynomial for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final int KEY_GENERATOR_BOUND_S_III_SIZE = 910;

    /**
     * Bound in Checking Secret Polynomial for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final int KEY_GENERATOR_BOUND_S_III_SPEED = 1233;

    /**
     * Bound in Checking Secret Polynomial for Provably-Secure qTESLA Security Category-3
     */
    public static final int KEY_GENERATOR_BOUND_S_III_P = 901;

    public static final int U_I = KEY_GENERATOR_BOUND_S_I;
    public static final int U_I_P = KEY_GENERATOR_BOUND_S_I_P;
    public static final int U_III_SIZE = KEY_GENERATOR_BOUND_S_III_SIZE;
    public static final int U_III_SPEED = KEY_GENERATOR_BOUND_S_III_SPEED;
    public static final int U_III_P = KEY_GENERATOR_BOUND_S_III_P;

    /**
     * Standard Deviation of Centered Discrete Gaussian Distribution for Heuristic qTESLA Security Category-1
     */
    public static final double SIGMA_I = 22.93;

    /**
     * Standard Deviation of Centered Discrete Gaussian Distribution for Provably-Secure qTESLA Security Category-1
     */
    public static final double SIGMA_I_P = 8.5;

    /**
     * Standard Deviation of Centered Discrete Gaussian Distribution for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final double SIGMA_III_SIZE = 7.64;

    /**
     * Standard Deviation of Centered Discrete Gaussian Distribution for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final double SIGMA_III_SPEED = 10.2;

    /**
     * Standard Deviation of Centered Discrete Gaussian Distribution for Provably-Secure qTESLA Security Category-3
     */
    public static final double SIGMA_III_P = 8.5;

    public static final double SIGMA_E_I = SIGMA_I;
    public static final double SIGMA_E_I_P = SIGMA_I_P;
    public static final double SIGMA_E_III_SIZE = SIGMA_III_SIZE;
    public static final double SIGMA_E_III_SPEED = SIGMA_III_SPEED;
    public static final double SIGMA_E_III_P = SIGMA_III_P;

    /**
     * XI = SIGMA * SQUARE_ROOT (2 * LOGARITHM (2) / LOGARITHM (e)) for Heuristic qTESLA Security Category-1
     */
    public static final double XI_I = 27;

    /**
     * XI = SIGMA * SQUARE_ROOT (2 * LOGARITHM (2) / LOGARITHM (e)) for Provably-Secure qTESLA Security Category-1
     */
    public static final double XI_I_P = 10;

    /**
     * XI = SIGMA * SQUARE_ROOT (2 * LOGARITHM (2) / LOGARITHM (e)) for Heuristic qTESLA Security Category-3 (Option for Size)
     */
    public static final double XI_III_SIZE = 9;

    /**
     * XI = SIGMA * SQUARE_ROOT (2 * LOGARITHM (2) / LOGARITHM (e)) for Heuristic qTESLA Security Category-3 (Option for Speed)
     */
    public static final double XI_III_SPEED = 12;

    /**
     * XI = SIGMA * SQUARE_ROOT (2 * LOGARITHM (2) / LOGARITHM (e)) for Provably-Secure qTESLA Security Category-3
     */
    public static final double XI_III_P = 10;

    public static final int BARRETT_MULTIPLICATION_I = 1021;
    public static final int BARRETT_MULTIPLICATION_I_P = 1;
    public static final int BARRETT_MULTIPLICATION_III_SIZE = 1021;
    public static final int BARRETT_MULTIPLICATION_III_SPEED = 511;
    public static final int BARRETT_MULTIPLICATION_III_P = 15;

    public static final int BARRETT_DIVISION_I = 32;
    public static final int BARRETT_DIVISION_I_P = 29;
    public static final int BARRETT_DIVISION_III_SIZE = 32;
    public static final int BARRETT_DIVISION_III_SPEED = 32;
    public static final int BARRETT_DIVISION_III_P = 34;

    /**
     * The Number of Blocks Requested in the First Extendable-Output Function Call
     * for Heuristic qTESLA Security Category-1
     */
    public static final int GENERATOR_A_I = 19;

    /**
     * The Number of Blocks Requested in the First Extendable-Output Function Call
     * for Provably-Secure qTESLA Security Category-1
     */
    public static final int GENERATOR_A_I_P = 108;

    /**
     * The Number of Blocks Requested in the First Extendable-Output Function Call
     * for Provably-Secure qTESLA Security Category-3 (Option for Size)
     */
    public static final int GENERATOR_A_III_SIZE = 38;

    /**
     * The Number of Blocks Requested in the First Extendable-Output Function Call
     * for Provably-Secure qTESLA Security Category-3 (Option for Speed)
     */
    public static final int GENERATOR_A_III_SPEED = 38;

    /**
     * The Number of Blocks Requested in the First Extendable-Output Function Call
     * for Provably-Secure qTESLA Security Category-3
     */
    public static final int GENERATOR_A_III_P = 180;

    public static final int INVERSE_NUMBER_THEORETIC_TRANSFORM_I = 113307;
    public static final int INVERSE_NUMBER_THEORETIC_TRANSFORM_I_P = 472064468;
    public static final int INVERSE_NUMBER_THEORETIC_TRANSFORM_III_SIZE = 1217638;
    public static final int INVERSE_NUMBER_THEORETIC_TRANSFORM_III_SPEED = 237839;
    public static final int INVERSE_NUMBER_THEORETIC_TRANSFORM_III_P = 851423148;

    public static final int R_I = 1081347;
    public static final int R_III_SIZE = 35843;
    public static final int R_III_SPEED = 15873;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy