IP Library Granted Patent US 10,897,345
Granted Patent B2
US 10,897,345 · App. 15/866,356 · Granted Jan 19, 2021

Method for encrypting or decrypting a n-tuple of data with a n-tuple of predetermined secret keys

Inventors: Emmanuel Prouff (Issy les Moulineaux, FR); Roch Olivier Lescuyer De Chaptal-Lamure (Issy les Moulineaux, FR); Victor Servant (Issy les Moulineaux, FR)
Assignee: IDEMIA IDENTITY & SECURITY FRANCE
H04L9/06H04L9/14G06F17/10H04L9/08H04L2209/16
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,897,345
App. No.
15/866,356
Granted
Jan 19, 2021
Kind
B2
Abstract

A method for encrypting or decrypting a n-tuple of data ({a i } i∈[[0,n-1]] ) with a n-tuple of secret keys ({k i } i∈[[0,n-1]] ). The method uses a data-processor to perform the steps of: (a) for each element (a i ), determining m>n first internal states ({y ij } j∈[[0,m-1]] ) by application of m first operations, each: represented by a table (T ij ), and defined as the combination of a single bijective internal encoding (G ij ), of a non-linear sharing function (D i , E i , F i . . . ), and of a given non-linear permutation function (ƒ) parameterized with the secret key (k i ), and (b) for each n-tuple of first internal states ({y ij } i∈[[0,n-1]] ), determining a second internal state (z j ) by application of a second operation: represented by a table (T Lj ), and defined as the combination of a second single bijective internal encoding (G Lj ), a linear multiplexing function (L), and the inverses of the first bijective internal encodings (G ij ).

Claims (69)

1. A method for encrypting or decrypting a n-tuple of data ({a i } i∈[[0,n-1]] ) with a n-tuple of predetermined secret keys ({k i } i∈[[0,n-1]] ), n≥2, for a given non-linear permutation function (ƒ) and a given linear multiplexing function (L), the method being characterized in that it comprises a data processor ( 11 a ) of equipment ( 10 a ) implementing steps of:

(a) For each element (a i ) of said n-tuple of data ({a i } i∈[[0,n-1]] ), determination of m>n first internal states ({y ij } j∈[[0,m-1]] ) by application to said element (a i ) of m first operations, each being:

represented by a table (T ij ) stored on a memory ( 12 a ) of the equipment ( 10 a ), and

defined as the combination of a single bijective internal encoding (G ij ), of a non-linear sharing function (D i , E i , F i . . . ), and of the non-linear permutation function (ƒ) parameterized with the corresponding secret key (k i ), said non-linear sharing functions (D i , E i , F i . . . ) forming n collections ({(D i , E i , F i . . . )} i∈[[0,n-1]] ) such that the m functions of a collection share any input datum in m fragments whereof the sum is equal to the input datum, with ∀i∈[[0, n-1]], ∀x, x=D i (x)+E i (x)+F i (x)+ . . . ;

all of said first internal states y ij ; determined for all said elements (a i ) forming m n-tuples of internal states ({{y ij } i∈[[0,n-1]] } j∈[[0,m-1]] );

(b) For each n-tuple of first internal states ({y ij } i∈[[0,n-1]] ), determination of a second internal state (z j ) by application to said internal states (y ij ) of the n-tuple of first internal states ({y ij } i∈[[0,n-1]] ) of a second operation being:

represented by a table (T Lj ) stored on the memory ( 12 a ) of the equipment ( 10 a ), and

defined as the combination of a second single bijective internal encoding (G Lj ), of the linear multiplexing function (L), and of the inverses of said first bijective internal encodings (G ij ).

2. The method according to claim 1 , wherein ∀i∈[[0, n-1]], y i0 =T i0 ([a i ]=G i0 ∘D i ∘ƒ(a i +k i ), y i1 =T i1 [a i ]=G i1 ∘E i ∘ƒ(a i +k i ), y i2 =T i2 [a i ]=G i2 ∘F i ∘ƒ(a i +k i ), etc.

3. The method according to claim 2 , wherein z j =T Lj [y 0j , y 1j . . . ]=G Lj ∘L(G 0j −1 [y 0j ], G 1j −1 [y 1j ] . . . ).

4. The method according to claim 1 , comprising prior to said step (a) random generation by a data processor ( 11 b ) of a server ( 10 b ) connected to the equipment ( 1 a ) of m−1 non-linear sharing functions (E i , F i . . . ) for each collection (D i , E i , F i . . . ), from which the m-th non-linear sharing function (D i ) is built.

5. The method according to claim 4 , wherein said random generation further comprises random generation of internal encodings (G ij , G Lj ), construction of tables (T ij , T Lj ), and their transmission to the equipment ( 10 a ) for storage on the memory ( 12 a ).

6. The method according to claim 1 , comprising the repetition of said steps (a) and (b) so as to encrypt or decrypt a set of data comprising those of said n-tuple ({a i } i∈[[0,n-1]] ).

7. The method according to claim 1 , further comprising a determination step (c) of the encrypted/decrypted (z) of said n-tuple of data ({a i } i∈[[0,n-1]] ) by application to said second internal states ({z j } j∈[[0,m-1]] ) of a third operation being:

represented by a table (T z ) stored on the storage ( 12 a ) of the equipment ( 10 a ), and

defined as the sum of the inverses of said second bijective internal encodings (G Lj ).

8. The method according to claim 7 , wherein

z

=

T

z

[

{

z

j

}

j

0

,

m

-

1

]

=

j

=

0

m

-

1

G

Lj

-

1

[

z

j

]

.

9. The method according to claim 1 , wherein n=2.

10. The method according to claim 9 , wherein said linear multiplexing function (L) is the eXclusive OR function.

11. The method according to claim 1 , wherein m=3.

12. The method according to claim 1 , wherein each element (a i ) of said n-tuple of data ({a i } i∈[[0,n-1]] ) has a size of one byte or of one half-byte.

13. The method according to claim 1 , wherein said non-linear permutation function (ƒ) is that of a cryptographic algorithm selected from DES and AES.

14. A non-transitory computer readable medium on which is stored a computer program product including code instructions for executing a method for encryption or decryption of a n-tuple of data ({a i } i∈[[0,n-1]] ) with a n-tuple of predetermined secret keys ({k i } i∈[[0,n-1]] ) comprising:

(a) For each element (a i ) of said n-tuple of data ({a i } i∈[[0,n-1]] ), determination of m>n first internal states ({y ij } j∈[[0,m-1]] ) by application to said element (a i ) of m first operations, each being:

represented by a table (T ij ) stored on a memory ( 12 a ) of the equipment ( 10 a ), and

defined as the combination of a single bijective internal encoding (G ij ), of a non-linear sharing function (D i , E i , F i . . . ), and of the non-linear permutation function (ƒ) parameterized with the corresponding secret key (k i ), said non-linear sharing functions (D_i, E_i, F_i . . . ) forming n collections ({(D_i, E_i, F_i . . . )}_(i ∈[[0, n-1]])) such that the m functions of a collection share any input datum in m fragments whereof the sum is equal to the input datum, with ∀i ∈[[0, n-1]], ∀x, x=D i (x)+E i (x)+F i (x)+ . . . ;

all of said first internal states y ij determined for all said elements (a i ) forming m n-tuples of internal states ({{y ij } i∈[[0,n-1]] } j∈[[0,m-1]] );

(b) For each n-tuple of first internal states ({y ij } i∈[[0,n-1]] ), determination of a second internal state (z j ) by application to said internal states (y ij ) of the n-tuple of first internal states ({y ij } i∈[[0,n-1]] ) of a second operation being:

represented by a table (T Lj ) stored on the memory ( 12 a ) of the equipment ( 10 a ), and

defined as the combination of a second single bijective internal encoding (G Lj ), of the linear multiplexing function (L), and of the inverses of said first bijective internal encodings (G ij ).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2025
From: IDEMIA IDENTITY & SECURITY FRANCE
To: IDEMIA FRANCE
Reel/Frame 070632/0157 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2019
From: PROUFF, EMMANUEL; LESCUYER DE CHAPTAL-LAMURE, ROCH OLIVIER; SERVANT, VICTOR
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 051332/0294 →