460 likes | 468 Views
Explore Merkle and Lamport OTS schemes, Winternitz-OTS, security risks of quantum computing, and Tweakable Hash Functions for multi-tree MSS. Understand the impact on RSA, DSA, DH, and key generations based on SHA-2. Stay ahead with CFRG standardizations.
E N D
(To be) standardized hash-based signature schemes Andreas HülsingEindhoven University of Technology SSR 2018
The quantum threat • Shor’s algorithm breaks RSA, (EC)DSA, (EC)DH,… • Grover’s algorithm asymptotically reduces complexity of brute-force search attacks by a square-root factor. https://huelsing.net
Why care today • EU launched a one billion Euro project on quantum technologies • Similar range is spent in China • US administration passed a bill on spending $1.275 billion US dollar on quantum computing research • Google, IBM, Microsoft, Alibaba, and others run their own research programs. https://huelsing.net
It‘s a question of risk assessment https://huelsing.net
Long-lived systems • Development time easily 10+ years • Lifetime easily 10+ years • At least make sure you got a secure update channel! https://huelsing.net
Merkle‘s hash-based signatures [Lam79,Mer89] https://huelsing.net
Basic Construction https://huelsing.net
Lamport OTS [Lam79] Message M = b1,…,bm, OWF H = n bit SK PK Sig * sk1,0 • sk1,1 skm,0 • skm,1 H H H H H H Mux Mux Mux bm b1 b2 pk1,0 • pk1,1 pkm,0 • pkm,1 sk1,b1 • skm,bm https://huelsing.net
Merkle’s Hash-based Signatures PK SIG = (i=2, , , , , ) H OTS OTS OTS OTS OTS OTS OTS OTS OTS H H H H H H H H H H H H H H SK https://huelsing.net
Winternitz-OTS https://huelsing.net
Lamport-OTS in MSS SIG = (i=2, , , , , ) Verification: 1. Verify 2. Verify authenticity of We can do better! https://huelsing.net
WOTS in MSS X SIG = (i=2, , , , , ) Verification: 1. Compute from 2. Verify authenticity of Steps 1 + 2 together verify https://huelsing.net
Function chains Hash function Parameter Chain: i-times c0(x) = x https://huelsing.net
WOTS Winternitz parameter w (usually a power of 2), security parameter n, message length m, hash function Key Generation: Compute , sample pk1= cw-1(sk1) c0(sk1) = sk1 c1(sk1) c1(skl ) pkl= cw-1(skl ) c0(skl ) = skl https://huelsing.net
WOTS Signature generation M b1 b2 b3 b4 … … … … … … … bm‘ bm‘+1 bm‘+2 … … bl pk1= cw-1(sk1) c0(sk1) = sk1 C σ1=cb1(sk1) Signature: σ = (σ1, …,σl) pkl= cw-1(skl ) c0(skl ) = skl σl=cbl(skl) https://huelsing.net
WOTS Signature Verification • Verifier knows: M, w b1 b2 b3 b4 … … … … … … … bm‘ bm‘+1 bl1+2 … … bl (σ1) pk1 (σ1) =? σ1 (σ1) (σ1) Signature: σ = (σ1, …,σl) pkl =? (σl) σl https://huelsing.net
Multi-Tree MSS https://huelsing.net
Multi-Tree MSS Uses multiple layers of trees to reduce key generation time -> Key generation(= Building first tree on each layer) (2h) → (d*2h/d) -> Worst-case signing times(h/2) → (h/2d) -> Increases signature size by d-1 one-time signatures https://huelsing.net
Standardization in CFRG(adoption by NIST announced) https://huelsing.net
Competing proposals in IRTF‘s CFRG XMSS (RFC 8391) LMS (draft-mcgrew-hash-sigs-13) WOTS + MSS + Multi-tree(WOTS-LM + LMS + HSS=MT) w = 2, 4, 16, 256 h = 5, 10, 15, 20, 25 6 HSS combinations with two trees of independent height Only SHA2-256 • WOTS + MSS + Multi-tree(WOTS-T + XMSS-T + MT) • w = 16 • h = 10, 16, 20 • 8 MT (h,d) combinations (trees on all layers have same height) • SHA2-256 required; SHA2-512, SHAKE-128, SHAKE-256 optional https://huelsing.net
Intermezzo: Multi-target attacks • WOTS & Lamport need hash function to be one-way • Multi-tree of total height 60 with WOTS (w=16) leads images. • Inverting one of them allows existential forgery (at least massively reduces complexity) • q-query brute-force succeeds with probability conventional and quantum • We loose 66 bits of security! (33 bits quantum) https://huelsing.net
New abstraction: Tweakable Hash Function • Mitigation: Separate targets • Common approach: • In addition to hash function and „input“ take • Hash „Address“ (uniqueness in key pair) • Hash „key“ used for all hashes of one key pair (uniqueness among key pairs) • Tweakable Hash Function:PP: Public parametersTW: TweakMSG: MessageMD: Message Digest https://huelsing.net
Security of tweakable hashes • Necessary notion: Single-function multi-target-collision resistance for distinct tweaks • Intuition: • Adversary gets black box access to for random PP. • Adversary can adapatively query with restriction to use each tweak only once. • Adversary receives PP and has to find second-preimage for one of its previous queries (such that PP and TW are the same). • For length-preserving case: A property to guarantees that a preimage finder outputs a „new preimage“. E.g., assume that T is almost regular. (Subject of ongoing research) https://huelsing.net
Instantiating the tweakable hash (for SHA2) XMSS LMS MD = SHA2(PP||TW||MSG) QROM proof assuming SHA2 is QRO ROM proof assuming SHA2 compression function is RO Proofs are essentially tight • K = SHA2(pad(PP)||TW),BM = SHA2(pad(PP)||TW+1),MD=SHA2(pad(K)||MSG BM) • Standard model proof if K & BM were random, • (Q)ROM proof when generating K & BM as above (modeling those SHA2 invocations as RO) • Tight proof is currently under revision https://huelsing.net
Instantiating the tweakable hash • LMS is factor 3 faster but leads to slightly larger signatures at same security level • LMS makes somewhat stronger assumptions about the security properties of the used hash function • More research on direct constructions needed https://huelsing.net
About the statefulness • Works great for some settings • However.... ... back-up ... multi-threading ... load-balancing https://huelsing.net
How to Eliminate the State https://huelsing.net
SPHINCS (2015) • Stateless Scheme • XMSSMT + HORST + (pseudo-)random index • Collision-resilient • Deterministic signing • SPHINCS-256: • 128-bit post-quantum secure • Hundrest of signatures / sec • 41 kb signature • 1 kb keys https://huelsing.net
Few-Time Signature Schemes https://sphincs.org
HORS [RR02] Message M, OWF H, CRHF H’ = n bit Parameters t=2a,k, with m = ka (typical a=16, k=32) SK PK * sk1 • sk2 skt-1 • skt H H H H H H pk1 • pk1 pkt-1 • pkt https://sphincs.org
HORS mapping function * Message M, OWF H, CRHF H’ bit Parameters , with (typical ) M H’ b1 b2 ba bar ik i1 https://sphincs.org
HORS * Message M, OWF H, CRHF H’ bit Parameters , with (typical ) SK PK H’(M) Sig sk1 • sk2 skt-1 • skt H H H H H H pk1 • pk1 pkt-1 • pkt b1 b2 ba ba+1 bka-2 bka-1 bka Mux Mux i1 ik skik ski1 https://sphincs.org
HORS Security • mapped to element index set • Each signature publishes out of secrets • Either break one-wayness or… • r-Subset-Resilience: After seeing index sets for messages , hard to find such that . • Best generic attack: Succr-SSR(A,q) = q(rk/ t)k → Security shrinks with each signature! https://sphincs.org
HORST Using HORS with MSS requires adding PK ( bits) to MSS signature. (SPHINCS-256: ) HORST: Merkle Tree on top of HORS-PK • New PK = Root • Publish Auth-Paths for HORS signature values • PK can be computed from Sig • With optimizations: • E.g. SPHINCS-256: 2 MB →16 KB • Use randomized message hash https://sphincs.org
SPHINCS+ Joint work with Daniel J. Bernstein, Christoph Dobraunig, Maria Eichlseder, Scott Fluhrer, Stefan-Lukas Gazdag, Panos Kampanakis, Stefan Kölbl, Tanja Lange, Martin M. Lauridsen, Florian Mendel, Ruben Niederhagen, Christian Rechberger, Joost Rijneveld, Peter Schwabe https://huelsing.net
SPHINCS+ (our NIST submission) • Strengthened security gives smaller signatures • Collision- and multi-target attack resilient (XMSS tweakable hash) • Fixed length signatures (far easier to compute than Octopus (-> Gravity-SPHINCS)) • Small keys, medium size signatures (lv 3: 17kB) • Sizes can be much smaller if q_sign gets reduced • THE conservative choice https://huelsing.net
FORS (Forest of random subsets) • Parameters t, a = log t, k such that ka = m ... ... ... ... ... https://sphincs.org
Verifiable index selection (and optionally non-deterministic randomness) • SPHINCS: • SPHINCS+: https://sphincs.org
Verifiable index selection Improves FORS security • SPHINCS: Attacks could target „weakest“ HORST key pair • SPHINCS+: Every hash query ALSO selects FORS key pair • Leads to notion of interleaved target subset resilience https://sphincs.org
Instantiations • SPHINCS+-SHAKE256 • SPHINCS+-SHA-256 • SPHINCS+-Haraka https://huelsing.net
Instantiations (small vs fast) https://huelsing.net
Comparison to SPHINCS-128 at same security level https://huelsing.net
Hash-based Signatures in NIST „Competition“ • SPHINCS+ • FORS as few-time signature • XMSS-T tweakable hash • Gravity-SPHINCS • PORS as few-time signature • Requires collision-resistance -> no tweakable hash • (PICNIC) https://huelsing.net
Conclusion • Standardized hash-based signatures are available • Both got their pros & cons (independent comparison would be nice) • If you can deal with state: Please play around (and tell us about) • For stateless • A lot of trade-offs • Need requirements to fine-tune • Further comparison is needed (not easy to compare security) • Fault-attacks (and mitigations) need further attention • Tweakable hash functions • Might be interesting also in other settings • Dedicated constructions would be nice https://huelsing.net
Thank you! Questions? For references, literature & longer lectures see https://huelsing.net https://huelsing.net