Class FrodoKEMEngine

java.lang.Object
org.bouncycastle.crypto.kems.frodo.FrodoKEMEngine

public class FrodoKEMEngine extends Object
FrodoKEM as standardised in ISO/IEC 18033-2:2006/Amd 2:2026, Clause 14, for the SHAKE parameter sets at security levels 976 and 1344. A single engine implements both the salted "FrodoKEM" (Salted Fujisaki-Okamoto transform) and the ephemeral "eFrodoKEM" (no salt) variants, selected by the salted flag: when salted, the seed seedSE is enlarged to 2*len_mu bits and a salt of 2*len_mu bits is folded into the G_2 hash and the shared secret and carried in the ciphertext; when not salted, len_salt is zero and every salt operation below is a no-op.
  • Field Details

  • Method Details

    • getInstance

      public static FrodoKEMEngine getInstance(FrodoKEMParameters params)
    • getCipherTextSize

      public int getCipherTextSize()
    • getSessionKeySize

      public int getSessionKeySize()
    • getPrivateKeySize

      public int getPrivateKeySize()
    • getPublicKeySize

      public int getPublicKeySize()
    • kem_keypair

      public void kem_keypair(byte[] pk, byte[] sk, SecureRandom random)
    • kem_enc

      public void kem_enc(byte[] ct, byte[] ss, byte[] pk, SecureRandom random)
    • kem_dec

      public void kem_dec(byte[] ss, byte[] ct, byte[] sk)