pqcrypto

module
v0.0.0-...-c31dd52 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2023 License: BSD-3-Clause

README

pqcrypto

pqcrypto -- A post-quantum cryptography library

Installation

  • requirements: go get -u golang.org/x/crypto/...
  • install: go get -u github.com/lingyunzhao/pqcrypto/...

Documentation

See Go Doc or Go Walker for usage and details.

Hash-based signatures

Lamport-Diffie-Winternitz-Merkle (LDWM) scheme

Standards: draft-mcgrew-hash-sigs-10

  • LM-OTS One-Time Signatures
  • Leighton Micali Signatures
  • Hierarchical signatures

eXtended Merkle Signature Scheme (XMSS)

Standards: draft-irtf-cfrg-xmss-hash-based-signatures-12

  • WOTS+ One-Time Signatures
  • XMSS: eXtended Merkle Signature Scheme
  • XMSS^MT: Multi-Tree XMSS

Miscellaneous

  • LDWM and XMSS are both stateful hash-based signatures. Signing reads a private key and a message and generates a signature but also generates an updated private key. Make sure to update the back-up private key before shutdown the program. You can use String() method to serialize a key and ParseXXX() to recover the key from a string.
  • The merkle tree traversal algorithm used in LDWM and XMSS are in log space and time according to Szydlo04.
  • The runtimes of some high security signature types in LDWM and XMSS are very long. However, weaker security signature types such as LMSSHA256M32H10 in LDWM-LMS and XMSSSHA2H16W256 in XMSS-XMSS are enough for security consideration.

TODO

  • implement the stateless hash-based signatures scheme SPHINCS
  • improve performance
  • implement other post-quantum cryptography schemes

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL