<aside> š Series:
评系åä»ē»äŗ Anonumous Credentialļ¼Anoncredļ¼/Attribute-Based Credentialļ¼ABCļ¼ēę¦åæµļ¼čåēē®ę³åē selective disclosureļ¼å ·ä½ēå®ē° CL signaturećBBS+ signatureć
Anonymous Credential Part 1: Brief Overview and History
Anonymous Credential Part 2: Selective Disclosure and CL Signature
Anonymous Credential Part 3: BBS+ Signature
</aside>
Despite its huge successes as core building blocks for anonymous credential (Anoncred) systems, the CL signature relies on the strong RSA assumption of which security is based on the practical difficulty of factoring the product of two large prime numbers. To achieve sufficient security, CL signature-based Anoncred systems require long keys and signatures, resulting in slow cryptographic operations.
On the other hand, the BBS+ signature relies on theĀ q-Strong Diffie HellmanĀ (q-SDH) assumption withĀ pairing-basedĀ elliptic-curve cryptographyĀ that requires much shorter keys and signatures than the CL signature to achieve the same level of security. This article explainsĀ simplifiedĀ mathematics for understanding BBS+ signature, as described in [CDL16], where all formal proofs are neglected.
Here, we assume the knowledge of the following topics:
First, we describe bilinear pairing, which is an underlying mathematical operation for generating and verifying the BBS+ signature. This is followed by a brief explanation for q-SDH assumption. Three operations of the BBS+ signature are explained: namely (i) key generation, (ii) signature generation, and (iii) signature verification. Finally, we discuss the signature proof of knowledge as an essential privacy-preserving mechanism for the BBS+ signature.
A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography
Unlike the CL signature that generates keys and signatures from two large prime numbers, the BBS+ signature uses pairing-friendly elliptic-curves.
First, we define cyclic groupsĀ $G_1$Ā andĀ $G_2$Ā of the same prime orderĀ $p$. GivenĀ $g_1$Ā as a generator ofĀ $G_1$Ā andĀ $g_2$Ā as a generator ofĀ $G_2$, we can generate another third groupĀ $G_T$Ā of also the prime orderĀ $p$ using aĀ bilinear mapĀ $e$Ā as follows:
$$ e: \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T $$
The bilinear mapĀ $e$Ā is aĀ polynomial-time computable mapĀ that generates an element inĀ $G_T$Ā such that:
$$ e(g_1, g_2) = g_T $$
, whereĀ $g_1$,Ā $g_2$Ā andĀ $g_T$Ā are generators of groupsĀ $G_1$,Ā $G_2$Ā andĀ $G_T$. The bilinear mapĀ $e$Ā also satisfies the following properties
Bilinearity:
$$ \begin{align} \forall x,y &\in \mathbb{Z} \notag \\ e(g_1^x, g_2^y) &= e(g_1^y, g_2^x) \notag \\ e(g_1^x, g_2^y) &= e(g_1, g_2)^{xy} \notag \end{align} $$