<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Revocable Anonymous Credentials from Attribute-Based Encryption</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Giovanni Bartolomeo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CNIT, Università di Roma Tor Vergata</institution>
          ,
          <addr-line>Via del Politecnico, 1, 00133 Roma</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>By leveraging on Ciphertext-Policy Attribute-Based Encryption, we build a credential management protocol with anonymous proof of predicates. The protocol supports eficient revocation through accumulators. Anonymous credentials have experimented a renewed interest during the very last few years due to the going to mainstream of various user "wallet" models. For example, an ongoing efort at IEFT is intended to promote a very recent eficient construction of the BBS signature [ 1] as a standard cryptographic primitive for the problem space of privacy preserving identity credentials. Historically, anonymous credentials were mostly built on special signature schemas. The prover, after obtaining a signature over a set of attributes from an issuer, is able to randomize it and proves in zero-knowledge its possession to a verifier, optionally revealing a subset of those attributes (so called selective disclosure). The verifier is unable to determine which signature was used to generate the proof, removing any source of correlation (unlinkability). However, in practical contexts, selective disclosure is not the only desired feature. For example, a service may require that their users are over 18 years old and that they are based in one of the European Countries. In such a case, an anonymous proof of predicates proving user's attribute age and country satisfying the following policy:</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Cryptography</kwd>
        <kwd>Attribute-Based Encryption</kwd>
        <kwd>Anonymous Credentials</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        age GT 18 AND country ONEOF {Austria, Belgium,. . . , Sweden}
would be needed. Recent advances [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] suggest it is relatively easy to build credential systems
eficiently supporting anonymous proof of predicates by functional encryption: given a
ciphertext encoded using a policy, a prover can simply decrypt such a ciphertext to convince a verifier
that she knows a key for a set of attributes that matches the policy. According to the authors
of [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], such functional credentials would subsume all known credentials, such as anonymous,
delegatable, or attribute-based credentials.
      </p>
      <p>
        In this paper, we provide the following contributions:
1. We directly build a functional credentials schema from the Ciphertext Policy
AttributeBased Encryption (CP-ABE) construct proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], without incurring in few extra
commitment steps introduced by the author of [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] (originally required to leave their
framework agnostic from any specific functional encryption schema). We consider this
result important in practice, because many existing authentication protocols (such as
HTTP and OAuth) use a three steps procedure (request-challenge-response), so avoiding
any extra step would perfectly fit them.
2. Revocation for functional credentials is still unclear and not investigated, while it is very
relevant in real world applications. We propose to augment the above schema with an
eficient anonymous revocation feature leveraging on the simple dynamic accumulator
originally proposed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
3. We achieve performance comparable to state of the art solutions without incurring in
complex zero-knowledge proof algorithms, but solely relying on a consolidated
attributebased encryption schema. Again, this result is important in practice: for example, to
quickly build credential systems with anonymous proof of predicates, developers can
directly rely on the well-known OpenABE framework [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] leveraging on the wide policy
expressiveness this framework supports.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. CP-WATERS-KEM and Accumulators</title>
      <sec id="sec-2-1">
        <title>2.1. Preliminaries</title>
        <p>
          The original construction reported in Section 5 of [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] (henceforth CP-WATERS-KEM) makes
use of a bilinear group, defined as follows:
        </p>
        <p>Let  and  be two multiplicative cyclic groups of prime order . Let  be a generator of 
and  be a bilinear map:  :  ×  →  . The bilinear map  has the following properties:
1. Bilinearity: for all ,  ∈  and ,  ∈ , we have (, ) = (, ) = (, ).
2. Non-degeneracy: (, ) ̸= 1.</p>
        <p>If the group operation in  and the bilinear map  are both eficiently computable,  is said a
bilinear group.</p>
        <p>
          Here, we consider CP-WATERS-KEM in its small universe construction, however, an extension
to the large universe construction (reported in Appendix A of [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]) is straightforward.
        </p>
        <p>
          We implement a revocation scheme preventing decryption of ciphertext created after the
key has been revoked. Note that this is not a general revocation scheme for ABE. Rather, it is
a “forward revocation”, where only ciphertext generated after the actual revocation happens
becomes hard to decrypt if the key has been revoked. To implement this kind of revocation,
the original CP-WATERS-KEM scheme is slightly altered and combined with the cryptographic
accumulator based on bilinear mappings described by Camenisch in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          The accumulator makes use of a set of indexes {} kept by the Authority and assigned to
each released secret key. In the setup phase, the Authority initially creates an accumulator
0 = 1 and two public initially empty sets:  = {} and  = {}, where  is the set of all
indexes  that will be ever added to the accumulator (but may have been subsequently removed).
The sequence  , . . . ,  ,  +2, . . . ,  2 (but not  +1) is made public by the Authority (e.g.,
as part of   ). Appendix D of [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] suggests a possible technique to reduce the size of this
sequence. The mathematical definition of the accumulator is the following:
 = ∏︁  +1+−  = ∑︀̸=  +1+− 
∑︁  +1+−  =  +1 + ∑︁  +1+−  ⇔  ∈ 
∈
.
        </p>
        <p>Where  ∈  is a generator of the group  of prime order , and  is picked at random from</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Revocable Functional Credentials</title>
        <p>
          The schema is adapted from [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. A revocable functional credentials scheme for an attribute
universe Ω and a family of policies Φ consists of the following probabilistic algorithms:
1. MSK, MPK ← CKGen(1 ): The key generation algorithm takes input the security parameter
 ∈ N and outputs a key pair (MSK, MPK) of an issuer (master key pair).
2. credi, MPK′ ← GrantCred(MSK, Si): The grant credential algorithm takes input the
master secret key MSK and a non-empty set of attributes Si ⊂ Ω and outputs a credential
credi with i ∈ N for the corresponding set of attributes. It also outputs an updated
master public key MPK′.
3. b ← &lt; ShowCred(MPK, credi, f), VrfyCred(MPK, f) &gt;: ShowCred takes input the
master public key MPK, a credential credi, and a policy f ∈ Φ ; VrfyCred inputs the master
public key MPK and a policy f. At the end, VrfyCred outputs either 0 or 1.
4. MPK′ ← Revoke(MPK, MSK, credi): takes input the master public key MPK, the master
secret key MSK, and a credential credi ∈ GrantCred and outputs an update master
public key MPK′. credi is said a "revoked credential". A non-revoked credentials is said a
"valid credential".
        </p>
        <p>By definition, for all  ∈ N, for all (MSK, MPK) ∈ CKGen(1 ) for all S ⊂ Ω, for all
cred ∈ GrantCred, for all f ∈ Φ such that f(S) = 1, a functional credentials scheme
• is said correct if, assumed cred is valid (i.e., cred ̸∈ Revoke) it holds that</p>
        <p>Pr[1 ← &lt; ShowCred(MPK, cred, f), VrfyCred(MPK, f) &gt;] = 1
• is said unforgeable if, chosen an arbitrary policy f, any adversary having access to
all system issued credentials credi ∈ GrantCred but the ones satisfying the policy (i.e,
f(credi) ̸= 1) and to all revoked credentials credj ∈ Revoke, has a negligible probability
to succeed in the credential verification process.
• is said anonymous if, arbitrarily chosen a policy f and two provers P0 and P1 owing
non-revoked credentials credi, credj ̸∈ Revoke, both satisfying or not the policy (i.e.,
f(credi) = f(credj)), any adversary cannot distinguish between them.</p>
        <p>Note that we leave out one optional feature described in the original paper (policy hiding).</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Construction</title>
        <p>To support revocable functional credentials as above defined, CP-WATERS-KEM is modified as
follows:
1. (MPK, MSK) ← Setup(1 ): The algorithm outputs the master secret key   and the
master public key   , and publishes the   .</p>
        <p>• The algorithm chooses a group  of prime order  and generator , random group
elements ℎ1, ℎ2, . . . , ℎ (where  is the maximum number of system attributes) and
a bilinear pairing  such that  :  ×  →  . In addition, it chooses random
exponents , , ,  ∈ .
• The algorithm initially creates an accumulator 0 = 1, and two initially empty
public sets:  = {} and  = {}, where  is the set of all indexes  that will be ever
added to the accumulator (but may have been subsequently removed).
• The public key is , , ℎ1, ℎ2, . . . , ℎ,  ,  and</p>
        <p>( , ) (,  +1)</p>
        <p>The master secret key is  , , , ,  .
• The sequence  , . . . ,  ,  +2, . . . ,  2 (but not  +1) is made public by the</p>
        <p>Authority.
2. (MPK′, SKi = (Ki, Li, ∀x∈S Ki,x, witi)) ← KeyGen(MPK, MSK, S): Key generation
happens by taking as input the master keys ( ,   ) and a set of attributes  that
describe the key. The output is a randomized secret key. The Authority associates an
index  to each new generated secret decryption key .</p>
        <p>• The algorithm includes  in the set  and  :  =  ∪ {},  =  ∪ {} and
updates the accumulator  :
• The algorithm updates the terms in the master public key using the accumulator:
 and ( , ) (,  +1), while the master secret key   remains the
same.
• Chosen a random  ∈ , the algorithm computes the secret decryption key
component  as as follows:  =  ++ ,  =  and, for each  ∈ , , = ℎ.
• Also, the algorithm releases a new key component (the witness):
 = ∏︁  +1+−  = ∑︀̸=  +1+−  .
3. MPK′ ← KeyRemove(PK, MSK, i): A similar step is also executed when the Authority needs
to revoke a key . In this case, the algorithm simply removes  from the set  , recomputes
the accumulator value  and, consequently, the terms in the master public key using
it:  and ( , ) (,  +1 ) as above (the master secret key   remains the
same).</p>
        <p>With the addition or removal of elements to the accumulator, previously released witnesses
become stale and any Client who has previously received a witness  shall update it.</p>
        <p>Therefore, the following step is introduced into the schema:
4. wit′i ← UpdateWitness(MPK, Vold, V, witi): The algorithm takes as input the old
witness and updates it to match the new master public key    and the current set of
authorized indices  . The new witness is locally computed using the following equation:
′ ←</p>
        <p>∏︀
 ∏︀
∈/  +1+− 
∈/  +1+− 
Note that the Client does not know  +1 , hence, this algorithm fails when the condition
 ∈  ∩  is not verified, i.e. a Client cannot update its  if  is not (no more) in 
as a result of a revocation. In this case the update operation returns ′ = ⊥.
5. (C = (C′, C′′, ∀k∈[1,... l] Ck),  ) ← Encrypt(MPK, Ml× m,  ): The algorithm takes as input
an access structure (,  ) and the public key   .  is an  ×  matrix, while  is an
injective function associating each row of  to an attribute   (i.e.,  =  () ∈ ); note
that in this construct one attribute is associated with at most one row. The output is a
random secret and the ciphertext.</p>
        <p>• Chosen a random vector ⃗ = (, 2, . . . , ) in  and being  the -th row of
 , the algorithm computes   =  · .
• Together with a with description of (,  ), the algorithm makes public the
ciphertext:</p>
        <p>ℎ− , ′′ =  = ( ∏︁  +1−  )
′ = ,  =   
∈
• Finally, the algorithm computes the random secret</p>
        <p>= [( , ) (,  +1 )]
and keeps it private.
6.  ← Decrypt(SKi, C): Dually, the decryption takes as input the ciphertext  and the
secret key . The output is the shared secret if and only if the set of attributes  satisfies
the access structure, or ⊥ otherwise.</p>
        <p>• For each  such that   ∈  (i.e., consider only attributes in ), compute  such
that ∑︀   =  (there could diferent sets of {} satisfying this equation)
• Compute the random secret:</p>
        <p>(′′, )
 = ∏︀ [(, )(′, ,  )] (′, )
=
[( , ) (,  +1 )]</p>
      </sec>
      <sec id="sec-2-4">
        <title>2.4. Correctness and Security</title>
        <p>To understand why decryption works, consider the solution equation, and note the numerator
is
(′′, ) = (, )
∑︀∈   +1+−  ( ++ )
=
(, )
( , ) ( , )(, )∑︀∈  +1+−</p>
        <p>As in the original CP-ABKEM decryption algorithm, the second factor ( , ) cancels
out with the first part of the denominator:
∏︁[(, )(′,   )] = ∏︁ ([  ℎ− , )(, ℎ  )] =
 
∏︁ ( , )  = ( , )</p>
        <p>Regarding the third factor (, )∑︀∈  +1+−  we note that, if and only if the index is
contained in the current accumulator (i.e.,  ∈  ), we have:
(, )∑︀∈  +1+−  = (,  +1+∑︀̸=  +1+−  ) =
(,  +1 )(, )
[( , ) (,  +1 )]</p>
        <p>Partially cancelling out with the factor (, ) in the denominator. Therefore, the result
of the computation is</p>
        <p>
          To prove security, we use a security game based on the one presented in Section 5 of [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. The
adversary chooses to be challenged on an encryption to an access structure * , and can ask
arbitrarily  times for any private key  that does not satisfy * . However, the original model
is extended by letting the adversary query for private keys that satisfy the access structure,
with the restriction that any of those keys shall be revoked before the challenge:
• Setup. The challenger runs Setup algorithm and gives the public parameters, PK to the
adversary.
• Phase 1. The adversary makes repeated private keys corresponding to sets of attributes
        </p>
        <p>S1, . . . , Sq′ (with 1 &lt; ′ &lt; ).
• Revocation Using the keyremove algorithm in the schema, any key may (or not) be
revoked. Phase 1 and Revocation may be arbitrarily interleaved.
• Challenge. The adversary submits two equal length messages M0 and M1. In addition the
adversary gives a challenge access structure A* such that none of the sets S1, . . . , Sq′ from
Phase 1 satisfies the access structure, or such that any of those keys corresponding to sets
satisfying the access structure has been revoked. The challenger flips a random coin  ,
and encrypts M under A* . The ciphertext CT* is given to the adversary.
• Phase 2. Phase 1 is repeated with the restriction that none of sets of attributes Sq′+1, . . . , Sq
satisfies the access structure corresponding to the challenge. Revocation may also occur
in this phase.</p>
        <p>• Guess. The adversary outputs a guess  ′ of  .</p>
        <p>The advantage of the adversary in the above game is  = Pr[ ′ =  ] − 21 and, by definition, the
scheme is secure if all polynomial time adversaries have at most a negligible advantage. We use
a selective proof, therefore the above game is augmented by an initial step Init in which the
adversary commits to the challenge access structure * and to the final set of credentials that
will eventually appear in the accumulator  * .</p>
        <p>
          Our security proof works under the General Difie-Hellman Exponent Problem introduced by
Boneh, Boyen and Goh in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Using this hardness assumption, in a longer version of this paper
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] we prove that chosen an access structure * , no polynomial time adversary can (selectively)
break our system, provided all keys satisfying * have been revoked before the challenge.
        </p>
        <p>
          Note that the presented security model supports only chosen-plaintext attacks. The model is
extended to handle chosen-ciphertext attacks by allowing for decryption queries in Phase 1 and
Phase 2. To achieve chosen-ciphertext security we use the Fujisaki-Okamoto transformation
reported in subsection 3.1 and 3.2. As this transformation exactly applies as in the original
paper, we let the reader refer to [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] for the security proof.
        </p>
      </sec>
      <sec id="sec-2-5">
        <title>2.5. Verification Protocol</title>
        <p>
          We use the above CP-ABE schema to implement the revocable functional credential schema in
section 2.2(the protocol is also adapted from [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]):
1. CP-ABE Setup(1 ) algorithm takes place in order to generate the key pair
(  ,  ).
2. The grant credential algorithm is implemented through the
MPK′, SKi ← KeyGen(MPK, MSK, S) algorithm which releases credentials  = 
corresponding to a non-empty set of attributes . It also outputs an updated master
public key   ′.
3. To check credential, chosen an access policy (i.e., a matrix  × , and a
function  ), a verifier generates and encrypts a random secret  through the CP-ABE
Encrypt(MPK, Ml× m,  ); and sends the resulting ciphertext  to the prover. Using a
credential ′, the prover executes  ′ ← Decrypt(SK′, C) and sent back the result to
the verifier. The verifier output 1 if  =  ′ and 0 otherwise.
4. Revocation of credential  is implemented through the KeyRemove(PK, MSK, i)
algorithm, which updates the master public key to   ′.
        </p>
        <p>Note that since each challenge encapsulates a randomly generated secret token, the protocol is
natively immune to replay attacks.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Anonymity</title>
      <p>
        To ensure anonymity, the Fujisaki Okamoto transformation may be applied to
CP-WATERSKEM. This transformation was already described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and there proved to make the schema
secure under Chosen Ciphertext Attacks (CCA). The transformation uses two random numbers
 and  both chosen by the encrypting party to generate randomness for encryption. It is
possible to prove that there is a negligible probability for an attacker to produce a ciphertext
that may decrypt, and that this probability is the same as guessing a ciphertext without any
knowledge of the randomness used to produce it. Using this property, in Appendix A we prove
correctness, unforgeability and anonymity of the proposed scheme.
      </p>
      <sec id="sec-3-1">
        <title>3.1. CCA-secure Encryption Algorithm</title>
        <p>The CCA-secure encryption algorithm is specified by the following steps:
• The decrypting party (prover) shall choose a random number  and send it to the
encrypting party.
• Received , the encrypting party (verifier) chooses an access structure  and a secret
 and concatenates them to form the string ||||
• The encrypting party runs the encryption algorithm of the original CP-WATERS-KEM or
of the modified schema with revocation to get a random secret and the ciphertext. The
seed |||| is used as a source of randomness for the encryption algorithm with
u ← PRG(H′(rc||Kc||AP),  ), where PRG is a pseudo random generator,  is the length of
the returned random bit string ( ∈ {0, 1}) and ′ is a collision-resistant hash function.
– The random secret is (, ) for CP-WATERS-KEM or (( , ) (,  +1 ))
for the modified CP-WATERS-KEM. The encrypting party keeps it private and uses
in the next step.</p>
        <p>– The encrypting party releases the ABKEM ciphertext  .
• The encrypting party uses random secret above for XORing the concatenation ||
– Transform || into bytes (octects).
– Using the pseudo random generator  , get
for CP-WATERS-KEM or
r ←</p>
        <p>PRG(H(e(g, g) s),  )
r ←</p>
        <p>PRG(H([e(accV, g) e(gb, g n+1 )]s),  )
for the modified CP-WATERS-KEM, with  being a collision-resistant hash function.
– Finally, compute  =  ⊕ (||)</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. CCA-secure Decryption Algorithm</title>
        <p>The CCA-secure decryption algorithm is specified by the following steps:
• Run decryption of the original CP-WATERS-KEM or of the modified schema to decrypt
the ciphertext and obtain the shared secret:</p>
        <p>(, )
or
for the modified schema.
• Use that shared secret to generate randomness
(( , ) (,  +1 ))
r ←
r ←
• Use generated randomness  for XORing the ciphertext and retrieve  and :  ⊕  =
(||)
• Verify  matches the random number chosen at beginning.
• Run again the CCA-secure Encryption using |||| as a source of randomness and
verify the result is equal to the received ciphertext  .</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Related Works</title>
      <p>
        Due to space limitations, we let the reader refer to [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for a survey on revocation strategies for
anonymous credentials. Furthermore, [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] reports several works considering the application
of dynamic universal accumulators to anonymous credentials to implement blacklists. While
these approaches require to prove in zero-knowledge that a prover’s non-membership witness
satisfies the accumulator verification equation, the authors describe a diferent construction
where both the accumulator and the anonymous credentials, previously described in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], rely
on the same construct (structure-preserving signatures on equivalence classes). To same extent,
our approach is similar to their one, but we highlight the diferent scope as [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] limits to consider
selective disclosure, not proof of predicates. In terms of performance, scheme 2 in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], using
primitives VerifyR and VerifySubset, requires a total of 2 * ( + 2) pairing operations per
number of credential entries , plus two additional revocation-induced pairings (scheme 2 in
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]). Our scheme presented in section 2.3, using the optimization described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], reduces the
number of pairings to  + 2, with  being the number of attributes satisfying the policy, plus
one more for checking the witness.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>Combining Ciphertext Policy Attribute-Based Encryption (CP-ABE) and accumulators we build
a revocable credential management framework supporting anonymous proof of predicates over
attributes; we further achieve anonymity by applying a simple transformation to the resulting
schema. To the best of our knowledge, our work is the first one eficiently combining rich policy
expressiveness (from ABE), revocation (from accumulator) and anonymous proof of predicates
over attributes into a single framework.</p>
    </sec>
    <sec id="sec-6">
      <title>Declaration on Generative AI</title>
      <sec id="sec-6-1">
        <title>The author(s) have not employed any Generative AI tools.</title>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>A. Security</title>
      <sec id="sec-7-1">
        <title>We prove the following:</title>
        <p>Theorem. A polynomial time adversary, acting as a Verifier, cannot distinguish between any
two provers with diferent CP-WATERS-KEM (plus Accumulator) keys, if their (non revoked)
keys both satisfy (or not satisfy) the same access structure they are tested against.</p>
        <p>
          Proof. We start considering the following security game (adapted from [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]):
1. The Setup(1 ) algorithm of CP-WATERS-KEM or the modified schema takes place. The
public key   is given to the adversary.
2. Any Prover  receives distinct secret keys  embedding some attributes.
3. The adversary is allowed to submit queries in the form (|||| ) to an oracle O1
which produces a random output  if this is the first time the input has been queried
on. Otherwise, it gives back the previous response. In addition, the oracle computes
the ciphertext  using the CCA-secure encryption algorithm and records the couple
((|||| ), (, )) in a table. This oracle operation runs throughout the whole game.
4. The adversary, acting as a Verifier  , arbitrarily chooses an access structure * and two
Provers 0 and 1, such that their corresponding keys either both satisfy, or both not
satisfy the chosen access structure.
5. Depending on an internal coin toss , a second oracle O2 impersonates the prover  in
the verification algorithm.
6. Verifier  computes a CCA-secure ciphertext and sends it to O2.
7. O2 responds with the decrypted ciphertext  or with ⊥.
8. The aforementioned steps (except the Setup) are repeated adaptively for any polynomial
number of times on arbitrarily chosen access structure and arbitrarily chosen pairs of
provers.
9. The adversary tries a guess ′ and wins the game if  == ′ (i.e., she is able to guess
which Prover has responded).
        </p>
        <p>Modify the game as follows: at step 7, when given a ciphertext , oracle O1 checks if 
appears in the random oracle table. If so, it outputs the corresponding  = (||) value in
the table; otherwise, it outputs ⊥ and rejects.</p>
        <p>The diference between the original game and the modified one is negligible, as in the
original game the oracle may decrypt even in case of a forged ciphertext (i.e., a ciphertext not
computed using the CCA-secure encryption algorithm). However, since O1 was not queries
on (|||| ), the probability that this event happens is bounded by the probability of
apriori guessing a ciphertext output by an encryption for a given message without knowing the
randomness used to encrypt.</p>
        <p>Now, the following observations apply to this modified game:
• If the Verifier produces a genuine ciphertext C following the CCA-secure Encryption
algorithm, she gets a correct decryption  if the attributes embedded in the secret key
 satisfy the chosen access structure * , i.e. * () = 1. Thus, the presented schema
satisfies by definition the correctness property.
• Viceversa, if the attributes embedded in the secret key  do not satisfy the chosen
access structure * , i.e. * () = 0, the ciphertext wouldn’t decrypt at all except
for a negligible probability  . Thus, the presented schema satisfies by definition the
unforgeability property.</p>
        <p>Furthermore, we observe that:
• The access structure * associated to the ciphertext  is always known to the challenger
(given as input after being chosen by the adversary)
• Because a pseudo random generator is used, the ciphertext  is deterministically computed
from the public key   and the access structure *
• The ciphertext  is uniformly distributed on the ciphertext space, because computed
using the uniformly distributed randomness  in step 3.</p>
        <p>Under the conditions above, suppose to modify the previous game replacing prover ’s
behaviour as follows:
• if key  embeds attributes satisfying the access structure * , then message  is returned;
• otherwise ⊥ is returned.</p>
        <p>That is,  no longer evaluates the decryption using the key  rather it (deterministically)
returns  or ⊥ depending on the internal bit * (). Since * (0) = * (1) (both keys
satisfy or not satisfy the access structure), in the latter schema the random coin  of the oracle
remains hidden in the information-theoretic sense. This implies that the advantage of any
adversary is 1/2 in distinguish between 0 and 1. As the introduced modifications do not
alter the advantage except for at most a negligible probability, the advantage of any adversary
in the original game is negligibly close to 1/2. □</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Tessaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhu</surname>
          </string-name>
          , Revisiting bbs signatures,
          <source>Cryptology ePrint Archive</source>
          ,
          <year>Paper 2023</year>
          /275,
          <year>2023</year>
          . URL: https://eprint.iacr.org/
          <year>2023</year>
          /275, https://eprint.iacr.org/
          <year>2023</year>
          /275.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Deuber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mafei</surname>
          </string-name>
          , G. Malavolta,
          <string-name>
            <given-names>M. R. D.</given-names>
            <surname>Schröder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Simkin</surname>
          </string-name>
          , Functional credentials,
          <source>Proceedings on Privacy Enhancing Technologies</source>
          <year>2018</year>
          (
          <year>2018</year>
          ). doi:
          <volume>10</volume>
          .1515/ popets-2018-0013.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>B.</given-names>
            <surname>Waters</surname>
          </string-name>
          ,
          <article-title>Ciphertext-policy attribute-based encryption: An expressive, eficient, and provably secure realization</article-title>
          ,
          <source>Cryptology ePrint Archive</source>
          ,
          <year>Paper 2008</year>
          /290,
          <year>2008</year>
          . URL: https: //eprint.iacr.org/
          <year>2008</year>
          /290, https://eprint.iacr.org/
          <year>2008</year>
          /290.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Camenisch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kohlweiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Soriente</surname>
          </string-name>
          ,
          <article-title>An accumulator based on bilinear maps and eficient revocation for anonymous credentials</article-title>
          ,
          <source>Cryptology ePrint Archive</source>
          ,
          <year>Paper 2008</year>
          /539,
          <year>2008</year>
          . URL: https://eprint.iacr.org/
          <year>2008</year>
          /539, https://eprint.iacr.org/
          <year>2008</year>
          /539.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Waters</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Green</surname>
          </string-name>
          ,
          <article-title>The OpenABE Design Document</article-title>
          ,
          <source>Technical Report, Zeutro LLC Encryption and Data Security</source>
          ,
          <year>2018</year>
          . URL: https://github.com/zeutro/openabe/blob/master/ docs/libopenabe-v1.
          <article-title>0.0-design-doc</article-title>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Boneh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Boyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.-J.</given-names>
            <surname>Goh</surname>
          </string-name>
          ,
          <article-title>Hierarchical identity based encryption with constant size ciphertext</article-title>
          ,
          <source>Cryptology ePrint Archive</source>
          ,
          <year>Paper 2005</year>
          /015,
          <year>2005</year>
          . URL: https://eprint.iacr.org/
          <year>2005</year>
          /015, https://eprint.iacr.org/
          <year>2005</year>
          /015.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bartolomeo</surname>
          </string-name>
          ,
          <article-title>A zero-knowledge revocable credential verification protocol using attributebased encryption</article-title>
          ,
          <year>2024</year>
          . URL: https://arxiv.org/abs/2308.06797. arXiv:
          <volume>2308</volume>
          .
          <fpage>06797</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>[8] ETSI, CYBER; Attribute Based Encryption for Attribute Based Access Control</article-title>
          ,
          <source>ETSI Technical Specification TS 103 532</source>
          , European Telecommunications Standards Institute, Sophia Antipolis, France,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lapon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kohlweiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>De Decker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Naessens</surname>
          </string-name>
          ,
          <article-title>Analysis of revocation strategies for anonymous idemix credentials</article-title>
          , in: B.
          <string-name>
            <surname>De Decker</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Lapon</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Naessens</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Uhl (Eds.),
          <source>Communications and Multimedia Security</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2011</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Derler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hanser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Slamanig</surname>
          </string-name>
          ,
          <article-title>A new approach to eficient revocable attribute-based anonymous credentials</article-title>
          , in: J.
          <string-name>
            <surname>Groth</surname>
          </string-name>
          (Ed.),
          <source>Cryptography and Coding</source>
          , Springer International Publishing, Cham,
          <year>2015</year>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>74</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hanser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Slamanig</surname>
          </string-name>
          ,
          <article-title>Structure-preserving signatures on equivalence classes and their application to anonymous credentials</article-title>
          , in: P. Sarkar, T. Iwata (Eds.),
          <source>Advances in Cryptology - ASIACRYPT 2014</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2014</year>
          , pp.
          <fpage>491</fpage>
          -
          <lpage>511</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>