/***************************************************************************************************************************************************** * Description: Generates A Signature for A Given Message According to the Ring-TESLA Signature Scheme for Provably-Secure qTESLA Security Category-1 * * @param message Message to be Signed * @param messageOffset Starting Point of the Message to be Signed * @param messageLength Length of the Message to be Signed * @param signature Output Package Containing Signature * @param privateKey Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution *****************************************************************************************************************************************************/ public static int signingIP( byte[] signature, final byte[] message, int messageOffset, int messageLength, final byte[] privateKey, SecureRandom secureRandom ) { return signing( signature, message, messageOffset, messageLength, 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.B_I_P, Parameter.B_BIT_I_P, Parameter.D_I_P, Parameter.U_I_P, Parameter.REJECTION_I_P, Parameter.GENERATOR_A_I_P, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_I_P, Polynomial.PRIVATE_KEY_I_P, Parameter.BARRETT_MULTIPLICATION_I_P, Parameter.BARRETT_DIVISION_I_P ); }
/********************************************************************************************************************************************** * Description: Generates A Signature for A Given Message According to the Ring-TESLA Signature Scheme for Provably-Secure * qTESLA Security Category-3 * * @param message Message to be Signed * @param messageOffset Starting Point of the Message to be Signed * @param messageLength Length of the Message to be Signed * @param signature Output Package Containing Signature * @param privateKey Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution **********************************************************************************************************************************************/ public static int signingIIIP( byte[] signature, final byte[] message, int messageOffset, int messageLength, final byte[] privateKey, SecureRandom secureRandom ) { return signing( signature, message, messageOffset, messageLength, 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.B_III_P, Parameter.B_BIT_III_P, Parameter.D_III_P, Parameter.U_III_P, Parameter.REJECTION_III_P, Parameter.GENERATOR_A_III_P, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_III_P, Polynomial.PRIVATE_KEY_III_P, Parameter.BARRETT_MULTIPLICATION_III_P, Parameter.BARRETT_DIVISION_III_P ); }
/***************************************************************************************************************************************************** * Description: Generates A Signature for A Given Message According to the Ring-TESLA Signature Scheme for Heuristic qTESLA Security Category-1 * * @param message Message to be Signed * @param messageOffset Starting Point of the Message to be Signed * @param messageLength Length of the Message to be Signed * @param signature Output Package Containing Signature * @param privateKey Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution *****************************************************************************************************************************************************/ static int signingI( byte[] signature, final byte[] message, int messageOffset, int messageLength, final byte[] privateKey, SecureRandom secureRandom ) { return signing( signature, message, messageOffset, messageLength, privateKey, secureRandom, Parameter.N_I, Parameter.H_I, Parameter.Q_I, Parameter.Q_INVERSE_I, Parameter.Q_LOGARITHM_I, Parameter.B_I, Parameter.B_BIT_I, Parameter.D_I, Parameter.U_I, Parameter.REJECTION_I, Parameter.GENERATOR_A_I, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_I, Parameter.BARRETT_MULTIPLICATION_I, Parameter.BARRETT_DIVISION_I, PolynomialHeuristic.ZETA_I ); }
/***************************************************************************************************************************************************** * Description: Generates A Signature for A Given Message According to the Ring-TESLA Signature Scheme for Heuristic qTESLA Security Category-3 * (Option for Size) * * @param message Message to be Signed * @param messageOffset Starting Point of the Message to be Signed * @param messageLength Length of the Message to be Signed * @param signature Output Package Containing Signature * @param privateKey Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution *****************************************************************************************************************************************************/ static int signingIIISize( byte[] signature, final byte[] message, int messageOffset, int messageLength, final byte[] privateKey, SecureRandom secureRandom ) { return signing( signature, message, messageOffset, messageLength, 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.B_III_SIZE, Parameter.B_BIT_III_SIZE, Parameter.D_III_SIZE, Parameter.U_III_SIZE, Parameter.REJECTION_III_SIZE, Parameter.GENERATOR_A_III_SIZE, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_III_SIZE, Parameter.BARRETT_MULTIPLICATION_III_SIZE, Parameter.BARRETT_DIVISION_III_SIZE, PolynomialHeuristic.ZETA_III_SIZE ); }
/**************************************************************************************************************************************************** * Description: Generates A Signature for A Given Message According to the Ring-TESLA Signature Scheme for Heuristic qTESLA Security Category-3 * (Option for Speed) * * @param message Message to be Signed * @param messageOffset Starting Point of the Message to be Signed * @param messageLength Length of the Message to be Signed * @param signature Output Package Containing Signature * @param privateKey Private Key * @param secureRandom Source of Randomness * * @return 0 Successful Execution ****************************************************************************************************************************************************/ static int signingIIISpeed( byte[] signature, final byte[] message, int messageOffset, int messageLength, final byte[] privateKey, SecureRandom secureRandom ) { return signing( signature, message, messageOffset, messageLength, 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.B_III_SPEED, Parameter.B_BIT_III_SPEED, Parameter.D_III_SPEED, Parameter.U_III_SPEED, Parameter.REJECTION_III_SPEED, Parameter.GENERATOR_A_III_SPEED, Parameter.INVERSE_NUMBER_THEORETIC_TRANSFORM_III_SPEED, Parameter.BARRETT_MULTIPLICATION_III_SPEED, Parameter.BARRETT_DIVISION_III_SPEED, PolynomialHeuristic.ZETA_III_SPEED ); }