Channels ▼


Enhanced Privacy ID

Sketch of EPID Scheme

We have developed two EPID schemes, one from the strong RSA assumption [7] and the other from bilinear maps [6]. In this article, we briefly sketch the EPID scheme from bilinear maps. (The full scheme can be found in [6]).

Let us first review some background on bilinear maps. Let G1 and G2 be two multiplicative cyclic groups of prime order p. Let g1 be a generator of G1, and g2 be a generator of G2. We say e: G1 x G2 → GT is an admissible bilinear map function, if it satisfies the following properties:

For all u ∈ G1, v ∈ G2, and for all integers a, b, equation e(ua, vb) = e(u, v)ab holds. The result of e(g1g2 ) is a generator of GT. There exists an efficient algorithm for computing e(u, v) for any u ∈ G1, v ∈ G2.

Our EPID scheme is derived from Boneh, Boyen, and Shacham's group signatures scheme [2] and has the following operations:

Setup: The issuer does the following:

  1. Chooses G1 and G2 of prime order p and a bilinear map function e : G1 x G2 → GT.
  2. Chooses a group G3 of prime order p with generator g3.
  3. Chooses at random g1 h1, h2 ∈ G1 and g2 ∈ G2.
  4. Chooses a random r ∈ [1, p-1] and computes w = g2r. The public key is (g1, g2, g3, h1, h2, w) and the issuing private key is r.

Join: The join protocol is an interactive protocol between the issuer and a member as follows:

  1. The member chooses at random f and y' from [0, p-1] and computes

  2. The member sends T to the issuer and performs the following proof of knowledge to the issuer:

    The issuer chooses at random x and y" from [0, p-1] and computes

  3. The issuer sends (A, x, y" ) to the member.
  4. The member computes y = y' + y"(mod p). The member's private key is (A, x, y, f ).

Note that given a valid private key (A, x, y, f ), the following equation satisfies:

Sign: Let (A, x, y, f ) be the member's private key. The member does the following:

  1. If the random base option is used, the member chooses B at random from G3.
  2. If the name base option is used, the member computes B = Hash (verifier's basename).

    Computes K = Bf

    Computes the following zero-knowledge proof

    This essentially proves that the member has a valid EPID private key issued by the issuer.

  3. Computes the following zero-knowledge proof

    for each (B', K') pair in SIG-RL. This step proves that the member has not been revoked in SIR-RL; that is, the member did not create those (B', K') pairs in SIG-RL

  4. Converts all the above zero-knowledge proofs into a signature by using the Fiat-Shamir heuristic [9].

Verify: Given the public key, PRIV-RL, SIG-RL, and an EPID signature, the verifier does the following:

  1. If the random base option is used, the verifier verifies that B is an element in G3.
  2. If the name base option is used, the verifier verifies that B = Hash (verifier's basename).
  3. Verifies that K is an element in G3.
  4. Verifies the following proof

    This step verifies that the member has a valid EPID private key.

  5. Verifies that K ≠ Bf' for each f' in PRIV-RL. This step verifies that the member has not been revoked in PRIV-RL.
  6. Verifies the following zero-knowledge proof

    for each (B', K') pair in SIG-RL. This step verifies that the member has not been revoked in SIG-RL.

    Comparison with Other Techniques

    There are other techniques to remotely authenticate hardware, and in this section we review these techniques and compare them with our EPID scheme.

    Public Key Infrastructure (PKI). Each hardware device has a unique public and private key pair as well as a device certificate. To authenticate hardware by using PKI, the device simply shows its certificate to the verifier along with a signature created by using the device's private key. As mentioned previously, this PKI approach does not satisfy the privacy requirement.

    Direct Anonymous Attestation (DAA). DAA was designed for anonymous attestation of TPM [4, 5]. DAA satisfies all the design requirements of remote hardware authentication; however, it has limited revocation capabilities compared to those of EPID. In the DAA scheme, there are two options for a balance between linkability and revocation. If the random base option is used, that is, a different base is used every time a DAA signature is performed, then any two signatures by a device are unlinkable, but revocation only works if the corrupted device private key has been revealed to the public. If a device has been compromised, but its private key has not been distributed to the verifiers (for example, if the corrupted device's private key is still under the control of the adversary), the corrupted TPM cannot be revoked. If the name base option is used, then any two signatures produced by a device, using the same base, are linkable. Thus, if the verifier determines that a device private key, used in a signature, has been compromised, that verifier can revoke that key locally; that is, the verifier can reject all future signatures generated by that private key, without knowledge of the compromised private key. However, the verifier cannot tell if a different verifier uses a different name base to revoke that private key, because when a different name is used, the revoked key cannot be identified. Furthermore, the name-based option does not safeguard privacy, because the verifier can link the transactions.

    Group Signatures (GS). A group signature scheme [1, 2] has similar properties to those of the EPID scheme. In a group signature scheme, an issuer creates a group public key and issues unique private keys to each group member. Each group member can use the private key to sign a message, and the resulting signature is called a group signature. The verifier can verify a group signature by using the group public key. Unlike EPID, group signature schemes have an additional property called traceability. This property enables the issuer to open any group signature and identify the actual group member who created the signature. In other words, a group signature is anonymous to the verifiers but not to the issuer. Again, as compared to this scheme, EPID keeps the identity of the group member from the issuer.

    Pseudonym System (PS). The pseudonym system [3], designed by Brands, can also be used for remote hardware authentication. In the pseudonym system, the display of a credential is anonymous by virtue of the fact that efficient zero-knowledge proof techniques are used for proving relations among committed values. To use the pseudonym system for hardware authentication, each hardware device obtains a credential from the issuer and uses the pseudonym credential for proof of membership. However, a credential in that system is linkable for multiple displays. To be unlinkable, a hardware device has to get multiple credentials from the issuer and use one credential at a time. This approach has limited application for hardware authentication, as the hardware device may never be able connect back to the issuer (the device manufacturer) once it has been produced. Thus, it cannot maintain the unlinkable property by continuing to get new credentials from the issuer.


    In Table 1, we summarize a comparison between different approaches to the remote hardware authentication problem. The EPID scheme is the only scheme that satisfies all the design requirements mentioned earlier.

    Table 1: Approaches to Remote Hardware Authentication (Source: Intel Corporation, 2009)


    [1] G. Ateniese, J. Camenisch, M. Joye, and G. Tsudik. “A practical and provably secure coalition-resistant group signature scheme.” In Advances in Cryptology -- Crypto, Volume 1880 of Lecture Notes in Computer Science, pages 255–270, 2000.

    [2] D. Boneh, X. Boyen, and H. Shacham. “Short group signatures.” In Advances in Cryptology -- Crypto, Volume 3152 of Lecture Notes in Computer Science, pages 41–55, 2004.

    [3] S. Brands. Rethinking Public Key Infrastructures and Digital Certificates: Building in Privacy. MIT Press, Cambridge, MA, 2000.

    [4] E. Brickell, J. Camenisch, and L. Chen. “Direct Anonymous Attestation.” In Proceedings of the 11th ACM Conference on Computer and Communications Security, pages 132–145, 2004.

    [5] E. Brickell, L. Chen, and J. Li. “A New Direct Anonymous Attestation Scheme from Bilinear Maps.” In Proceedings of 1st International Conference on Trusted Computing, Volume 4968 of Lecture Notes in Computer Science, pages 166–178, 2008.

    [6] E. Brickell and J. Li. “Enhanced Privacy ID from Bilinear Pairing.” Cryptology ePrint Archive, Report 2009/095, 2009.

    [7] E. Brickell and J. Li. “Enhanced Privacy ID: a Direct Anonymous Attestation Scheme with Enhanced Revocation Capabilities.” In Proceedings of the 6th ACM Workshop on Privacy in the Electronic Society, pages 21–30, 2007.

    [8] J. Camenisch and V. Shoup. “Practical Verifiable Encryption and Decryption of Discrete Logarithms.” In Advances in Cryptology -- Crypto, Volume 2729 of Lecture Notes in Computer Science, pages 126–144, 2003.

    [9] A. Fiat and A. Shamir. “How to Prove Yourself: Practical Solutions to Identification and Signature Problems.” In Advances in Cryptology -- Crypto, Volume 263 of Lecture Notes in Computer Science, pages 186–194, 1987.

    [10] O. Goldreich, S. Micali, and A. Wigderson. “Proofs that Yield Nothing but their Validity.” Journal of the ACM, Volume 38(3), pages 690-728, 1991.

    [11] Trusted Computing Group. “TCG TPM Specification 1.2,” 2003,

    This article and more on similar subjects may be found in the Intel Technology Journal, June 2009 Edition, "Advances in Internet Security.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.