IP Library Granted Patent US 11,212,111
Granted Patent B2
US 11,212,111 · App. 16/469,301 · Granted Dec 28, 2021

Method for synchronized signature with additive RSA key splitting using a sliding window

Inventors: Alsasian Atmopawiro (Meudon, FR); Thi Tra Giang Dang (Meudon, FR)
Assignee: THALES DIS FRANCE SA
H04L9/3249H04L9/12H04L9/302H04L2209/46
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 11,212,111
App. No.
16/469,301
Granted
Dec 28, 2021
Kind
B2
Abstract

The present invention relates to a method of secure generation by a client device and a server device of an RSA signature of a message to be signed with a private exponent component d of an RSA key (p, q, N, d, e), wherein said client device stores a client device private exponent component dA, a client value, and a client dynamic offset, and said server device stores a server device private exponent component dB, where dB=d−dA modulo phi(N), a server value, a server dynamic offset and a failure counter, comprising: a. receiving from the client device a client part of said RSA signature (HS 1 ) of said message to be signed, after incrementing its client value (pvA) by a first predetermined step E, from the client device private exponent component and from an updated client dynamic offset function of said client dynamic offset and of said client value, b. setting said failure counter to a first default value, c. incrementing said server value (pvB) by a second predetermined step (E′), d. generating a server part of said RSA signature (HS 2 ) of said message to be signed, from the server device private exponent component and from an updated server dynamic offset function of said server dynamic offset and of said server value, e. generating said RSA signature by combining said client part of said RSA signature (HS 1 ) and said server part of said RSA signature (HS 2 ), f. checking if the generation of the RSA signature was a failure and when it was a failure, incrementing said failure counter and g\ iteratively repeating above steps c\ to f\, until said RSA signature is successfully generated or said failure counter reaches a first predetermined threshold S.

Claims (51)

1. A method for securing generation by a client device (A) and a server device (B) of an RSA (Rivest-Shamir-Adleman) signature (H(M){circumflex over ( )}d) of a message to be signed (M) with a private exponent component d of an RSA key (p, q, N, d, e) against cloning attacks, where e is a public exponent component, N is a RSA modulus, p, q primes such N=p.q and e.d =1 modulo phi(N) with phi(N) Euler's function,

wherein said client device (A) stores a client device private key equal to (N, dA) with dA a client device private exponent component, a client value (pvA), and a client dynamic offset (hA),

and wherein said server device (B) stores a server device private key equal to (N, dB) with dB a server device private exponent component, where dB=d−dA modulo phi(N), a server value (pvB), a server dynamic offset (hB) and a failure counter,

said method comprising the following steps performed by the server device (B):

a. receiving from the client device a client part of said RSA signature (HS 1 ) of said message to be signed (M) generated by the client device (A), after incrementing its client value (pvA) by a first predetermined step (E), from the client device private exponent component (dA), and from an updated client dynamic offset (hA′), said updated client dynamic offset (hA′) being function of said client dynamic offset (hA) and of a client shift value (cA), said client shift value (cA) being function of said client value (pvA),

b. setting said failure counter to a first default value,

c. incrementing said server value (pvB) by a second predetermined step (E′),

d. generating a server part of said RSA signature (HS 2 ) of said message to be signed (M), from the server device private exponent component (dB), and from an updated server dynamic offset (hB′), said updated server dynamic offset (hB′) being function of said server dynamic offset (hB) and of a server shift value (cB), said server shift value (cB) being function of said server value (pvB),

e. generating said RSA signature by combining said client part of said RSA signature (HS 1 ) and said server part of said RSA signature (HS 2 ),

f. checking if the generation of the RSA signature was a failure or a success and when it was a failure, incrementing said failure counter,

g. when the generation of the RSA signature was a failure, iteratively repeating above steps c\ to f\, until said RSA signature of said message to be signed M is successfully generated or said failure counter reaches a first predetermined threshold thereby preventing cloning attacks based on repetition of RSA signature generation steps.

2. The method of claim 1 , wherein said server device stores a ratification counter and a server initial value, said client device private key being protected by a client password, said client part of said RSA signature (HS 1 ) being generated by the client device after a user of the client device provided a password value and :

step a\ comprises setting said server initial value equal to said server value (pvB),

step g\ comprises when the generation of the RSA signature was a success, setting said ratification counter to a second default value,

step g\ comprises when said failure counter reaches said first predetermined threshold, setting said server value equal to said server initial value, incrementing said server value by said second predetermined step and incrementing said ratification counter,

and said method comprises the following step:

h. when said failure counter reaches said first predetermined threshold, iteratively repeating above steps a\ to g\ until said RSA signature of said message to be signed M is successfully generated or said ratification counter reaches a second predetermined threshold.

3. The method of claim 1 , wherein the client device private exponent component dA or the server device private exponent component dB is a random integer in ]0; phi(N)[.

4. The method of claim 1 , wherein said client shift value (cA) is generated by a pseudo random number generator from a secret value (seed_offset) preshared between the client device (A) and the server device (B) and from the client value (pvA), and said server shift value (cB) is generated by a pseudo random number generator from said secret value (seed_offset) and from the server value (pvB).

5. The method of claim 1 , wherein said updated client dynamic offset (hA′) is equal to the sum of the client dynamic offset (hA) and the client shift value (cA), and wherein said updated server dynamic offset (hB′) is equal to the sum of the server dynamic offset (hB) and the server shift value (cB).

6. The method of claim 1 , wherein said client part of the current RSA signature (HS 1 ) is generated by the client device (A) using as signing key the sum of the client device private exponent component (dA) and the updated client dynamic offset (hA′).

7. The method of claim 1 , wherein said server part of the current RSA signature (HS 2 ) is generated by the server device (B) using as signing key the result of subtracting the updated server dynamic offset (hB') from the server device private exponent component (dB).

8. The method of claim 1 , wherein said client part of the current RSA signature (HS 1 ) is generated by the client device (A) using as signing key the result of subtracting the updated client dynamic offset (hA′) from the client device private exponent component (dA) and said server part of the current RSA signature (HS 2 ) is generated by the server device (B) using as signing key the sum of the updated server dynamic offset (hB′) and the server device private exponent component (dB).

9. The method of claim 1 , wherein the client part of the current RSA signature HS 1 of a message to be signed M is equal to H(M) dA+hA′ mod n, the server part ofthe current RSA signature HS 2 of said message to be signed M is equal to H(M) dB−hB′ mod n, and the current RSA signature of said message to be signed M is equal to HS 1 *HS 2 mod n, with H(M) a hashing of said message to be signed M .

10. The method of claim 1 , wherein said first predetermined step (E) and said second predetermined step (E′) are equal positive values.

11. The method of claim 1 , wherein said first predetermined step (E) is a positive value, said second predetermined step (E′) is equal to said first predetermined step (E) at the first execution of step c and said second predetermined step (E′) is the opposite of said first predetermined step (E) at subsequent executions of step c during step g.

12. The method of claim 1 , comprising receiving a PIN (Personal Identification Number) from the client device (A) in order to authenticate a user of the client device (A) and:

when said PIN is correct, increasing said first predetermined threshold,

when said PIN is incorrect, suspending said performing said method.

13. A computer program product comprising a memory having software code instructions stored thereon, the software code instructions, when executed by a computer processor, perform a method for securing generation by a client device (A) and a server device (B) of an RSA (Rivest-Shamir-Adleman) signature (H(M){circumflex over ( )}d) of a message to be signed (M) with a private exponent component d of an RSA key (p, q, N, d, e) against cloning attacks, where e is a public exponent component, N is a RSA modulus, p, q primes such N=p.q and e.d=1 modulo phi(N) with phi(N) Euler's function,

wherein said client device (A) stores a client device private key equal to (N, dA) with dA a client device private exponent component, a client value (pvA), and a client dynamic offset (hA),

and wherein said server device (B) stores a server device private key equal to (N, dB) with dB a server device private exponent component, where dB=d−dA modulo phi(N), a server value (pvB), a server dynamic offset (hB) and a failure counter,

said method includes steps performed by the server device (B):

a. receiving from the client device a client part of said RSA signature (HS 1 ) of said message to be signed (M) generated by the client device (A), after incrementing its client value (pvA) by a first predetermined step (E), from the client device private exponent component (dA), and from an updated client dynamic offset (hA′), said updated client dynamic offset (hA′) being function of said client dynamic offset (hA) and of a client shift value (cA), said client shift value (cA) being function of said client value (pvA),

b. setting said failure counter to a first default value,

c. incrementing said server value (pvB) by a second predetermined step (E′),

d. generating a server part of said RSA signature (HS 2 ) of said message to be signed (M), from the server device private exponent component (dB), and from an updated server dynamic offset (hB′), said updated server dynamic offset (hB′) being function of said server dynamic offset (hB) and of a server shift value (cB), said server shift value (cB) being function of said server value (pvB),

e. generating said RSA signature by combining said client part of said RSA signature (HS 1 ) and said server part of said RSA signature (HS 2 ),

f. checking if the generation of the RSA signature was a failure or a success and when it was a failure, incrementing said failure counter,

g. when the generation of the RSA signature was a failure, iteratively repeating above steps c\ to f\, until said RSA signature of said message to be signed M is successfully generated or said failure counter reaches a first predetermined threshold thereby preventing cloning attacks based on repetition of RSA signature generation steps.

14. A system ( 100 ) comprising a server (B) and a client device (A) cooperating to perform a method for securing generation by a client device (A) and a server device (B) of an RSA (Rivest-Shamir-Adleman) signature (H(M){circumflex over ( )}d) of a message to be signed (M) with a private exponent component d of an RSA key (p, q, N, d, e) against cloning attacks, where e is a public exponent component, N is a RSA modulus, p, q primes such N=p.q and e.d=1 modulo phi(N) with phi(N) Euler's function,

wherein said client device (A) stores a client device private key equal to (N, dA) with dA a client device private exponent component, a client value (pvA), and a client dynamic offset (hA),

and wherein said server device (B) stores a server device private key equal to (N, dB) with dB a server device private exponent component, where dB =d−dA modulo phi(N), a server value (pvB), a server dynamic offset (hB) and a failure counter,

said method comprising the following steps performed by the server device (B):

receiving from the client device a client part of said RSA signature (HS 1 ) of said message to be signed (M) generated by the client device (A), after incrementing its client value (pvA) by a first predetermined step (E), from the client device private exponent component (dA), and from an updated client dynamic offset (hA′), said updated client dynamic offset (hA′) being function of said client dynamic offset (hA) and of a client shift value (cA), said client shift value (cA) being function of said client value (pvA),

setting said failure counter to a first default value,

incrementing said server value (pvB) by a second predetermined step (E′),

generating a server part of said RSA signature (HS 2 ) of said message to be signed (M), from the server device private exponent component (dB), and from an updated server dynamic offset (hB′), said updated server dynamic offset (hB′) being function of said server dynamic offset (hB) and of a server shift value (cB), said server shift value (cB) being function of said server value (pvB),

generating said RSA signature by combining said client part of said RSA signature (HS 1 ) and said server part of said RSA signature (HS 2 ),

checking if the generation of the RSA signature was a failure or a success and when it was a failure, incrementing said failure counter,

when the generation of the RSA signature was a failure, iteratively repeating above steps c\ to f\, until said RSA signature of said message to be signed M is successfully generated or said failure counter reaches a first predetermined threshold thereby preventing cloning attacks based on repetition of RSA signature generation steps.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2023
From: THALES DIS FRANCE SA
To: THALES DIS FRANCE SAS
Reel/Frame 064730/0307 →
CHANGE OF NAME Recorded Jun 8, 2021
From: GEMALTO SA
To: THALES DIS FRANCE SA
Reel/Frame 056609/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2019
From: ATMOPAWIRO, ALSASIAN; DANG, THI TRA GIANG
To: GEMALTO SA
Reel/Frame 049819/0049 →