mqdss
play

MQDSS Ming-Shing Chen 1 , Andreas Hlsing 2 , Joost Rijneveld 3 , - PowerPoint PPT Presentation

MQDSS Ming-Shing Chen 1 , Andreas Hlsing 2 , Joost Rijneveld 3 , Simona Samardjiska 3 , and Peter Schwabe 3 1 National Taiwan University / Academia Sinica, Taipei, Taiwan 2 Technische Universiteit Eindhoven, Eindhoven, The Netherlands 3 Radboud


  1. MQDSS Ming-Shing Chen 1 , Andreas Hülsing 2 , Joost Rijneveld 3 , Simona Samardjiska 3 , and Peter Schwabe 3 1 National Taiwan University / Academia Sinica, Taipei, Taiwan 2 Technische Universiteit Eindhoven, Eindhoven, The Netherlands 3 Radboud University, Nijmegen, The Netherlands 2019-08-23 Second NIST PQC Standardization Conference 1 / 11

  2. In a nutshell.. ◮ MQ -based 5-pass identification scheme ◮ Fiat-Shamir transform ◮ Loose reduction from (only!) MQ problem ◮ Security proof, instead of typical ‘break and tweak’ in MQ cryptography ◮ Very small keys, big signatures 2 / 11

  3. In a nutshell.. ◮ MQ -based 5-pass identification scheme ◮ Fiat-Shamir transform ◮ Loose reduction from (only!) MQ problem ◮ Security proof, instead of typical ‘break and tweak’ in MQ cryptography ◮ Very small keys, big signatures ◮ First proposed at ASIACRYPT 2016 [CHR + 16] 2 / 11

  4. In a nutshell.. ◮ MQ -based 5-pass identification scheme ◮ Fiat-Shamir transform ◮ Loose reduction from (only!) MQ problem ◮ Security proof, instead of typical ‘break and tweak’ in MQ cryptography ◮ Very small keys, big signatures ◮ First proposed at ASIACRYPT 2016 [CHR + 16] ◮ Changes in Second Round submission ◮ Reduction of number of rounds ◮ Added randomness in commitments ◮ More precise analysis of best attacks against MQ 2 / 11

  5. Fiat-Shamir transform IDS P V com ← P 0 (sk) com ch ← R ChS (1 k ) ch resp ← P 1 (sk , com , ch) resp b ← Vf (pk , com , ch , resp) 3 / 11

  6. Fiat-Shamir transform IDS P r V r com ← P 0 r (sk) com ch ← R ChS r (1 k ) ch resp ← P 1 r (sk , com , ch) resp b ← Vf r (pk , com , ch , resp) 3 / 11

  7. Fiat-Shamir transform IDS P r V r com ← P 0 r (sk) com ch ← R ChS r (1 k ) ch resp ← P 1 r (sk , com , ch) resp b ← Vf r (pk , com , ch , resp) ↓ ↓ ↓ FS signature Signer Verifier com ← P 0 (sk) ch ← H ( m , com) ch ← H ( m , com) resp ← P 1 (sk , com , ch) b ← Vf(pk , com , ch , resp) output : σ = (com , resp) output : b 3 / 11

  8. Sakumoto-Shirai-Hiwatari 5-pass IDS [SSH11] P : ( F , v , s ) V : ( F , v ) r 0 , t 0 ← R F n q , e 0 ← R F m q r 1 ← s − r 0 c 0 ← Com ( r 0 , t 0 , e 0 ) ( c 0 , c 1 ) c 1 ← Com ( r 1 , G ( t 0 , r 1 ) + e 0 ) α ← R F q α t 1 ← α r 0 − t 0 e 1 ← α F ( r 0 ) − e 0 resp 1 = ( t 1 , e 1 ) ch 2 ← R { 0 , 1 } ch 2 If ch 2 = 0 , resp 2 ← r 0 resp 2 Else resp 2 ← r 1 If ch 2 = 0 , Parse resp 2 = r 0 , check ? c 0 = Com ( r 0 , α r 0 − t 1 , α F ( r 0 ) − e 1 ) Else Parse resp 2 = r 1 , check ? c 1 = Com ( r 1 , α ( v − F ( r 1 )) − G ( t 1 , r 1 ) − e 1 ) 4 / 11

  9. MQDSS ◮ Generate keys ◮ Sample seed S F ∈ { 0 , 1 } k , s ∈ F n ⇒ sk = ( S F , s ) q ◮ Expand S F to F , compute v = F ( s ) ⇒ pk = ( S F , v ) 5 / 11

  10. MQDSS ◮ Generate keys ◮ Sample seed S F ∈ { 0 , 1 } k , s ∈ F n ⇒ sk = ( S F , s ) q ◮ Expand S F to F , compute v = F ( s ) ⇒ pk = ( S F , v ) ◮ Signing ◮ Sign randomized digest D of message M ◮ Perform r parallel rounds of transformed IDS 5 / 11

  11. MQDSS ◮ Generate keys ◮ Sample seed S F ∈ { 0 , 1 } k , s ∈ F n ⇒ sk = ( S F , s ) q ◮ Expand S F to F , compute v = F ( s ) ⇒ pk = ( S F , v ) ◮ Signing ◮ Sign randomized digest D of message M ◮ Perform r parallel rounds of transformed IDS ◮ Verifying ◮ Reconstruct D , F ◮ Reconstruct challenges ◮ Reconstruct commitments ◮ Check combined commitments hash 5 / 11

  12. MQDSS ◮ Generate keys ◮ Sample seed S F ∈ { 0 , 1 } k , s ∈ F n ⇒ sk = ( S F , s ) q ◮ Expand S F to F , compute v = F ( s ) ⇒ pk = ( S F , v ) ◮ Signing ◮ Sign randomized digest D of message M ◮ Perform r parallel rounds of transformed IDS ◮ Verifying ◮ Reconstruct D , F ◮ Reconstruct challenges ◮ Reconstruct commitments ◮ Check combined commitments hash ◮ Parameters: n , m , q , r (and Com, Hash & PRG) 5 / 11

  13. Round 2 update: Parameter Sets n pk sk Signature Sec. q r (= m ) (bytes) (bytes) (bytes) cat. MQDSS-31-48 1-2 31 48 135 46 16 20854 (Round 1) 269 62 32 32882 MQDSS-31-64 3-4 31 64 202 64 24 43728 (Round 1) 403 88 48 67800 Table: Round 1 parameters in black, Round 2 parameters in red. ◮ q , n = m chosen using best attacks on MQ ◮ q additionally chosen for fast arithmetic 6 / 11

  14. Round 2 update: Parameter Sets n pk sk Signature Sec. q r (= m ) (bytes) (bytes) (bytes) cat. MQDSS-31-48 1-2 31 48 135 46 16 20854 (Round 1) 269 62 32 32882 MQDSS-31-64 3-4 31 64 202 64 24 43728 (Round 1) 403 88 48 67800 Table: Round 1 parameters in black, Round 2 parameters in red. ◮ q , n = m chosen using best attacks on MQ ◮ q additionally chosen for fast arithmetic 2 q ◮ r chosen such that 2 − ( r log q +1 ) < 2 − k ◮ mistake in calculation in Round 1, chose k too large 6 / 11

  15. Round 2 update: Commitments ◮ MQDSS uses hash for commitments - instantiated with SHAKE-256 7 / 11

  16. Round 2 update: Commitments ◮ MQDSS uses hash for commitments - instantiated with SHAKE-256 ◮ In Round 1 proof assumes statistically hiding commitments 7 / 11

  17. Round 2 update: Commitments ◮ MQDSS uses hash for commitments - instantiated with SHAKE-256 ◮ In Round 1 proof assumes statistically hiding commitments ◮ Requires a lot of randomness: 5 × commitment length [Lei18] ◮ Round 1 MQDSS does not provide any (dedicated) randomness 7 / 11

  18. Round 2 update: Commitments ◮ MQDSS uses hash for commitments - instantiated with SHAKE-256 ◮ In Round 1 proof assumes statistically hiding commitments ◮ Requires a lot of randomness: 5 × commitment length [Lei18] ◮ Round 1 MQDSS does not provide any (dedicated) randomness ◮ Round 2: ◮ Computationally hiding commitments suffices! ◮ Proof updated accordingly 7 / 11

  19. Round 2 update: Commitments ◮ MQDSS uses hash for commitments - instantiated with SHAKE-256 ◮ In Round 1 proof assumes statistically hiding commitments ◮ Requires a lot of randomness: 5 × commitment length [Lei18] ◮ Round 1 MQDSS does not provide any (dedicated) randomness ◮ Round 2: ◮ Computationally hiding commitments suffices! ◮ Proof updated accordingly ◮ Still needs randomness (2 × commitment length [Lei18]) ◮ ⇒ adds approx 4KB (10KB) to signature for MQDSS-31-48 (MQDSS-31-64) 7 / 11

  20. Round 2 performance ◮ Reference implementation keygen signing verification MQDSS-31-48 1 192 984 26 630 590 19 840 136 Round 1 1 206 730 52 466 398 38 686 506 MQDSS-31-64 2 767 384 85 268 712 62 306 098 Round 1 2 806 750 169 298 364 123 239 874 Table: Round 1 performance in black, Round 2 performance in red. 8 / 11

  21. Round 2 performance ◮ Reference implementation keygen signing verification MQDSS-31-48 1 192 984 26 630 590 19 840 136 Round 1 1 206 730 52 466 398 38 686 506 MQDSS-31-64 2 767 384 85 268 712 62 306 098 Round 1 2 806 750 169 298 364 123 239 874 Table: Round 1 performance in black, Round 2 performance in red. ◮ AVX2 implementation (only round 2) keygen signing verification MQDSS-31-48 1 074 644 3 816 106 2 551 270 MQDSS-31-64 2 491 050 9 047 148 6 132 948 8 / 11

  22. Round 2 update: More precise analysis of hardness of MQ ◮ Best strategy: Algebraic techniques with exhaustive search ◮ HybridF5 [BFS15], BooleanSolve [BFSS13], Crossbred [JV17] 9 / 11

  23. Round 2 update: More precise analysis of hardness of MQ ◮ Best strategy: Algebraic techniques with exhaustive search ◮ HybridF5 [BFS15], BooleanSolve [BFSS13], Crossbred [JV17] ◮ Analyze both classically and using Grover ◮ Classical gates, quantum gates, circuit depth 9 / 11

  24. Round 2 update: More precise analysis of hardness of MQ ◮ Best strategy: Algebraic techniques with exhaustive search ◮ HybridF5 [BFS15], BooleanSolve [BFSS13], Crossbred [JV17] ◮ Analyze both classically and using Grover ◮ Classical gates, quantum gates, circuit depth ◮ minor changes in Round 2 - more precise analysis ◮ no influence to security of parameter sets 9 / 11

  25. Recent attack ◮ August 2019, Daniel Kales and Greg Zaverucha - forgery in approx. 2 95 hash calls for MQDSS-31-48 10 / 11

  26. Recent attack ◮ August 2019, Daniel Kales and Greg Zaverucha - forgery in approx. 2 95 hash calls for MQDSS-31-48 ◮ Can be mitigated by ≈ 1 . 4 × (number of rounds) 10 / 11

  27. Recent attack ◮ August 2019, Daniel Kales and Greg Zaverucha - forgery in approx. 2 95 hash calls for MQDSS-31-48 ◮ Can be mitigated by ≈ 1 . 4 × (number of rounds) ◮ Proof still valid! ◮ Attack is result of not taking into account non-tightness of proof for choosing parameters 10 / 11

  28. Recent attack ◮ August 2019, Daniel Kales and Greg Zaverucha - forgery in approx. 2 95 hash calls for MQDSS-31-48 ◮ Can be mitigated by ≈ 1 . 4 × (number of rounds) ◮ Proof still valid! ◮ Attack is result of not taking into account non-tightness of proof for choosing parameters ◮ New parameters after attack (estimate): q n r pk Signature Sec. cat. sk MQDSS-31-48 (new) 1-2 31 48 184 46B 16B 28400B Round 1 269 62B 32B 32882B MQDSS-31-64 (new) 3-4 31 64 277 64B 24B 59928B Round 1 403 88B 48B 67800B Table: Round 1 parameters in black, New parameters (attack fixed) in red. 10 / 11

  29. Conclusion ◮ Fiat-Shamir transform from MQ -based 5-pass identification scheme ◮ Security proof in ROM, instead of typical ‘break and tweak’ in MQ cryptography ◮ Very small keys, big signatures 11 / 11

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