two round multi signatures
play

Two-Round Multi-Signatures Manu Drijvers 1 , Kasra Edalatnejad 2 , - 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 To appear at S&P 2019,


  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 To appear at S&P 2019, full version on ePrint 2018/417

  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. Bitcoin blockchain and transactions Input Output Witness Input Output Witness Input Output Witness Pointer to sender = recipient address & Witness data unspent output with amount addr in = H(pk) addr out = H(pk ’) pk, 𝞽 under pk amount in = 1 BTC amount out = 1 BTC

  5. Multi-input/output transactions merchant: H(pk’ 1 ), 12 BTC H(pk 1 ), 5 BTC pk 1 , σ 1 under pk 1 Input 1 Witness 1 H(pk 2 ), 6 BTC pk 2 , σ 2 under pk 2 Output 1 Input 2 Witness 2 H(pk 3 ), 3 BTC pk 3 , σ 3 under pk 3 Output 2 Input 3 Witness 3 change: H(pk’ 2 ), 2 BTC

  6. Multi-input/output transactions merchant: H(pk’ 1 ), 12 BTC pk 1 , pk 2 , pk 3 H(pk 1 ), 5 BTC Input 1 σ under apk = KAgg(pk 1 ,pk 2 , pk 3 ) H(pk 2 ), 6 BTC Output 1 Input 2 Witness H(pk 3 ), 3 BTC Output 2 Input 3 change: H(pk’ 2 ), 2 BTC Goal: save on network/storage/verification load (currently 200GB) more transactions per block (block size is constant)

  7. Multi-Sig addresses Address requiring signatures from multiple keys (t-out-of-N) e.g., joint accounts, additional security, fair exchange/escrow Input Output Witness Witness Pointer to pk 1 ,…, pk N addr in = H(pk 1 ,…, pk N ) 𝞽 1 under pk 1 amount in = 1 BTC … 𝞽 t under pk t

  8. Multi-Sig addresses N-out-of-N case using multi-signatures Transparent to verifier! Input Output Witness Pointer to Witness addr in = H(apk) apk, 𝞽 under apk amount in = 1 BTC

  9. Applications beyond Bitcoin • Collective signing by co-thorities (e.g., CoSi [STV+16]) • Distributed random beacons (e.g., RandHound [SJK+16]) • Notarization in blockchains • cryptocurrencies (e.g., ByzCoin [KJG+16]) • distributed ledgers (e.g., OmniLedger [KJG+17], Ziliqa, Harmony)

  10. Overview of this talk • Brief history of multi-signatures • Attacks on existing two-round schemes • Secure schemes • Conclusion

  11. Brief history of multi-signatures

  12. “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 )

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

  14. 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) cannot program random oracle, because adversary knows t before simulator does

  15. Multi-signatures from discrete logarithms Scheme Rounds Rogue keys Signature simulation MOR [MOR01] 2 interactive key generation sequential attacks only 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, MPSW18b] BDN-DLpop [BDN18] 3 proofs of possession preliminary round H(t i ) BLS [Bol03,RY07] 1 KOSK / proofs of possession pairings BDN-P [BDN18] 1 MuSig key aggregation pairings

  16. Attacks and non-provability

  17. 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|.

  18. Application to “plain” Schnorr and CoSi … t 1 ← g r1 t* ← t 1 ∙…∙t k-1 t* ← t 1 ∙…∙t k-1 t k-1 ← g rk-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*

  19. 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 security? * before first version of this paper

  20. 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)

  21. Secure schemes

  22. 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) α 1 h 1 α 2 Check t 1 = g 1 r, α 1 , α 2 ← R Z q s apk -c α 1 h 2 α 2 g 1 and t 2 = g 2 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 )

  23. Large-scale deployment of mBCJ • 16,384 signers generate signature within 2 seconds • 20% bandwidth increase, 75% computation increase

  24. Other secure schemes • Three-round scheme [BDN18, MPSW18b] (most likely fix for BitCoin) • Non-interactive scheme from BLS (pairings) [BLS01,Bol03,RY07,BDN18] (fix for RandHound/Omniledger and Harmony)

  25. Lessons learned

  26. 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

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

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