Package org.bouncycastle.crypto.kems
Class SAKKEKEMSGenerator
- java.lang.Object
-
- org.bouncycastle.crypto.kems.SAKKEKEMSGenerator
-
- All Implemented Interfaces:
EncapsulatedSecretGenerator
public class SAKKEKEMSGenerator extends java.lang.Object implements EncapsulatedSecretGenerator
This class implements the SAKKE (Sakai-Kasahara Key Encryption) Key Encapsulation Mechanism as defined in RFC 6508. It generates an encapsulated shared secret value (SSV) using Identity-Based Encryption (IBE) for secure transmission from a Sender to a Receiver.The algorithm follows these steps (as per RFC 6508, Section 6.2.1):
- Generate a random SSV in the range [0, 2^n - 1].
- Compute r = HashToIntegerRange(SSV || b, q).
- Compute R_(b,S) = [r]([b]P + Z_S) on the elliptic curve.
- Compute H = SSV XOR HashToIntegerRange(g^r, 2^n).
- Encode the encapsulated data (R_(b,S), H).
-
-
Constructor Summary
Constructors Constructor Description SAKKEKEMSGenerator(java.security.SecureRandom random)Constructs a SAKKEKEMSGenerator with the specified source of randomness.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SecretWithEncapsulationgenerateEncapsulated(AsymmetricKeyParameter recipientKey)Generates an encapsulated shared secret value (SSV) using the recipient's public key parameters as specified in RFC 6508, Section 6.2.1.
-
-
-
Method Detail
-
generateEncapsulated
public SecretWithEncapsulation generateEncapsulated(AsymmetricKeyParameter recipientKey)
Generates an encapsulated shared secret value (SSV) using the recipient's public key parameters as specified in RFC 6508, Section 6.2.1.This method performs the following operations:
- Derives cryptographic parameters from the recipient's public key.
- Generates a random SSV and computes the encapsulation components (R_(b,S), H).
- Encodes the encapsulated data as specified in RFC 6508, Section 4.
- Specified by:
generateEncapsulatedin interfaceEncapsulatedSecretGenerator- Parameters:
recipientKey- the recipient's public key parameters. Must be an instance ofSAKKEPublicKeyParameters. Must not benull.- Returns:
- a
SecretWithEncapsulationcontaining the SSV and the encapsulated data.
-
-