IP Library Granted Patent US 10,326,598
Granted Patent B2
US 10,326,598 · App. 15/144,636 · Granted Jun 18, 2019

Method for generating a message signature from a signature token encrypted by means of a homomorphic encryption function

Inventors: Herve Chabanne (Issy-les-Moulineaux, FR); Constance Morel (Issy-les-Moulineaux, FR); Olivier Clemot (Issy-les-Moulineaux, FR); Julien Bringer (Issy-les-Moulineaux, FR)
Assignee: IDEMIA IDENTITY & SECURITY
H04L9/3247H04L9/008H04L9/3066H04L9/3252
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,326,598
App. No.
15/144,636
Granted
Jun 18, 2019
Kind
B2
Abstract

A method for generating a message signature intended to be validated by a verifier server. A client device is configured to hold a private key and a corresponding public key. The method includes offline pre-computation by a hardware security module of a signature token, a result of encryption using a homomorphic encryption function, storage of the signature token generation of the signature of the encrypted message by the homomorphic encryption function from the result of the encryption by the homomorphic encryption function of the private key stored by the client device, of the signature token and of the message. The signature is intended to be validated by the verifier server by the public key.

Claims (39)

1. A method for generating a signature of a message (m) intended to be validated by a verifier server ( 3 ), the signature protocol implemented for generating the signature comprising public parameters (Gr, n, g) such that g is an element of the group Gr of the order n with n a prime integer,

a client device ( 2 ) being configured to hold a private key (d) and a corresponding public key (y), said method being characterized in that it comprises steps of:

offline beforehand computation ( 103 ) by a hardware security module ( 4 ) of a signature token (φ(r), φ(1/k)) comprising a first part of signature token φ(r) and a second part of signature token φ(1/k), wherein k is a random integer comprised between 1 and n−1, and r is an intermediate integer defined by r=f(g k ) where f is a function having values in n , and the first part of signature token φ(r) is generated by encrypting the intermediate integer r by means of a homomorphic encryption function (φ) and the second part of signature token φ(1/k) is generated by encrypting the inverse of the random 1/k by means of a homomorphic encryption function (φ),

storage ( 104 ) of said signature token (φ(r), φ(1/k));

generation ( 105 ) of said signature (r,s) of said message (m) encrypted by means of a homomorphic encryption function (φ(r), φ(s)) from the result (φ(d)) of the encryption by a homomorphic encryption function of the private key stored by the client device (d), of the signature token (φ(r), φ(1/k)) and of said message (m), said signature being intended to be validated by said verifier server ( 3 ) by means of said public key (y).

2. The method for generating a signature according to claim 1 , wherein said hardware security module also previously offline implements steps of:

generation ( 101 ) of the random k as integer belonging to [1;n−1]; and

computation ( 102 ) of the intermediate integer r.

3. The method for generating a signature according to claim 1 wherein the signature protocol is the ECDSA protocol, the group Gr is the group comprising all the points of an elliptic curve provided with addition, the public key y and the private key d verify y=d*g, g being a point of the elliptic curve of the order n, the function f associates with a point of the elliptic curve the abscissa modulo n of said point, and the intermediate integer r is the abscissa of the point of the elliptic curve k*g modulo n.

4. The method for generating a signature according to claim 1 , wherein the signature protocol is the DSA protocol, the group G r is the set p provided with multiplication, where p is a prime integer number such that (p−1) is a multiple of n, the public key y and the private key d such that 0<d<n verify y=g d mod p, g=h ((p-1)/n) mod p with h a random integer verifying 1<h<p−1 and g different to 1, the function f is defined by f(x)=x mod n, and the intermediate integer r is r=(g k mod p) mod n.

5. The method for generating a signature according to claim 1 , wherein the signature of the message m encrypted by means of said homomorphic encryption function comprises a first part of signature encrypted by means of said homomorphic encryption function and generated by means of the formula: φ(s)=φ((1/k)*(z+d.r)) and a second part of signature encrypted by means of said homomorphic encryption function equal to φ(r), with 1/k the inverse of the random, z function of the message m, d the private key stored by the client device, r the intermediate integer and φ the homomorphic encryption function.

6. The method for generating a signature according to claim 1 , wherein the signature token further comprises the result φ(r.1/k) of the encryption by said homomorphic encryption function of the product of the intermediate integer r with the inverse of the random 1/k.

7. The method for generating a signature according to claim 1 , wherein the signature of the message m encrypted by means of said homomorphic encryption function comprises a first part of signature encrypted by means of said homomorphic encryption function and generated by means of the formula: φ(s)=φ((1/k).z+d.(r.1/k)) and a second part of signature encrypted by means of said homomorphic encryption function equal to φ(r),

with 1/k the inverse of the random, z function of the message m, d the private key stored by the client device, r the intermediate integer, r.1/k the product of the intermediate integer with the inverse of the random and φ the homomorphic encryption function.

8. A method for generating a signature of a message (m) intended to be validated by a verifier server ( 3 ), a client device ( 2 ) being configured to hold a private key (d) and a corresponding public key (y) wherein the public key y and the private key d verify y=d*g, g being a point of an elliptic curve of the order n, a prime integer,

said method being characterized in that it comprises steps implemented previously offline by a hardware security module ( 4 ) of:

generation ( 101 ) of a random k as integer belonging to [1, n−1],

computation ( 102 ) of an intermediate integer r as abscissa of the point of the elliptic curve k*g modulo n;

computation ( 103 ) of a signature token (φ(r), φ(1/k)) comprising a first part of signature token φ(r) generated by encrypting the intermediate integer r by means of a homomorphic encryption function (φ), and a second part of signature token φ(1/k), generated by encrypting the inverse of the random 1/k by means of a homomorphic encryption function (φ),

the method further comprising implementing the steps of:

storage ( 104 ) of said signature token (φ(r), φ(1/k));

generation ( 105 ) of said signature (r,s) of said message (m) encrypted by means of a homomorphic encryption function (φ(r), (φ(s)) from the result (φ(d)) of the encryption by a homomorphic encryption function of the private key stored by the client device (d), of the signature token (φ(r), φ(1/k)) and of said message (m), said signature being intended to be validated by said verifier server ( 3 ) by means of said public key (y).

9. A method for generating a signature of a message (m) intended to be validated by a verifier server ( 3 ), a client device ( 2 ) being configured to hold a private key (d) and a corresponding public key (y), wherein the public key (y) and the private key d such that 0<d<n verify y=g d mod p, n being a prime number, p being a prime number verifying (p−1) is a multiple of n, g=h ((p-1)/n) mod p with h a random integer verifying 1<h<p−1 and g different to 1, said method being characterized in that it comprises steps implemented previously offline by a hardware security module ( 4 ) of:

generation ( 101 ) of a random k as integer belonging to [1, n−1],

computation ( 102 ) of an intermediate integer r=(g k mod p) mod n;

computation ( 103 ) of a signature token (φ(r), φ(1/k)) comprising a first part of signature token φ(r) generated by encrypting the intermediate integer r by means of a homomorphic encryption function (φ), and a second part of signature token φ(1/k), generated by encrypting the inverse of the random 1/k by means of a homomorphic encryption function (φ),

the method further comprising implementing the steps of:

storage ( 104 ) of said signature token (φ(r), φ(1/k));

generation ( 105 ) of said signature (r,s) of said message (m) encrypted by means of a homomorphic encryption function (φ(r), (φ(s)) from the result (φ(d)) of the encryption by a homomorphic encryption function of the private key stored by the client device (d), of the signature token (φ(r), φ(1/k)) and of said message (m), said signature being intended to be validated by said verifier server ( 3 ) by means of said public key (y).

10. A non-transitory computer-readable medium storing program code instructions, wherein the program code instructions cause a computer to execute a method for generating a signature of a message, the method comprising steps of:

offline beforehand computation ( 103 ) of a signature token (φ(r), φ(1/k)) comprising a first part of signature token φ(r) and a second part of signature token φ(1/k), wherein k is a random integer comprised between 1 and n−1, and r is an intermediate integer defined by r=f(g k ) where f is a function having values in n , and the first part of signature token φ(r) is generated by encrypting the intermediate integer r by means of a homomorphic encryption function (φ) and the second part of signature token φ(1/k) is generated by encrypting the inverse of the random 1/k by means of a homomorphic encryption function (φ);

storage ( 104 ) of said signature token (φ(r), φ(1/k));

generation ( 105 ) of said signature (r,s) of said message (m) encrypted by means of a homomorphic encryption function (φ(r), φ(s)) from the result (φ(d)) of the encryption by a homomorphic encryption function of the private key stored by the client device (d), of the signature token (φ(r), φ(1/k)) and of said message (m), said signature being intended to be validated by means of said public key (y).

11. A system ( 1 ) for generating a signature of a message (m) intended to be validated by a verifier server ( 3 ), the signature protocol implemented for generating the signature comprising public parameters (Gr, n, g) such that g is an element of the group Gr of the order n with n a prime integer,

a client device ( 2 ) being configured to hold a private key (d) and a corresponding public key (y), said system comprising:

a hardware security module ( 4 ) configured to compute beforehand, offline, a signature token (φ(r),φ(1/k)) comprising a first part φ(r) of signature token and a second part φ(1/k) of signature token, wherein k is a random integer comprised between 1 and n−1, and r is an intermediate integer defined by r=f(g k ) where f is a function having values in n , and the first part of signature token φ(r) is generated by encrypting the intermediate integer r by means of said homomorphic encryption function (φ) and the second part of signature token φ(1/k) generated by encrypting the inverse of the random 1/k by means of said homomorphic encryption function (φ),

a storage device ( 8 ) of said signature token (φ(r),φ(1/k)),

an intermediate server ( 7 ) or said hardware security module ( 4 ) configured to generate said signature (r,s) of said message (m) encrypted by means of said homomorphic encryption function (φ(r), φ(s)) from the result (φ(d)) of the encryption by said homomorphic encryption function (φ) of the private key stored by the client device (d), of the signature token (φ(r), φ(1/k)) and of said message (m),

a verifier server ( 3 ) configured to validate said signature by means of said public key (y).

Assignments (12)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER REPLACING 10158873 WITH 10185873 PREVIOUSLY RECORDED ON REEL 71930 FRAME 625. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Apr 1, 2026
From: IDEMIA IDENTITY & SECURITY FRANCE
To: IDEMIA PUBLIC SECURITY FRANCE
Reel/Frame 075530/0067 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2025
From: IDEMIA IDENTITY & SECURITY FRANCE
To: IDEMIA PUBLIC SECURITY FRANCE
Reel/Frame 071930/0625 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE ERRONEOUSLY NAME PROPERTIES/APPLICATION NUMBERS PREVIOUSLY RECORDED AT REEL: 055108 FRAME: 0009. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 17, 2024
From: SAFRAN IDENTITY & SECURITY
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 066365/0151 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVE PROPERTY NUMBER 15001534 PREVIOUSLY RECORDED AT REEL: 055314 FRAME: 0930. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 17, 2024
From: SAFRAN IDENTITY & SECURITY
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 066629/0638 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY NAMED PROPERTIES 14/366,087 AND 15/001,534 PREVIOUSLY RECORDED ON REEL 048039 FRAME 0605. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Jan 17, 2024
From: MORPHO
To: SAFRAN IDENTITY & SECURITY
Reel/Frame 066343/0143 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY NAMED PROPERTIES 14/366,087 AND 15/001,534 PREVIOUSLY RECORDED ON REEL 047529 FRAME 0948. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Jan 17, 2024
From: SAFRAN IDENTITY & SECURITY
To: IDEMIA IDENTITY & SECURITY
Reel/Frame 066343/0232 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 055108 FRAME: 0009. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Feb 17, 2021
From: SAFRAN IDENTITY AND SECURITY
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 055314/0930 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE RECEIVING PARTY DATA PREVIOUSLY RECORDED ON REEL 047529 FRAME 0948. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Oct 29, 2020
From: SAFRAN IDENTITY AND SECURITY
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 055108/0009 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 047529 FRAME: 0949. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 1, 2020
From: SAFRAN IDENTITY & SECURITY
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 052551/0082 →
CHANGE OF NAME Recorded Jan 9, 2019
From: MORPHO
To: SAFRAN IDENTITY & SECURITY
Reel/Frame 048039/0605 →
CHANGE OF NAME Recorded Aug 30, 2018
From: SAFRAN IDENTITY & SECURITY
To: IDEMIA IDENTITY & SECURITY
Reel/Frame 047529/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2016
From: CHABANNE, HERVE; MOREL, CONSTANCE; CLEMOT, OLIVIER; BRINGER, JULIEN
To: MORPHO
Reel/Frame 039373/0553 →
Priority Claims (1)
FR 15 54077 · May 6, 2015 · national
Continuity (1)
Related Publication 20160344557A1 · Nov 24, 2016