Cryptanalysis techniques in algebraic codebased cryptography Alain - - PowerPoint PPT Presentation

cryptanalysis techniques in algebraic code based
SMART_READER_LITE
LIVE PREVIEW

Cryptanalysis techniques in algebraic codebased cryptography Alain - - PowerPoint PPT Presentation

Cryptanalysis techniques in algebraic codebased cryptography Alain Couvreur 1,2 1 INRIA 2 LIX, cole polytechnique Nutmic 2019 A. Couvreur Cryptanalysis in codebased crypto Nutmic 2019 1 / 80 History of codebased cryptography 1


slide-1
SLIDE 1

Cryptanalysis techniques in algebraic code–based cryptography

Alain Couvreur1,2

1INRIA 2LIX, École polytechnique

Nutmic 2019

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 1 / 80

slide-2
SLIDE 2

1

History of code–based cryptography

2

Algebraic cryptanalysis in code–based cryptography

3

How to design secure schemes with codes?

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 2 / 80

slide-3
SLIDE 3

Prerequisites on error correcting codes

Prerequisites on error correcting codes

A linear code is a vector subspace C ⊆ Fn

q:

n is its length;

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 3 / 80

slide-4
SLIDE 4

Prerequisites on error correcting codes

Prerequisites on error correcting codes

A linear code is a vector subspace C ⊆ Fn

q:

n is its length; k is its dimension as an Fq–vector space;

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 3 / 80

slide-5
SLIDE 5

Prerequisites on error correcting codes

Prerequisites on error correcting codes

A linear code is a vector subspace C ⊆ Fn

q:

n is its length; k is its dimension as an Fq–vector space; A t–decoder for C is an algorithm D taking as input x ∈ Fn

q and

returning:

  • c ∈ C such that dH(x, c) t if exists.
  • “?” else.
  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 3 / 80

slide-6
SLIDE 6

Prerequisites on error correcting codes

Prerequisites on error correcting codes

A linear code is a vector subspace C ⊆ Fn

q:

n is its length; k is its dimension as an Fq–vector space; A t–decoder for C is an algorithm D taking as input x ∈ Fn

q and

returning:

  • c ∈ C such that dH(x, c) t if exists.
  • “?” else.

Definition 1 The Hamming distance on Fn

q is defined by:

dH(x, y) def = ♯{i ∈ {1, . . . , n} | xi = yi}.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 3 / 80

slide-7
SLIDE 7

Prerequisites on error correcting codes

A classical operation

Definition 2 Let C ⊆ Fn

qm be a code. Its subfield subcode is defined by:

C ∩ Fn

q.

Very classical operation. Many algebraic codes derive from generalised Reed–Solomon codes using this operation: Goppa codes, BCH codes, Srivastava codes, etc...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 4 / 80

slide-8
SLIDE 8

History of code–based cryptography

1

History of code–based cryptography

2

Algebraic cryptanalysis in code–based cryptography

3

How to design secure schemes with codes?

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 5 / 80

slide-9
SLIDE 9

History of code–based cryptography

It starts with two articles

[1] E.R. Berlekamp, R.J. McEliece and H.C.A. Van Tilborg. On the inherent intractability of certain coding problems. IEEE Trans. Inform. Theory 24(2), 1978. [2] R.J. McEliece. A public key cryptosystem based on algebraic coding

  • theory. DSN Progress Report 44; 1978.
  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 6 / 80

slide-10
SLIDE 10

History of code–based cryptography

It starts with two articles

[1] E.R. Berlekamp, R.J. McEliece and H.C.A. Van Tilborg. On the inherent intractability of certain coding problems. IEEE Trans. Inform. Theory 24(2), 1978. [2] R.J. McEliece. A public key cryptosystem based on algebraic coding

  • theory. DSN Progress Report 44; 1978.

In the article [1]: Theorem 1 The following problem is NP–complete: Bounded decoding problem. Given C ⊆ Fn

q, y ∈ Fn q and t 0.

Does there exist c ∈ C such that dH(c, y) t?

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 6 / 80

slide-11
SLIDE 11

History of code–based cryptography

It starts with two articles

[1] E.R. Berlekamp, R.J. McEliece and H.C.A. Van Tilborg. On the inherent intractability of certain coding problems. IEEE Trans. Inform. Theory 24(2), 1978. [2] R.J. McEliece. A public key cryptosystem based on algebraic coding

  • theory. DSN Progress Report 44; 1978.

In the article [2], McEliece proposes a new public key encryption scheme.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 7 / 80

slide-12
SLIDE 12

History of code–based cryptography

McEliece presented in the literature

Secret key.

G, a structured k × n matrix whose rows span a code C ; S ∈ GLk; P ∈ Sn.

Public key. (SGP, t); Encryption m → mSGP + e for a uniformly random e of weight t; Decryption

Right multiply by P−1 : mSGP + e − → mSG + eP−1; decode to get mS; right multiply it by S−1 to get m.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 8 / 80

slide-13
SLIDE 13

History of code–based cryptography

This is what McEliece said!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 9 / 80

slide-14
SLIDE 14

History of code–based cryptography

This is what McEliece said!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 10 / 80

slide-15
SLIDE 15

History of code–based cryptography

But... may be we should present it differently

F denotes a family of codes of length n and dimension k; S denotes a set “of secrets” with a surjective map C : S − → F sending a secret s ∈ S into a code C (s). To any s ∈ S is associated a decoding algorithm D(s) for C (s) correcting up to t errors. Secret key s ∈ S; Public key (G, t), where G denotes a k × n generator matrix of C (s); Encryption m ∈ Fk

q −

→ mG + e where e is a uniformly random word of weight t. Decryption Apply D(s) to mG + e to recover m.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 11 / 80

slide-16
SLIDE 16

History of code–based cryptography

Example – Generalised Reed Solomon codes

Definition 2 (Generalised Reed–Solomon codes) Let n, k be positive integers k n. Let x = (x1, . . . , xn) ∈ Fn

q be a vector

with distinct entries and y = (y1, . . . , yn) ∈ (F×

q )n.

GRSk(x, y) def = {(y1f (x1), . . . , ynf (xn)) | deg(f ) < k} . F the set of [n, k] GRS codes; S = {(x, y) ∈ Fn

q × (F× q )n | ∀i = j, xi = xj};

D(s) is your favorite decoder for GRS, e.g. Berlekamp Welch algorithm, with t = ⌊ n−k

2 ⌋·

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 12 / 80

slide-17
SLIDE 17

History of code–based cryptography

Example – Alternant codes

Definition 3 (Alternant codes) Let x = (x1, . . . , xn) ∈ Fn

qm be a vector with distinct entries and

y = (y1, . . . , yn) ∈ (F×

qm)n. An alternant code of degree r is a code of the

form Ar(x, y) = GRSr(x, y)⊥ ∩ Fn

q

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 13 / 80

slide-18
SLIDE 18

History of code–based cryptography

Example – Alternant codes

Definition 3 (Alternant codes) Let x = (x1, . . . , xn) ∈ Fn

qm be a vector with distinct entries and

y = (y1, . . . , yn) ∈ (F×

qm)n. An alternant code of degree r is a code of the

form Ar(x, y) = GRSr(x, y)⊥ ∩ Fn

q

= GRSn−r(x, y ⊥) ∩ Fn

q

F the set of alternant codes of length n and degree r; S = {(x, y) ∈ Fn

q × (F× q )n | ∀i = j, xi = xj};

D(s) is your favorite decoder for alternant codes, e.g. Berlekamp Welch algorithm.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 13 / 80

slide-19
SLIDE 19

History of code–based cryptography

Example – Alternant codes

Definition 3 (Alternant codes) Let x = (x1, . . . , xn) ∈ Fn

qm be a vector with distinct entries and

y = (y1, . . . , yn) ∈ (F×

qm)n. An alternant code of degree r is a code of the

form Ar(x, y) = GRSr(x, y)⊥ ∩ Fn

q

= GRSn−r(x, y ⊥) ∩ Fn

q

F the set of alternant codes of length n and degree r; S = {(x, y) ∈ Fn

q × (F× q )n | ∀i = j, xi = xj};

D(s) is your favorite decoder for alternant codes, e.g. Berlekamp Welch algorithm.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 13 / 80

slide-20
SLIDE 20

History of code–based cryptography

Example – Classical Goppa codes – McEliece (1978)

Definition 4 (Classical Goppa codes) Let x = (x1, . . . , xn) ∈ Fn

qm be a vector with distinct entries and

g ∈ Fqm[x]<t be a polynomial such that ∀i, g(xi) = 0. The Goppa code associated to (x, g) is defined as G (x, g) def = Adeg g(x, g(x)−1) ∩ Fn

q

where g(x)−1 = (g(x1)−1, . . . , g(xn)−1) S = {(x, g) | · · · }; etc...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 14 / 80

slide-21
SLIDE 21

History of code–based cryptography

Example – Classical Goppa codes – McEliece (1978)

Definition 4 (Classical Goppa codes) Let x = (x1, . . . , xn) ∈ Fn

qm be a vector with distinct entries and

g ∈ Fqm[x]<t be a polynomial such that ∀i, g(xi) = 0. The Goppa code associated to (x, g) is defined as G (x, g) def = Adeg g(x, g(x)−1) ∩ Fn

q

where g(x)−1 = (g(x1)−1, . . . , g(xn)−1) S = {(x, g) | · · · }; etc...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 14 / 80

slide-22
SLIDE 22

History of code–based cryptography

Example – MDPC codes

Definition 5 (QC-MDPC codes) Let n be a positive even integer and f , g ∈ F2[X]<n be two polynomials of weight in O(√n). A [2n, n] QC-MDPC code is the kernel of the sparse matrix    f0 f1 · · · fn−1 g0 g1 · · · gn−1 fn−1 f0 · · · fn−2 gn−1 g0 · · · gn−2 ... ... ... ... ... ...    F the set of [2n, n] MDPC, codes S = {(f , g) ∈ Fq[x]<n of weight O(√n)}; D(s) is your favorite decoder for MDPC codes, e.g. Bit Flipping algorithm.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 15 / 80

slide-23
SLIDE 23

History of code–based cryptography

Example – Algebraic geometry codes

Definition 6 (Algebraic geometry codes) Let X be a smooth projective geometrically connected curve over Fq, G be a divisor on X and P = (P1, . . . , Pn) be a set of Fq–points of X. We define CL(X, P, G) def = {(f (P1), . . . , f (Pn)) | f ∈ L(G)}. F the set of AG codes of length n from X. S = {(P, G) ∈ X(Fq)n × DivFq(X) | ∀i = j, Pi = Pj}; D(s) is your favorite decoder for AG codes, e.g. Error Correcting Pairs algorithm.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 16 / 80

slide-24
SLIDE 24

History of code–based cryptography

History – McEliece 1978

1978 : McEliece’s original proposal based on binary Goppa codes (special case of alternant codes). Public key : 32kB for ≈ 65 bits of security1. 2018 : NIST proposals :

Classic McEliece, public key 1 to 1.3 MByte for > 256 bits security. NTS KEM, 319 KBytes for > 128 bits security.

1With respect to Prange algorithm

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 17 / 80

slide-25
SLIDE 25

History of code–based cryptography

History – McEliece 1978

1978 : McEliece’s original proposal based on binary Goppa codes (special case of alternant codes). Public key : 32kB for ≈ 65 bits of security1. 2018 : NIST proposals :

Classic McEliece, public key 1 to 1.3 MByte for > 256 bits security. NTS KEM, 319 KBytes for > 128 bits security.

During these 40 years many attempts to get shorter keys.

1With respect to Prange algorithm

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 17 / 80

slide-26
SLIDE 26

History of code–based cryptography

History – McEliece 1978

1978 : McEliece’s original proposal based on binary Goppa codes (special case of alternant codes). Public key : 32kB for ≈ 65 bits of security1. 2018 : NIST proposals :

Classic McEliece, public key 1 to 1.3 MByte for > 256 bits security. NTS KEM, 319 KBytes for > 128 bits security.

During these 40 years many attempts to get shorter keys. How?

1With respect to Prange algorithm

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 17 / 80

slide-27
SLIDE 27

History of code–based cryptography

Idea 1 : Reducing the extension degree

Fqm

m

GRSk(x, y) Fq GRSk(x, y) ∩ Fn

q

  • Fact. The larger the m the worse the parameters. But:
  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 18 / 80

slide-28
SLIDE 28

History of code–based cryptography

Idea 1 : Reducing the extension degree

Fqm

m

GRSk(x, y) Fq GRSk(x, y) ∩ Fn

q

  • Fact. The larger the m the worse the parameters. But:

Case m = 1 is broken (Sidelnikov, Shestakov 1992); Some specific cases of m = 2 and 3 called wild Goppa codes are broken too:

C., Otmani, Tillich, 2014; Faugère, Perret, de Portzamparc, 2014

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 18 / 80

slide-29
SLIDE 29

History of code–based cryptography

Idea 2 : Using codes with a non trivial automorphism group

In 2005, Gaborit proposes to use codes with a non trivial automorphism group G. Quasi–cyclic codes (QC–codes) : G = Z/ℓZ; Quasi–dyadic codes (QD–codes) : G = (Z/2Z)γ.

  • Advantage. Permits to reduce the public key size with almost no

incidence on the security

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 19 / 80

slide-30
SLIDE 30

History of code–based cryptography

Idea 2 : Using codes with a non trivial automorphism group

In 2005, Gaborit proposes to use codes with a non trivial automorphism group G. Quasi–cyclic codes (QC–codes) : G = Z/ℓZ; Quasi–dyadic codes (QD–codes) : G = (Z/2Z)γ.

  • Advantage. Permits to reduce the public key size with almost no

incidence on the security w.r.t. message security attacks.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 19 / 80

slide-31
SLIDE 31

History of code–based cryptography

Idea 2 : Using codes with a non trivial automorphism group

In 2005, Gaborit proposes to use codes with a non trivial automorphism group G. Quasi–cyclic codes (QC–codes) : G = Z/ℓZ; Quasi–dyadic codes (QD–codes) : G = (Z/2Z)γ.

  • Advantage. Permits to reduce the public key size with almost no

incidence on the security w.r.t. message security attacks. But, may affect the security w.r.t. key recovery attacks.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 19 / 80

slide-32
SLIDE 32

History of code–based cryptography

Idea 2 : Using codes with a non trivial automorphism group

In 2005, Gaborit proposes to use odes with a non trivial automorphism group G. Caution! Some tempting choices of using large groups lead to key recovery attacks: QC–BCH codes: Otmani, Tillich, Dallot (2008); QC–altenant codes : Faugère, Otmani, Perret, Tillich (2010); QC and QD–alternant codes : Faugère, Otmani, Perret, Tillich, de Portzamparc (2016). DAGS (QD–Alternant codes): Barelli, C. (2018).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 20 / 80

slide-33
SLIDE 33

History of code–based cryptography

Further constructions from GRS codes

Berger Loidreau, 2001. Subcodes of GRS codes. Wieschebrink, 2006. Adds random columns in a GRS code’s generator matrix. Baldi, Bianchi, Chiaraluce, Rosenthal, Schipani, 2013. Right multiply the GRS code by a sparse matrix. Wang’s RLCE system, 2016. Replaces some columns of a GRS’s generator matrix by linear combinations of GRS and random columns.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 21 / 80

slide-34
SLIDE 34

History of code–based cryptography

Other families of codes

Sidelnikov 1994. Binary Reed Muller codes. Janwa Moreno 1996. Algebraic geometry codes and their subfield subcodes. Misoczki, Tillich, Sendrier, Barreto 2012. QC–MDPC codes.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 22 / 80

slide-35
SLIDE 35

History of code–based cryptography

Other families of codes

Sidelnikov 1994. Binary Reed Muller codes. Janwa Moreno 1996. Algebraic geometry codes and their subfield subcodes. Misoczki, Tillich, Sendrier, Barreto 2012. QC–MDPC codes. Remark Non exhaustive list.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 22 / 80

slide-36
SLIDE 36

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 23 / 80

slide-37
SLIDE 37

History of code–based cryptography

Chronology

1978 : McEliece Suggests GRS codes 1986 : Niederreiter Proposals Attacks Broken Partially Broken

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 24 / 80

slide-38
SLIDE 38

History of code–based cryptography

Chronology

1978 : McEliece Suggests GRS codes 1992 : Sidelnikov Shestakov 1986 : Niederreiter Proposals Attacks Broken Partially Broken

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 25 / 80

slide-39
SLIDE 39

History of code–based cryptography

Chronology

1978 : McEliece Suggests GRS codes 1992 : Sidelnikov Shestakov 1986 : Niederreiter 1994 : Sidelnikov Proposes Reed-Muller codes Proposals Attacks Broken Partially Broken

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 26 / 80

slide-40
SLIDE 40

History of code–based cryptography

Chronology

1978 : McEliece Suggests GRS codes 1992 : Sidelnikov Shestakov 1986 : Niederreiter 1994 : Sidelnikov Proposes Reed-Muller codes Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno Propose AG codes and their subfield subcodes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 27 / 80

slide-41
SLIDE 41

History of code–based cryptography

Chronology

1978 : McEliece Suggests GRS codes 1992 : Sidelnikov Shestakov 1986 : Niederreiter 1994 : Sidelnikov Proposes Reed-Muller codes Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno Propose AG codes and their subfield subcodes 2001 : Berger Loidreau Propose subcodes of GRS codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 28 / 80

slide-42
SLIDE 42

History of code–based cryptography

Chronology

1978 : McEliece Suggests GRS codes 1992 : Sidelnikov Shestakov 1986 : Niederreiter 1994 : Sidelnikov Proposes Reed-Muller codes Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno Propose AG codes and their subfield subcodes 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi–cyclic BCH codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 29 / 80

slide-43
SLIDE 43

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1994 : Sidelnikov Proposes Reed-Muller codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes 2001 : Berger Loidreau Propose subcodes of GRS codes 1996 : Janwa, Moreno Propose AG codes and their subfield subcodes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 30 / 80

slide-44
SLIDE 44

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1994 : Sidelnikov Proposes Reed-Muller codes 2007 : Minder Shokrollahi Subexponential time attack on RM codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes 2001 : Berger Loidreau Propose subcodes of GRS codes 1996 : Janwa, Moreno Propose AG codes and their subfield subcodes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 31 / 80

slide-45
SLIDE 45

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno Propose AG codes 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes and their subfield subcodes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 32 / 80

slide-46
SLIDE 46

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes 2008 : Faure Minder, Attack on AG codes for genus ≤ 2 and their subfield subcodes Propose AG codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 33 / 80

slide-47
SLIDE 47

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes 2008 : Faure Minder, Attack on AG codes for genus ≤ 2 ... and their subfield subcodes 2008 : Berger, Cayrel, Gaborit, Otmani Propose QC alternant codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 34 / 80

slide-48
SLIDE 48

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes ... and their subfield subcodes 2008 : Berger, Cayrel, Gaborit, Otmani Propose QC alternant codes Propose q–ary “wild” Goppa codes Otmani, Tillich, Dallot Faug` ere, Perret, Otmani, Tillich Attacks on QC-codes 2010 : Bernstein, Lange Peters

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 35 / 80

slide-49
SLIDE 49

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes ... and their subfield subcodes 2008 : Berger, Cayrel, Gaborit, Otmani Propose QC alternant codes Propose q–ary “wild” Goppa codes 2010 : Bernstein, Lange Peters Otmani, Tillich, Dallot Faug` ere, Perret, Otmani, Tillich Attacks on QC-codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 36 / 80

slide-50
SLIDE 50

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes ... and their subfield subcodes 2008 : Berger, Cayrel, Gaborit, Otmani Propose QC alternant codes Propose q–ary “wild” Goppa codes 2010 : Bernstein, Lange Peters Otmani, Tillich, Dallot Faug` ere, Perret, Otmani, Tillich Attacks on QC-codes Wieschebrink’s C ⋆ C attack

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 37 / 80

slide-51
SLIDE 51

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2001 : Berger Loidreau Propose subcodes of GRS codes 2005 : Gaborit Quasi-cyclic subcodes of BCH codes ... and their subfield subcodes 2008 : Berger, Cayrel, Gaborit, Otmani Propose QC alternant codes Propose q–ary “wild” Goppa codes 2010 : Bernstein, Lange Peters Otmani, Tillich, Dallot Faug` ere, Perret, Otmani, Tillich Attacks on QC-codes Wieschebrink’s C ⋆ C attack

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 38 / 80

slide-52
SLIDE 52

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno ... and their subfield subcodes 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 39 / 80

slide-53
SLIDE 53

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno ... and their subfield subcodes 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 40 / 80

slide-54
SLIDE 54

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno ... and their subfield subcodes 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 41 / 80

slide-55
SLIDE 55

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 42 / 80

slide-56
SLIDE 56

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 43 / 80

slide-57
SLIDE 57

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 44 / 80

slide-58
SLIDE 58

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 45 / 80

slide-59
SLIDE 59

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 46 / 80

slide-60
SLIDE 60

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2 Faug` ere, Perret, Portzamparc : Some Goppa codes with m = 2, 3

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 47 / 80

slide-61
SLIDE 61

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2 Faug` ere, Perret, Portzamparc : Some Goppa codes with m = 2, 3

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 48 / 80

slide-62
SLIDE 62

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2 Faug` ere, Perret, Portzamparc : Some Goppa codes with m = 2, 3 Faug` ere, Otmani, Perret, Portzamparc, Tillich Further attack on QC and QD codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 49 / 80

slide-63
SLIDE 63

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2 Faug` ere, Perret, Portzamparc : Some Goppa codes with m = 2, 3 Faug` ere, Otmani, Perret, Portzamparc, Tillich Further attack on QC and QD codes Nov 2017 : NIST’s call for post quantum crypto

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 50 / 80

slide-64
SLIDE 64

History of code–based cryptography

Chronology

1978 : McEliece Proposals Attacks Broken Partially Broken 1996 : Janwa, Moreno 2010 : Bernstein, Lange Peters Propose q–ary “wild” Goppa codes 2011 : Faug` ere, Gautier, Otmani, Perret, Tillich Distinguisher for High rate Goppa codes 2012 : Misoczki, Tillich, Sendrier, Barreto Propose MDPC codes and their subfield subcodes AG codes 2014 : C., M´ arquez–Corbella, Pellikaan : attack on AG codes C., Otmani, Tillich : Goppa codes with m = 2 Faug` ere, Perret, Portzamparc : Some Goppa codes with m = 2, 3 Faug` ere, Otmani, Perret, Portzamparc, Tillich Further attack on QC and QD codes Nov 2017 : NIST’s call for post quantum crypto etc...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 51 / 80

slide-65
SLIDE 65

Algebraic cryptanalysis in code–based cryptography

1

History of code–based cryptography

2

Algebraic cryptanalysis in code–based cryptography

3

How to design secure schemes with codes?

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 52 / 80

slide-66
SLIDE 66

Algebraic cryptanalysis in code–based cryptography

Theoretical security analysis of McEliece encryption

Security proofs consist in reducing to the Bounded decoding problem under the following assumption:

  • Assumption. The uniform distribution on the public [n, k] codes

in family F is computationally indistinguishable from the uniform distribution on the whole family of [n, k] codes.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 53 / 80

slide-67
SLIDE 67

Algebraic cryptanalysis in code–based cryptography

Two types of attacks

In algebraic code–based cryptography, there are two major types of attacks: Message recovery attacks based on generic decoding algorithms. Exponential time if t = Θ(n). Key recovery attacks : ad hoc methods to recover s ∈ S such that the public key Cpub = C (s).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 54 / 80

slide-68
SLIDE 68

Algebraic cryptanalysis in code–based cryptography

Two types of attacks

In algebraic code–based cryptography, there are two major types of attacks: Message recovery attacks based on generic decoding algorithms. Exponential time if t = Θ(n). Key recovery attacks : ad hoc methods to recover s ∈ S such that the public key Cpub = C (s). We focus on key recovery attacks in the present talk.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 54 / 80

slide-69
SLIDE 69

Algebraic cryptanalysis in code–based cryptography

Sidelnikov Shestakov, 1992

Efficient key recovery attack on GRS codes. Idea. From a generator matrix G of a code GRSk(x, y), compute two minimum weight codewords whose supports are close, they correspond to split polynomials with many common roots. The ratio of these polynomial is a homography. This provides information

  • n x.
  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 55 / 80

slide-70
SLIDE 70

Algebraic cryptanalysis in code–based cryptography

Sidelnikov Shestakov, 1992

Efficient key recovery attack on GRS codes. Idea. From a generator matrix G of a code GRSk(x, y), compute two minimum weight codewords whose supports are close, they correspond to split polynomials with many common roots. The ratio of these polynomial is a homography. This provides information

  • n x.

Note. Computing minimum weight codewords is hard but... is only Gaussian elimination for GRS codes!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 55 / 80

slide-71
SLIDE 71

Algebraic cryptanalysis in code–based cryptography

Sidelnikov Shestakov, 1992

Efficient key recovery attack on GRS codes. Idea. From a generator matrix G of a code GRSk(x, y), compute two minimum weight codewords whose supports are close, they correspond to split polynomials with many common roots. The ratio of these polynomial is a homography. This provides information

  • n x.

Note. Computing minimum weight codewords is hard but... is only Gaussian elimination for GRS codes! This is a polynomial time distinguisher!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 55 / 80

slide-72
SLIDE 72

Algebraic cryptanalysis in code–based cryptography

Some attacks deriving from Sidelnikov Shestakov

Minder Shokrollahi 2007. Broke Sidelnikov’s proposal based on binary Reed Muller codes. Subexponential time attack; Faure Minder, Broke AG codes from hyperelliptic curves. The cost of the attack is exponential in the curve’s genus.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 56 / 80

slide-73
SLIDE 73

Algebraic cryptanalysis in code–based cryptography

Some attacks deriving from Sidelnikov Shestakov

Minder Shokrollahi 2007. Broke Sidelnikov’s proposal based on binary Reed Muller codes. Subexponential time attack; Faure Minder, Broke AG codes from hyperelliptic curves. The cost of the attack is exponential in the curve’s genus. In red: due to the cost of computing minimum weight codewords.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 56 / 80

slide-74
SLIDE 74

Algebraic cryptanalysis in code–based cryptography

Algebraic attacks by polynomial system solving

  • Idea. A code Ar(x, y) code is contained in the kernel of a matrix of the

form: H =      y1 · · · yn x1y1 · · · xnyn . . . . . . xr−1

1

y1 · · · xr−1

n

yn      Put xi, yi as formal variables Xi, Yi and solve the polynomial system: H(Xi, Yi) · tG = 0

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 57 / 80

slide-75
SLIDE 75

Algebraic cryptanalysis in code–based cryptography

Algebraic attacks by polynomial system solving

  • Idea. A code Ar(x, y) code is contained in the kernel of a matrix of the

form: H =      y1 · · · yn x1y1 · · · xnyn . . . . . . xr−1

1

y1 · · · xr−1

n

yn      Put xi, yi as formal variables Xi, Yi and solve the polynomial system: H(Xi, Yi) · tG = 0 For usual McEliece parameters, the resolution of such a polynomial system is out of reach. But...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 57 / 80

slide-76
SLIDE 76

Algebraic cryptanalysis in code–based cryptography

Algebraic attacks by polynomial system solving

  • Idea. A code Ar(x, y) code is contained in the kernel of a matrix of the

form: H =      y1 · · · yn x1y1 · · · xnyn . . . . . . xr−1

1

y1 · · · xr−1

n

yn      Put xi, yi as formal variables Xi, Yi and solve the polynomial system: H(Xi, Yi) · tG = 0 For usual McEliece parameters, the resolution of such a polynomial system is out of reach. But... if you use alternant codes with automorphisms...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 57 / 80

slide-77
SLIDE 77

Algebraic cryptanalysis in code–based cryptography

Algebraic attacks on alternant codes with automorphisms

Given a code C ⊆ Fn

q with a group action G, one can define:

The invariant code C G def = {x ∈ C | ∀σ ∈ G, σ(x) = x}.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 58 / 80

slide-78
SLIDE 78

Algebraic cryptanalysis in code–based cryptography

Algebraic attacks on alternant codes with automorphisms

Given a code C ⊆ Fn

q with a group action G, one can define:

The invariant code C G def = {x ∈ C | ∀σ ∈ G, σ(x) = x}. If the action of G is public, then C G is computable in polynomial time. Moreover, Theorem 1 (Faugère, Otmani, Perret, Portzamparc, Tillich 2014) If C = Ar(x, y) then C G = Ar′(xG, y G) for r′ ≈

r |G| and for some xG, y G

  • f lengths ≈

n |G|.

Theorem 2 (Barelli, 2018) If C = CL(X, P, G) then C G = CL(X/G, PG, G G) where |PG| ≈ |P|

|G| and

deg G G ≈ deg G

|G| . (+ This results extends to subfield subcodes).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 58 / 80

slide-79
SLIDE 79

Algebraic cryptanalysis in code–based cryptography

Algebraics attacks on the invariant code

The algebraic attack can be performed on the invariant code and is easier (less variables, equations of smaller degree).

Attacks on quasi–cyclic and quasi–dyadic Goppa/alternant codes, (Faugère, Otmani, Perret, Portzamparc, Tillich 2010, 2014)

Deducing the secret on the original code from the structure of the invariant code can be done in polynomial time (Barelli, WCC 2017).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 59 / 80

slide-80
SLIDE 80

Algebraic cryptanalysis in code–based cryptography

⋆–product and square codes

In Fn

q we denote by ⋆ the component wise product:

u ⋆ v def = (u1v1, . . . , unvn). Then, the star product of two codes A , B ⊆ Fn

q:

A ⋆ B def = Span{a ⋆ b | a ∈ A , b ∈ B} If A = B, then we denote by A 2 def = A ⋆ A .

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 60 / 80

slide-81
SLIDE 81

Algebraic cryptanalysis in code–based cryptography

The why of ⋆–product

Algebraic codes are evaluation codes from an algebra Fq[X] (GRS, alternant codes), Fq[X1, . . . , Xn] (Reed–Muller codes) Ring OS of regular functions on an open subset of a curve (AG codes and their subcodes)

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 61 / 80

slide-82
SLIDE 82

Algebraic cryptanalysis in code–based cryptography

The why of ⋆–product

Algebraic codes are evaluation codes from an algebra Fq[X] (GRS, alternant codes), Fq[X1, . . . , Xn] (Reed–Muller codes) Ring OS of regular functions on an open subset of a curve (AG codes and their subcodes)

  • Idea. Import the ring structure at the level of codes to get further

information on the public key.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 61 / 80

slide-83
SLIDE 83

Algebraic cryptanalysis in code–based cryptography

A wonderful distinguisher

Theorem 3 (Cascudo, Cramer, Mirandola, Zémor 2013) Let R be a random [n, k]–code then Prob

  • dim R2 < min
  • n,

k + 1 2

→ 0. (n, k → ∞)

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 62 / 80

slide-84
SLIDE 84

Algebraic cryptanalysis in code–based cryptography

A wonderful distinguisher

Theorem 3 (Cascudo, Cramer, Mirandola, Zémor 2013) Let R be a random [n, k]–code then Prob

  • dim R2 < min
  • n,

k + 1 2

→ 0. (n, k → ∞) Theorem 4 For x, y ∈ Fn

q × (F× q )n,

GRSk(x, y)2 = GRS2k−1(x, y ⋆ y). Remark Similar result for AG codes CL(X, P, G)2 = CL(X, P, 2G) under some conditions on deg G.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 62 / 80

slide-85
SLIDE 85

Algebraic cryptanalysis in code–based cryptography

First use of ⋆ Wieschebrink 2010

On Berger Loidreau system: Public key C ⊆ GRSk(x, y) of codimension ℓ ≈ 5; Secret key s = (x, y).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 63 / 80

slide-86
SLIDE 86

Algebraic cryptanalysis in code–based cryptography

First use of ⋆ Wieschebrink 2010

On Berger Loidreau system: Public key C ⊆ GRSk(x, y) of codimension ℓ ≈ 5; Secret key s = (x, y). Fact. C 2 = GRSk(x, y)2 with a high probability.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 63 / 80

slide-87
SLIDE 87

Algebraic cryptanalysis in code–based cryptography

First use of ⋆ Wieschebrink 2010

On Berger Loidreau system: Public key C ⊆ GRSk(x, y) of codimension ℓ ≈ 5; Secret key s = (x, y). Fact. C 2 = GRSk(x, y)2 with a high probability. Wieschebrink’s attack. Compute C 2; Perform Sidelnikov Shestakov attack on C 2 to recover (x, y ⋆ y). Deduce (x, y).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 63 / 80

slide-88
SLIDE 88

Algebraic cryptanalysis in code–based cryptography

Other attacks based on the raw ⋆–product distinguisher

Wieschebrink’s scheme (C., Gautier, Gaborit, Otmani, Tillich, 2015); BBCRS scheme (C., Gautier, Otmani, Tillich, 2015); RLCE scheme (C. Lequesne, Tillich, 2019)

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 64 / 80

slide-89
SLIDE 89

Algebraic cryptanalysis in code–based cryptography

Distinguisher and filtration attack

Illustrative example on GRS codes. Suppose you know the codes GRSk(x, y) (Fq[X]k−1) GRSk−1(x, y) (Fq[X]k−2)

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 65 / 80

slide-90
SLIDE 90

Algebraic cryptanalysis in code–based cryptography

Distinguisher and filtration attack

Illustrative example on GRS codes. Suppose you know the codes GRSk(x, y) (Fq[X]k−1) GRSk−1(x, y) (Fq[X]k−2) You’d like to compute GRSk−2(x, y) (Fq[X]k−3)

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 65 / 80

slide-91
SLIDE 91

Algebraic cryptanalysis in code–based cryptography

Distinguisher and filtration attack

Illustrative example on GRS codes. Suppose you know the codes GRSk(x, y) (Fq[X]k−1) GRSk−1(x, y) (Fq[X]k−2) You’d like to compute GRSk−2(x, y) (Fq[X]k−3) Then note that GRSk−2(x, y) ⋆ GRSk(x, y) ⊆ GRSk(x, y)2 Indeed : (k − 3) + (k − 1) = 2(k − 2).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 65 / 80

slide-92
SLIDE 92

Algebraic cryptanalysis in code–based cryptography

Distinguisher and filtration attack

GRSk−2(x, y) can be computed as the set Cond(GRSk(x, y), GRSk−1(x, y)2) def =

  • z ∈ Fn

q | z ⋆ GRSk(x, y) ⊆ GRSk−1(x, y)2

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 66 / 80

slide-93
SLIDE 93

Algebraic cryptanalysis in code–based cryptography

Distinguisher and filtration attack

GRSk−2(x, y) can be computed as the set Cond(GRSk(x, y), GRSk−1(x, y)2) def =

  • z ∈ Fn

q | z ⋆ GRSk(x, y) ⊆ GRSk−1(x, y)2

Then reiterate the process to deduce the filtration GRSk(x, y) ⊇ GRSk(x, y) ⊇ · · · ⊇ GRSr(x, y) ⊇ · · ·

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 66 / 80

slide-94
SLIDE 94

Algebraic cryptanalysis in code–based cryptography

Distinguisher and filtration attack

GRSk−2(x, y) can be computed as the set Cond(GRSk(x, y), GRSk−1(x, y)2) def =

  • z ∈ Fn

q | z ⋆ GRSk(x, y) ⊆ GRSk−1(x, y)2

Then reiterate the process to deduce the filtration GRSk(x, y) ⊇ GRSk(x, y) ⊇ · · · ⊇ GRSr(x, y) ⊇ · · · Remark There is no reason to know both GRSk(x, y) and GRSk−1(x, y) but GRSk−1(x, y) can be replaced by a shortening of GRSk(x, y) at one position.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 66 / 80

slide-95
SLIDE 95

Algebraic cryptanalysis in code–based cryptography

Applications

Alternative attack on GRS codes (C., Gautier, Gaborit, Otmani, Tillich, 2015); AG codes and their subcodes (C., Márquez–Corbella, Pellikaan, 2014–17); Wild Goppa codes for m = 2 (C. Otmani, Tillich, 2014–17);

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 67 / 80

slide-96
SLIDE 96

Algebraic cryptanalysis in code–based cryptography

Applications

Alternative attack on GRS codes (C., Gautier, Gaborit, Otmani, Tillich, 2015); AG codes and their subcodes (C., Márquez–Corbella, Pellikaan, 2014–17); Wild Goppa codes for m = 2 (C. Otmani, Tillich, 2014–17); Remark No more need to compute minimum weight codewords. Succeeds where Sidelnikov Shestakov fails!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 67 / 80

slide-97
SLIDE 97

How to design secure schemes with codes?

1

History of code–based cryptography

2

Algebraic cryptanalysis in code–based cryptography

3

How to design secure schemes with codes?

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 68 / 80

slide-98
SLIDE 98

How to design secure schemes with codes?

Algebraic codes

AG Codes Subfield Subcodes of AG codes Alternant codes Codes Goppa Classical GRS codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 69 / 80

slide-99
SLIDE 99

How to design secure schemes with codes?

Sidelnikov Shestakov 1992

AG Codes Subfield Subcodes of AG codes Alternant codes Codes Goppa Classical GRS codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 70 / 80

slide-100
SLIDE 100

How to design secure schemes with codes?

Faure Minder 2008

Subfield Subcodes of AG codes Alternant codes Codes Goppa Classical AG Codes g ≤ 2 GRS codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 71 / 80

slide-101
SLIDE 101

How to design secure schemes with codes?

  • C. Márquez–Corbella, Pellikaan, 2014

AG Codes Subfield Subcodes of AG codes Alternant codes Codes Goppa Classical GRS codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 72 / 80

slide-102
SLIDE 102

How to design secure schemes with codes?

  • C. Otmani, Tillich & Faugère, Perret, Portzamparc 2014

AG Codes Subfield Subcodes of AG codes Alternant codes Codes Goppa Classical GRS codes

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 73 / 80

slide-103
SLIDE 103

How to design secure schemes with codes?

Other point of view : subcodes of GRS codes.

Decreasing dimension of the subcode Subcodes of GRS codes . . . . . . (m = 1) GRS Alt (m = 2) m = 3 m ≫ 1

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 74 / 80

slide-104
SLIDE 104

How to design secure schemes with codes?

Other point of view : subcodes of GRS codes.

Decreasing dimension of the subcode Subcodes of GRS codes . . . . . . (m = 1) GRS Alt (m = 2) m = 3 m ≫ 1 dim 2 √ k

What filtration attacks can break

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 75 / 80

slide-105
SLIDE 105

How to design secure schemes with codes?

Other point of view : subcodes of GRS codes.

Decreasing dimension of the subcode

Faug` ere, Otmani, Perret, Tillich distinguisher

Subcodes of GRS codes . . . . . . (m = 1) GRS Alt (m = 2) m = 3 m ≫ 1 dim 2 √ k

What filtration attacks can break

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 76 / 80

slide-106
SLIDE 106

How to design secure schemes with codes?

How to evaluate the security of algebraic codes?

Security analysis framework Sufficiently many codes in the family, even up to permutation (Sendrier’s support splitting algorithm);

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 77 / 80

slide-107
SLIDE 107

How to design secure schemes with codes?

How to evaluate the security of algebraic codes?

Security analysis framework Sufficiently many codes in the family, even up to permutation (Sendrier’s support splitting algorithm); Low weight codewords are hard to compute (avoid, Sidelnikov–Shestakov like attacks).

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 77 / 80

slide-108
SLIDE 108

How to design secure schemes with codes?

How to evaluate the security of algebraic codes?

Security analysis framework Sufficiently many codes in the family, even up to permutation (Sendrier’s support splitting algorithm); Low weight codewords are hard to compute (avoid, Sidelnikov–Shestakov like attacks). No square code distinguisher.

C 2, (C ⊥)2 and their shortenings should behave like random codes.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 77 / 80

slide-109
SLIDE 109

How to design secure schemes with codes?

How to evaluate the security of algebraic codes?

Security analysis framework Sufficiently many codes in the family, even up to permutation (Sendrier’s support splitting algorithm); Low weight codewords are hard to compute (avoid, Sidelnikov–Shestakov like attacks). No square code distinguisher.

C 2, (C ⊥)2 and their shortenings should behave like random codes.

If you use some automorphis group, check the above properties for both C and C G.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 77 / 80

slide-110
SLIDE 110

How to design secure schemes with codes?

How to evaluate the security of algebraic codes?

Security analysis framework Sufficiently many codes in the family, even up to permutation (Sendrier’s support splitting algorithm); Low weight codewords are hard to compute (avoid, Sidelnikov–Shestakov like attacks). No square code distinguisher.

C 2, (C ⊥)2 and their shortenings should behave like random codes.

If you use some automorphis group, check the above properties for both C and C G. How to resist to attacks by algebraic systems solving? Difficult question...

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 77 / 80

slide-111
SLIDE 111

How to design secure schemes with codes?

What is still surviving?

Algebraic world Binary Goppa codes (NIST’s Classic McEliece and NTS KEM) Goppa codes for m ≫ 2. Goppa codes with a “small” automorphism group Subfield subcodes of AG codes Probabilistic world Quasi–cyclic MDPC codes;

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 78 / 80

slide-112
SLIDE 112

How to design secure schemes with codes?

What is still surviving?

Algebraic world Binary Goppa codes (NIST’s Classic McEliece and NTS KEM) Goppa codes for m ≫ 2. Goppa codes with a “small” automorphism group Subfield subcodes of AG codes Advantages : Short ciphertexts, no decoding failure. Probabilistic world Quasi–cyclic MDPC codes;

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 78 / 80

slide-113
SLIDE 113

How to design secure schemes with codes?

What is still surviving?

Algebraic world Binary Goppa codes (NIST’s Classic McEliece and NTS KEM) Goppa codes for m ≫ 2. Goppa codes with a “small” automorphism group Subfield subcodes of AG codes Advantages : Short ciphertexts, no decoding failure. Probabilistic world Quasi–cyclic MDPC codes; Advantages : short keys, especially designed for cryptography, somehow simpler security analysis.

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 78 / 80

slide-114
SLIDE 114

How to design secure schemes with codes?

What is still surviving?

Algebraic world Binary Goppa codes (NIST’s Classic McEliece and NTS KEM) Goppa codes for m ≫ 2. Goppa codes with a “small” automorphism group Subfield subcodes of AG codes Advantages : Short ciphertexts, no decoding failure. Probabilistic world Quasi–cyclic MDPC codes; Advantages : short keys, especially designed for cryptography, somehow simpler security analysis. Other paradigms HQC, RQC : do not rely on indistinguishability assumption: promising application of algebraic codes!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 78 / 80

slide-115
SLIDE 115

How to design secure schemes with codes?

Thanks for your attention!

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 79 / 80

slide-116
SLIDE 116

How to design secure schemes with codes?

Questions?

  • A. Couvreur

Cryptanalysis in code–based crypto Nutmic 2019 80 / 80