Detailed information about the signature and the verify-method is to be found in the paper of Jintai Ding, Dieter Schmidt: Rainbow, a New Multivariable Polynomial Signature Scheme. ACNS 2005: 164-175 (https://dx.doi.org/10.1007/11496137_12)
| Modifier and Type | Field and Description |
|---|---|
| private ComputeInField | |
| pack-priv RainbowKeyParameters | |
| private static final int | |
| private SecureRandom | |
| pack-priv int | |
| private short[] |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public byte[] | Returns: the signature of the message.the message message)Implements org. |
| public void | init(boolean
true if we are generating a signature, false
otherwise. forSigning, CipherParameters key parameters for signature generation. param)Implements org. |
| private short[] | |
| private short[] | Returns: message representativethe message message)This function creates the representative of the message which gets signed or verified. |
| public boolean | Returns: true if the signature has been verified, false otherwise.the message message, byte[] the signature of the message signature)Implements org. |
| private short[] | Returns: document hash of length n - v1vector of dimension n signature)Signature verification using public key |
| cf | back to summary |
|---|---|
| private ComputeInField cf | |
| key | back to summary |
|---|---|
| pack-priv RainbowKeyParameters key | |
| MAXITS | back to summary |
|---|---|
| private static final int MAXITS | |
| random | back to summary |
|---|---|
| private SecureRandom random | |
| signableDocumentLength | back to summary |
|---|---|
| pack-priv int signableDocumentLength | |
| x | back to summary |
|---|---|
| private short[] x | |
| RainbowSigner | back to summary |
|---|---|
| public RainbowSigner() | |
| generateSignature | back to summary |
|---|---|
| public byte[] generateSignature(byte[] message) Implements org. This function signs the message that has been updated, making use of the private key. For computing the signature, L1 and L2 are needed, as well as LES should be solved for each layer in order to find the Oil-variables in the layer. The Vinegar-variables of the first layer are random generated.
| |
| init | back to summary |
|---|---|
| public void init(boolean forSigning, CipherParameters param) Implements org. Doc from org. initialise the signer for signature generation or signature verification.
| |
| initSign | back to summary |
|---|---|
| private short[] initSign(Layer[] layer, short[] msg) initial operations before solving the Linear equation system.
| |
| makeMessageRepresentative | back to summary |
|---|---|
| private short[] makeMessageRepresentative(byte[] message) This function creates the representative of the message which gets signed or verified.
| |
| verifySignature | back to summary |
|---|---|
| public boolean verifySignature(byte[] message, byte[] signature) Implements org. This function verifies the signature of the message that has been updated, with the aid of the public key.
| |
| verifySignatureIntern | back to summary |
|---|---|
| private short[] verifySignatureIntern(short[] signature) Signature verification using public key
| |