You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1.[Schnorr proof of knowledge protocol](./schnorr_pok) to prove knowledge of discrete log. [This](https://crypto.stanford.edu/cs355/19sp/lec5.pdf) is a good reference.
12
-
2.[BBS+ signature](./bbs_plus) for anonymous credentials. Based on the paper [Anonymous Attestation Using the Strong Diffie Hellman Assumption Revisited](https://eprint.iacr.org/2016/663)
12
+
2.[BBS and BBS+ signatures](./bbs_plus) for anonymous credentials. BBS+ is based on the paper [Anonymous Attestation Using the Strong Diffie Hellman Assumption Revisited](https://eprint.iacr.org/2016/663) and BBS is based on the paper [Revisiting BBS Signatures](https://eprint.iacr.org/2023/275).
13
13
3.[Dynamic accumulators, both positive and universal](./vb_accumulator). Based on the paper [Dynamic Universal Accumulator with Batch Update over Bilinear Groups](https://eprint.iacr.org/2020/777)
14
14
4.[Composite proof system](./proof_system) that combines above primitives for use cases like
15
15
- prove knowledge of a BBS+ signature and the corresponding messages
@@ -53,7 +53,7 @@ For running tests faster, run `cargo test --release`
Copy file name to clipboardExpand all lines: bbs_plus/src/lib.rs
+21-5Lines changed: 21 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -1,34 +1,50 @@
1
1
#![cfg_attr(not(feature = "std"), no_std)]
2
2
#![allow(non_snake_case)]
3
3
4
+
//! Implements BBS and BBS+.
5
+
//!
4
6
//! BBS+ signature according to the paper: [Anonymous Attestation Using the Strong Diffie Hellman Assumption Revisited](https://eprint.iacr.org/2016/663).
5
7
//! Provides
6
-
//! - signature creation and verification in both groups G1 and G2.
8
+
//! - signature creation and verification with signature in group G1 and public key in group G2 and vice-versa.
7
9
//! - proof of knowledge of signature and corresponding messages in group G1 as that is more efficient.
8
10
//!
11
+
//! BBS signature according to the paper: [Revisiting BBS Signatures](https://eprint.iacr.org/2023/275).
12
+
//! Provides
13
+
//! - signature creation and verification with signature in group G1 and public key in group G2.
14
+
//! - proof of knowledge of signature and corresponding messages.
15
+
//!
9
16
//! ## Modules
10
17
//!
11
-
//! 1. Signature parameters and key generation module - [`setup`]
12
-
//! 2. Signature module - [`signature`]
13
-
//! 3. Proof of knowledge of signature module - [`proof`]
18
+
//! 1. BBS and BBS+ signature parameters and key generation module - [`setup`]. The signature params for BBS are slightly
19
+
//! different from BBS+ but public key is same.
20
+
//! 2. BBS+ signature module - [`signature`]
21
+
//! 3. BBS+ proof of knowledge of signature module - [`proof`]
22
+
//! 4. BBS signature module - [`signature_23`]
23
+
//! 5. BBS proof of knowledge of signature module - [`proof_23`]
14
24
//!
15
25
//! The implementation tries to use the same variable names as the paper and thus violate Rust's naming conventions at places.
0 commit comments