IP Library Granted Patent US 10,924,287
Granted Patent B2
US 10,924,287 · App. 15/998,072 · Granted Feb 16, 2021

Digital signature technique

Inventors: Jeffrey Hoffstein (Providence, RI); Jill Pipher (Providence, RI); William J Whyte (Belmont, MA); Zhenfei Zhang (Burlington, MA)
Assignee: OnBoard Security, Inc.
H04L9/3247H04L9/3026H04L9/3093H04L9/3242G06F7/588
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,924,287
App. No.
15/998,072
Granted
Feb 16, 2021
Kind
B2
Abstract

A method is set forth for signing and subsequently verifying a plurality of digital messages, including the following steps implemented using at least one processor-based subsystem: selecting parameters including an integer q, a relatively smaller integer p that is coprime with q, and a Gaussian function parameter; 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 plurality of message digests by hashing each of the digital messages with the public key; for each message digest, producing a digital signature using the message digest, the private key, and a Gaussian noise polynomial related to the Gaussian function parameter; and performing a batch verification procedure utilizing the plurality of digital signatures and the public key to determine whether the digital signatures are valid.

Claims (40)

1. A method for signing and subsequently verifying a plurality of digital messages, comprising the following steps implemented using at least one processor-based subsystem:

selecting parameters including an integer q, a relatively smaller integer p that is coprime with q, and a Gaussian function parameter;

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 plurality of message digests by hashing each of the plurality of digital messages with the public key;

for each message digest, producing a digital signature using the message digest, the private key, and a Gaussian noise polynomial related to said Gaussian function parameter; and

performing a batch verification procedure utilizing the plurality of digital signatures and the public key to determine whether the digital signatures are valid,

wherein said step of performing a batch verification procedure includes implementing a verification on a modulo p summation of a component of all of said digital signatures.

2. The method as defined by claim 1 , wherein said step of producing a digital signature further includes implementing an iterative rejection sampling procedure comprising employing successive randomly generated Gaussian noise polynomials, in conjunction with a message digest and the private key, to obtain candidate digital signatures until a particular candidate digital signature is obtained that meets predetermined criteria, and selecting said particular candidate digital signature.

3. The method as defined by claim 1 , wherein said step of producing a digital signature further includes implementing an iterative rejection sampling procedure comprising employing successive randomly generated Gaussian noise polynomials, in conjunction with a message digest and the private key, to obtain candidate digital signatures until a particular candidate digital signature is obtained that meets predetermined criteria, and selecting said particular candidate digital signature.

4. The method as defined by claim 1 , further comprising transmitting the digital signatures, and wherein said step of performing a batch verification procedure includes receiving the transmitted digital signatures and performing the batch verification procedure on the received digital signatures.

5. The method as defined by claim 2 , further comprising transmitting the digital signatures, and wherein said step of performing a batch verification procedure includes receiving the transmitted digital signatures and performing the batch verification procedure on the received digital signatures.

6. The method as defined by claim 1 , wherein said plurality of digital messages comprises a multiplicity of digital messages.

7. The method as defined by claim 1 , wherein said plurality of digital messages comprises a multiplicity of digital messages.

8. 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, a relatively smaller integer p that is coprime with q, and a Gaussian function parameter;

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 hashing the digital message with the public key;

producing a digital signature using the message digest, the private key, and Gaussian noise polynomials related to said Gaussian function parameter, including implementing an iterative rejection sampling procedure comprising employing successive randomly generated Gaussian noise polynomials, in conjunction with the message digest and the private key, to obtain candidate digital signatures until a particular candidate digital signature is obtained that meets predetermined criteria, and selecting said particular candidate digital signature; and

performing a batch verification procedure utilizing the digital signature, among a plurality of digital signatures, and the public key to determine whether the digital signature is valid,

wherein said step of performing a batch verification procedure includes implementing a verification on a modulo p summation of a component of all of said digital signatures.

9. The method as defined by claim 8 , further comprising transmitting the digital signature, and wherein said step of performing a batch verification procedure includes receiving the transmitted digital signature and performing the batch verification procedure on the plurality of digital signatures including the received digital signature.

10. A method for signing a plurality of digital messages for subsequent verification, comprising the following steps implemented using at least one processor-based subsystem:

selecting parameters including an integer q, a relatively smaller integer p that is coprime with q, and a Gaussian function parameter;

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 plurality of message digests by hashing each of the plurality of digital messages with the public key;

for each message digest, producing a digital signature using the message digest, the private key, and Gaussian noise polynomials related to said Gaussian function parameter, including implementing an iterative rejection sampling procedure comprising employing successive randomly generated Gaussian noise polynomials, in conjunction with the message digest and the private key, to obtain candidate digital signatures until a particular candidate digital signature is obtained that meets predetermined criteria, and selecting said particular candidate digital signature; and

performing a batch verification procedure utilizing the plurality of digital signatures and the public key to determine whether the digital signatures are valid,

wherein said step of performing a batch verification procedure includes implementing a verification on a modulo p summation of a component of all of said digital signatures.

11. The method as defined by claim 10 , further comprising transmitting the digital signatures and receiving the transmitted digital signatures, and wherein the batch verification procedure is performed on the received digital signatures and the public key.

12. The method as defined by claim 10 , where said plurality of digital messages comprises a multiplicity of digital messages.

13. The method as defined by claim 11 , where said plurality of digital messages comprises a multiplicity of digital messages.

Assignments (2)
MERGER Recorded Mar 22, 2019
From: OAK ACQUISITION CORP.
To: ONBOARD SECURITY, INC.
Reel/Frame 048677/0396 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2018
From: HOFFSTEIN, JEFFREY; PIPHER, JILL; WHYTE, WILLIAM J.; ZHANG, ZHENFEI
To: ONBOARD SECURITY, INC.
Reel/Frame 047127/0836 →
Continuity (2)
Provisional Application 62604121 · Jun 23, 2017
Related Publication 20190020486A1 · Jan 17, 2019