generalized sparse matrices and applications to decoding ... · we will study two codes (mdpc and...

116
Introduction Decoding codes with sparse parity check matrix Applications in Cryptography Generalized Sparse Matrices and Applications to Decoding and Cryptography Maxime BROS University of Limoges (France) XLIM Research Institute, UMR 7252 newline [email protected] May 23, 2019 Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Upload: others

Post on 25-Jul-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Generalized Sparse Matrices and Applications to Decoding andCryptography

Maxime BROS

University of Limoges (France)XLIM Research Institute, UMR 7252

[email protected]

May 23, 2019

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 2: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

1 Introduction

2 Decoding codes with sparse parity check matrix

3 Applications in Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 3: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Reminder about Error Correcting Codes

Error correcting codes are used to transmit informations (satellites, DVD,telecommunications, ...) but also for cryptographic purpose.

Code (definition)

A code C is vector space of GF (q)n of dimension k.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 4: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Reminder about Error Correcting Codes

Error correcting codes are used to transmit informations (satellites, DVD,telecommunications, ...) but also for cryptographic purpose.

Code (definition)

A code C is vector space of GF (q)n of dimension k.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 5: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Reminder about Error Correcting Codes

Error correcting codes are used to transmit informations (satellites, DVD,telecommunications, ...) but also for cryptographic purpose.

Code (definition)

A code C is vector space of GF (q)n of dimension k.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 6: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Reminder about Error Correcting Codes

Parity Check Matrix

H is a parity check matrix for the code C if for every word c ∈ GF (q)n :

c ∈ C ⇐⇒ HcT = 0n−k

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 7: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Hard Problems in Coding Theory

Decoding Problem (computational)

Let G be a matrix k × n over a field K,y a vector of length n (with coefficients in K)and ω ∈ N.

Find m ∈ Kk such that weight(y −mG ) for a given metric is smalleror equal to ω.

Syndrome Decoding Problem (computational)

Let H be a matrix (n − k)× n over a field K,s a vector of length (n − k) (with coefficients in K)and ω ∈ N.

Find e ∈ Kn with weight smaller or equal to ω for a given metricsuch that Het = s ?

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 8: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Hard Problems in Coding Theory

Decoding Problem (computational)

Let G be a matrix k × n over a field K,y a vector of length n (with coefficients in K)and ω ∈ N.

Find m ∈ Kk such that weight(y −mG ) for a given metric is smalleror equal to ω.

Syndrome Decoding Problem (computational)

Let H be a matrix (n − k)× n over a field K,s a vector of length (n − k) (with coefficients in K)and ω ∈ N.

Find e ∈ Kn with weight smaller or equal to ω for a given metricsuch that Het = s ?

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 9: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Hard Problems in Coding Theory

These 2 problems are equivalent.

Proven NP-complete with Hamming metric in 1978 by Berlekamp,McEliece and Tilborg.

Proven to be probabilistically NP-complete with rank metric in 2017by Gaborit and Zemor.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 10: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Hard Problems in Coding Theory

These 2 problems are equivalent.

Proven NP-complete with Hamming metric in 1978 by Berlekamp,McEliece and Tilborg.

Proven to be probabilistically NP-complete with rank metric in 2017by Gaborit and Zemor.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 11: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Reminder about Error Correcting CodesDecoding and Syndrome Decoding Problems

Hard Problems in Coding Theory

These 2 problems are equivalent.

Proven NP-complete with Hamming metric in 1978 by Berlekamp,McEliece and Tilborg.

Proven to be probabilistically NP-complete with rank metric in 2017by Gaborit and Zemor.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 12: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding codes with sparse parity check matrix

We will study two codes (MDPC and LRPC) for which one uses thesparsity of their parity check matrix to decode.

The notion of sparsity one uses depends on the chosen metric.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 13: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding codes with sparse parity check matrix

We will study two codes (MDPC and LRPC) for which one uses thesparsity of their parity check matrix to decode.

The notion of sparsity one uses depends on the chosen metric.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 14: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

MDPC

For MDPC codes sparse means : majority of zeros in the matrix(only O(

√n) 1’s per row)

Only H is sparse =⇒ “Moderate Density Parity Check”.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 15: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

MDPC

For MDPC codes sparse means : majority of zeros in the matrix(only O(

√n) 1’s per row)

Only H is sparse =⇒ “Moderate Density Parity Check”.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 16: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome.

More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 17: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 18: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)=

{1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 19: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1

, 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 20: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1

, 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 21: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1

, 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 22: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}

Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 23: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 24: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4

+1

y5y6y7y8

+1

y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 25: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8

+1

y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 26: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

Reminder : only the error contributes to the syndrome. More preciselyHyT = HcT︸︷︷︸

=0

+HeT

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 11 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 00 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 00 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 00 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 00 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 00 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 01 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 00 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0

y1y2y3y4+1y5y6y7y8+1y9y10y11y12y13y14. . .y20

=

01011101100

#(common 1’s)= {1 , 1 , 1 , 3, 2, 2, 2, 3, 1, 1, 1, 1, 2, 2, 0, 1, 2, 1, 1, 2}Let τ = 3 be our threshold.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 27: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until either

s = 0n−k =⇒ RETURN the last y ,which is the codeword

a certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 28: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until either

s = 0n−k =⇒ RETURN the last y ,which is the codeword

a certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 29: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until either

s = 0n−k =⇒ RETURN the last y ,which is the codeword

a certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 30: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until either

s = 0n−k =⇒ RETURN the last y ,which is the codeword

a certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 31: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until either

s = 0n−k =⇒ RETURN the last y ,which is the codeword

a certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 32: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until eithers = 0n−k =⇒ RETURN the last y ,

which is the codeword

a certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 33: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Gallager’s algorithm

One receives a word y := mG + e = codeword + error .

Bit-flipping algorithm

1 Compute the syndrome s = HyT

2 For each of the n columns of H, count the number of common 1’s betweenthe syndrome and this column

3 For a given column i , if this number of common 1’s is greater than athreshold τ , then change the i th bit of y

4 Call this new vector y again, and go back to the first step, until eithers = 0n−k =⇒ RETURN the last y ,

which is the codeworda certain numberof iterations is reached =⇒ RETURN FAIL

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 34: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank Decoding Problem

In 1985, Gabidulin, a Russian researcher, introduced rank-codes overan extension field(the use of rank metric started in 1951 by Hua and then in 1978 by Delsarte who

introduced rank distance for matrix-codes).

Using this metric instead of the Hamming metric :

Decoding Problem =⇒ Rank Decoding Problem (RD)Syndrome Decoding Problem =⇒ Rank Syndrome Decoding Pb. (RSD)

Figure: Ernst Gabidulin (1937 (U.S.S.R) - aged 81 today)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 35: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank Decoding Problem

In 1985, Gabidulin, a Russian researcher, introduced rank-codes overan extension field(the use of rank metric started in 1951 by Hua and then in 1978 by Delsarte who

introduced rank distance for matrix-codes).

Using this metric instead of the Hamming metric :

Decoding Problem =⇒ Rank Decoding Problem (RD)Syndrome Decoding Problem =⇒ Rank Syndrome Decoding Pb. (RSD)

Figure: Ernst Gabidulin (1937 (U.S.S.R) - aged 81 today)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 36: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank Decoding Problem

In 1985, Gabidulin, a Russian researcher, introduced rank-codes overan extension field(the use of rank metric started in 1951 by Hua and then in 1978 by Delsarte who

introduced rank distance for matrix-codes).Using this metric instead of the Hamming metric :

Decoding Problem =⇒ Rank Decoding Problem (RD)Syndrome Decoding Problem =⇒ Rank Syndrome Decoding Pb. (RSD)

Figure: Ernst Gabidulin (1937 (U.S.S.R) - aged 81 today)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 37: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank Decoding Problem

In 1985, Gabidulin, a Russian researcher, introduced rank-codes overan extension field(the use of rank metric started in 1951 by Hua and then in 1978 by Delsarte who

introduced rank distance for matrix-codes).Using this metric instead of the Hamming metric :

Decoding Problem =⇒ Rank Decoding Problem (RD)

Syndrome Decoding Problem =⇒ Rank Syndrome Decoding Pb. (RSD)

Figure: Ernst Gabidulin (1937 (U.S.S.R) - aged 81 today)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 38: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank Decoding Problem

In 1985, Gabidulin, a Russian researcher, introduced rank-codes overan extension field(the use of rank metric started in 1951 by Hua and then in 1978 by Delsarte who

introduced rank distance for matrix-codes).Using this metric instead of the Hamming metric :

Decoding Problem =⇒ Rank Decoding Problem (RD)Syndrome Decoding Problem =⇒ Rank Syndrome Decoding Pb. (RSD)

Figure: Ernst Gabidulin (1937 (U.S.S.R) - aged 81 today)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 39: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Reminder about finite fields

GF (qm) is a GF (q)-vector space of dimension m

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 40: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Reminder about finite fields

GF (qm) is a GF (q)-vector space of dimension m

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 41: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

m = 4, and let e ∈ GF (24)4

e = (1 + α2, α, 1, α2)

M =

1αα2

α3

1 0 0 00 0 0 01 0 0 00 0 0 0

e can be represented by a matrix M of GF (2)We define Rank(e) = Rank(M) = 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 42: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

m = 4, and let e ∈ GF (24)4

e = (1 + α2, α, 1, α2)

M =

1αα2

α3

1 0 0 00 0 0 01 0 0 00 0 0 0

e can be represented by a matrix M of GF (2)We define Rank(e) = Rank(M) = 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 43: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

m = 4, and let e ∈ GF (24)4

e = (1 + α2, α, 1, α2)

M =

1αα2

α3

1 0 1 00 1 0 01 0 0 10 0 0 0

e can be represented by a matrix M of GF (2)We define Rank(e) = Rank(M) = 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 44: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

m = 4, and let e ∈ GF (24)4

e = (1 + α2, α, 1, α2)

M =

1αα2

α3

1 0 1 00 1 0 01 0 0 10 0 0 0

e can be represented by a matrix M of GF (2)We define Rank(e) = Rank(M) = 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 45: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

m = 4, and let e ∈ GF (24)4

e = (1 + α2, α, 1, α2)

M =

1αα2

α3

1 0 1 00 1 0 01 0 0 10 0 0 0

e can be represented by a matrix M of GF (2)We define Rank(e) = Rank(M) = 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 46: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

Notation : all presentation long, q is a power of a prime p andm, n ∈ N∗.

Rank of a GF (qm)n word

Let e = (e1, e2, . . . , en) be a vector of GF (qm)n.Given a basis B = (B1,B2, . . . ,Bm) of GF (qm) over GF (q), one gets :∀i ∈ {1, .., n},∃! (ei,1, ei,2, . . . , ei,m) ∈ GF (q)m such thatei =

∑mj=1 ei,j · Bj .

The rank of e, noted Rank(e), is defined by the rank of the matrix(ei,j)1≤i≤n

1≤j≤m.

Rank distance

d : GF (qm)n × GF (qm)n → N(e1, e2) 7→ Rank(e1 − e2)

is a distance (or a metric) over GF (qm)n.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 47: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Rank metric

Notation : all presentation long, q is a power of a prime p andm, n ∈ N∗.

Rank of a GF (qm)n word

Let e = (e1, e2, . . . , en) be a vector of GF (qm)n.Given a basis B = (B1,B2, . . . ,Bm) of GF (qm) over GF (q), one gets :∀i ∈ {1, .., n},∃! (ei,1, ei,2, . . . , ei,m) ∈ GF (q)m such thatei =

∑mj=1 ei,j · Bj .

The rank of e, noted Rank(e), is defined by the rank of the matrix(ei,j)1≤i≤n

1≤j≤m.

Rank distance

d : GF (qm)n × GF (qm)n → N(e1, e2) 7→ Rank(e1 − e2)

is a distance (or a metric) over GF (qm)n.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 48: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Code properties in Rank metric

What are the differences between code with Hamming and Rank metric ?

Minimal distance of a code with rank metric

Let C be a [n, k, d ]-code over GF (qm) for the rank metricAs long as C is additive :

d = min{Rank(c) | c ∈ C}

Support of a word in C

The support of an element x = (x1, . . . , xn) ∈ GF (qm)n is theGF (q)-vector space of GF (q)m generated by the coordinates xi of x .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 49: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Code properties in Rank metric

What are the differences between code with Hamming and Rank metric ?

Minimal distance of a code with rank metric

Let C be a [n, k, d ]-code over GF (qm) for the rank metricAs long as C is additive :

d = min{Rank(c) | c ∈ C}

Support of a word in C

The support of an element x = (x1, . . . , xn) ∈ GF (qm)n is theGF (q)-vector space of GF (q)m generated by the coordinates xi of x .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 50: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Support of a word

e = (1 + α2, α, 1, α2) ∈ GF (24)4 and Rank(e) = 3

support(e) =<

1010

,

0100

,

1000

,

0010

>

=<

1000

,

0100

,

0010

>

support(e) is a vector space E of GF (2)4 of dimension 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 51: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Support of a word

e = (1 + α2, α, 1, α2) ∈ GF (24)4 and Rank(e) = 3

support(e) =<

1010

,

0100

,

1000

,

0010

>

=<

1000

,

0100

,

0010

>

support(e) is a vector space E of GF (2)4 of dimension 3

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 52: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

LRPC

In this context, rank metric, sparse means with values in a vectorspace of small dimension d , as seen before it uses the generalizationof the support to rank metric.

The sparse matrix is still H =⇒“Low Rank Parity Check”.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 53: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

LRPC

In this context, rank metric, sparse means with values in a vectorspace of small dimension d , as seen before it uses the generalizationof the support to rank metric.

The sparse matrix is still H =⇒“Low Rank Parity Check”.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 54: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

As for the Hamming metric, the knowledge of the support of the error isenough to decode.

Let H be the parity check matrix of an LRPC code, with coefficientsin F ⊂ GF (2)N of dimension d .

Let e be the error, with coefficients in E ⊂ GF (2)N of dimension r .i.e supp(e) = E .

From the syndrome s := HyT = HeT , one gets the vector spaceS :=< s1, . . . , sn−k >

This vector space is a subset of the product space < EF > ofdimension at most rd .

Since rd < (n − k), it is very likely that S =< EF >.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 55: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

As for the Hamming metric, the knowledge of the support of the error isenough to decode.

Let H be the parity check matrix of an LRPC code, with coefficientsin F ⊂ GF (2)N of dimension d .

Let e be the error, with coefficients in E ⊂ GF (2)N of dimension r .i.e supp(e) = E .

From the syndrome s := HyT = HeT , one gets the vector spaceS :=< s1, . . . , sn−k >

This vector space is a subset of the product space < EF > ofdimension at most rd .

Since rd < (n − k), it is very likely that S =< EF >.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 56: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

As for the Hamming metric, the knowledge of the support of the error isenough to decode.

Let H be the parity check matrix of an LRPC code, with coefficientsin F ⊂ GF (2)N of dimension d .

Let e be the error, with coefficients in E ⊂ GF (2)N of dimension r .i.e supp(e) = E .

From the syndrome s := HyT = HeT , one gets the vector spaceS :=< s1, . . . , sn−k >

This vector space is a subset of the product space < EF > ofdimension at most rd .

Since rd < (n − k), it is very likely that S =< EF >.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 57: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

As for the Hamming metric, the knowledge of the support of the error isenough to decode.

Let H be the parity check matrix of an LRPC code, with coefficientsin F ⊂ GF (2)N of dimension d .

Let e be the error, with coefficients in E ⊂ GF (2)N of dimension r .i.e supp(e) = E .

From the syndrome s := HyT = HeT , one gets the vector spaceS :=< s1, . . . , sn−k >

This vector space is a subset of the product space < EF > ofdimension at most rd .

Since rd < (n − k), it is very likely that S =< EF >.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 58: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

As for the Hamming metric, the knowledge of the support of the error isenough to decode.

Let H be the parity check matrix of an LRPC code, with coefficientsin F ⊂ GF (2)N of dimension d .

Let e be the error, with coefficients in E ⊂ GF (2)N of dimension r .i.e supp(e) = E .

From the syndrome s := HyT = HeT , one gets the vector spaceS :=< s1, . . . , sn−k >

This vector space is a subset of the product space < EF > ofdimension at most rd .

Since rd < (n − k), it is very likely that S =< EF >.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 59: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

As for the Hamming metric, the knowledge of the support of the error isenough to decode.

Let H be the parity check matrix of an LRPC code, with coefficientsin F ⊂ GF (2)N of dimension d .

Let e be the error, with coefficients in E ⊂ GF (2)N of dimension r .i.e supp(e) = E .

From the syndrome s := HyT = HeT , one gets the vector spaceS :=< s1, . . . , sn−k >

This vector space is a subset of the product space < EF > ofdimension at most rd .

Since rd < (n − k), it is very likely that S =< EF >.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 60: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

Let Fi be the i th element of a basis of F , let’s consider the vector space

F−1i S =

F−1i < F−1i E1F1, F−1i E2F1, . . . F−1i ErF1,F−1i E1F2, F−1i E2F2, . . . F−1i ErF2,

. . . . . . . . . . . .F−1i E1Fi , F−1i E2Fi , . . . F−1i ErFi ,

. . . . . . . . . . . .F−1i E1Fd , F−1i E2Fd , . . . F−1i ErFd , >

So we have E ⊂ F−1i S forall i from 1 to d

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 61: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

Let Fi be the i th element of a basis of F , let’s considerer the vector space

F−1i S =

F−1i < F−1i E1F1, F−1i E2F1, . . . F−1i ErF1,F−1i E1F2, F−1i E2F2, . . . F−1i ErF2,

. . . . . . . . . . . .F−1i E1Fi , F−1i E2Fi , . . . F−1i ErFi ,

. . . . . . . . . . . .F−1i E1Fd , F−1i E2Fd , . . . F−1i ErFd , >

So we have E ⊂ F−1i S forall i from 1 to d

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 62: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

Let Fi be the i th element of a basis of F , let’s considerer the vector space

F−1i S =

F−1i < F−1i E1F1, F−1i E2F1, . . . F−1i ErF1,F−1i E1F2, F−1i E2F2, . . . F−1i ErF2,

. . . . . . . . . . . .E1, E2, . . . Er ,. . . . . . . . . . . .

F−1i E1Fd , F−1i E2Fd , . . . F−1i ErFd , >

So we have E ⊂ F−1i S , ∀ i ∈ {1, . . . , d}.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 63: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

Let Fi be the i th element of a basis of F , let’s considerer the vector space

F−1i S =

F−1i < F−1i E1F1, F−1i E2F1, . . . F−1i ErF1,F−1i E1F2, F−1i E2F2, . . . F−1i ErF2,

. . . . . . . . . . . .E1, E2, . . . Er ,. . . . . . . . . . . .

F−1i E1Fd , F−1i E2Fd , . . . F−1i ErFd , >

So we have E ⊂ F−1i S , ∀ i ∈ {1, . . . , d}.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 64: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

E ⊂ F−1i S := Si ∀ i ∈ {1, . . . , d}

The co-space of E in F−1i S is very likely to be different for i ′ 6= i .

And so the key to the decoding algorithm of LRPC is that (with highprobability)

d⋂i=1

Si = E

Knowing the support of the error, one has to solve a linear systemwith more equations than unknowns to find the error and so todecode y .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 65: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

E ⊂ F−1i S := Si ∀ i ∈ {1, . . . , d}The co-space of E in F−1i S is very likely to be different for i ′ 6= i .

And so the key to the decoding algorithm of LRPC is that (with highprobability)

d⋂i=1

Si = E

Knowing the support of the error, one has to solve a linear systemwith more equations than unknowns to find the error and so todecode y .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 66: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

E ⊂ F−1i S := Si ∀ i ∈ {1, . . . , d}The co-space of E in F−1i S is very likely to be different for i ′ 6= i .

And so the key to the decoding algorithm of LRPC is that (with highprobability)

d⋂i=1

Si = E

Knowing the support of the error, one has to solve a linear systemwith more equations than unknowns to find the error and so todecode y .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 67: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

E ⊂ F−1i S := Si ∀ i ∈ {1, . . . , d}The co-space of E in F−1i S is very likely to be different for i ′ 6= i .

And so the key to the decoding algorithm of LRPC is that (with highprobability)

d⋂i=1

Si = E

Knowing the support of the error, one has to solve a linear systemwith more equations than unknowns to find the error and so todecode y .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 68: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

This decoding is probabilistic, but the failure probability decreasesexponentially according to the parameters.

For instance, with parameters [n = 94, k = 47,N = 47, d = r = 5]for a binary LRPC, P(failure) = 2−23.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 69: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

MDPCRank MetricLRPC

Decoding LRPC

This decoding is probabilistic, but the failure probability decreasesexponentially according to the parameters.

For instance, with parameters [n = 94, k = 47,N = 47, d = r = 5]for a binary LRPC, P(failure) = 2−23.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 70: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Asymmetric Cryptography (or Public Key Cryptography)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 71: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 72: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 73: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 74: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 75: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 76: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 77: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Asymmetric Cryptography

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 78: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

McEliece cryptosystem

Robert McEliece (1942 - 2019) started code-based cryptography in 1978.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 79: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

McEliece cryptosystem

Robert McEliece (1942 - 2019) started code-based cryptography in 1978.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 80: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

McEliece cryptosystem

McEliece cryptosystem (or setting)

Let C be a linear code [n, k , d ]-code, decodable up to t = (d − 1)/2errors in polynomial time with an algorithm D.

Private Key : the generator matrix G of C (usually in systematic form),S a non-singular k × k matrix and P a n × n permutation matrix.Public Key : G ′ = SGP

Encryption : let m be the plaintext (of length k), the cipher text isy = mG ′ + e with w(e) ≤ t (e random).Decryption :

Compute yP−1 = (mS)G + eP−1

Decode mSG = D(yP−1)

Recover mS and then m (using S−1)

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 81: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Application to Cryptography : hiding the structure

Attack : recovering the plaintext=⇒ Decoding Random Code Problem under the assumption thatC′ is indistinguishable from a random code.

This is not the case if C has a “strong” algebraic structure(Reed-Solomon or Gabidulin for instance).

One wants to get rid of the “scrambling” step.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 82: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Application to Cryptography : hiding the structure

Attack : recovering the plaintext=⇒ Decoding Random Code Problem under the assumption thatC′ is indistinguishable from a random code.

This is not the case if C has a “strong” algebraic structure(Reed-Solomon or Gabidulin for instance).

One wants to get rid of the “scrambling” step.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 83: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Application to Cryptography : hiding the structure

Attack : recovering the plaintext=⇒ Decoding Random Code Problem under the assumption thatC′ is indistinguishable from a random code.

This is not the case if C has a “strong” algebraic structure(Reed-Solomon or Gabidulin for instance).

One wants to get rid of the “scrambling” step.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 84: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

MDPC cryptosystem

New variant of McEliece cryptosystem [MTSB13] et [GMRZ13]

Let C be an MDPC [n, k, d ]-code, decodable up to t = (d − 1)/2 errors inpolynomial time with a probabilistic decoding algorithm DH (using its sparseparity check matrix H = (h0|h1)).

Private Key : the parity check matrix H of CPublic Key : the generator matrix G = (I |(h0h−1

1 )T ) of C (systematic form).

Encryption : let m be the plaintext (of length k), the cipher text isy = mG + e with w(e) ≤ t (e random).Decryption :

Decode mG = DH(y)

Recover m (extracting the first k components of mG)

Note : LRPC cryptosystem described in 2013 by Gaborit, Murat, Ruatta andZemor is similar but uses rank metric and the LRPC decoding previouslydescribed.Disclaimer : this system has to be modified to be used in practice, since thesystematic form would lead to leaks of the original message.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 85: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

MDPC cryptosystem

New variant of McEliece cryptosystem [MTSB13] et [GMRZ13]

Let C be an MDPC [n, k, d ]-code, decodable up to t = (d − 1)/2 errors inpolynomial time with a probabilistic decoding algorithm DH (using its sparseparity check matrix H = (h0|h1)).

Private Key : the parity check matrix H of CPublic Key : the generator matrix G = (I |(h0h−1

1 )T ) of C (systematic form).

Encryption : let m be the plaintext (of length k), the cipher text isy = mG + e with w(e) ≤ t (e random).Decryption :

Decode mG = DH(y)

Recover m (extracting the first k components of mG)

Note : LRPC cryptosystem described in 2013 by Gaborit, Murat, Ruatta andZemor is similar but uses rank metric and the LRPC decoding previouslydescribed.

Disclaimer : this system has to be modified to be used in practice, since thesystematic form would lead to leaks of the original message.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 86: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

MDPC cryptosystem

New variant of McEliece cryptosystem [MTSB13] et [GMRZ13]

Let C be an MDPC [n, k, d ]-code, decodable up to t = (d − 1)/2 errors inpolynomial time with a probabilistic decoding algorithm DH (using its sparseparity check matrix H = (h0|h1)).

Private Key : the parity check matrix H of CPublic Key : the generator matrix G = (I |(h0h−1

1 )T ) of C (systematic form).

Encryption : let m be the plaintext (of length k), the cipher text isy = mG + e with w(e) ≤ t (e random).Decryption :

Decode mG = DH(y)

Recover m (extracting the first k components of mG)

Note : LRPC cryptosystem described in 2013 by Gaborit, Murat, Ruatta andZemor is similar but uses rank metric and the LRPC decoding previouslydescribed.Disclaimer : this system has to be modified to be used in practice, since thesystematic form would lead to leaks of the original message.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 87: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Hiding the structure

Advantages of MDPC and LRPC :

Almost no algebraic structure.Thus the security doesn’t rely on masking the structure but only onthe hardness of decoding random codes under the assumption ofindistinguability of MDPC and LRPC.

Thus, the “scrambling” step is replaced by going from the sparse Hto the dense G .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 88: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Hiding the structure

Advantages of MDPC and LRPC :

Almost no algebraic structure.Thus the security doesn’t rely on masking the structure but only onthe hardness of decoding random codes under the assumption ofindistinguability of MDPC and LRPC.

Thus, the “scrambling” step is replaced by going from the sparse Hto the dense G .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 89: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Hiding the structure

Advantages of MDPC and LRPC :

Almost no algebraic structure.Thus the security doesn’t rely on masking the structure but only onthe hardness of decoding random codes under the assumption ofindistinguability of MDPC and LRPC.

Thus, the “scrambling” step is replaced by going from the sparse Hto the dense G .

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 90: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Hiding the structure

Few visual examples : M of size 20× 20,coefficients in GF (220) ≈ 1 million elements, dim(F ) = 2.

dim(support(M−1)) = 19.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 91: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Hiding the structure

Few visual examples : M of size 20× 20,coefficients in GF (220) ≈ 1 million elements, dim(F ) = 2.dim(support(M−1)) = 19.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 92: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Hiding the structure

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 93: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Conclusion about sparsity and coding theory

Conclusion about sparsity and coding theory :

One could think that the more structured a code is, the more it candecode (Reed-Solomon, Reed-Muller, Gabidulin, ...)

But a sparse parity check matrix is enough :=⇒the sparser its parity check matrix is, the more a code candecode.

For instance, LDPC (H with O(1) 1′ per row) can decode up toO(n) errors.

Nevertheless, in cryptography, we prefer to use MDPC codes :

We do not want to correct errors but to increase the complexity of attacks.For instance, attacks on LDPC codes would be too easy due to a smallprivate key size.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 94: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Conclusion about sparsity and coding theory

Conclusion about sparsity and coding theory :

One could think that the more structured a code is, the more it candecode (Reed-Solomon, Reed-Muller, Gabidulin, ...)

But a sparse parity check matrix is enough :=⇒the sparser its parity check matrix is, the more a code candecode.

For instance, LDPC (H with O(1) 1′ per row) can decode up toO(n) errors.

Nevertheless, in cryptography, we prefer to use MDPC codes :

We do not want to correct errors but to increase the complexity of attacks.For instance, attacks on LDPC codes would be too easy due to a smallprivate key size.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 95: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Conclusion about sparsity and coding theory

Conclusion about sparsity and coding theory :

One could think that the more structured a code is, the more it candecode (Reed-Solomon, Reed-Muller, Gabidulin, ...)

But a sparse parity check matrix is enough :=⇒the sparser its parity check matrix is, the more a code candecode.

For instance, LDPC (H with O(1) 1′ per row) can decode up toO(n) errors.

Nevertheless, in cryptography, we prefer to use MDPC codes :

We do not want to correct errors but to increase the complexity of attacks.For instance, attacks on LDPC codes would be too easy due to a smallprivate key size.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 96: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Conclusion about sparsity and coding theory

Conclusion about sparsity and coding theory :

One could think that the more structured a code is, the more it candecode (Reed-Solomon, Reed-Muller, Gabidulin, ...)

But a sparse parity check matrix is enough :=⇒the sparser its parity check matrix is, the more a code candecode.

For instance, LDPC (H with O(1) 1′ per row) can decode up toO(n) errors.

Nevertheless, in cryptography, we prefer to use MDPC codes :

We do not want to correct errors but to increase the complexity of attacks.For instance, attacks on LDPC codes would be too easy due to a smallprivate key size.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 97: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Conclusion about sparsity and coding theory

Conclusion about sparsity and coding theory :

One could think that the more structured a code is, the more it candecode (Reed-Solomon, Reed-Muller, Gabidulin, ...)

But a sparse parity check matrix is enough :=⇒the sparser its parity check matrix is, the more a code candecode.

For instance, LDPC (H with O(1) 1′ per row) can decode up toO(n) errors.

Nevertheless, in cryptography, we prefer to use MDPC codes :We do not want to correct errors but to increase the complexity of attacks.

For instance, attacks on LDPC codes would be too easy due to a smallprivate key size.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 98: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Conclusion about sparsity and coding theory

Conclusion about sparsity and coding theory :

One could think that the more structured a code is, the more it candecode (Reed-Solomon, Reed-Muller, Gabidulin, ...)

But a sparse parity check matrix is enough :=⇒the sparser its parity check matrix is, the more a code candecode.

For instance, LDPC (H with O(1) 1′ per row) can decode up toO(n) errors.

Nevertheless, in cryptography, we prefer to use MDPC codes :We do not want to correct errors but to increase the complexity of attacks.For instance, attacks on LDPC codes would be too easy due to a smallprivate key size.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 99: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

As seen previously, the security of rank-based cryptosystems relies on theRSD problem.From now on, I will consider code over GF (2N).

From HeT = s one gets a system of equations.

Very particular form : Quadratic, quasi-bihomogeneous

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 100: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

As seen previously, the security of rank-based cryptosystems relies on theRSD problem.From now on, I will consider code over GF (2N).

From HeT = s one gets a system of equations.

Very particular form : Quadratic, quasi-bihomogeneous

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 101: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

As seen previously, the security of rank-based cryptosystems relies on theRSD problem.From now on, I will consider code over GF (2N).

From HeT = s one gets a system of equations.

Very particular form : Quadratic, quasi-bihomogeneous

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 102: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

As seen previously, the security of rank-based cryptosystems relies on theRSD problem.From now on, I will consider code over GF (2N).

From HeT = s one gets a system of equations.

Very particular form : Quadratic, quasi-bihomogeneous

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 103: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

Take advantage of the small rank of e=⇒ over-constrained system of equations

Number of unknowns : Nr+nr. Nr for the basis of E , nr for e.

Number of equations : (n − k) equations in GF (2N), so N(n − k)equations.

Usually n = N, k = n/2 and r = O(√n), so 2n3/2 unknowns for

(1/2)n2 equations.

One way to solve this system is to use Grobner basiscomputation, but their complexity is poorly known for systemwhich are not semi-regular.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 104: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

Take advantage of the small rank of e=⇒ over-constrained system of equations

Number of unknowns : Nr+nr. Nr for the basis of E , nr for e.

Number of equations : (n − k) equations in GF (2N), so N(n − k)equations.

Usually n = N, k = n/2 and r = O(√n), so 2n3/2 unknowns for

(1/2)n2 equations.

One way to solve this system is to use Grobner basiscomputation, but their complexity is poorly known for systemwhich are not semi-regular.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 105: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

Take advantage of the small rank of e=⇒ over-constrained system of equations

Number of unknowns : Nr+nr. Nr for the basis of E , nr for e.

Number of equations : (n − k) equations in GF (2N), so N(n − k)equations.

Usually n = N, k = n/2 and r = O(√n), so 2n3/2 unknowns for

(1/2)n2 equations.

One way to solve this system is to use Grobner basiscomputation, but their complexity is poorly known for systemwhich are not semi-regular.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 106: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

Take advantage of the small rank of e=⇒ over-constrained system of equations

Number of unknowns : Nr+nr. Nr for the basis of E , nr for e.

Number of equations : (n − k) equations in GF (2N), so N(n − k)equations.

Usually n = N, k = n/2 and r = O(√n), so 2n3/2 unknowns for

(1/2)n2 equations.

One way to solve this system is to use Grobner basiscomputation, but their complexity is poorly known for systemwhich are not semi-regular.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 107: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

Take advantage of the small rank of e=⇒ over-constrained system of equations

Number of unknowns : Nr+nr. Nr for the basis of E , nr for e.

Number of equations : (n − k) equations in GF (2N), so N(n − k)equations.

Usually n = N, k = n/2 and r = O(√n), so 2n3/2 unknowns for

(1/2)n2 equations.

One way to solve this system is to use Grobner basiscomputation, but their complexity is poorly known for systemwhich are not semi-regular.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 108: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

More precisely, if the system were random with# unknowns ≈ # equations, we would have some complexitybounds ([Bar04]).

But in our case, the system is over-constrainted and it has a strongstructure coming from the structure of GF (2N).

Nowadays, GB computation complexity for over-constraintedsystems over GF (2) is still an open question.

Conjecture/Heuristic for the case “quadratically” over-constrainted.

Observations on small RSD instances

=⇒ drop in complexity in comparison to random systems.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 109: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

More precisely, if the system were random with# unknowns ≈ # equations, we would have some complexitybounds ([Bar04]).

But in our case, the system is over-constrainted and it has a strongstructure coming from the structure of GF (2N).

Nowadays, GB computation complexity for over-constraintedsystems over GF (2) is still an open question.

Conjecture/Heuristic for the case “quadratically” over-constrainted.

Observations on small RSD instances

=⇒ drop in complexity in comparison to random systems.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 110: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

More precisely, if the system were random with# unknowns ≈ # equations, we would have some complexitybounds ([Bar04]).

But in our case, the system is over-constrainted and it has a strongstructure coming from the structure of GF (2N).

Nowadays, GB computation complexity for over-constraintedsystems over GF (2) is still an open question.

Conjecture/Heuristic for the case “quadratically” over-constrainted.

Observations on small RSD instances

=⇒ drop in complexity in comparison to random systems.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 111: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

More precisely, if the system were random with# unknowns ≈ # equations, we would have some complexitybounds ([Bar04]).

But in our case, the system is over-constrainted and it has a strongstructure coming from the structure of GF (2N).

Nowadays, GB computation complexity for over-constraintedsystems over GF (2) is still an open question.

Conjecture/Heuristic for the case “quadratically” over-constrainted.

Observations on small RSD instances

=⇒ drop in complexity in comparison to random systems.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 112: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

More precisely, if the system were random with# unknowns ≈ # equations, we would have some complexitybounds ([Bar04]).

But in our case, the system is over-constrainted and it has a strongstructure coming from the structure of GF (2N).

Nowadays, GB computation complexity for over-constraintedsystems over GF (2) is still an open question.

Conjecture/Heuristic for the case “quadratically” over-constrainted.

Observations on small RSD instances

=⇒ drop in complexity in comparison to random systems.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 113: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

More precisely, if the system were random with# unknowns ≈ # equations, we would have some complexitybounds ([Bar04]).

But in our case, the system is over-constrainted and it has a strongstructure coming from the structure of GF (2N).

Nowadays, GB computation complexity for over-constraintedsystems over GF (2) is still an open question.

Conjecture/Heuristic for the case “quadratically” over-constrainted.

Observations on small RSD instances=⇒ drop in complexity in comparison to random systems.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 114: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

Algebraic Attack against RSD

[unknowns, equations] dreg random system dreg for RSD systems[48, 48] 8 (Bardet) [8, 8, 2, 3] =⇒ 5[48, 48] 8 (Bardet) [12, 12, 8, 2] =⇒ 4[58, 70] 7 or 8 (∗) [10, 10, 2, 4] =⇒ 5

(∗) 7 is a prediction using my conjecture for over-constrained systemwhereas 8 would be the result of Bardet’s method for semi-regular system.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 115: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

:-)

Merci !

Thank you !

References : [McE78], [MTSB13], [GMRZ13], [Bar04].

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography

Page 116: Generalized Sparse Matrices and Applications to Decoding ... · We will study two codes (MDPC and LRPC) for which one uses the sparsity of their parity check matrix to decode. The

IntroductionDecoding codes with sparse parity check matrix

Applications in Cryptography

Hiding the structureAlgebraic attacks in the random case

References

Magali Bardet.

Etude des systemes algebriques surdetermines. Applications aux codescorrecteurs et a la cryptographie.Theses, Universite Pierre et Marie Curie - Paris VI, 2004.

Philippe Gaborit, Gaetan Murat, Olivier Ruatta, and Gilles Zemor.Low rank parity check codes and their application to cryptography.In Proceedings of the Workshop on Coding and Cryptography WCC,volume 2013, 2013.

Robert J McEliece.A public-key cryptosystem based on algebraic coding theory.Coding Thv, 4244:114–116, 1978.

Rafael Misoczki, Jean-Pierre Tillich, Nicolas Sendrier, and Paulo SLMBarreto.MDPC-McEliece: New McEliece variants from moderate densityparity-check codes.In 2013 IEEE international symposium on information theory, pages2069–2073. IEEE, 2013.

Maxime BROS Sparse Matrices and Applications to Decoding and Cryptography