Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Digital signature schemes are foundational cryptographic primitives; they are useful in themselves to ensure integrity and non-repudiation and as building block of other systems. From their first construction by Rivest, Shamir and Adleman [1], digital signatures have been on bit-strings or group elements, on a committed sequence of bit-strings [2] or structure-preserved group elements [3]. In this work, we establish a signature scheme and corresponding proof system for committed graphs.

The basis for this work is the Camenisch-Lysyanskaya proof system: a collection of distributed algorithms that allow an issuer, a prover and a verifier to prove knowledge of committed values, issue a Camenisch-Lysyanskaya (CL) signature [2, 4] on committed values, and prove knowledge of such a signature in zero-knowledge. It uses honest-verifier \({\varSigma }\)-proofs (Schnorr proofs [5]) and has the advantage that it keeps all attributes in the exponent. It thereby allows us to access attributes with known discrete-logarithm-based zero-knowledge proofs of knowledge [510]. The attributes that could be signed are, however, limited by the message space of the CL-signature scheme: a sequence of small bit-strings.

We study how to extend the Camenisch-Lysyanskaya proof system to establish signatures on committed graphs and, by extension, on committed statements from NP languages. Zero-knowledge proofs of certified or committed graphs and complex statements thereon have significant applications beyond classical graph proof techniques [11, 12] or the more recent proposal of transitive signatures [13]. The key difference to earlier work is that the graph encoding is universal, enables direct access to graph elements, and allows a prover to be flexible in the statements proven after the graph is certified. Such graph proofs are instrumental in foundational techniques, such as the zero-knowledge proof of knowledge of certified Petri nets as well as in various application scenarios, such as for the certification of audited cloud topologies, for which we proposed a dedicated framework for topology proofs [14].

First, we establish a new encoding of undirected graphs into the message space of CL-Signatures. The encoding supports vertex- or edge-labeled graphs and is universal in the sense that it supports efficient proofs over arbitrary graph elements and their relations.

Second, we extend the Camenisch-Lysyanskaya proof system to graphs by integrating the graph encoding into integer commitments and the CL-Signature bootstrapping process. This allows prover and issuer to sign committed graphs with sub-graphs contributed by both parties and to prove knowledge of graph signatures in honest-verifier \({\varSigma }\)-proofs. The obtained graph proof system in itself enables efficient zero-knowledge proofs of interesting graph properties, such as partitions, connectivity and isolation [14]. Graph proofs with a level of indirection between the authority on the graph (the issuer) and the verifier, established by a graph signature and with access to a wide range of graph properties, have not been covered by existing zero-knowledge graph proofs, such as [11, 12, 15], or transitive signatures [13]. While the former graph proofs are powerful constructions allowing for NP statements, e.g., graph 3-colorability or directed Hamiltonian cycle, their encoding does not cater for proving relations over graph elements in zero-knowledge. The latter is focused on the transitive closure along graph edges.

Third, we establish a proof system for graph 3-colorability (G3C) that allows us to obtain CL-Signatures on committed instances of 3-colorable graphs and to prove knowledge thereof to a verifier in zero-knowledge. Given that graph 3-colorability is NP-complete, we can lift the Camenisch-Lysyanskaya proof system to NP statements. Based on the 3-colorability proof system in a special RSA group and under the Strong RSA assumption, we show that there exists a Camenisch-Lysyanskaya proof system for any NP language, that is, the proof is capable of issuing CL-Signatures on committed statements from the NP language and to prove knowledge of such signatures in honest-verifier \({\varSigma }\)-proofs. Whereas the G3C-reduction does not offer efficient constructions for graph proofs, it shows the expressiveness of graph signatures.

In effect, this work extends the reach of the Camenisch-Lysyanskaya proof system to signatures and proofs on structures of entire systems. To our knowledge, it is the first work to enable signatures on committed graphs. Notably, the graph elements are present in the exponents and, thereby, accessible to known discrete-logarithm-based zero-knowledge proofs on a wide range graph properties in honest-verifier proofs.

1.1 Outline

In Sect. 2, we discuss the preliminaries of our graph proof construction: Camenisch-Lysyanskaya signatures and Camenisch-Groß encoding. Based on the Camenisch-Groß encoding, we establish a canonical encoding for vertex- and edge-labeled graphs in Sect. 3. Section 4 establishes how integer commitments and CL-Signature are extended with the graph encoding. In Sect. 5 we show how graph 3-colorability can be expressed in the graph proof system as proof of the encoding’s theoretical reach. Section 7 considers earlier work on zero-knowledge proofs and signatures on graphs, while Sect. 8 draws conclusions on this work.

2 Preliminaries

2.1 Assumptions

Special RSA Modulus. A special RSA modulus has the form \(N = pq\), where \(p=2p'+1\) and \(q=2q'+1\) are safe primes, the corresponding group is called special RSA group. Strong RSA Assumption [1, 7]. Given an RSA modulus N and a random element \(g \in \mathbb {Z}_N^*\), it is hard to compute \(h \in \mathbb {Z}_N^*\) and integer \(e > 1\) such that \(h^e \equiv g\) mod N. The modulus N is of a special form pq, where \(p=2p'+1\) and \(q=2q'+1\) are safe primes. Quadratic Residues. The set \({\mathrm {QR}}_{N}\) is the set of Quadratic Residues of a special RSA group with modulus N.

2.2 Integer Commitments

Damgård and Fujisaki [6] showed for the Pedersen commitment scheme [16] that if it operates in a special RSA group and the committer is not privy to the factorization of the modulus, then the commitment scheme can be used to commit to integers of arbitrary size. The commitment scheme is information-theoretically hiding and computationally binding. The security parameter is \(\ell \). The public parameters are a group G with special RSA modulus N, and generators \((g_0,\ldots ,g_{m})\) of the cyclic subgroup \({\mathrm {QR}}_{N}\). In order to commit to the values , pick a random \(R \in \{0,1\}^\ell \) and set \(C = g_0^R\prod _{i=1}^{l}g_i^{v_i}\).

2.3 Known Discrete-Logarithm-Based, Zero-Knowledge Proofs

In the common parameters model, we use several previously known results for proving statements about discrete logarithms, such as (1) proof of knowledge of a discrete logarithm modulo a prime [5] or a composite [6, 7], (2) proof of knowledge of equality of representation modulo two (possibly different) composite [8] moduli, (3) proof that a commitment opens to the product of two other committed values [8, 17], (4) proof that a committed value lies in a given integer interval [8, 9], and also (5) proof of the disjunction or conjunction of any two of the previous [18]. These protocols modulo a composite are secure under the strong RSA assumption and modulo a prime under the discrete logarithm assumption.

Proofs as described above can be expressed in the notation introduced by Camenisch and Stadler [19]. For instance,

$$\begin{aligned} PK \{(\alpha ,\beta ,\delta ): y=g^{\alpha }h^{\beta } \wedge \tilde{y}=\tilde{g}^{\alpha }\tilde{h}^{\delta } \wedge (u \le \alpha \le v)\} \end{aligned}$$

denotes a “zero-knowledge Proof of Knowledge of integers \(\alpha \), \(\beta \), and \(\delta \) such that \(y=g^{\alpha }h^{\beta }\) and \(\tilde{y}=\tilde{g}^{\alpha }\tilde{h}^{\delta }\) holds, where \(u \le \alpha \le v\),” where \(y,g,h,\tilde{y},\tilde{g},\) and \(\tilde{h}\) are elements of some groups \(G=\langle {g}\rangle =\langle {h}\rangle \) and \(\tilde{G}=\langle \tilde{g} \rangle =\langle \tilde{h} \rangle \). The convention is that Greek letters denote quantities of which knowledge is being proven, while all other values are known to the verifier. We apply the Fiat-Shamir heuristic [20] to turn such proofs of knowledge into signatures on some message m; denoted as, e.g., \( SPK \{(\alpha ):y=g^{\alpha }\}(m)\). Given a protocol in this notation, it is straightforward to derive an actual protocol implementing the proof.

2.4 Camenisch-Lysyanskaya Signatures

Let us introduce Camenisch-Lysyanskaya (CL) signatures in a Strong RSA setting [2]. Let \(\ell _\mathcal {M} \), \(\ell _e\), \(\ell _N\), \(\ell _r\) and L be system parameters; \(\ell _r\) is a security parameter, \(\ell _\mathcal {M} \) the message length, \(\ell _e\) the length of the Strong RSA problem instance prime exponent, \(\ell _N\) the size of the special RSA modulus. The scheme operates with a \(\ell _N\)-bit special RSA modulus. Choose, uniformly at random, \(R_0,\ldots ,R_{L-1},S,Z \in {\mathrm {QR}}_{N}\). The public key \({\mathsf {pk}}(\mathsf {I} \!)\) is \((N,R_0,\ldots ,R_{L-1},S,Z)\), the private key \({\mathsf {sk}}(\mathsf {I} \!)\) the factorization of the special RSA modulus. The message space is the set \(\{(m_0,\ldots ,m_{L-1}) : m_i \in \pm \{0,1\}^{\ell _\mathcal {M}}\}.\)

Signing hidden messages. On input \(m_0,\ldots ,m_{L-1}\), choose a random prime number e of length \(\ell _e > \ell _\mathcal {M} + 2\), and a random number v of length \(\ell _v = \ell _N + \ell _\mathcal {M} + \ell _r\). To sign hidden messages, user \(\mathsf {U} \) commits to values V in an integer commitment C and proves knowledge of the representation of the commitment. The issuer\(\mathsf {I} \)  verifies the structure of C and signs the commitment:

$$\begin{aligned} A = \left( \frac{Z}{ C R_l^{m_l}\ldots R_{L-1}^{m_{L-1}} S^{v'}}\right) ^{1/e} \hbox {mod }{N}. \end{aligned}$$

The user completes the signature as follows: \(\sigma = (e,A,v) = (e,A,(v'+R))\).

To verify that the tuple (eAv) is a signature on message \((m_0,\ldots ,m_{L-1}) \), check that the following statements hold: \(Z \equiv A^e R_0^{m_0}\ldots R_{L-1}^{m_{L-1}}S^v \pmod {N}\), \(m_i \in \pm \{0,1\}^{\ell _\mathcal {M}}\), and \(2^{\ell _e}> e > 2^{\ell _e-1}\) holds.

Theorem 1

[2] The signature scheme is secure against adaptive chosen message attacks under the strong RSA assumption.

Proving Knowledge of a Signature. The prover randomizes A: Given a signature (Aev), the tuple \((A' := A S^{-r} \hbox {mod }{N},e,v' := v+er)\) is also a valid signature as well. Now, provided that \(A \in \langle S \rangle \) and that r is chosen uniformly at random from \(\{0,1\}^{\ell _N + \ell _\varnothing }\), the value \(A'\) is distributed statistically close to uniform over . Thus, the user could compute a fresh \(A'\) each time, reveal it, and then run the protocol

$$\begin{aligned} \textit{PK}\{&(\varepsilon , \nu ', \mu _0 , \ldots , \mu _{L-1}):\\&Z \equiv \pm R_0^{\mu _0} \cdots R_{L-1}^{\mu _{L-1}} A'^{\varepsilon } S^{\nu '}\!\!\! \pmod {N} \ \ \wedge \ \\&\mu _i \in \pm \{0,1\}^{\ell _\mathcal {M}} \ \ \wedge \ \ \varepsilon \in [2^{\ell _e -1} +1, 2^{\ell _e} -1 ]\} \end{aligned}$$

2.5 Set Membership from CL-Signatures

Set membership proofs can be constructed from CL-Signatures following a method proposed by Camenisch, Chaabouni and shelat [21]. For a set \(\mathcal {S} = \{m_0, \ldots , m_i,\ldots , m_l\}\), the issuer signs all set members \(m_i\) in CL-Signatures \(\sigma _i = (A, e, v)\) and publishes the set of message-signature pairs \(\{(m_i, \sigma _i)\}\) with integrity. To prove set membership of a value committed in C, the prover shows knowledge of the blinded signature \(\sigma _i'\) corresponding to the message \(m_i\) and equality of exponents with C. We explain this technique in detail in the extended version of this paper and denote a set membership proof \(\mu [C] \in \mathcal {S} \), which reads \(\mu \) encoded in commitment C is member of set \(\mathcal {S} \).

2.6 Camenisch-Groß Encoding

The Camenisch-Groß (CG) Encoding [22] establishes structure on the CL message space by encoding multiple binary and finite-set values into a single message, and we will use a similar paradigm to encode graphs efficiently. We explain the key principles briefly and give more details in the extended version of this paper.

The core principle of the CG-Encoding is to represent binary and finite-set attribute values as prime numbers. It uses divisibility and coprimality to show whether an attribute value is present in or absent from a credential. The attribute values certified in a credential, say \(e_i\), \(e_j\), and \(e_l\), are represented in a single message of the CL-Signature, by signing the product of their prime representative \(E= e_i \cdot e_j \cdot e_l\) in an Integer attribute. The association between the value and the prime number of the encoding is certified by the credential issuer.

Divisibility/AND-Proof. To prove that a disclosed prime representative \(e_i\) is present in E, we prove that \(e_i\) divides the committed product E, we show that we know a secret \(\mu '\) that completes the product:

$$\begin{aligned} PK \{(\mu ', \rho ):\quad D \equiv \pm (g^{e_i})^{\mu '} h^\rho \!\!\! \pmod {N}\}. \end{aligned}$$

Coprimality/NOT-Proof. We show that one or multiple prime representatives are not present in a credential, we show coprimality. To prove that two values E and F are coprime, i.e., \(\mathsf {gcd}(E, F) = 1\), we prove there exist integers a and b such that Bézout’s Identity equals 1, where a and b for this equation do not exist, if \(\mathsf {gcd}(E, F) > 1\).

$$\begin{aligned} PK \{(\mu ,\rho ,\alpha ,\beta ,\rho '):\quad D \equiv \pm g^{\mu } h^\rho \!\!\! \pmod {N} \ \ \wedge \ \ g \equiv \pm D^\alpha (g^{F})^\beta h^{\rho '} \!\!\! \pmod {N}\}. \end{aligned}$$

OR-Proof. To show that a credential contains an attribute e that is contained in an OR-list, we show there exists an integer a such that \(a e = \prod _i^{\ell } {e_i}\); if e is not in the list, then there is no such integer a as e does not divide the product. We use the notation \(\alpha \subseteq {\varXi }\) for an OR-proof that \(\alpha \) contains one or more values of \({\varXi }\).

3 Graph Encoding

We consider graphs over finite vertex sets, with undirected edges or directed arcs, and finite sets of vertex and edge labels. Vertices and edges may be associated with multiple labels. We leave the encoding of directed arcs to the extended version of this paper.

$$\begin{aligned} \begin{array}{ll} \mathcal {V} &{} \text {Finite set of vertices}\\ \mathcal {E} \subseteq (\mathcal {V} \times \mathcal {V}) &{} \text {Finite set of edges}\\ \mathcal {G} =(\mathcal {V}, \mathcal {E}, t_\mathcal {V}, t_\mathcal {E}) &{} \text {Graph}\\ \mathcal {L} _\mathcal {V}, \mathcal {L} _\mathcal {E} &{} \text {Finite sets of vertex and edge labels}\\ f_\mathcal {V} : \mathcal {V} \rightarrow \mathcal {P}(\mathcal {L} _\mathcal {V}) &{} \text {Labels of a given vertex}\\ f_\mathcal {E} : \mathcal {E} \rightarrow \mathcal {P}(\mathcal {L} _\mathcal {E}) &{} \text {Labels of a given edge}\\ n = |\mathcal {V} |, m = |\mathcal {E} | &{} \text {Number of vertices and edges} \end{array} \end{aligned}$$

For each vertex i in \(\mathcal {V} \), we introduce a vertex identifier, a prime \(e_i\), which represents this vertex in credential and proofs. The symbol \(\bot \), associated with identifier \(e_{\bot }\) represents that a vertex is not present. All vertex identifiers are pair-wise different. We call the set of all vertex identifiers \({\varXi }_\mathcal {V} \), their product \(\chi _\mathcal {V} = {\varPi }{\varXi }_\mathcal {V} \). For each label k in the label sets \(\mathcal {L} _\mathcal {V} \) and in \(\mathcal {L} _\mathcal {E} \), we introduce a prime representative \(e_k\). All label representatives are pair-wise different. We call the set of all label representatives \({\varXi }_\mathcal {L} \), their product \(\chi _\mathcal {L} = {\varPi }{\varXi }_\mathcal {L} \). Vertex identifiers and label representatives are disjoint:

$$\begin{aligned} {\varXi }_\mathcal {V} \cap {\varXi }_\mathcal {L} = \emptyset \quad \Leftrightarrow \quad \mathsf {gcd}(\chi _\mathcal {V}, \chi _\mathcal {L}) = 1. \end{aligned}$$

Random Base Association. We encode vertices and edges into the exponents of integer commitments and CL-Signatures and make them therefore accessible to proofs of linear equations over exponents. We randomize the base association to vertices and edges: For a vertex index set \(\mathcal {V} \)= 0,...,i,\( n \)-1 with vertex identifiers \(e_i\), we choose a uniformly random permutation \(\pi _\mathcal {V} \) of set \(\mathcal {V} \) to determine the base \(R_{\pi (i) }\) to encode vertex i. Edge bases \(R_{\pi (i,j) }\) are chosen analogously with a random permutation \(\pi _{\mathcal {E}}\).

Encoding Vertices. To encode a vertex and its associated labels into a graph commitment or CL-Signature, we encode the product of the vertex identifier \(e_i \in {\varXi }_\mathcal {V} \) and the prime representatives \(e_k \in {\varXi }_\mathcal {L} \) for \(k \in f_\mathcal {V} (i) \) of the labels into a single of the signature message. The product of prime representatives is encoded as exponent of dedicated vertex bases \(R \in G_\mathcal {V} \).

Encoding Edges. To get a compact encoding and efficient proofs thereon, the encoding needs to maintain the graph structure and to allow us to access it to proof higher-level properties, such as connectivity and isolation. The proposal we make in this paper after evaluating multiple approaches is to use divisibility and coprimality similar to the CG-Encoding to afford us these efficient operations over the graph structure, while offering a compact encoding of edges.

Recall that each vertex is certified with an vertex identifier from \({\varXi }_\mathcal {V} \), e.g., \(e_i\) or \(e_j\). For each edge \((i, j) \in \mathcal {E} \), we include an edge attribute as exponent of a random edge base \(R_{\pi (i,j)} \in G_\mathcal {E} \), containing the product of the vertex identifiers and the associated label representatives \(e_k \in {\varXi }_\mathcal {L} \) for \(k \in f_\mathcal {E} (i, j) \) of the edge:

$$\begin{aligned} E_{(i,j)} := e_i \cdot e_j \cdot {\varPi }_{k \in f_\mathcal {E} (i, j)} e_k. \end{aligned}$$

whereas we usually consider simple graphs, specialties such as multigraphs, loops (ii) encoded as \(e_i^2\) or half-edges encoded as \((e_j, e_\bot )\) can be included.

Definition 1

(Well-formed Graph). We call a graph encoding well-formed iff 1. the encoding only contains prime representatives \(e \in {\varXi }_\mathcal {V} \cup {\varXi }_\mathcal {L} \) in the exponents of designated vertex and edge bases \(R \in G_\mathcal {V} \cup G_\mathcal {E} \), 2. each vertex base \(R \in G_\mathcal {V} \) contains exactly one vertex identifier \(e_i \in {\varXi }_\mathcal {V} \), pair-wise different from other vertex identifiers and zero or more label representatives \(e_k \in {\varXi }_\mathcal {L} \), and 3. each edge base \(R \in G_\mathcal {E} \) contains exactly two vertex identifiers \(e_i, e_i \in {\varXi }_\mathcal {V} \) and zero or more label representatives \(e_k \in {\varXi }_\mathcal {L} \).

Theorem 2

(Unambiguous Encoding and Decoding). A well-formed graph encoding on the integers is unambiguous modulo the base association.    [Proof 9.1]

Table 1. Interface of the graph signature scheme.

4 Signatures on Committed Graphs

CL-signatures are signatures on committed messages, where messages can be contributed by issuer and user. This translates to a user committing to a hidden partial graph \(\mathcal {G} _\mathsf {U} \), which is then completed by the issuer \(\mathcal {G} _\mathsf {I} \!\), as outline in the interface in Table 1. We establish the secrecy notion of the construction first, explain the proof of representation second, and the issuing third.

As a point of reference, we give the structure of the graph signatures first. We have bases \(R_{\pi (i) } \in G_\mathcal {V} \), which store attributes encoding vertices, and bases \(R_{\pi (i,j) } \in G_\mathcal {E} \), which store attributes encoding edges. Observe that which base stores which vertex or edge is randomized by permutations \(\pi _\mathcal {V} \) and \(\pi _\mathcal {E} \).

$$\begin{aligned} Z = \underbrace{\cdots R_{\pi (i) }^{e_i {\varPi }_{k \in f_\mathcal {V} (i)} e_k }\cdots }_{\forall \text { vertices } i} \underbrace{\cdots R_{\pi (i,j) }^{e_i e_j {\varPi }_{k \in f_\mathcal {E} (i, j)} e_k} \cdots }_{\forall \text { edges } (i,j)} A^e S^v \hbox {mod }{N} \end{aligned}$$

4.1 Secrecy Notion

In a known-graph proof, the structure of the graph \(\mathcal {G} = (\mathcal {V}, \mathcal {E})\) is an auxiliary input to the verifier. Such a proof occurs if the prover needs to prove knowledge of a (NP-hard) property of the entire graph, e.g., a proper coloring in graph 3-colorability (cf. Sect. 2.4).

A hidden-graph proof keeps the structure of the graph \(\mathcal {G} =(\mathcal {V}, \mathcal {E})\) secret. For instance, there are graph proofs in which a local property is proven and the graph structure itself kept secret, e.g., when proving that disclosed vertices of the graph are connected by a hidden path.

The number of bases from \(\mathcal {G} _\mathcal {V} \) and \(\mathcal {G} _\mathcal {E} \) in a CL-Signature reveals an upper-bound on the number of vertices \( n \) and edges \( m \) of the signed graph. A suitable padding can be introduced by encoding nil-vertices \(e_{\bot }\) and nil-edges \((e_{\bot }, e_{\bot })\).

Proving properties over multiple attributes reveals which bases were involved in the proof. Characteristic patterns over said bases may interfere with the CL-Signature’s multi-use unlinkability. For instance, if the prover shows that vertices i and j are connected by an edge (ij) along with properties on the vertices themselves, the verifier will learn that the bases for the vertex identifiers \(e_i\) and \(e_j\) are related to the base for the encoding of edge (ij). To overcome this linking, the prover can obtain a collection of CL-Signatures on the same graph, each with a randomized association between bases and vertices/edges, that is, using different random permutations \(\pi _\mathcal {V} \) and \(\pi _\mathcal {E} \). When proving a property over the graph the prover chooses a CL-Signature from the collection uniformly at random and proves possession over that instance.

4.2 Proof of Representation

For a full proof of representation, we need to establish that the encoded graph in a graph commitment or CL-Signature is indeed well-formed (Definition 1). Given a graph commitment C the prover and verifier engage in the following proof of representation (the proof for a CL credential work analogously). We show that vertex bases contain a bi-partition of one and only one vertex identifier \(e_i \in {\varXi }_\mathcal {V} \) and a set of labels \(e_l \in {\varXi }_\mathcal {L} \). Edge bases contain a bi-partition of a product of exactly two vertex identifiers \((e_i \cdot e_j)\) and a set of labels \(e_l \in {\varXi }_\mathcal {L} \). To prove that the representation contains exactly one vertex identifier for a vertex base and two vertex identifiers for an edge base, we establish a set membership proof.

1. Commitments. The prover computes Integer commitments on the exponents of all vertex and edge bases. For each vertex i and for each edge (ij), the prover computes commitments on vertex attribute and identifier (all \(\hbox {mod }{N}\)):

$$\begin{aligned} \begin{array}{c} C_i = R^{e_i {\varPi }_{k \in f_\mathcal {V} (i)} e_k} S^r \quad \text { and }\quad \breve{C}_i = R^{e_i} S^{\breve{r}};\\ C_{(i,j)} = R^{e_i e_j {\varPi }_{k \in f_\mathcal {E} (i, j)} e_k} S^r, \quad \breve{C}_{(i,j)} = R^{e_i e_j} S^{\breve{r}} \quad \text { and } \quad \dot{C}_i = R^{e_i} S^{\dot{r}}. \end{array} \end{aligned}$$

2. Proof of knowledge. We build up the proof of possession and well-formedness step by step, where it is understood the proofs will be done in one compound proof of knowledge with referential integrity between the secret exponents. Let us consider a proof fragment for vertices ij and an edge (ij) committed in a graph commitment C (the same proof structure is used for CL-Signatures).

2.1 Proof of representation. We prove that commitment C decomposes into commitments \(C_i,C_j\), one for each vertex ij and one commitment \(C_{(i,j)}\) for each edge (ij):

$$\begin{aligned} PK \{&(\mu _i, \mu _j, \mu _{(i,j)}, \rho , \rho _i, \rho _j, \rho _{(i,j)}):\nonumber \\&C \equiv \pm \cdots R_{\pi (i) }^{\mu _i} \cdots R_{\pi (j) }^{\mu _j} \cdots R_{\pi (i,j) }^{\mu _{(i,j)}} \cdots S^\rho \!\!\! \pmod {N} \ \ \wedge \end{aligned}$$
(1)
$$\begin{aligned}&C_i \equiv \pm R^{\mu _i} S^{\rho _i} \!\!\! \pmod {N} \ \ \wedge \ \ C_j \equiv \pm R^{\mu _j} S^{\rho _j} \!\!\! \pmod {N} \ \ \wedge \end{aligned}$$
(2)
$$\begin{aligned}&C_{(i,j)} \equiv \pm R^{\mu _{(i,j)}} S^{\rho _{(i,j)}} \!\!\! \pmod {N} \}. \end{aligned}$$
(3)

2.2 Vertex composition. Second, we need to show properties of the vertex composition, that the encoding for each vertex i contains exactly one vertex identifier \(e_i \in {\varXi }_\mathcal {V} \) and zero or multiple label representatives \(e_k \in {\varXi }_\mathcal {L} \). We show this structure with help of the commitments \(\breve{C}_i\) and set membership and prime-encoding OR proofs. This proof is executed for all vertices.

$$\begin{aligned} PK \{&(\varepsilon _i, \breve{\rho }_i, \gamma _i, \rho _i'):\nonumber \\&\breve{C}_i \equiv \pm R^{\varepsilon _i} S^{\breve{\rho _i}} \!\!\! \pmod {N} \wedge C_i \equiv \pm \breve{C}^{\gamma _i} S^{\rho _{i}'} \!\!\! \pmod {N} \wedge \end{aligned}$$
(4)
$$\begin{aligned}&\gamma _i[C_i] \subseteq {\varXi }_\mathcal {L} \wedge \varepsilon _i[\breve{C}_i] \in {\varXi }_\mathcal {V} \}. \end{aligned}$$
(5)

2.3 Edge composition. Third, we prove the structure of each edge (ij) over the commitments \(C_{(i,j)}\), showing that each commitment contains exactly two vertex identifiers \(e_i,e_j \in {\varXi }_\mathcal {V} \) as well as zero or more label representative \(e_k \in {\varXi }_\mathcal {L} \):

$$\begin{aligned} PK \{&(\varepsilon _j, \rho _{(i,j)}, \gamma _{(i,j)}, \rho _{(i,j)}'):\nonumber \\&\breve{C}_{(i,j)} \equiv \pm \dot{C}_i^{\varepsilon _j} S^{\rho _{(i,j)}} \!\!\! \pmod {N} \wedge \end{aligned}$$
(6)
$$\begin{aligned}&C_{(i,j)} \equiv \pm \breve{C}_{(i,j)}^{\gamma _{(i,j)}} S^{\rho _{(i,j)}'} \!\!\! \pmod {N} \wedge \end{aligned}$$
(7)
$$\begin{aligned}&\gamma _{i,j} \subseteq {\varXi }_\mathcal {L} \}. \end{aligned}$$
(8)

2.4 Pair-wise difference. We prove pair-wise difference of vertices by showing that the vertex representatives are pair-wise co-prime over the commitments \(\breve{C}_i\) and \(\breve{C}_j\).

$$\begin{aligned} PK \{ (\forall i,j: \alpha _{i,j}, \beta _{i,j}, \rho _{i,j}):\qquad R \equiv \pm \breve{C}_{i}^{\alpha _{i,j}} \breve{C}_{j}^{\beta _{i,j}} S^{\rho _{i,j}} \pmod {N} \}. \end{aligned}$$
(9)

Theorem 3

(Proof of Well-formedness). The compound proof of knowledge establishes the well-formedness of an encoded graph according to Definition 1.    [Proof 10]

4.3 Joint Graph Issuing

To jointly issue a graph CL-signature, a user commits to a hidden partial graph and the issuer adds further elements to the graph (cf. Sect. 2.4)

In the setup, the issuer establishes a user vertex space and issuer vertex space, i.e., a bi-partition on vertex and edge bases, \(G_\mathcal {V} \) and \(G_\mathcal {E} \) and on vertex identifiers \({\varXi }_\mathcal {V} \). Thus, user and issuer can encode partial graphs without interfering with each other.

In the joint graph issuing, user and issuer designate and disclose connection points (vertex identifiers) that allow the user and the issuer to connect their sub-graphs deliberately. The user constructs a graph representation by choosing two uniformly random permutation \(\pi _\mathcal {V} \) and \(\pi _\mathcal {E} \) for the base association on the user bases and commits to his sub-graph in a graph commitment. The user interacts with the issuer in a proof of representation of his committed sub-graph. The issuer verifies this proof, chooses uniformly random permutations for his graph elements and encodes them into his base range. The issuer creates the pre-signature of the CL-Signature scheme on the entire graph, proving that the added sub-graph is well-formed. The user completes the CL-Signature with his own randomness.

Theorem 4

(Security of Graph Signatures). The graph signature scheme maintains confidentiality and integrity of the encoded graphs and offers existential unforgeability against adaptive chosen message attacks under the strong RSA assumption.     [Proof 9.1]

5 Graph 3-Colorability and NP Statements

5.1 Graph 3-Colorability

We adapt the following definition from Goldreich, Micali and Wigderson [11].

Definition 2

(Graph 3-Colorability). A graph \(\mathcal {G} =(\mathcal {V}, \mathcal {E})\) is said to be 3-colorable if there exists a vertex label mapping \(f_\mathcal {V} : \mathcal {V} \rightarrow \{\mathsf {R},\mathsf {G},\mathsf {B}\}\) called proper coloring such that every two adjacent vertices are assigned different color labels. This means that for each edge \((i,j) \in \mathcal {E} f_\mathcal {V} (i) \ne f_\mathcal {V} (j) \). The language graph 3-colorability, denoted G3C, consists of the set of undirected graphs that are 3-colorable. Graph 3-Colorability is known to be NP-complete. [23]

We adapt the graph 3-colorability problem to show in honest-verifier zero-knowledge that the prover knows an CL signature on an instance of a proper coloring of a given graph \(\mathcal {G} \).

Without loss of generality, we assume that graph \(\mathcal {G} \) is simple and connected. The three color labels \(\mathcal {L} = \{\mathsf {R},\mathsf {G},\mathsf {B}\}\) are encoded with three primes \({\varXi }_\mathcal {L} = \{e_\mathsf {R}, e_\mathsf {G}, e_\mathsf {B}\}\). The graph is encoded with vertex identifiers \({\varXi }_\mathcal {V} \) and these vertex labels. In addition to the conditions for a well-formed graph (Definition 1), we require that each vertex base contains exactly one label representative from \({\varXi }_\mathcal {L} \), which we show with a set membership proof on the secret vertex label.

The prover shows knowledge of a proper graph coloring by showing that the product of vertex identifiers and label representatives for each pair of adjacent vertices (ij) are coprime.

Common inputs. Graph \(\mathcal {G} \), public-key of the CL-issuer.

Prover input. CL-Signature on proper coloring for G3C.

1. Credential randomization and commitments. The prover computes randomizations for the graph signature as well as for all occurrences of set membership proofs. The prover computes Integer commitments on the exponents of all vertex and edge bases. For each vertex i, the prover computes two commitments on the vertex attribute and the vertex identifier:

$$\begin{aligned} C_i = R^{e_i e_{f_\mathcal {V} (i)}} S^r \hbox {mod }{N}\quad \text { and }\quad \breve{C}_i = R^{e_i} S^r \hbox {mod }{N}. \end{aligned}$$

For each edge (ij), the prover computes the commitment:

$$\begin{aligned} \breve{C}_{i,j} = R^{e_i e_j} S^r \hbox {mod }{N}. \end{aligned}$$

2. Proof of knowledge. The prover sends the commitments to the verifier. Then, prover and verifier engage in the following proof of possession over the graph signature and vertices i and j and all edges (ij). We build upon the proof of representation and well-formedness presented in Sect. 4.2 with the following differences: Instead of proving that a vertex contains zero or multiple labels, we prove that the vertex contains exactly one label. Further, the proof is simplified because the edges do not contain labels. While we explain the proofs step by step, it is understood that the proofs are executed as compound proof of knowledge with referential integrity between the secret exponents.

2.1 Possession of CL-Signature. First, we prove of possession of the graph signature and representation of the commitments. Clause 1 proves possession of the CL-Signature on the graph. The clauses 2 and 3 prove the representation on the integer commitments on signed attributes for vertices jj and edges (ij), and, thereby, make the attributes accessible for the analysis of the exponents.

$$\begin{aligned} PK \{&(\mu _i, \mu _j, \mu _{(i,j)}, \varepsilon , \nu ', \rho _i, \rho _j, \rho _{(i,j)}): \nonumber \\&Z \equiv \pm \cdots R_{\pi (i) }^{\mu _i} \cdots R_{\pi (j) }^{\mu _j} \cdots R_{\pi (i,j) }^{\mu _{(i,j)}} \cdots (A')^\varepsilon S^{\nu '} \!\!\! \pmod {N} \ \ \wedge \end{aligned}$$
(1)
$$\begin{aligned}&C_i \equiv \pm R^{\mu _i} S^{\rho _i} \!\!\! \pmod {N} \ \ \wedge \ \ C_j \equiv \pm R^{\mu _j} S^{\rho _j} \!\!\! \pmod {N} \ \ \wedge \end{aligned}$$
(2)
$$\begin{aligned}&C_{(i,j)} \equiv \pm R^{\mu _{(i,j)}} S^{\rho _{(i,j)}} \!\!\! \pmod {N} \ \ \wedge \\&\mu _i, \mu _j, \mu _{((i,j))} \in \pm \{0,1\}^{\ell _\mathcal {M}} \ \ \wedge \varepsilon \in [2^{\ell _e -1 } +1, 2^{\ell _e} -1 ]\} \nonumber \end{aligned}$$
(3)

2.2 Well-formedness. Second, we establish that the vertex attributes are well-formed: Clause 4 establishes the relation between \(C_i\) and \(\breve{C}_i\) and, thereby, shows that a vertex attribute is bi-partitioned onto a vertex identifier and a label representative part. Clause 5 establishes that they contain exactly one vertex identifier and label representative of the certified sets \({\varXi }_\mathcal {V} \) and \({\varXi }_\mathcal {L} \).

$$\begin{aligned} PK \{&(\varepsilon _i, \rho _i, \gamma _i, \breve{\rho }_i):\nonumber \\&\breve{C}_i \equiv \pm R^{\varepsilon _i} S^{\rho _i} \!\!\! \pmod {N} \ \ \wedge \ \ C_i \equiv \pm \breve{C}^{\gamma _i} S^{\breve{\rho }_i} \!\!\! \pmod {N} \ \ \wedge \end{aligned}$$
(4)
$$\begin{aligned}&\gamma _i[C_i] \in {\varXi }_\mathcal {L}\ \ \wedge \ \ \varepsilon _i[\breve{C}_i] \in {\varXi }_\mathcal {V} \}. \end{aligned}$$
(5)

Clause 5 is different from a proof of well-formedness as introduced in Sect. 4.2, as it enforces that vertex i contains exactly one label.

2.3 Proper coloring. Third, clauses 7 and 8 complete the statement by establishing that there is a proper coloring for the adjacent vertices i and j: Clause 7 shows that commitment \(C_{(i,j)}\) is on an edge (ij). Finally, Clause 8 establishes that the attributes for vertex i and j are coprime, by proving that Bézout’s Identity equals 1. It follows that the labels of both vertices must be different.

$$\begin{aligned} PK \{&(\varepsilon _i, \rho _{(i,j)}', \alpha _{(i,j)}, \beta _{(i,j)}, \rho _{(i,j)''}):\\&\breve{C}_{(i,j)} \equiv \pm \breve{C}_j^{\varepsilon _i} S^{\rho _{(i,j)}'} \!\!\! \pmod {N} \ \ \wedge \end{aligned}$$
(6)
$$\begin{aligned}&R \equiv \pm C_i^{\alpha _{(i,j)}} C_j^{\beta _{(i,j)}} S^{\rho _{(i,j)}''} \!\!\! \pmod {N}\}. \end{aligned}$$
(7)

3. Verification. The verifier outputs accept if the proof of knowledge checks out; reject otherwise.

Lemma 1

(Knowledge of a CL-Signature of G3C). The prover convinces the verifier in zero-knowledge that the prover knows a proper graph 3-coloring for known graph \(\mathcal {G} \).     [Proof 10.1]

Lemma 2

The proof has an asymptotic computation complexity of \(O( n + m )\) exponentiations and a communication complexity of \(O( n + m )\) group elements and is thereby a polynomial time proof.     [Proof 10.1]

5.2 Proofs Systems for Languages in NP

Having established a proof for certified graph 3-colorability, we can use the fact that G3C is NP-complete to establish that such Camenisch-Lysyanskaya proof systems exist for statements from other NP languages.

Definition 3

We call a Camenisch-Lysyanskaya proof system a set of PPT machines Prover \(\mathsf {P} \), Verifier \(\mathsf {V} \)and Issuer \(\mathsf {I} \)that engage in the following protocols:

Proof of Representation  \(\mathsf {P} \!\rightarrow \mathsf {I} \!:\) Proof of representation on committed values V.

Issuing \(\mathsf {I} \!\rightarrow \mathsf {P} \!:\) Issuing of CL-Signature \(\sigma \) on hidden committed values V.

Proof of Possession  \(\mathsf {P} \!\rightarrow \mathsf {V} \!:\) Proof of possession of CL-Signature \(\sigma \).

The issuer \(\mathsf {I} \)can act in the role of the verifier \(\mathsf {V} \)and thereby allow the bootstrapping of further CL-Signatures from the hidden values of existing CL-Signatures.

Compared to a zero-knowledge proof system for an NP language, this construction offers a level of indirection: The issuer acts as auditor with authority to decide whether the statement of an NP language is fulfilled in a certain environment, and its signature binds this statement to that environment. The instance of the NP language can either be provided by the issuer or provided by the prover and verified by the issuer.

The proof follows the same strategy as one of the initial results that all languages in NP have zero-knowledge proof systems, by Goldreich, Micali and Widgerson [11]: Given a CL proof system for G3C, we use the existing poly-time NP reductions to transform any NP language statement into an instance of G3C. This instance is then encoded as a graph in a CL-Signature and knowledge of the signature proven to a verifier. Lemma 1 shows that this is a zero-knowledge proof of knowledge of a proper coloring.

Theorem 5

Statements of languages in NP can efficiently be proven in a Camenisch-Lysyanskaya proof system based in honest-verifier zero-knowledge.    [Proof 10.2]

6 Efficiency Analysis

We display the efficiency analysis for the proof predicates in Table 2, where vertex and edge composition proofs show the overhead over the basic proof of possession (cf. topology proofs [14]). We measure computational complexity in multi-base exponentiations. The communication complexity is dominated by the transmitted group elements from , which is equal to the number of multi-base exponentiations (one for each Integer and Schnorr proof commitment). The most expensive proof is the complete graph representation established in the issuing, where the set membership proofs (4 MExps) and the OR-based subset proofs (6 MExps) constitute significant overhead. The square-complexity is introduced by the final disjointness proof to establish that the graph is indeed well-formed. In the down-stream proofs, the verifier trusts the issuer to only certify well-formed graphs, which allows us to reduce complexity by only the computing the proof of possession and the statement proven.

The modular exponentiations for message bases \(R_i\) are with small exponents of size of \(\ell _\mathcal {M} \ll \ell _N\), where the parameter \(\ell _\mathcal {M} \) can be chosen similarly small as in Direct Anonymous Attestation (DAA) [24].

In addition, the \({\varSigma }\)-proofs employed in this work benefit from batch-proof techniques, such as [25]. The graph proofs are likely to be transformed to signature proofs of knowledge with the Fiat-Shamir heuristic [20] and can thereby be computed offline.

Table 2. Efficiency of proofs of predicates in multi-base exponentiations (MultiExps) dependent on the number of vertices \( n \) and of edges \( m \). For a simple graph holds \(m \le \frac{n(n-1)}{2}\).

We have evaluated the system experimentally in [14], in computations using components of the Identity Mixer Library [26] with modulus length \(\ell _n = 2048\) bits and default system parameters (\(\ell _v\), etc.). The performance analysis is executed on 64-bit Java JDK 1.7.13 on a Windows 7 SP 1 Thinkpad X220 Tablet, on Intel CPU i5-2520 with 2.5 GHz, 8 GB RAM, where all computations are performed on a single processor core only, a very conservative setup. Figure 1 contains the results of a prototypical implementation of computations of the graph signature scheme, on representative computations of commitments and a proof of knowledge thereof. Based on uniform random bit-strings of the prescribed length and number (as in the actual Schnorr proof witnesses), we compute: \(C := R_0^{m_0}\cdots R_\ell ^{m_\ell } S^{v} \hbox {mod }{N}\),

The simulation uses random graphs with specified number of vertices \( n \) and a derived number of edges \( m := 2 n \) as major independent variable (on the x-axis), the dependent variable is computation time in milliseconds (in log-scale on the y-axis).

7 Related Work

Establishing zero-knowledge proofs on graphs and their properties is a classic area of research. Such proofs were instrumental in showing that there exist zero-knowledge proof systems for all NP languages. We discuss their graph modeling: Goldreich, Micali and Wigderson [11] offered such a construction with \(O( m ^2)\) rounds and \(O( n )\) messages each. Based on the existence of a non-uniformly secure encryption function, they explored graph isomorphism and non-isomorphism as well as graph 3-colorability (G3C). Blum’s proof [12] shows directed Hamiltonian cycles (DHC) in graphs. Both proofs use a metaphor of locked boxes to formulate the proof. Goldreich et al.’s G3C proof encodes the colors of adjacent vertices in boxes. Blum’s proof of Hamiltonian cycles encodes the graph’s adjacency matrix randomly in \(n+\left( {\begin{array}{c}n\\ 2\end{array}}\right) \) such boxes, giving the verifier the choice to either verify the correct graph representation or the knowledge of the Hamiltonian cycle. Blum offers an alternative construction for G3C with a similar methodology, encoding the graph representation and the coloring of each vertex in separate yet related boxes and operating on an adjacency matrix lifted to the labeling. Goldreich and Kahan [15] offered a constant-round construction based on the existence of collections of claw-free functions, also using G3C as NP-problem. We observe that these constructions are specific to the statement to be proven and do not cater for a level of indirection through a signature scheme.

Fig. 1.
figure 1

Experimental performance analysis with a secure modulus length of 2048 bits, in the worst case of a non-parallelized computation on a single processor core (adapted from [14]). x-axis contains the number of vertices \( n \) and the y-axis a log-scale of computation time in milliseconds. Blue colors denote provider computations to prove properties of a committed graph, where the green line shows a proof of representation of a graph signature. Red colors denote auditing system/issuer computations to sign the graph (Color figure online).

A related notion to full graph signatures is transitive signature schemes, e.g., as proposed by Micali and Rivest [13]. They are concerned with the transitive closure of signatures on graph elements, where vertices and edges are signed individually; however, they do not offer zero-knowledge proofs of knowledge on graph properties.

8 Conclusion

We have introduced a practical construction of signatures on committed graphs and zero-knowledge proofs over their structure. The scheme is special in that it enables proofs over the entire graph structure, including statements such as isolation (two vertices are not connected by any sequence of edges). The construction derives its security from the properties of the Camenisch-Lysyanskaya (CL) signature scheme under the Strong RSA assumption. The interactive proofs are honest-verifier zero-knowledge if executed with multiple rounds with small challenges. While we have established a framework for graph topology proofs separately [14], this work focuses on the foundations of graph encoding in CL-signatures itself. We show its theoretical expressiveness by proving that the scheme is capable of signing committed NP statements and proving properties thereof, via reduction to graph 3-colorability. The presented scheme is efficient and practical because once the issuer has established graph well-formedness in \(O(n^2)\), the prover can resort to proofs over the graph structure in linear time. The used \({\varSigma }\)-proofs can be handled efficiently with batch processing techniques [25]. As future work, we aim at establishing a differential graph signature scheme, which can be employed for large-scale graph topologies as found in virtualized infrastructures.