Bouncy Castle Cryptography Library 1.81

org.bouncycastle.pqc.math.ntru.parameters
Class NTRUParameterSet

java.lang.Object
  extended byorg.bouncycastle.pqc.math.ntru.parameters.NTRUParameterSet
Direct Known Subclasses:
NTRUHPSParameterSet, NTRUHRSSParameterSet

public abstract class NTRUParameterSet
extends java.lang.Object

Abstract class for all NTRU parameter sets.

See Also:
NTRUHPSParameterSet, NTRUHRSSParameterSet, NTRU specification document

Constructor Summary
NTRUParameterSet(int n, int logQ, int seedBytes, int prfKeyBytes, int sharedKeyBytes)
           
 
Method Summary
abstract  Polynomial createPolynomial()
          Creates a polynomial based on this parameter set.
 int logQ()
          logq
 int n()
          n
 int ntruCiphertextBytes()
          The number of bytes in a ciphertext for the KEM.
 int ntruPublicKeyBytes()
          The number of bytes in a public key for the KEM.
 int ntruSecretKeyBytes()
          The number of bytes in a private key for the KEM.
 int owcpaBytes()
          The number of bytes in a ciphertext for the DPKE.
 int owcpaMsgBytes()
          The number of bytes in a plaintext for the DPKE.
 int owcpaPublicKeyBytes()
          The number of bytes in a public key for the DPKE.
 int owcpaSecretKeyBytes()
          The number of bytes in a private key for the DPKE.
 int packDegree()
           
 int packTrinaryBytes()
           
 int prfKeyBytes()
          The number of bytes used to key the implicit rejection mechanism.
 int q()
          q
abstract  int sampleFgBytes()
           
 int sampleFixedTypeBytes()
           
 int sampleIidBytes()
           
abstract  int sampleRmBytes()
           
 int seedBytes()
          The number of random bytes consumed by keygen.
 int sharedKeyBytes()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NTRUParameterSet

public NTRUParameterSet(int n,
                        int logQ,
                        int seedBytes,
                        int prfKeyBytes,
                        int sharedKeyBytes)
Method Detail

createPolynomial

public abstract Polynomial createPolynomial()
Creates a polynomial based on this parameter set.

Returns:
an instance of Polynomial

n

public int n()
n

Returns:
n is a prime and both 2 and 3 are of order n − 1 in (Z/n)×

logQ

public int logQ()
logq

Returns:
log2(q)

q

public int q()
q

Returns:
q is a power of two

seedBytes

public int seedBytes()
The number of random bytes consumed by keygen.

Returns:

prfKeyBytes

public int prfKeyBytes()
The number of bytes used to key the implicit rejection mechanism.

Returns:

sharedKeyBytes

public int sharedKeyBytes()
Returns:

sampleIidBytes

public int sampleIidBytes()
Returns:

sampleFixedTypeBytes

public int sampleFixedTypeBytes()
Returns:

sampleFgBytes

public abstract int sampleFgBytes()
Returns:

sampleRmBytes

public abstract int sampleRmBytes()
Returns:

packDegree

public int packDegree()

packTrinaryBytes

public int packTrinaryBytes()
Returns:

owcpaMsgBytes

public int owcpaMsgBytes()
The number of bytes in a plaintext for the DPKE.

Returns:

owcpaPublicKeyBytes

public int owcpaPublicKeyBytes()
The number of bytes in a public key for the DPKE.

Returns:

owcpaSecretKeyBytes

public int owcpaSecretKeyBytes()
The number of bytes in a private key for the DPKE.

Returns:

owcpaBytes

public int owcpaBytes()
The number of bytes in a ciphertext for the DPKE.

Returns:

ntruPublicKeyBytes

public int ntruPublicKeyBytes()
The number of bytes in a public key for the KEM.

Returns:

ntruSecretKeyBytes

public int ntruSecretKeyBytes()
The number of bytes in a private key for the KEM.

Returns:

ntruCiphertextBytes

public int ntruCiphertextBytes()
The number of bytes in a ciphertext for the KEM.

Returns:

Bouncy Castle Cryptography Library 1.81