Class FaestKeyPairGenerator
- All Implemented Interfaces:
AsymmetricCipherKeyPairGenerator
This generator produces FaestPublicKeyParameters and FaestPrivateKeyParameters
based on the FAEST algorithm parameters. The secret signing key is an AES key, while the
public verification key is a plaintext–ciphertext pair obtained by encrypting a random message
under the signing key. The implementation follows the specification defined in the official
FAEST documentation and the reference C implementation.
References:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGenerate a fresh FAEST key pair.voidinit(KeyGenerationParameters param) intialise the key pair generator.
-
Constructor Details
-
FaestKeyPairGenerator
public FaestKeyPairGenerator()
-
-
Method Details
-
init
Description copied from interface:AsymmetricCipherKeyPairGeneratorintialise the key pair generator.- Specified by:
initin interfaceAsymmetricCipherKeyPairGenerator- Parameters:
param- the parameters the key pair is to be initialised with.
-
generateKeyPair
Generate a fresh FAEST key pair.Side-channel note: the OWF-key validity check (low two bits not both set, matching upstream
faest_param.c:39-42) is enforced by a rejection-sampling loop. The loop's iteration count therefore depends on bytes drawn from the suppliedSecureRandomand is observable via timing. The information leaked is about the discarded DRBG draws, not the accepted OWF key, so the loop does not expose secret key bits. Callers that need to suppress even that signal can pass a deterministic / pre-conditioned random source.- Specified by:
generateKeyPairin interfaceAsymmetricCipherKeyPairGenerator- Returns:
- an AsymmetricCipherKeyPair containing the generated keys.
-