on the security of two round multi signatures
play

On the Security of Two-Round Multi-Signatures Manu Drijvers 1 , - PowerPoint PPT Presentation

On the Security of Two-Round Multi-Signatures Manu Drijvers 1 , Kasra Edalatnejad 2 , Bryan Ford 2 , Eike Kiltz 3 , Julian Loss 3 , Gregory Neven 1 , Igors Stepanovs 4 1 DFINITY, 2 EPFL , 3 Ruhr-University Bochum, 4 UCSD Multi-signatures (pk 1 ,sk


  1. On the Security of Two-Round Multi-Signatures Manu Drijvers 1 , Kasra Edalatnejad 2 , Bryan Ford 2 , Eike Kiltz 3 , Julian Loss 3 , Gregory Neven 1 , Igors Stepanovs 4 1 DFINITY, 2 EPFL , 3 Ruhr-University Bochum, 4 UCSD

  2. Multi-signatures (pk 1 ,sk 1 ) ← Kg (pk 2 ,sk 2 ) ← Kg (pk 3 ,sk 3 ) ← Kg Sign((pk 1 ,pk 2 ,pk 3 ), sk 1 , m) ↔ Sign((pk 1 ,pk 2 ,pk 3 ), sk 2 , m) ↔ Sign((pk 1 ,pk 2 ,pk 3 ), sk 3 , m) → σ → σ → σ Verify((pk 1 ,pk 2 ,pk 3 ), m, σ) = 1 Every signer must agree to sign m Goal: short signature (preferably ≈ single signature, efficiently verifiable definitely << N signatures)

  3. Multi-signatures (pk 1 ,sk 1 ) ← Kg (pk 2 ,sk 2 ) ← Kg (pk 3 ,sk 3 ) ← Kg Sign((pk 1 ,pk 2 ,pk 3 ), sk 1 , m) ↔ Sign((pk 1 ,pk 2 ,pk 3 ), sk 2 , m) ↔ Sign((pk 1 ,pk 2 ,pk 3 ), sk 3 , m) → σ → σ → σ Key aggregation: apk ← KAgg(pk 1 ,pk 2 ,pk 3 ) Verify(apk, m, σ) = 1 Every signer must agree to sign m Goal: short signature (preferably ≈ single signature, efficiently verifiable definitely << N signatures)

  4. Applications of multi-signatures • Improve Bitcoin throughput / reduce blockchain size • ”multisig” transactions as small as other transactions • Reduce size of multi-input multi-output transactions • Collective signing by co-thorities (e.g., CoSi [STV+16]) • Distributed random beacons (e.g., RandHound [SJK+17]) • Block certification in proof-of-stake / permissioned blockchains • e.g., Dfinity, OmniLedger, Ziliqa, Harmony, Algorand, …

  5. Existing multi-signatures

  6. Schnorr signatures pk = g sk Efficient & Provably secure r ← R Z q • under discrete-log assumption t ← g r • in the random-oracle model: model hash function as ideal c ← H(t,m) random function s ← r + c · sk mod q σ ← (c, s) Verification: c = H(g s · pk -c , m)

  7. “Plain” Schnorr multi-signatures pk 1 = g sk1 pk 2 = g sk2 pk 3 = g sk3 r 1 ← R Z q r 2 ← R Z q r 3 ← R Z q ↔ ↔ t 1 ← g r1 t 2 ← g r2 t 3 ← g r3 t ← t 1 ·t 2 ·t 3 t ← t 1 ·t 2 ·t 3 t ← t 1 ·t 2 ·t 3 c ← H(t,m) c ← H(t,m) c ← H(t,m) ↔ ↔ s 1 ← r 1 + c·sk 1 mod q s 2 ← r 2 + c·sk 2 mod q s 3 ← r 3 + c·sk 3 mod q s ← s 1 +s 2 +s 3 mod q s ← s 1 +s 2 +s 3 mod q s ← s 1 +s 2 +s 3 mod q σ ← (c, s) σ ← (c, s) σ ← (c, s) apk ← pk 1 · pk 2 · pk 3 Check c = H( g s · apk -c , m )

  8. Problem 1: Rogue-key attacks pk 1 = g sk1 pk 2 = g sk2 / pk 1 apk = pk 1 · pk 2 = g sk2 can compute signatures under apk by himself! Known remedies: • Per-signer challenges [BN06] • Proofs of possession added to pk [RY07,BCJ08] • MuSig key aggregation: apk ← Π pk i H(pki, {pk1,…,pkN} [MPSW18]

  9. Problem 2: Signature simulation pk 1 pk 2 c, s 1 ← R Z q → t 1 t 1 ← g s1 pk 1 -c ← t 2 t ← t 1 ·t 2 c ← H(t,m) Standard Schnorr proof technique does not work (cannot program random oracle, because adversary knows t before simulator does)

  10. Multi-signatures from discrete logarithms Scheme Rounds Rogue keys Signature simulation BN [BN06] 3 per-signer challenges preliminary round H(t i ) BCJ - 1 [BCJ08] 2 per-signer challenges homomorphic equivocable (HE) commitments BCJ - 2 [BCJ08] 2 proofs of possession MWLD [MWLD10] 2 per - signer challenges witness-indinstinguishable keys CoSi [STV+16] 2 proofs of possession (no security proof) MuSig - 1 [MPSW18a] 2 MuSig key aggregation DL oracle in one-more DL assumption mBCJ [this work] 2 proofs of possession per-message HE commitments BDN-DL, MuSig-2 3 MuSig key aggregation preliminary round H(t i ) [BDN18, MPSW19] BDN-DLpop [BDN18] 3 proofs of possession preliminary round H(t i ) BLS [Bol03,RY07] 1 proofs of possession pairings BDN-P [BDN18] 1 MuSig key aggregation pairings

  11. Attacks and non-provability

  12. Wagner’s generalized birthday attack [W02] k-sum problem in Z q : Given k lists of random elements in Z q Find (c 1 ,…,c k ) in lists such that c 1 + … + c k = 0 mod q List 1 List 2 … List k c k c 1 … … … c 2 Subexponential solution: Solved for k = 2 √n in time O(2 2√n ) where n = |q|.

  13. Application to “plain” Schnorr and CoSi • sk only appears in signature in s = r + c *sk, with c = H(g r , m) • If we have signatures with c 1 + … + c k-1 = H(t*, m), we can forge a signature on m*! … t 1 ← g r1 t k-1 ← g rk-1 t* ← t 1 ·…·t k-1 H(*,m) H(*,m) -H(t * ,m 1 ) H(*,m) H(*,m) -H(t * ,m 2 ) … … … H(*,m) H(*,m) -H(t * ,m L ) c 1 + … + c k-1 = c*

  14. Attacks on two-round multi-signature schemes • Attack applies to all previously* known two-round schemes • BCJ-1 and BCJ-2 • MWLD • CoSi • MuSig-1 • Sub-exponential but practical (for 256-bit q) • 15 parallel signing queries: 2 62 steps • 127 parallel signing queries: 2 45 steps • Prevented by increasing |q| …any hope for provable (asymptotic) security? * before first version of this paper

  15. Non-provability of two-round schemes Theorem: One-more discrete logarithm problem is hard ⇒ BCJ/MWLD/CoSi/MuSig-1 cannot be proved secure under one-more discrete logarithm (through algebraic black-box reductions in random-oracle model) Essentially excludes all known proof techniques (including rewinding) under likely assumptions. Subtle flaws in proofs of BCJ/MWLD/MuSig-1 (CoSi was never proved secure)

  16. Secure schemes

  17. Modified BCJ multi-signature • 2 round, secure under discrete logarithm, same efficiency as BCJ • Large scale deployment: • 16,384 signers generate signature within 2 seconds • 20% bandwidth, 75% computation increase compared to CoSi (plain schnorr)

  18. Other secure schemes • Three-round scheme [BDN18, MPSW19] • Secure under discrete-log assumption • Non-interactive scheme from BLS [BLS01,Bol03,RY07,BDN18] • Smaller signatures • Non-interactive aggregation • Requires bilinear pairings

  19. Lessons learned

  20. Lessons learned • Cryptographic schemes need security proofs • Don’t drop steps that look like they’re “just to make the proof work” • Security proofs must be reviewed • Proofs can be subtle, especially with rewinding arguments • Tool support for checking proofs? • Provable security is not perfect, but best tool we have

  21. Thank you! ia.cr/2018/417

  22. References [BN06] Bellare, Neven: Multi-signatures in the plain public-Key model and a general forking lemma. CCS 2006 [BCJ08] Bagherzandi, Cheon, Jarecki: Multisignatures secure under the discrete logarithm assumption and a generalized forking lemma. CCS 2008 [MWLD10] Ma, Weng, Li, Deng: Efficient discrete logarithm based multi-signature scheme in the plain public key model. Design, Codes and Cryptography 2010 [STV+16] Syta et al.: Keeping Authorities "Honest or Bust" with Decentralized Witness Cosigning. IEEE S&P 2016 [MPSW18a] Maxwell, Poelstra, Soerin, Wuille: Simple Schnorr Multi-Signatures with Applications to Bitcoin. ePrint report /2018/068/20180118:124757 [MPSW19] Maxwell, Poelstra, Soerin, Wuille: Simple Schnorr Multi-Signatures with Applications to Bitcoin. Design, Codes and Cryptography 2019 [BDN18] Boneh, Drijvers, Neven: Compact Multi-signatures for Smaller Blockchains. ASIACRYPT 2018 [RY07] Ristenpart, Yilek: The Power of Proofs-of-Possession: Securing Multiparty Signatures against Rogue-Key Attacks. EUROCRYPT 2007

  23. Modified BCJ multi-signatures pk i = g ski + PoP KAgg: Check PoPs, apk ← Πpk i Verify: c ← H(t 1 ,t 2 ,apk,m) (g 2 ,h 1 ,h 2 ) ← H'(m) Check t 1 = g 1 α1 h 1 α2 r,α 1 ,α 2 ← R Z q and t 2 = g 2 α1 h 2 α2 g 1 s apk -c t i,1 ← g 1 α1 h 1 α2 t i,1 , t i,2 t i,2 ← g 2 α1 h 2 α2 g 1 r Efficiency t 1 ← Πt i,1 ; t 2 ← Πt i,2 Sign: 1 mexp 2 + 1 mexp 3 c ← H(t 1 ,t 2 ,Πpk i ,m) plain Schnorr: 1 exp s i , α i,1 , α i,2 s i ← r + c·sk i + Σs i mod q Verify: 3 mexp 2 s ← Σs i mod q plain Schnorr: 1 mexp 2 α 1 ← Σα i,1 mod q Signature size: 160 B α 2 ← Σα i,2 mod q plain Schnorr: 64 B σ ← (t 1 ,t 2 ,s,α 1 ,α 2 )

  24. Application to “plain” Schnorr and CoSi Query on m 1 Query on m 2 Forgery on m 3 r 1 ← R Z q r 2 ← R Z q t 3 ← t 1 · t 2 t 1 ← g r1 t 2 ← g r2 c 3 ← H(t 3 ,m 3 ) such that c 3 = c 1 + c 2 c 1 ← H(t 1 ,m 1 ) c 2 ← H(t 2 ,m 2 ) s 3 ← s 1 + s 2 s 1 ← r 1 + c 1 ·sk s 2 ← r 2 + c 2 ·sk σ 3 ← (c 3 , s 3 ) σ 1 ← (c 1 , s 1 ) σ 2 ← (c 2 , s 2 )

  25. Lessons learned • Provable security! 🤕 • Provable security! • Review security proofs! 🤕 • Review security proofs! • Proofs can be subtle, especially forking • Tool support for checking proofs? • Don’t drop steps that look like they’re “just to make the proof work” • Provable security is not perfect, but best tool we have

  26. Application to “plain” Schnorr and CoSi … t 1 ← g r1 t k-1 ← g rk-1 t* ← t 1 ·…·t k-1 t* ← t 1 ·…·t k-1 H(*,m) H(*,m) -H(t * ,m 1 ) H(*,m) H(*,m) -H(t * ,m 2 ) … … … H(*,m) H(*,m) -H(t * ,m L ) s 1 ← r 1 + c 1 ·sk* mod q s k-1 ← r k-1 + c k-1 ·sk* mod q c 1 + … + c k-1 = c* mod q s* ← s 1 + … + s k-1 mod q pk* = g sk* g s* = g Σsi = g Σri + Σci·sk* = Πt i · pk* c* = t · pk* c*

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