public class SAKKEPrivateKeyParameters extends AsymmetricKeyParameter
SAKKE is an identity-based public key encryption scheme designed for one-pass key establishment. It is used in MIKEY-SAKKE for secure communication key distribution.
This class generates and manages a SAKKE private key, which consists of a randomly generated
scalar z
. The corresponding public key is computed as Z = [z]P
, where P
is a publicly known generator point on the elliptic curve.
The private key is used to derive the master secret in the key exchange process.
Constructor and Description |
---|
SAKKEPrivateKeyParameters(java.math.BigInteger z,
SAKKEPublicKeyParameters publicParams)
Constructs a SAKKE private key with a given private value and associated public parameters.
|
SAKKEPrivateKeyParameters(java.security.SecureRandom random)
Generates a random SAKKE private key and its corresponding public key.
|
Modifier and Type | Method and Description |
---|---|
java.math.BigInteger |
getMasterSecret()
Retrieves the private key scalar (master secret).
|
SAKKEPublicKeyParameters |
getPublicParams()
Retrieves the public key parameters associated with this private key.
|
isPrivate
public SAKKEPrivateKeyParameters(java.math.BigInteger z, SAKKEPublicKeyParameters publicParams)
z
- The private key scalar.publicParams
- The associated public key parameters.public SAKKEPrivateKeyParameters(java.security.SecureRandom random)
The private key scalar z
is chosen randomly in the range [2, q-1],
where q
is the order of the subgroup. The public key is computed as
Z = [z]P
, where P
is the public generator.
random
- A cryptographic random number generator.public SAKKEPublicKeyParameters getPublicParams()
public java.math.BigInteger getMasterSecret()
z
.