/**************************************************************************************************************************************************************** * Description: Generates A Pair of Public Key and Private Key for qTESLA Signature Scheme for Provably-Secure qTESLA Security Category-3 * * @param publicKey Contains Public Key * @param privateKey Contains Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution ****************************************************************************************************************************************************************/ public static int generateKeyPairIIIP(byte[] publicKey, byte[] privateKey, SecureRandom secureRandom) { return generateKeyPair( publicKey, privateKey, secureRandom, Parameter.N_III_P, Parameter.K_III_P, Parameter.H_III_P, Parameter.Q_III_P, Parameter.Q_INVERSE_III_P, Parameter.Q_LOGARITHM_III_P, Parameter.GENERATOR_A_III_P, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_III_P, Parameter.XI_III_P, PolynomialProvablySecure.ZETA_III_P, Parameter.KEY_GENERATOR_BOUND_E_III_P, Parameter.KEY_GENERATOR_BOUND_S_III_P ); }
/**************************************************************************************************************************************************************** * Description: Generates A Pair of Public Key and Private Key for qTESLA Signature Scheme for Heuristic qTESLA Security Category-3 (Option for Size) * * @param publicKey Contains Public Key * @param privateKey Contains Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution ****************************************************************************************************************************************************************/ public static int generateKeyPairIIISize(byte[] publicKey, byte[] privateKey, SecureRandom secureRandom) { return generateKeyPair( publicKey, privateKey, secureRandom, Parameter.N_III_SIZE, Parameter.H_III_SIZE, Parameter.Q_III_SIZE, Parameter.Q_INVERSE_III_SIZE, Parameter.Q_LOGARITHM_III_SIZE, Parameter.GENERATOR_A_III_SIZE, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_III_SIZE, Parameter.XI_III_SIZE, PolynomialHeuristic.ZETA_III_SIZE, Parameter.KEY_GENERATOR_BOUND_E_III_SIZE, Parameter.KEY_GENERATOR_BOUND_S_III_SIZE ); }
/**************************************************************************************************************************************************************** * Description: Generates A Pair of Public Key and Private Key for qTESLA Signature Scheme for * Heuristic qTESLA Security Category-1 * * @param publicKey Contains Public Key * @param privateKey Contains Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution * ****************************************************************************************************************************************************************/ public static int generateKeyPairI(byte[] publicKey, byte[] privateKey, SecureRandom secureRandom) { return generateKeyPair( publicKey, privateKey, secureRandom, Parameter.N_I, Parameter.H_I, Parameter.Q_I, Parameter.Q_INVERSE_I, Parameter.Q_LOGARITHM_I, Parameter.GENERATOR_A_I, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_I, Parameter.XI_I, PolynomialHeuristic.ZETA_I, Parameter.KEY_GENERATOR_BOUND_E_I, Parameter.KEY_GENERATOR_BOUND_S_I ); }
/**************************************************************************************************************************************************************** * Description: Generates A Pair of Public Key and Private Key for qTESLA Signature Scheme for Heuristic qTESLA Security Category-3 * (Option for Speed) * * @param publicKey Contains Public Key * @param privateKey Contains Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution * ****************************************************************************************************************************************************************/ public static int generateKeyPairIIISpeed(byte[] publicKey, byte[] privateKey, SecureRandom secureRandom) { return generateKeyPair( publicKey, privateKey, secureRandom, Parameter.N_III_SPEED, Parameter.H_III_SPEED, Parameter.Q_III_SPEED, Parameter.Q_INVERSE_III_SPEED, Parameter.Q_LOGARITHM_III_SPEED, Parameter.GENERATOR_A_III_SPEED, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_III_SPEED, Parameter.XI_III_SPEED, PolynomialHeuristic.ZETA_III_SPEED, Parameter.KEY_GENERATOR_BOUND_E_III_SPEED, Parameter.KEY_GENERATOR_BOUND_S_III_SPEED ); }
/**************************************************************************************************************************************************************** * Description: Generates A Pair of Public Key and Private Key for qTESLA Signature Scheme for Provably-Secure qTESLA Security Category-1 * * @param publicKey Contains Public Key * @param privateKey Contains Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution ****************************************************************************************************************************************************************/ public static int generateKeyPairIP(byte[] publicKey, byte[] privateKey, SecureRandom secureRandom) { return generateKeyPair( publicKey, privateKey, secureRandom, Parameter.N_I_P, Parameter.K_I_P, Parameter.H_I_P, Parameter.Q_I_P, Parameter.Q_INVERSE_I_P, Parameter.Q_LOGARITHM_I_P, Parameter.GENERATOR_A_I_P, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_I_P, Parameter.XI_I_P, PolynomialProvablySecure.ZETA_I_P, Parameter.KEY_GENERATOR_BOUND_E_I_P, Parameter.KEY_GENERATOR_BOUND_S_I_P ); }