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 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.

See Also:
  • Constructor Details

    • SAKKEPrivateKeyParameters

      public SAKKEPrivateKeyParameters(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(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], where q is the order of the subgroup. The public key is computed as Z = [z]P, where P is the public generator.

      Parameters:
      random - A cryptographic random number generator.
  • Method Details

    • getPublicParams

      public SAKKEPublicKeyParameters getPublicParams()
      Retrieves the public key parameters associated with this private key.
      Returns:
      The corresponding SAKKE public key parameters.
    • getMasterSecret

      public BigInteger getMasterSecret()
      Retrieves the private key scalar (master secret).
      Returns:
      The private key scalar z.