<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.

Bilinear Pairing

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