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, getStrengthpublic 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()