Digital signature method
09722798 · 2017-08-01
Assignee
Inventors
- Jeffrey Hoffstein (Providence, RI)
- Jill Pipher (Providence, RI, US)
- John M Schanck (Somerville, MA, US)
- Joseph H Silverman (Needham, MA, US)
- William J Whyte (Belmont, MA, US)
Cpc classification
H04L9/3093
ELECTRICITY
International classification
H04L9/30
ELECTRICITY
H04L9/32
ELECTRICITY
Abstract
A method for signing and subsequently verifying a digital message, including the following steps implemented using at least one processor-based subsystem: selecting parameters including an integer q and a relatively smaller integer p that is coprime with q; generating random polynomial f relating to p and random polynomial g relating to q; producing a public key that includes h, where h is equal to a product that can be derived using g and the inverse of f mod q; producing a private key from which f and g can be derived; storing the private key and publishing the public key; producing a message digest by applying a hash function to the digital message; producing a digital signature using the message digest and the private key; and performing a verification procedure utilizing the digital signature and the public key to determine whether the signature is valid.
Claims
1. A method for signing and subsequently verifying a digital message, comprising the following steps implemented using at least one processor-based subsystem: selecting parameters including an integer q and a relatively smaller integer p that is coprime with q; generating random polynomial f relating to p and random polynomial g relating to q; producing a public key that includes h, where h is equal to a product that can be derived using g and the inverse of f mod q; producing a private key from which f and g can be derived; storing the private key and publishing the public key; producing a message digest by applying a hash function to the digital message; producing a digital signature using the message digest and the private key; and performing a verification procedure utilizing the digital signature and the public key to determine whether the signature is valid.
2. The method as defined by claim 1, wherein said step of producing a digital signature comprises the following steps: (A) generating a noise polynomial; (B) deriving a candidate signature using the private key, the message digest, and the noise polynomial; (C) determining whether the coefficients of the candidate signature are within a predetermined range; and (D) repeating steps (A) through (C) until the criterion of step (C) is satisfied, and outputting the resultant candidate signature as the produced digital signature.
3. The method as defined by claim 1, further comprising transmitting the digital signature, and wherein said step of performing a verification procedure includes receiving the transmitted digital signature and performing the verification procedure on the received digital signature.
4. The method as defined by claim 2, further comprising transmitting the digital signature, and wherein said step of performing a verification procedure includes receiving the transmitted digital signature and performing the verification procedure on the received digital signature.
5. The method as defined by claim 3, wherein said digital message comprises a challenge communication from a verifier entity, and wherein said digital signature is transmitted to said verifier entity.
6. The method as defined by claim 1, wherein integers q and p are ideals of a quotient ring R, and wherein random polynomial f is in p*R.sub.f and random polynomial g taken mod q is in R.sub.g, where R.sub.f and R.sub.g are subsets of a ring R.sub.q.
7. The method as defined by claim 6, wherein (R.sub.f, R.sub.g), two subsets of R.sub.q, have members that are small relative to arbitrary members of R.sub.q.
8. The method as defined by claim 6, wherein said step of producing a digital signature comprises the following steps: (A) generating a noise polynomial; (B) deriving a candidate signature using the private key, the message digest, and the noise polynomial; (C) determining whether the coefficients of the candidate signature are within a predetermined range; and (D) repeating steps (A) through (C) until the criterion of step (C) is satisfied, and outputting the resultant candidate signature as the produced digital signature.
9. The method as defined by claim 6, further comprising transmitting the digital signature, and wherein said step of performing a verification procedure includes receiving the transmitted digital signature and performing the verification procedure on the received digital signature.
10. The method as defined by claim 6, wherein said digital message comprises a challenge communication from a verifier entity, and wherein said digital signature is transmitted to said verifier entity.
11. A method for signing and transmitting a digital message, comprising the following steps implemented using at least one processor-based subsystem: selecting parameters including an integer q and a relatively smaller integer p that is coprime with q; generating random polynomial f relating to p and random polynomial g relating to q; producing a public key that includes h, where h is equal to a product that can be derived using g and the inverse of f mod q; producing a private key from which f and g can be derived; storing the private key and publishing the public key; producing a message digest by applying a hash function to the digital message; producing a digital signature using the message digest and the private key; and transmitting the digital signature.
12. The method as defined by claim 11, wherein said step of producing a digital signature comprises the following steps: (A) generating a noise polynomial; (B) deriving a candidate signature using the private key, the message digest, and the noise polynomial; (C) determining whether the coefficients of the candidate signature are within a predetermined range; and (D) repeating steps (A) through (C) until the criterion of step (C) is satisfied, and outputting the resultant candidate signature as the produced digital signature.
13. The method as defined by claim 11, wherein said digital message comprises a challenge communication from a verifier entity, and wherein said digital signature is transmitted to said verifier entity.
14. The method as defined by claim 12, wherein said digital message comprises a challenge communication from a verifier entity, and wherein said digital signature is transmitted to said verifier entity.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8)
(9) The subsystem 155 in this illustrative embodiment can have a similar configuration to that of subsystem 105. The processor 160 has associated input/output circuitry 164, memories 168, clock and timing circuitry 173, and a display 176. Inputs include a touchscreen/keyboard 155. Communication of subsystem 155 with the outside world is via transceiver 162 which, again, may comprise a modem or any suitable device for communicating signals.
(10)
(11) The block 250 represents a routine that can be employed (that is, in this example, by the user of processor-based subsystem 155 of
(12) The block 270 represents a routine that can be employed (that is, in this example, by the user of processor-based subsystem 155 of
(13)
(14)
(15) Referring to
(16) As represented by the block 420, a document hash, mod p, designated (s.sub.p, t.sub.p), is calculated as H(M, h); that is the hash of the message and the public key. Next, the loop of blocks 430, 440, and 450 implements the rejection sampling of candidate signatures, and selection of a candidate signature that meets a size criterion (see also Appendix I). The block 430 represents randomly generating noise r with L.sub.∞ norm less than or equal to B.sub.R. The block 440 represents the successive calculations of s.sub.0, t.sub.0, a, and (s, t) as follows:
s.sub.0=s.sub.p+pr
t.sub.0=h*s.sub.0 mod q
a=g.sup.−1*(t.sub.p−t.sub.0) mod q
(s, t)=(s.sub.0, t.sub.0)+(a*f, a*g)
(17) Next, the decision block 450 represents the step of determining whether the coefficients of the candidate signature and its components are in a predetermined range, dependent on range-defining integers. In this embodiment, a determination is made of whether all of the following are true:
L.sub.∞ norm of (a*f)≦q/2−B?
L.sub.∞ norm of (a*g)≦q/2−B?
L.sub.∞ norm of s≦B.sub.s?
L.sub.∞ norm of ≦B.sub.t?
If not, the block 430 is re-entered, and the process steps of blocks 430, 440 and 450 are repeated until a candidate digital signature which meets the criteria of block 450 is obtained. The block 460 is then entered, this block representing the outputting of the qualifying candidate signature, that is, the encoded signed message s, or (s, t) (see Appendix 1).
(18)
(19) The block 510 represents the inputting of the following: R, a polynomial quotient ring in which products of small elements are also small; q, an integer; p, a small integer or polynomial coprime with q (as ideals of R); R.sub.q, the ring R with coefficients drawn from Z.sub.q; R.sub.h, the hash output space, a subset of (R.sub.q×R.sub.q) where every element is equal to itself mod p; B.sub.s, the L.sub.∞ norm of the s component of the signature; B.sub.t, the L.sub.∞ norm of the t component of the signature; H, a hash function taking as input a message and a public key; h, the public key; M, the message; A, the additional data; and s, the signature. (The additional data is typically added to the hash of the message for enhanced security.)
(20) Next, as represented by the block 520, the following calculations are made:
(s.sub.p, t.sub.p)=H(M, A)
t=s*h mod q
A determination is then made (decision block 530) as to whether both of the following hold:
The L.sub.∞ norm of s≦B.sub.s
The L.sub.∞ norm of t≦B.sub.t
If not, the signature is rejected (block 550). If, however, the inquiry of block 530 is answered affirmatively, the decision block 540 is entered, this block representing the inquiry of whether (s.sub.p, t.sub.p) equals (s, t) mod p. If not, the signature is rejected (block 550) (s, t) mod p or, if so, the signature is accepted (block 560).
(21)
(22) In the signing routine of
(23) The invention has been described with reference to particular preferred embodiments, but variations within the spirit and scope of the invention will occur to those skilled in the art. For example, while a digital signature technique has been described, it will be understood that an authentication producer of the challenge-response-verification type can alternatively be implemented, using the technique hereof and employing the challenge as the message to be signed. Also, it will be understood that coefficients of polynomials can alternatively be represented in other forms including, but not limited to, matrices.