Giter Club home page Giter Club logo

bbs-signatures-spec's People

Contributors

andrewwhitehead avatar mikelodder7 avatar tplooker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bbs-signatures-spec's Issues

Enforcing required-reveal statements

Rather than adding required-reveal statements at a higher level (like linked data proofs) where they are difficult or impossible to enforce, for the next draft I think it would be beneficial to tie signature generation and verification to this information.

There are a few ways that this could be done, but I think that adding a required-reveal flag to the message generators is a good approach. For example, at the moment h[i] is defined as hash_to_curve_g1( w || I2OSP(0, 1) || I2OSP(i + 1, 4) || I2OSP(0, 1) || I2OSP(count, 4) ). The input to the hash could be extended with the required-reveal state of that message index, I2OSP(ri, 1) where ri is 0 or 1. For use cases where required-reveal statements are not important, the set of indices would be omitted and default to 0 for each index.

SpkVerify would be updated to take the required-reveal indices into account and reject verification when the message input is not provided.

Make signatures deterministic

If possible, it would be awesome to have deterministic signatures, so that test vectors / higher order data structures can be made stable.

Need to specify the hash-to-curve draft version

The bbs crate currently follows draft 5, which is incompatible with later drafts. This needs to be added to the current spec as the values of the message generators will change depending on the draft version.

Terminology 1.2-4.14.1 - hash_to_curve_g2 refers to G1

The spec currently says that this function returns a point in G1. I believe this is intended to be G2?

hash_to_curve_g2(ostr) -> P

    The cryptographic hash function that takes as an arbitrary octet string input and returns a point in **G1** as defined in [I-D.irtf-cfrg-hash-to-curve]. The algorithm is BLS12381G2_XMD:BLAKE2B_SSWU_RO, i.e use Blake2b-512 as part of expand message digest, apply the isogeny simplified SWU map to compute a point in G2 using the random oracle method. The domain separation tag value is dst.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.