code based cryptography for fpgas
play

Code-Based Cryptography for FPGAs Dr. Ruben Niederhagen, February 8, - PowerPoint PPT Presentation

Code-Based Cryptography for FPGAs Dr. Ruben Niederhagen, February 8, 2018 Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes


  1. Code-Based Cryptography for FPGAs Dr. Ruben Niederhagen, February 8, 2018

  2. Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes Goppa codes Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 1 (25)

  3. Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes Goppa codes Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 1 (25)

  4. Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes Goppa codes Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 1 (25)

  5. Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes Goppa codes Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 1 (25)

  6. Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes Goppa codes Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 1 (25)

  7. Introduction Global Map public-key cryptography classic post-quantum lattice code multivariate hash isogenies . . . McEliece Niederreiter . . . GRS codes Goppa codes Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 1 (25)

  8. Introduction Motivation Why code-based schemes in hardware? Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 2 (25)

  9. Introduction Motivation Why code-based schemes in hardware? � Code-based schemes are well-understood: � Long history of research. Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 2 (25)

  10. Introduction Motivation Why code-based schemes in hardware? � Code-based schemes are well-understood: � Long history of research. � Security parameters widely accepted. Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 2 (25)

  11. Introduction Motivation Why code-based schemes in hardware? � Code-based schemes are well-understood: � Long history of research. � Security parameters widely accepted. � Code-based schemes are expensive: � High-throughput scenario: web server... Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 2 (25)

  12. Introduction Motivation Why code-based schemes in hardware? � Code-based schemes are well-understood: � Long history of research. � Security parameters widely accepted. � Code-based schemes are expensive: � High-throughput scenario: web server... � Low-energy scenario: embedded devices, SmartCards, ... Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 2 (25)

  13. Introduction Motivation Why code-based schemes in hardware? � Code-based schemes are well-understood: � Long history of research. � Security parameters widely accepted. � Code-based schemes are expensive: � High-throughput scenario: web server... � Low-energy scenario: embedded devices, SmartCards, ... = ⇒ Hardware implementation as accelerator and for efficiency. Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 2 (25)

  14. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  15. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 encode 10011001001 Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  16. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 encode 10011001001 10010001011 transmitt Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  17. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 encode 10011001001 10010001011 10011001001 transmitt error correction Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  18. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 01101100 encode decode 10011001001 10010001011 10011001001 transmitt error correction Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  19. Introduction Error-Correcting Codes — McEliece and Niederreiter plaintext plaintext 01101100 01101100 encode decode ciphertext 10011001001 10010001011 10011001001 add errors error correction encryption decryption Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  20. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 01101100 encode decode 10011001001 10010001011 10011001001 transmitt error correction Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  21. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 01101100 encode decode 10011001001 10010001011 10011001001 transmitt parity check syndrome syndrome 00001000010 decoding Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  22. Introduction Error-Correcting Codes — McEliece and Niederreiter 01101100 01101100 encode decode plaintext 10011001001 00001000010 10011001001 transmitt parity encryption check syndrome syndrome 00001000010 decoding plaintext ciphertext decryption Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 3 (25)

  23. Niederreiter Cryptosystem Algorithm 1: Key-generation algorithm for the Niederreiter cryptosystem. : System parameters: m , t , and n . Input Output: Private key ( g ( x ) , ( α 0 , α 1 , . . . , α n − 1 )) and public key K . 1 Choose random sequence ( α 0 , α 1 , . . . , α n − 1 ) ∈ F (2 m ) n of distinct elements. Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 4 (25)

  24. Niederreiter Cryptosystem Algorithm 1: Key-generation algorithm for the Niederreiter cryptosystem. : System parameters: m , t , and n . Input Output: Private key ( g ( x ) , ( α 0 , α 1 , . . . , α n − 1 )) and public key K . 1 Choose random sequence ( α 0 , α 1 , . . . , α n − 1 ) ∈ F (2 m ) n of distinct elements. 2 Choose a random irreducible polynomial g ( x ) of degree t . Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 4 (25)

  25. Niederreiter Cryptosystem Algorithm 1: Key-generation algorithm for the Niederreiter cryptosystem. : System parameters: m , t , and n . Input Output: Private key ( g ( x ) , ( α 0 , α 1 , . . . , α n − 1 )) and public key K . 1 Choose random sequence ( α 0 , α 1 , . . . , α n − 1 ) ∈ F (2 m ) n of distinct elements. 2 Choose a random irreducible polynomial g ( x ) of degree t . 3 Compute the t × n parity check matrix   1 /g ( α 0 ) 1 /g ( α 1 ) · · · 1 /g ( α n − 1 ) α 0 /g ( α 0 ) α 1 /g ( α 1 ) · · · α n − 1 /g ( α n − 1 )   H =  .  . . .  ... . . .   . . .  α t − 1 α t − 1 α t − 1 /g ( α 0 ) /g ( α 1 ) · · · n − 1 /g ( α n − 1 ) 0 1 Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 4 (25)

  26. Niederreiter Cryptosystem Algorithm 1: Key-generation algorithm for the Niederreiter cryptosystem. : System parameters: m , t , and n . Input Output: Private key ( g ( x ) , ( α 0 , α 1 , . . . , α n − 1 )) and public key K . 1 Choose random sequence ( α 0 , α 1 , . . . , α n − 1 ) ∈ F (2 m ) n of distinct elements. 2 Choose a random irreducible polynomial g ( x ) of degree t . 3 Compute the t × n parity check matrix   1 /g ( α 0 ) 1 /g ( α 1 ) · · · 1 /g ( α n − 1 ) α 0 /g ( α 0 ) α 1 /g ( α 1 ) · · · α n − 1 /g ( α n − 1 )   H =  .  . . .  ... . . .   . . .  α t − 1 α t − 1 α t − 1 /g ( α 0 ) /g ( α 1 ) · · · n − 1 /g ( α n − 1 ) 0 1 4 Transform H to a mt × n binary parity check matrix H ′ . Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 4 (25)

  27. Niederreiter Cryptosystem Algorithm 1: Key-generation algorithm for the Niederreiter cryptosystem. : System parameters: m , t , and n . Input Output: Private key ( g ( x ) , ( α 0 , α 1 , . . . , α n − 1 )) and public key K . 1 Choose random sequence ( α 0 , α 1 , . . . , α n − 1 ) ∈ F (2 m ) n of distinct elements. 2 Choose a random irreducible polynomial g ( x ) of degree t . 3 Compute the t × n parity check matrix   1 /g ( α 0 ) 1 /g ( α 1 ) · · · 1 /g ( α n − 1 ) α 0 /g ( α 0 ) α 1 /g ( α 1 ) · · · α n − 1 /g ( α n − 1 )   H =  .  . . .  ... . . .   . . .  α t − 1 α t − 1 α t − 1 /g ( α 0 ) /g ( α 1 ) · · · n − 1 /g ( α n − 1 ) 0 1 4 Transform H to a mt × n binary parity check matrix H ′ . 5 Transform H ′ into its systematic form [ I mt | K ] . Code-Based Cryptography for FPGAs | Dr. Ruben Niederhagen | February 8, 2018 | 4 (25)

Recommend


More recommend