hash based signatures
play

Hash-based Signatures IETF/IRTF CFRG Draft on XMSS Fraunhofer - PowerPoint PPT Presentation

Hash-based Signatures IETF/IRTF CFRG Draft on XMSS Fraunhofer Workshop Series 01 Post-Quantum Cryptography in Practice Speaker: Dr. Bernhard Jungk 1 eXtended Merkle Signature Scheme 2 eXtended Merkle Signature Scheme Why should we look


  1. Hash-based Signatures IETF/IRTF CFRG Draft on XMSS Fraunhofer Workshop Series 01 – Post-Quantum Cryptography in Practice Speaker: Dr. Bernhard Jungk 1

  2. eXtended Merkle Signature Scheme 2

  3. eXtended Merkle Signature Scheme Why should we look into XMSS? Hash-based signatures have many advantages: • Based on well understood security notions » Cryptographic hash functions are hard to invert, also for quantum computers » Merkle trees well studied since the 1980ies • Hash functions are well understood (especially after SHA-3 competition) • Fast signing and verification operations possible • Relatively easy to understand and implement 3

  4. eXtended Merkle Signature Scheme Why should we look into XMSS? XMSS is a promising candidate for • Applications with relatively low amount of signatures • One- or many-times firmware updates • Digital signatures for documents (e.g. contracts, email) • Long-term archival of important digital assets • PKI Certificates (e.g. Root CA) 4

  5. eXtended Merkle Signature Scheme Why should we look into XMSS? IRTF is part of IETF • Oriented towards research and long-term trends Important trend – PQC • Quantum computer attacks are likely • Design of replacements for traditional public key crypto Standardization needed • Interoperability • Implementation Guidelines 5

  6. eXtended Merkle Signature Scheme Our Contribution Implementation experience • Benchmarking against other schemes • Learn good trade-offs for different application scenarios, cost reductions, side-channels, etc. Target Platform: Hardware, i.e. FPGAs and ASICs Cooperation: • Yale University in New Haven, US • Fraunhofer SIT in Darmstadt, Germany • Fraunhofer Singapore 6

  7. Recap Winternitz One-Time Signatures 7

  8. Winternitz One-Time Scheme+ Basic Principle – Public Key Generation Public Key Chain 3 Chain 2 Chain 1 Chain 0 Public Seed 8 Private Key

  9. Winternitz One-Time Scheme+ Basic Principle – Signature Generation Signature Chain 3 Chain 2 Chain 1 Chain 0 Public Seed 9 Private Key

  10. Winternitz One-Time Scheme+ Basic Principle – Signature Verification Output == Public Key? Chain 3 Chain 2 Chain 1 Chain 0 Public Seed 10

  11. Winternitz One-Time Scheme+ Basic Principle Problem: Signer reveals how to sign other messages with Chain 3 the same key Chain 2 Chain 1 Chain 0 Seed 11

  12. Winternitz One-Time Scheme+ Basic Principle Message Checksum Solution: Checksum Chain Chain 0,3 1,3 Chain Chain 0,2 1,2 Chain Chain 0,1 1,1 Chain Chain 0,0 1,0 Seed Seed 12 SK1 SK0

  13. Winternitz One-Time Scheme+ Chaining Function for XMSS Output ‘Key’ Hash Address PRF F ‘Mask’ PRF Seed PRF – Pseudorandom function F – Keyed hash function Input 13

  14. eXtended Merkle Signature Scheme 14

  15. eXtended Merkle Signature Scheme L-Tree – Public Key Generation Compressed WOTS+ Public Key PK0 PK1 PK2 PK3 PK4 PK5 PK6 PK7 PK8 15

  16. eXtended Merkle Signature Scheme XMSS Tree – Public Key Generation XMSS Public Key Tree height h=3 Up to 2 3 =8 signature generations L-Tree L-Tree L-Tree L-Tree L-Tree L-Tree L-Tree L-Tree 16

  17. eXtended Merkle Signature Scheme The Complete Picture – Public Key Generation XMSS Public Key 2 h times SK0 SK1 SK2 SK3 SK4 SK5 SK6 SK7 SK8 17

  18. eXtended Merkle Signature Scheme rand_hash Output ‘Key’ Hash Address PRF H ‘Mask0’ PRF Seed PRF – Pseudorandom function ‘Mask1’ H – Keyed hash function PRF Left Right 18

  19. eXtended Merkle Signature Scheme Signature Generation – Message 1 WOTS+ Signature Merkle Tree Authentication Path Node to be computed SK0 SK1 SK2 SK3 SK4 SK5 SK6 SK7 SK8 19

  20. eXtended Merkle Signature Scheme Signature Generation – Message 1 SK0 SK1 SK2 SK3 SK4 SK5 SK6 SK7 SK8 20

  21. eXtended Merkle Signature Scheme Signature Generation – Message 2 WOTS+ Signature Merkle Tree Authentication Path Node to be computed SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 21

  22. eXtended Merkle Signature Scheme Signature Verification – Message 2 Output == XMSS Public Key? WOTS+ Signature Merkle Tree Authentication Path Node to be computed 22

  23. Performance Estimates 23

  24. Performace Consideration Public Key Generation – WOTS+ IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 24

  25. Performace Consideration Public Key Generation – WOTS+ IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 3 Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 25

  26. Performace Consideration Public Key Generation – WOTS+ IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 3*w = 48 Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 26

  27. Performace Consideration Public Key Generation – WOTS+ IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 48*67 = 3216 Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 27

  28. Performace Consideration Public Key Generation – WOTS+ IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 3216*2 h Hash Function Calls 2 h times SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 28

  29. Performace Consideration Public Key Generation – L-Tree IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 4 Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 29

  30. Performace Consideration Public Key Generation – L-Tree IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 4*65 = 268 Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 30

  31. Performace Consideration Public Key Generation – L-Tree IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 260*2 h Hash Function Calls 2 h times SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 31

  32. Performace Consideration Public Key Generation – XMSS IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 4*(2 h -1) = 4*2 h -4 Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 32

  33. Performace Consideration Public Key Generation – XMSS IRTF Parameters: WOTS+ chain length w=16 Merkle tree height h=10, h=16, or h=20 256 Bit Hashes (e.g. SHA-256) 3480*2 h -4 Total Hash Function Calls SK9 SK10 SK11 SK12 SK13 SK14 SK15 SK16 SK17 33

  34. Performance Consideration Hash Function Calls h=10 h=16 h=20 Signatures 1024 65,536 1,048,576 Public Key 3,563,520 228,065,280 3,649,044,480 Generation Signature ~5,560 ~263,684 ~4,195,828 Generation Signature ~1,908 ~1,932 ~1,948 Verification 34

  35. Performance with SHA-256 h=10 h=16 h=20 Signatures 1024 65,536 1,048,576 27*10 9 434*10 9 Public Key 423,099,648 Generation clock cycles clock cycles clock cycles With 400 <1.1 s <70 s <1085 s MHz Sign < 2 ms < 70 ms < 1 s Verify < 1 ms < 1 ms < 1 ms 35

  36. Performance with SHA-3 h=10 h=16 h=20 Signatures 1024 65,536 1,048,576 5*10 9 81*10 9 Public Key 79,159,200 Generation clock cycles clock cycles clock cycles With 400 < 200 ms <12.5 s < 203 s MHz Sign < 1 ms < 12.5 ms < 200 ms Verify < 1 ms < 1 ms < 1 ms 36

  37. Comparison with ECC FPGA Implementation Estimates (Virtex-5) Ed25519 XMSS-SHA3 h=10 Public Key < 1 ms < 200 ms Generation Sign < 1 ms < 1 ms Verify < 2 ms < 1 ms 37

  38. Optimisations and Trade-Offs Parallelization and Caching • Parallelization • WOTS+ trivial to compute in parallel • L-Tree and XMSS more difficult to parallelize • More/Less Caching • More caching of XMSS for authentication path (costs more memory) è Improves the signing performance • Less caching to save memory è In the worst case, signing almost as slow as public key generation è Useful for lightweight applications with low memory 38

  39. Thank you for your attention! 39

Recommend


More recommend