Bouncy Castle Cryptography Library 1.81

org.bouncycastle.crypto.params
Class SAKKEPrivateKeyParameters

java.lang.Object
  extended byorg.bouncycastle.crypto.params.AsymmetricKeyParameter
      extended byorg.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 . The corresponding public key is computed as , where 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:
RFC 6508: Sakai-Kasahara Key Encryption (SAKKE)

Constructor Summary
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
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 is chosen randomly in the range [2, q-1], where is the order of the subgroup. The public key is computed as , where 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 .

Bouncy Castle Cryptography Library 1.81