Top Description Fields Constructors Methods
org.bouncycastle.pqc.legacy.crypto.ntru

public Class NTRUSigner

extends Object
Class Inheritance
Imports
java.nio.ByteBuffer, org.bouncycastle.crypto.CipherParameters, .Digest, org.bouncycastle.pqc.legacy.math.ntru.polynomial.IntegerPolynomial, .Polynomial

Deprecated

the NTRUSigner algorithm was broken in 2012 by Ducas and Nguyen. See https://www.di.ens.fr/~ducas/NTRUSign_Cryptanalysis/DucasNguyen_Learning.pdf for details.

Signs, verifies data and generates key pairs.

Field Summary

Modifier and TypeField and Description
private Digest
private NTRUSigningParameters
private NTRUSigningPrivateKeyParameters
private NTRUSigningPublicKeyParameters

Constructor Summary

AccessConstructor and Description
public
NTRUSigner(NTRUSigningParameters
signature parameters
params
)

Constructs a new instance with a set of signature parameters.

Method Summary

Modifier and TypeMethod and Description
protected IntegerPolynomial
createMsgRep(byte[] msgHash, int r)

public byte[]

Returns:

a signature
generateSignature
()

Adds data to sign and computes a signature over this data and any data previously added via update(byte[], int, int).

public void
init(boolean forSigning, CipherParameters params)

Resets the engine for signing a message.

private IntegerPolynomial
private byte[]
public void
update(byte
data
b
)

Adds data to sign or verify.

public void
update(byte[]
data
m
,
int
offset
off
,
int
number of bytes
length
)

Adds data to sign or verify.

private boolean
private boolean
verifyHash(byte[] msgHash, byte[] sig, NTRUSigningPublicKeyParameters pub)

public boolean

Returns:

whether the signature is valid
verifySignature
(byte[]
a signature
sig
)

Verifies a signature for any data previously added via update(byte[], int, int).

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

hashAlgback to summary
private Digest hashAlg
paramsback to summary
private NTRUSigningParameters params
signingKeyPairback to summary
private NTRUSigningPrivateKeyParameters signingKeyPair
verificationKeyback to summary
private NTRUSigningPublicKeyParameters verificationKey

Constructor Detail

NTRUSignerback to summary
public NTRUSigner(NTRUSigningParameters params)

Constructs a new instance with a set of signature parameters.

Parameters
params:NTRUSigningParameters

signature parameters

Method Detail

createMsgRepback to summary
protected IntegerPolynomial createMsgRep(byte[] msgHash, int r)
generateSignatureback to summary
public byte[] generateSignature()

Adds data to sign and computes a signature over this data and any data previously added via update(byte[], int, int).

Returns:byte[]

a signature

Exceptions
IllegalStateException:
if initSign was not called
initback to summary
public void init(boolean forSigning, CipherParameters params)

Resets the engine for signing a message.

signback to summary
private IntegerPolynomial sign(IntegerPolynomial i, NTRUSigningPrivateKeyParameters kp)
signHashback to summary
private byte[] signHash(byte[] msgHash, NTRUSigningPrivateKeyParameters kp)
updateback to summary
public void update(byte b)

Adds data to sign or verify.

Parameters
b:byte

data

updateback to summary
public void update(byte[] m, int off, int length)

Adds data to sign or verify.

Parameters
m:byte[]

data

off:int

offset

length:int

number of bytes

verifyback to summary
private boolean verify(IntegerPolynomial i, IntegerPolynomial s, IntegerPolynomial h)
verifyHashback to summary
private boolean verifyHash(byte[] msgHash, byte[] sig, NTRUSigningPublicKeyParameters pub)
verifySignatureback to summary
public boolean verifySignature(byte[] sig)

Verifies a signature for any data previously added via update(byte[], int, int).

Parameters
sig:byte[]

a signature

Returns:boolean

whether the signature is valid

Exceptions
IllegalStateException:
if initVerify was not called