Package org.bouncycastle.crypto.params
Class SAKKEPrivateKeyParameters
- java.lang.Object
-
- org.bouncycastle.crypto.params.AsymmetricKeyParameter
-
- org.bouncycastle.crypto.params.SAKKEPrivateKeyParameters
-
- All Implemented Interfaces:
CipherParameters
public class SAKKEPrivateKeyParameters extends AsymmetricKeyParameter
Represents a private key for the Sakai-Kasahara Key Encryption (SAKKE) scheme, as defined in RFC 6508.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 asZ = [z]P
, whereP
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 Summary
Constructors Constructor 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.math.BigInteger
getMasterSecret()
Retrieves the private key scalar (master secret).SAKKEPublicKeyParameters
getPublicParams()
Retrieves the public key parameters associated with this private key.-
Methods inherited from class org.bouncycastle.crypto.params.AsymmetricKeyParameter
isPrivate
-
-
-
-
Constructor Detail
-
SAKKEPrivateKeyParameters
public SAKKEPrivateKeyParameters(java.math.BigInteger z, SAKKEPublicKeyParameters publicParams)
Constructs a SAKKE private key with a given private value and associated public parameters.- Parameters:
z
- The private key scalar.publicParams
- The associated public key parameters.
-
SAKKEPrivateKeyParameters
public SAKKEPrivateKeyParameters(java.security.SecureRandom random)
Generates a random SAKKE private key and its corresponding public key.The private key scalar
z
is chosen randomly in the range [2, q-1], whereq
is the order of the subgroup. The public key is computed asZ = [z]P
, whereP
is the public generator.- Parameters:
random
- A cryptographic random number generator.
-
-
Method Detail
-
getPublicParams
public SAKKEPublicKeyParameters getPublicParams()
Retrieves the public key parameters associated with this private key.- Returns:
- The corresponding SAKKE public key parameters.
-
getMasterSecret
public java.math.BigInteger getMasterSecret()
Retrieves the private key scalar (master secret).- Returns:
- The private key scalar
z
.
-
-