org.bouncycastle.crypto.params
Class SAKKEPublicKeyParameters
java.lang.Object
org.bouncycastle.crypto.params.AsymmetricKeyParameter
org.bouncycastle.crypto.params.SAKKEPublicKeyParameters
- All Implemented Interfaces:
- CipherParameters
- public class SAKKEPublicKeyParameters
- extends AsymmetricKeyParameter
Represents the public parameters for the SAKKE (Sakai-Kasahara Key Encryption) scheme
as defined in RFC 6508. This class encapsulates the cryptographic domain parameters
and public key components required for SAKKE operations.
Contains the following public parameters (RFC 6508, Section 2.3):
Prime modulus defining the field F_p
Subgroup order (divides p+1)
Base point on the elliptic curve E(F_p)
Pairing result
KMS Public Key
Security parameter (SSV bit length)
User Identifier
Elliptic curve parameters (a = -3, b = 0)
The predefined parameters in this implementation correspond to the 128-bit security
level example from RFC 6509 Appendix A.
- See Also:
- RFC 6508: Sakai-Kasahara Key Encryption,
RFC 6509: MIKEY-SAKKE
Constructor Summary |
SAKKEPublicKeyParameters(java.math.BigInteger identifier,
ECPoint Z)
Constructs SAKKE public key parameters with the specified identifier and KMS Public Key. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SAKKEPublicKeyParameters
public SAKKEPublicKeyParameters(java.math.BigInteger identifier,
ECPoint Z)
- Constructs SAKKE public key parameters with the specified identifier and KMS Public Key.
- Parameters:
identifier
- The user's identifier as defined in RFC 6508, Section 2.2.
Must be a valid integer in [2, q-1].Z
- The KMS Public Key Z_S = [z_S]P (RFC 6508, Section 2.2).
Must be a valid point on the curve E(F_p).
getIdentifier
public java.math.BigInteger getIdentifier()
- Returns:
- The user's identifier (RFC 6508, Section 2.2)
getZ
public ECPoint getZ()
- Returns:
- The KMS Public Key Z_S = [z_S]P (RFC 6508, Section 2.2)
getCurve
public ECCurve getCurve()
- Returns:
- The elliptic curve E(F_p) with parameters from RFC 6509 Appendix A
getPoint
public ECPoint getPoint()
- Returns:
- The base point P on E(F_p) (RFC 6508, Section 3.1)
getPrime
public java.math.BigInteger getPrime()
- Returns:
- Prime modulus p defining the field F_p (RFC 6508, Section 2.1)
getQ
public java.math.BigInteger getQ()
- Returns:
- Subgroup order q (divides p+1) (RFC 6508, Section 2.1)
getN
public int getN()
- Returns:
- Security parameter n (SSV bit length = 128 bits)
getDigest
public Digest getDigest()
- Returns:
- The hash function (SHA-256) used in SAKKE operations
getG
public java.math.BigInteger getG()
- Returns:
- The pairing result g = (RFC 6508, Section 3.2)