The Support Splitting Algorithm and its Application ... - Semantic Scholar

0 downloads 0 Views 347KB Size Report
May 9, 2012 - and its Application to Code-based Cryptography. Dimitris E. Simos ... 3rd Code-based Cryptography Workshop ... Outline of the Talk. Support ...
The Support Splitting Algorithm and its Application to Code-based Cryptography Dimitris E. Simos (joint work with Nicolas Sendrier) Project-Team SECRET INRIA Paris-Rocquencourt

May 9, 2012 3rd Code-based Cryptography Workshop Technical University of Denmark Lyngby, Denmark

1/15

Outline of the Talk

Support Splitting Algorithm Mechanics Examples

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

2/15

Outline of the Talk

Support Splitting Algorithm Mechanics Examples

Applications McEliece Cryptosystem Research Problems

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

2/15

Code Equivalence of Binary Codes

Code Equivalence Problem I

Two linear codes C and C 0 of length n are (permutation)-equivalent if for some permutation σ of In = {1, . . . , n} we have: C 0 = σ(C ) = {(xσ−1 (i) )i∈In | (xi )i∈In ∈ C } Notation: C ∼ C 0 .

I

Given two linear codes C and C 0 , do we have C ∼ C 0 ?

Motivation Code equivalence is difficult to decide: 1. not NP-complete 2. at least as hard as Graph Isomorphism Reference: Petrank and Roth, IEEE-IT, 1997

Goal Given two linear codes C ∼ C 0 , find σ such that C 0 = σ(C ) Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

3/15

Invariants and Signatures for a given Linear Code

Invariants of a Code I I

A mapping V is an invariant if C ∼ C 0 ⇒ V(C ) = V(C 0 ) Any invariant is a global property of a code

Weight Enumerators are Invariants C ∼ C 0 ⇒ WC (X ) = WC 0 (X ) or WC (X ) 6= WC 0 (X ) ⇒ C 6∼ C 0 Pn i I WC (X ) = i=0 Ai X and Ai =| {c ∈ C | w (c) = i} |

Signature of a Code I I

A mapping S is a signature if S(σ(C ), σ(i)) = S(C , i) Property of the code and one of its positions (local property)

Building a Signature from an Invariant 1. If V is an invariant, then SV : (C , i) 7→ V(C{i} ) is a signature 2. where C{i} is obtained by puncturing the code C on i 0 3. If C 0 = σ(C ) ⇒ V(C{i} ) = V(C{σ(i)} ), ∀ i ∈ In , i.e. V = W Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

4/15

The Support Splitting Algorithm (I) Design of the Algorithm

Discriminant Signatures 1. A signature S is discriminant for C if ∃ i 6= j, S(C , i) 6= S(C , j) 2. S is fully discriminant for C if ∀ i 6= j, S(C , i) 6= S(C , j)

The Procedure I

From a given signature S and a given code C , we wish to build a sequence S0 = S, S1 , . . . , Sr of signatures of increasing “discriminancy” such that Sr is fully discriminant for C

I

Achieved by succesive refinements of the signature S

I

Reference: Sendrier, IEEE-IT, 2000

Statement 1. SSA(C ) returns a labeled partition P(S, C ) of In 2. Assuming the existence of a fully discriminant signature, SSA(C ) recovers the desired permutation σ of C 0 = σ(C ) Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

5/15

An Example of a Fully Discriminant Signature Statement If C 0 = σ(C ) and S is fully discriminant for C then ∀ i ∈ In ∃ unique j ∈ In such that S(C , i) = S(C 0 , j) and σ(i) = j

The Example C = {1110, 0111, 1010} and C 0 = {0011, 1011, 1101}  C{1}    C {2} C  {3}   C{4}  0 C{1}     C0 {2} 0 C   {3}   C0 {4}

= {110, 111, 010} → WC{1} (X ) = X + X 2 + X 3 = {110, 011} → WC{2} (X ) = 2X 2 = {110, 011, 100} → WC{3} (X ) = X + 2X 2 = {111, 011, 101} → WC{4} (X ) = 2X 2 + X 3 0 = {011, 101} → WC{1} (X ) = 2X 2 0 (X ) = 2X 2 + X 3 = {011, 111, 101} → WC{2} 0 = {001, 101, 111} → WC{3} (X ) = X + X 2 + X 3 0 = {001, 101, 110} → WC{4} (X ) = X + 2X 2

C 0 = σ(C ) where σ(1) = 3, σ(2) = 1, σ(3) = 4 and σ(4) = 2 Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

6/15

An Example of a Refined Signature The Example C C0  WC{1} (X )      WC{4} (X )     WC{5} (X )     WC{2} (X )      WC (X ) {3}

= =

{01101, 01011, 01110, 10101, 11110} {10101, 00111, 10011, 11100, 11011}

=

X 2 + 3X 3

=

WC 0

(X )

⇒ σ(1) = 2

=

2X 2 + 3X 3

=

WC 0

(X )

⇒ σ(4) = 4 ⇒ σ(5) = 3

2

3

4

{2} {4}

=

3X + X + X

=

WC 0

(X )

=

3X 2 + 2X 3

=

WC 0

(X )

=

3X 2 + 2X 3

=

WC 0

(X )

{3} {1} {5}

Refinement: Positions {2, 3} in C and {1, 5} in C 0 cannot be discriminated, but   WC{1,2} (X )  WC{1,3} (X )

= =

3X 2 2

X + 2X + X

3

=

WC 0

(X )

⇒ σ({1, 2}) = {2, 5}

=

WC 0

(X )

⇒ σ({1, 3}) = {2, 1}

{2,5}

{2,1}

Thus σ(1) = 2, σ(2) = 5, σ(3) = 1, σ(4) = 4 and σ(5) = 3

Fundamental Properties of SSA 1. If C 0 = σ(C ) then P 0 (S, C 0 ) = σ(P(S, C )) 2. The output of SSA(C ) where C =< G > is independent of G Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

7/15

The Support Splitting Algorithm (II) Practical Issues

A Good Signature The mapping (C , i) 7→ WH(Ci ) (X ) where H(C ) = C ∩ C ⊥ is a signature which is, for random codes, I

easy to compute because of the small dimension (Sendrier, 1997)

I

discriminant, i.e. WH(Ci ) (X ) and WH(Cj ) (X ) are “often” different

Algorithmic Cost Let C be a binary code of length n, and let h = dim(H(C )): I

First step: O(n3 ) + O(n2h )

I

Each refinement: O(hn2 ) + O(n2h )

I

Number of refinements: ≈ log n

Total (heuristic) complexity: O(n3 + 2h n2 log n)

Implementation Currently developed on Gap and Magma Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

8/15

Structural Attacks on McEliece-like Cryptosystems Binary Goppa Code Let L = {α1 , . . . , αn } ⊂ GF (2m ) and g (z) ∈ GF (2m )[z] square-free of degree t with g (αi ) 6= 0. Pn ci ≡ 0 mod g (z)} Γ(L, g ) = {(c1 , . . . , cn ) ∈ GF (2m ) | i=1 z−α i

McEliece and Niederreiter Cryptosystems I

Γ a t-error correcting binary Goppa code secret key public key

McEliece gen. matrix G0 of Γ permutation matrix P G = SG0 P

Niederreiter parity check matrix H0 of Γ permutation matrix P H = UH0 P

Attacking McEliece Cryptosystem with SSA 1. Enumeration of all polynomial g of a family G of Γ(L, g ) and check equivalence with the public code 2. There are 2498.55 (m = 1024, t = 524) binary Goppa codes! Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

9/15

Weak Keys in the McEliece Cryptosystem Weak Keys Binary Goppa codes with binary generator polynomials g

Detection of Weak Keys with SSA 1. Compute SSA(C ) = P(S, C ) where C is the public code 2. If the cardinalities of the cells of P are equal to the cardinalities of the conjugacy cosets of L then C ∼ Γ(L, g ) where g has binary coefficients (with a high probability)

Enumerative Attack with SSA 1. For all binary polynomial g of given degree t compute SSA(Γ(L, g )) = P 0 (S, Γ(L, g )) 2. If P 0 (S, Γ(L, g )) ∼ P(S, C ) then return g 3. Efficient for Γ(L, g ) of length 1024 with g of degree 50 using idempotent subcodes (Loidreau and Sendrier, IEEE-IT, 2001) Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

10/15

Research Problems Related to Coding Theory

Code Equivalence over GF (q), q > 2 Two linear codes C and C 0 of length n are equivalent over GF (q) if C 0 can be obtained from C by a series of transformations: 1. Permutation of the codeword positions 2. Multiplication in a position by non-zero elements of GF (q) 3. Application of field automorphism to all codeword positions

Research Problem Given C and C 0 decide C ∼ C 0 over GF (q)?

Current Approach Generalized SSA: 1. Codes with non-trivial automorphism groups 2. Codes with large hulls (i.e., self-dual, C = C ⊥ ) 3. . . . Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

11/15

Research Problems Related to Code-based Cryptography

Research Problem Measure the key security of code-based cryptosystems over GF (q)

Wild McEliece Cryptosystem Proposed by Bernstein, Lange and Peters, SAC, 2010 I

Uses wild Goppa codes (g is in Fqm [x])

I

Estimation of the key security with the generalized SSA?

Research Problem Other structural attacks for code-based cryptosystems?

Detection of Weak Keys Apply SSA for other (sub)-families of hidden codes

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

12/15

Summary

Highlights 1. We presented the basic concepts of the support splitting algorithm for solving the Code Equivalence problem for the binary case. 2. We showed a structural attack of SSA to code-based cryptosystems (McEliece, Niederreiter).

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

13/15

Summary

Highlights 1. We presented the basic concepts of the support splitting algorithm for solving the Code Equivalence problem for the binary case. 2. We showed a structural attack of SSA to code-based cryptosystems (McEliece, Niederreiter).

Future Work Solve (some) of the research problems..!

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

13/15

References D. J. Bernstein, T. Lange and C. Peters, “Wild McEliece,” In SAC 2010, Lecture Notes in Computer Science, vol. 6544, pp. 143–158. Springer-Verlag, 2011. P. Loidreau and N. Sendrier, “Weak keys in the McEliece public-key cryptosystem,” IEEE Trans. Inf. Theory, vol. 47, pp. 1207–1211,2001. R. Overbeck and N. Sendrier, “Code-based cryptography,” In D. Bernstein, J. Buchmann and J. Ding (Eds.), Post-Quantum Cryptography, pp 95–145. Springer, 2009. E. Petrank and R. M. Roth, “Is code equivalence easy to decide?,” IEEE Trans. Inf. Theory, vol. 43, pp. 1602–1604, 1997. N. Sendrier, “On the dimension of the hull,” SIAM J. Discete Math., vol. 10, pp. 282–293, 1997. N. Sendrier, “Finding the permutation between equivalent codes: the support splitting algorithm,” IEEE Trans. Inf. Theory, vol. 46, pp. 1193–1203, 2000.

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

14/15

Questions - Comments

Thanks for your Attention!

Dimitris E. Simos (INRIA)

CBC2012 @ DTU, Denmark

15/15