mds matrices with lightweight circuits
play

MDS Matrices with Lightweight Circuits Sbastien Duval Gatan Leurent - PowerPoint PPT Presentation

MDS Matrices with Lightweight Circuits Sbastien Duval Gatan Leurent Sebastien.Duval@inria.fr February 14, 2019 Introduction Lightweight Our approach Formal Results Instantiation Conclusion Security of Block Ciphers Shannons


  1. MDS Matrices with Lightweight Circuits Sébastien Duval Gaëtan Leurent Sebastien.Duval@inria.fr February 14, 2019

  2. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Security of Block Ciphers Shannon’s criteria 1 Diffusion - Every bit of plaintext and key must affect every bit of the output - We usually use linear functions 2 Confusion - Relation between plaintext and ciphertext must be intractable - Requires non-linear operations - Often implemented with tables: S-Boxes S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 2 / 32

  3. Introduction Lightweight Our approach Formal Results Instantiation Conclusion SPN Ciphers Differential Branch Number Plaintext K 0 B d ( L ) = min x � = 0 { w ( x ) + w ( L ( x )) } S S S S L Linear Branch Number K 1 x � = 0 { w ( x ) + w ( L ⊤ ( x )) } B l ( L ) = min S S S S L K 2 Ciphertext S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 3 / 32

  4. Introduction Lightweight Our approach Formal Results Instantiation Conclusion SPN Ciphers Differential Branch Number Plaintext K 0 B d ( L ) = min x � = 0 { w ( x ) + w ( L ( x )) } S S S S L x ⊕ a x K 1 F F S S S S y y ⊕ b L K 2 Ciphertext S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 3 / 32

  5. Introduction Lightweight Our approach Formal Results Instantiation Conclusion SPN Ciphers Differential Branch Number Plaintext K 0 B d ( L ) = min x � = 0 { w ( x ) + w ( L ( x )) } S S S S L Linear Branch Number K 1 x � = 0 { w ( x ) + w ( L ⊤ ( x )) } B l ( L ) = min S S S S L K 2 Maximum branch number : k + 1 Ciphertext Can be obtained from MDS codes S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 3 / 32

  6. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Diffusion Matrices Usually on finite fields: x a primitive element of F 2 n 2 ↔ x   2 3 1 1 3 ↔ x + 1 1 2 3 1   Coeffs. = polynomials in x with   1 1 2 3   binary coefficients 3 1 1 2 i.e. coeffs. ∈ F 2 [ x ] / P , with P a primitive polynomial Characterization L is MDS iff its minors are non-zero S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 4 / 32

  7. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Going Lightweight lightweight cipher = lightweight S-Boxes + lightweight diffusion matrix Focus on the diffusion function Goal: Find lightweight MDS matrix Main approaches: ◮ Optimize existing ciphers: MDS matrix → reduce cost (AES MixColumns) ◮ New ciphers: lightweight by design S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 5 / 32

  8. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Previous Works Recursive Matrices Guo, Peyrin and Poschmann in PHOTON (used in LED) A lightweight matrix A i MDS Implement A , then iterate A i times. Optimizing Coefficients ◮ Structured matrices: restrict to a small subspace with many MDS matrices ◮ More general than finite fields: less costly operations than multiplication in a finite field S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 6 / 32

  9. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Cost Evaluation Previous work: Number of XORS + sum of cost of each coefficient Drawback: Cannot reuse intermediate values Our approach: Global optimization as a circuit x 0 x 1 x 2   3 2 2 2 3 2   2 2 3 × 2  6 mult. by 2 �  1 mult. by 2  Previous: 3 mult. by 3 New: 5 XORS  6 XORS  S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 7 / 32

  10. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Formal Matrices Finite fields → polynomial ring ◮ α linear mapping on F 2 n x 0 x 1 x 2 ◮ Coefficients ∈ F 2 [ α ] i.e. polynomials in α with coeffs. in F 2 α S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 8 / 32

  11. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Formal Matrices Finite fields → polynomial ring ◮ α linear mapping on F 2 n x 0 x 1 x 2 ◮ Coefficients ∈ F 2 [ α ] i.e. polynomials in α with coeffs. in F 2 α Formal matrices ◮ α undefined ⇒ formal coefficients/matrix ◮ Objective: find M ( α ) s.t. ∃ A , M ( A ) MDS S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 8 / 32

  12. Introduction Lightweight Our approach Formal Results Instantiation Conclusion MDS Characterization of Formal Matrices MDS Characterization Maximal branch number iff the minors are non-zero (call it formal MDS ) Caution: minors are polynomials in α M ( α ) formal MDS ⇔ ∃ A , M ( A ) MDS Objective ◮ Find M ( α ) formal MDS and lightweight ◮ Fix n ◮ Find A linear mapping over F 2 n lightweight s.t. M ( A ) MDS S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 9 / 32

  13. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Algorithm Exhaustive search over circuits Search Space MDS matrices of sizes 3 × 3 and 4 × 4 For any word size n Operations: ◮ word-wise XOR ◮ α (generalization of a multiplication) ◮ Copy r registers: one register per word (3 for 3 × 3) + (at least) one more register → more complex operations Very costly S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 10 / 32

  14. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Implementation: Main Idea Graph-based search ◮ Node = matrix = sequence of operations ◮ Lightest implementation = shortest path to MDS matrix ◮ When we spawn a node, we test if it is MDS Representation k × r matrix, coefficients are polynomials in F 2 [ α ] S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 11 / 32

  15. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: Cut Useless Branches Limit use of Copy After copy, force use of the copied value S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 12 / 32

  16. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: Cut Useless Branches Limit use of Copy After copy, force use of the copied value Set up Boundaries Choose maximum cost and maximum depth for circuits + many more optimizations to save memory (at the cost of computation time) S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 12 / 32

  17. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: A ∗ A ∗ Idea of A ∗ ◮ Guided Dijkstra ◮ weight = weight from origin + estimated weight to objective S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 13 / 32

  18. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: A ∗ A ∗ Idea of A ∗ ◮ Guided Dijkstra ◮ weight = weight from origin + estimated weight to objective Our estimate: S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 13 / 32

  19. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: A ∗ A ∗ Idea of A ∗ ◮ Guided Dijkstra ◮ weight = weight from origin + estimated weight to objective Our estimate: ◮ Heuristic ◮ How far from MDS ? S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 13 / 32

  20. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: A ∗ A ∗ Idea of A ∗ ◮ Guided Dijkstra ◮ weight = weight from origin + estimated weight to objective Our estimate: ◮ Heuristic ◮ How far from MDS ? ◮ Column with a 0: cannot be part of MDS matrix S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 13 / 32

  21. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: A ∗ A ∗ Idea of A ∗ ◮ Guided Dijkstra ◮ weight = weight from origin + estimated weight to objective Our estimate: ◮ Heuristic ◮ How far from MDS ? ◮ Column with a 0: cannot be part of MDS matrix ◮ Linearly dependent columns: not part of MDS matrix S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 13 / 32

  22. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: A ∗ A ∗ Idea of A ∗ ◮ Guided Dijkstra ◮ weight = weight from origin + estimated weight to objective Our estimate: ◮ Heuristic ◮ How far from MDS ? ◮ Column with a 0: cannot be part of MDS matrix ◮ Linearly dependent columns: not part of MDS matrix ◮ Estimate: m = rank of the matrix (without columns containing 0) ◮ Need at least k − m word-wise XORs to MDS Result: much faster S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 13 / 32

  23. Introduction Lightweight Our approach Formal Results Instantiation Conclusion Optimizations: Use Equivalence ◮ TestedNodes : list of all nodes that have been tested for MDS ◮ UntestedNodes : list of all untested nodes S. Duval, G. Leurent MDS Matrices with Lightweight Circuits February 14, 2019 14 / 32

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend