Skip to content

sikkatech/arkworks-threshold-decryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arkworks-threshold-decryption

Pairing based threshold decryption library

DO NOT USE IN PRODUCTION, VERY MUCH IN PROGRESS

This repository implements the threshold decryption scheme of BZ03. We implement two further optimizations to this scheme. One allows for 'additional data' to be augmented to the ciphertext, essentially achieving a threshold-decryptable AEAD scheme. The second allows for batching the decryption shares together, and to have the end-verifier only need to verify the combined decryption share.

TODO:

  • Figure out how to nicely template curve+AEAD choice.
  • Finish arkworks Hash To Curve PR, and switch API to that
  • Implement 'Dummy Key Generation'
  • Implement 'Threshold encrypt'
  • Implement Check-ciphertext
  • Implement Check-decryption share
  • Implement creating a decryption share
  • Implement Lagrange coefficient generation
  • Upstream Lagrange coefficient generation
  • Implement combining decryption shares
  • Implement a method to guarantee that a plaintext is truly the decryption of the ciphertext
  • Implement serialization methods for structs
  • Write proofs of missing components from the original paper
  • Prove our custom decryption share verification system
  • Zeroize secrets
  • Talk to Tony for how to do bug reporting

License

The crates in this repo are licensed under either of the following licenses, at your discretion.

Unless you explicitly state otherwise, any contribution submitted for inclusion in this library by you shall be dual licensed as above (as defined in the Apache v2 License), without any additional terms or conditions.

About

Pairing based threshold decryption library

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages