Content deleted Content added
No edit summary |
changed notation |
||
Line 10:
== Trapdoor Free Lattice Signature (TFLS) ==
In this signature algorithm, we will be working in a ring (R) of polynomials of degree n with coefficients in the finite field Fq. We will follow the work of Gunesyu, Lyubashevsy, and Poppleman<ref name=":1" /> as well as that of Singh<ref name=":2" /> closely. Let q be prime and n be a power of 2.
Line 16 ⟶ 15:
=== Definitions: ===
Let
* R
* a be a fixed publicly known polynomial in R
* b be an integer less than q which serves as a bound for polynomial coefficients over the integers
* s<sub>1</sub> be a randomly chosen secret polynomial in R<sub>n,q</sub>▼
* s<sub>
▲* s<sub>
* the bounded polynomials s<sub>1</sub> and s<sub>2</sub> be the long term private signing key
* t = (a)(s<sub>1</sub>)+s<sub>2</sub> be the long term public key for verification
* r<sub>1</sub> be a randomly chosen secret polynomial in R
* r<sub>2</sub> be a randomly chosen secret polynomial in R
* the bounded polynomials r<sub>1</sub> and r<sub>2</sub> be the short term (per signature) private signing key
* H(a,b) be a hash function which maps strings a and b to polynomials in
Another parameter, an integer k, will be crucial to the security of the signatures scheme. Related to the definition of the hash function H(a,b), k will be chosen so that k-
=== Signature Generation: ===
Line 38:
* Compute z<sub>1</sub> = (s<sub>1</sub>)(c)+r<sub>1</sub>
* Compute z<sub>2</sub> = (s<sub>2</sub>)(c)+r<sub>2</sub>
* If either z<sub>1</sub> or z<sub>2</sub> have coefficients outside the range -(k-
If z<sub>1</sub> and z<sub>2</sub> have coefficients in the correct range, accept the polynomials, c, z<sub>1</sub>, and z<sub>2</sub> as the signature and transmit them, along with the message, to the verifier.
|