Class NTRUSigningParameters

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class NTRUSigningParameters
    extends java.lang.Object
    implements java.lang.Cloneable
    A set of parameters for NtruSign. Several predefined parameter sets are available and new ones can be created as well.
    • Constructor Summary

      Constructors 
      Constructor Description
      NTRUSigningParameters​(int N, int q, int d, int B, double beta, double normBound, Digest hashAlg)
      Constructs a parameter set that uses ternary private keys (i.e.
      NTRUSigningParameters​(int N, int q, int d1, int d2, int d3, int B, double beta, double normBound, double keyNormBound, Digest hashAlg)
      Constructs a parameter set that uses product-form private keys (i.e.
      NTRUSigningParameters​(java.io.InputStream is)
      Reads a parameter set from an input stream.
    • Field Detail

      • N

        public int N
      • q

        public int q
      • d

        public int d
      • d1

        public int d1
      • d2

        public int d2
      • d3

        public int d3
      • B

        public int B
      • betaSq

        public double betaSq
      • normBoundSq

        public double normBoundSq
      • signFailTolerance

        public int signFailTolerance
      • hashAlg

        public Digest hashAlg
    • Constructor Detail

      • NTRUSigningParameters

        public NTRUSigningParameters​(int N,
                                     int q,
                                     int d,
                                     int B,
                                     double beta,
                                     double normBound,
                                     Digest hashAlg)
        Constructs a parameter set that uses ternary private keys (i.e. polyType=SIMPLE).
        Parameters:
        N - number of polynomial coefficients
        q - modulus
        d - number of -1's in the private polynomials f and g
        B - number of perturbations
        beta - balancing factor for the transpose lattice
        normBound - maximum norm for valid signatures
        hashAlg - a valid identifier for a java.security.MessageDigest instance such as SHA-256. The MessageDigest must support the getDigestLength() method.
      • NTRUSigningParameters

        public NTRUSigningParameters​(int N,
                                     int q,
                                     int d1,
                                     int d2,
                                     int d3,
                                     int B,
                                     double beta,
                                     double normBound,
                                     double keyNormBound,
                                     Digest hashAlg)
        Constructs a parameter set that uses product-form private keys (i.e. polyType=PRODUCT).
        Parameters:
        N - number of polynomial coefficients
        q - modulus
        d1 - number of -1's in the private polynomials f and g
        d2 - number of -1's in the private polynomials f and g
        d3 - number of -1's in the private polynomials f and g
        B - number of perturbations
        beta - balancing factor for the transpose lattice
        normBound - maximum norm for valid signatures
        keyNormBound - maximum norm for the ploynomials F and G
        hashAlg - a valid identifier for a java.security.MessageDigest instance such as SHA-256. The MessageDigest must support the getDigestLength() method.
      • NTRUSigningParameters

        public NTRUSigningParameters​(java.io.InputStream is)
                              throws java.io.IOException
        Reads a parameter set from an input stream.
        Parameters:
        is - an input stream
        Throws:
        java.io.IOException
    • Method Detail

      • writeTo

        public void writeTo​(java.io.OutputStream os)
                     throws java.io.IOException
        Writes the parameter set to an output stream
        Parameters:
        os - an output stream
        Throws:
        java.io.IOException
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object