public class ECCSIKeyGenerationParameters extends KeyGenerationParameters
This class encapsulates the parameters required for ECCSI (Elliptic Curve Certificateless Signatures for Identity-based encryption) key generation. It holds the elliptic curve domain parameters and computes the key pair components used in ECCSI.
The secret component ksak
is generated randomly and reduced modulo
q
, while kpak
is derived from ksak
by multiplying the
generator point.
Constructor and Description |
---|
ECCSIKeyGenerationParameters(java.security.SecureRandom random,
X9ECParameters params,
Digest digest,
byte[] id)
Constructs an instance of
ECCSIKeyGenerationParameters with the specified
source of randomness, elliptic curve parameters, digest algorithm, and identifier. |
Modifier and Type | Method and Description |
---|---|
java.math.BigInteger |
computeSSK(java.math.BigInteger hs_v)
Computes the session secret key (SSK) by adding the provided value to the secret key component
and reducing modulo the curve order.
|
Digest |
getDigest()
Returns the digest algorithm used for key generation.
|
ECPoint |
getG()
Returns the generator (base point) of the elliptic curve.
|
byte[] |
getId()
Returns a copy of the identifier used in these parameters.
|
ECPoint |
getKPAK()
Returns the public key component (kpak) corresponding to the secret key.
|
int |
getN()
Returns the bit length used in key generation.
|
java.math.BigInteger |
getQ()
Returns the order of the elliptic curve.
|
getRandom, getStrength
public ECCSIKeyGenerationParameters(java.security.SecureRandom random, X9ECParameters params, Digest digest, byte[] id)
ECCSIKeyGenerationParameters
with the specified
source of randomness, elliptic curve parameters, digest algorithm, and identifier.random
- the source of randomness.params
- the elliptic curve parameters (in X9.62 format) providing the curve, order, and generator.digest
- the digest algorithm to be used.id
- the identifier associated with the key generation (e.g. a user or device ID).public byte[] getId()
public ECPoint getKPAK()
public java.math.BigInteger computeSSK(java.math.BigInteger hs_v)
hs_v
- a BigInteger value (typically derived from a hash) to be added to the secret.public java.math.BigInteger getQ()
public ECPoint getG()
public Digest getDigest()
public int getN()