public class NTRUSigningKeyGenerationParameters extends KeyGenerationParameters implements java.lang.Cloneable
Modifier and Type | Field and Description |
---|---|
static NTRUSigningKeyGenerationParameters |
APR2011_439
Gives 128 bits of security
|
static NTRUSigningKeyGenerationParameters |
APR2011_439_PROD
Like
APR2011_439 , this parameter set gives 128 bits of security but uses product-form polynomials |
static NTRUSigningKeyGenerationParameters |
APR2011_743
Gives 256 bits of security
|
static NTRUSigningKeyGenerationParameters |
APR2011_743_PROD
Like
APR2011_439 , this parameter set gives 256 bits of security but uses product-form polynomials |
int |
B |
static int |
BASIS_TYPE_STANDARD |
static int |
BASIS_TYPE_TRANSPOSE |
int |
basisType |
double |
betaSq |
int |
d |
int |
d1 |
int |
d2 |
int |
d3 |
Digest |
hashAlg |
static int |
KEY_GEN_ALG_FLOAT |
static int |
KEY_GEN_ALG_RESULTANT |
int |
keyGenAlg |
double |
keyNormBoundSq |
int |
N |
double |
normBoundSq |
int |
polyType |
boolean |
primeCheck |
int |
q |
int |
signFailTolerance |
boolean |
sparse |
static NTRUSigningKeyGenerationParameters |
TEST157
Generates key pairs quickly.
|
static NTRUSigningKeyGenerationParameters |
TEST157_PROD
Generates key pairs quickly.
|
Constructor and Description |
---|
NTRUSigningKeyGenerationParameters(java.io.InputStream is)
Reads a parameter set from an input stream.
|
NTRUSigningKeyGenerationParameters(int N,
int q,
int d,
int B,
int basisType,
double beta,
double normBound,
double keyNormBound,
boolean primeCheck,
boolean sparse,
int keyGenAlg,
Digest hashAlg)
Constructs a parameter set that uses ternary private keys (i.e.
|
NTRUSigningKeyGenerationParameters(int N,
int q,
int d1,
int d2,
int d3,
int B,
int basisType,
double beta,
double normBound,
double keyNormBound,
boolean primeCheck,
boolean sparse,
int keyGenAlg,
Digest hashAlg)
Constructs a parameter set that uses product-form private keys (i.e.
|
Modifier and Type | Method and Description |
---|---|
NTRUSigningKeyGenerationParameters |
clone() |
boolean |
equals(java.lang.Object obj) |
NTRUSigningParameters |
getSigningParameters() |
int |
hashCode() |
java.lang.String |
toString() |
void |
writeTo(java.io.OutputStream os)
Writes the parameter set to an output stream
|
getRandom, getStrength
public static final int BASIS_TYPE_STANDARD
public static final int BASIS_TYPE_TRANSPOSE
public static final int KEY_GEN_ALG_RESULTANT
public static final int KEY_GEN_ALG_FLOAT
public static final NTRUSigningKeyGenerationParameters APR2011_439
public static final NTRUSigningKeyGenerationParameters APR2011_439_PROD
APR2011_439
, this parameter set gives 128 bits of security but uses product-form polynomialspublic static final NTRUSigningKeyGenerationParameters APR2011_743
public static final NTRUSigningKeyGenerationParameters APR2011_743_PROD
APR2011_439
, this parameter set gives 256 bits of security but uses product-form polynomialspublic static final NTRUSigningKeyGenerationParameters TEST157
public static final NTRUSigningKeyGenerationParameters TEST157_PROD
public int N
public int q
public int d
public int d1
public int d2
public int d3
public int B
public double betaSq
public double normBoundSq
public int signFailTolerance
public double keyNormBoundSq
public boolean primeCheck
public int basisType
public boolean sparse
public int keyGenAlg
public Digest hashAlg
public int polyType
public NTRUSigningKeyGenerationParameters(int N, int q, int d, int B, int basisType, double beta, double normBound, double keyNormBound, boolean primeCheck, boolean sparse, int keyGenAlg, Digest hashAlg)
polyType=SIMPLE
).N
- number of polynomial coefficientsq
- modulusd
- number of -1's in the private polynomials f
and g
B
- number of perturbationsbasisType
- whether to use the standard or transpose latticebeta
- balancing factor for the transpose latticenormBound
- maximum norm for valid signatureskeyNormBound
- maximum norm for the ploynomials F
and G
primeCheck
- whether 2N+1
is primesparse
- whether to treat ternary polynomials as sparsely populated (SparseTernaryPolynomial
vs DenseTernaryPolynomial
)keyGenAlg
- RESULTANT
produces better bases, FLOAT
is slightly faster. RESULTANT
follows the EESS standard while FLOAT
is described in Hoffstein et al: An Introduction to Mathematical Cryptography.hashAlg
- a valid identifier for a java.security.MessageDigest
instance such as SHA-256
. The MessageDigest
must support the getDigestLength()
method.public NTRUSigningKeyGenerationParameters(int N, int q, int d1, int d2, int d3, int B, int basisType, double beta, double normBound, double keyNormBound, boolean primeCheck, boolean sparse, int keyGenAlg, Digest hashAlg)
polyType=PRODUCT
).N
- number of polynomial coefficientsq
- modulusd1
- 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 perturbationsbasisType
- whether to use the standard or transpose latticebeta
- balancing factor for the transpose latticenormBound
- maximum norm for valid signatureskeyNormBound
- maximum norm for the ploynomials F
and G
primeCheck
- whether 2N+1
is primesparse
- whether to treat ternary polynomials as sparsely populated (SparseTernaryPolynomial
vs DenseTernaryPolynomial
)keyGenAlg
- RESULTANT
produces better bases, FLOAT
is slightly faster. RESULTANT
follows the EESS standard while FLOAT
is described in Hoffstein et al: An Introduction to Mathematical Cryptography.hashAlg
- a valid identifier for a java.security.MessageDigest
instance such as SHA-256
. The MessageDigest
must support the getDigestLength()
method.public NTRUSigningKeyGenerationParameters(java.io.InputStream is) throws java.io.IOException
is
- an input streamjava.io.IOException
public void writeTo(java.io.OutputStream os) throws java.io.IOException
os
- an output streamjava.io.IOException
public NTRUSigningParameters getSigningParameters()
public NTRUSigningKeyGenerationParameters clone()
clone
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object