Skip to main content
Log in

Black-Box Trace&Revoke Codes

  • Published:
Algorithmica Aims and scope Submit manuscript

Abstract

We address the problem of designing an efficient broadcast encryption scheme which is also capable of tracing traitors. We introduce a code framework to formalize the problem. Then, we give a probabilistic construction of a code which supports both traceability and revocation. Given N users with at most r revoked users and at most t traitors, our code construction gives rise to a Trace&Revoke system with private keys of size O((r+t)logN) (which can also be reduced to constant size based on an additional computational assumption), ciphertexts of size O((r+t)logN), and O(1) decryption time. Our scheme can deal with certain classes of pirate decoders, which we believe are sufficiently powerful to capture practical pirate strategies.

In particular, our code construction is based on a combinatorial object called (r,s)-disjunct matrix, which is designed to capture both the classic traceability notion of disjunct matrix and the new requirement of revocation capability. We then probabilistically construct (r,s)-disjunct matrices which help design efficient Black-Box Trace&Revoke systems. For dealing with “smart” pirates, we introduce a tracing technique called “shadow group testing” that uses (close to) legitimate broadcast signals for tracing. Along the way, we also proved several bounds on the number of queries needed for black-box tracing under different assumptions about the pirate’s strategies.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Noga, A., Asodi, V.: Tracing many users with almost no rate penalty. IEEE Trans. Inf. Theory 53(1), 437–439 (2007)

    Article  Google Scholar 

  2. Asano, T.: A revocation scheme with minimal storage at receivers. In: Zheng, Y. (ed.) Advances in Cryptology—ASIACRYPT 2002, December. Lecture Notes in Computer Science, vol. 2501, pp. 433–450. Springer, Berlin (2002)

    Chapter  Google Scholar 

  3. Berkovits, S.: How to broadcast a secret (rump session). In: Davies, D.W. (ed.) Advances in Cryptology—EUROCRYPT’91, April. Lecture Notes in Computer Science, vol. 547, pp. 535–541. Springer, Berlin (1991)

    Google Scholar 

  4. Boneh, D., Franklin, M.K.: An efficient public key traitor tracing scheme. In: Wiener, M.J. (ed.) Advances in Cryptology—CRYPTO’99, August. Lecture Notes in Computer Science, vol. 1666, pp. 338–353. Springer, Berlin (1999)

    Google Scholar 

  5. Bondy, J.A., Murty, U.S.R.: Graph Theory. Graduate Texts in Mathematics, vol. 244. Springer, New York (2008)

    Book  MATH  Google Scholar 

  6. Boneh, D., Naor, M.: Traitor tracing with constant size ciphertext. In: Ning, P., Syverson, P.F., Jha, S. (eds.) ACM CCS 08: 15th Conference on Computer and Communications Security, pp. 501–510. ACM Press, New York (2008)

    Chapter  Google Scholar 

  7. Billet, O., Phan, D.H.: Efficient traitor tracing from collusion secure codes. In: Safavi-Naini, R. (ed.) Information Theoretic Security—ICITS 2008. Lecture Notes in Computer Science, vol. 5155, pp. 171–182. Springer, Berlin (2008)

    Google Scholar 

  8. Boneh, D., Shaw, J.: Collusion-secure fingerprinting for digital data (extended abstract). In: Coppersmith, D. (ed.) Advances in Cryptology—CRYPTO’95. Lecture Notes in Computer Science, vol. 963, pp. 452–465. Springer, Berlin (1995)

    Google Scholar 

  9. Boneh, D., Waters, B.: A fully collusion resistant broadcast, trace, and revoke system. In: Juels, A., Wright, R.N., De Capitani di Vimercati, S. (eds.) ACM CCS 06: 13th Conference on Computer and Communications Security, pp. 211–220. ACM Press, New York (2006)

    Chapter  Google Scholar 

  10. Chor, B., Fiat, A., Naor, M.: Tracing traitors. In: Desmedt, Y. (ed.) Advances in Cryptology—CRYPTO’94, August. Lecture Notes in Computer Science, vol. 839, pp. 257–270. Springer, Berlin (1994)

    Google Scholar 

  11. Chvátal, V.: A greedy heuristic for the set-covering problem. Math. Oper. Res. 4(3), 233–235 (1979)

    Article  MathSciNet  MATH  Google Scholar 

  12. Dodis, Y., Fazio, N.: Public key broadcast encryption for stateless receivers. In: Digital Rights Management 2002. LNCS, vol. volume 2696, pp. 61–80. Springer, Berlin (2002)

    Chapter  Google Scholar 

  13. Dodis, Y., Fazio, N.: Public key trace and revoke scheme secure against adaptive chosen ciphertext attack. In: Desmedt, Y. (ed.) PKC 2003: 6th International Workshop on Theory and Practice in Public Key Cryptography, January. Lecture Notes in Computer Science, vol. 2567, pp. 100–115. Springer, Berlin (2003)

    Chapter  Google Scholar 

  14. Du, D.-Z., Hwang, F.K.: Combinatorial Group Testing and Its Applications, 2nd edn. Series on Applied Mathematics, vol. 12. World Scientific, River Edge (2000)

    MATH  Google Scholar 

  15. Dorfman, R.: The detection of defective members of large populations. Ann. Math. Stat. 14(4), 436–440 (1943)

    Article  Google Scholar 

  16. Erdős, P., Frankl, P., Füredi, Z.: Families of finite sets in which no set is covered by the union of r others. Isr. J. Math. 51(1–2), 79–89 (1985)

    Article  Google Scholar 

  17. Feige, U.: A threshold of lnn for approximating set cover. J. ACM 45(4), 634–652 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  18. Fiat, A., Naor, M.: Broadcast encryption. In: Stinson, D.R. (ed.) Advances in Cryptology—CRYPTO’93. Lecture Notes in Computer Science, vol. 773, pp. 480–491. Springer, Berlin (1994)

    Google Scholar 

  19. Fazio, N., Nicolosi, A., Phan, D.H.: Traitor tracing with optimal transmission rate. In: Garay, J.A., Lenstra, A.K., Mambo, M., Peralta, R. (eds.) ISC 2007: 10th International Conference on Information Security. Lecture Notes in Computer Science, vol. 4779, pp. 71–88. Springer, Berlin (2007)

    Google Scholar 

  20. Garey, M.R., Johnson, D.S.: Computers and Intractability. Freeman, San Francisco (1979). A guide to the theory of NP-completeness, A Series of Books in the Mathematical Sciences

    MATH  Google Scholar 

  21. Halevy, D., Shamir, A.: The LSD broadcast encryption scheme. In: Yung, M. (ed.) Advances in Cryptology—CRYPTO 2002, August. Lecture Notes in Computer Science, vol. 2442, pp. 47–60. Springer, Berlin (2002)

    Chapter  Google Scholar 

  22. Kiayias, A., Yung, M.: Traitor tracing with constant transmission rate. In: Knudsen, L.R. (ed.) Advances in Cryptology—EUROCRYPT 2002, May. Lecture Notes in Computer Science, vol. 2332, pp. 450–465. Springer, Berlin (2002)

    Chapter  Google Scholar 

  23. Lovász, L.: On the ratio of optimal integral and fractional covers. Discrete Math. 13(4), 383–390 (1975)

    Article  MathSciNet  MATH  Google Scholar 

  24. Naor, D., Naor, M., Lotspiech, J.: Revocation and tracing schemes for stateless receivers. In: Kilian, J. (ed.) Advances in Cryptology—CRYPTO 2001. Lecture Notes in Computer Science, vol. 2139, pp. 41–62. Springer, Berlin (2001)

    Chapter  Google Scholar 

  25. Naor, M., Pinkas, B.: Efficient trace and revoke schemes. In: Frankel, Y. (ed.) Financial Cryptography 2000, February. Lecture Notes in Computer Science, vol. 1962, pp. 1–20. Springer, Berlin (2000)

    Chapter  Google Scholar 

  26. Ngo, H.Q., Porat, E., Rudra, A.: Efficiently decodable compressed sensing by list-recoverable codes and recursion. In: Proceedings of the 29th International Symposium on Theoretical Aspects of Computer Science (STACS), pp. 230–241 (2012)

    Google Scholar 

  27. Sirvent, T.: Traitor tracing scheme with constant ciphertext rate against powerful pirates. In: Augot, D., Sendrier, N., Tillich, J.-P. (eds.) Workshop on Coding and Cryptography—WCC’07, pp. 379–388 (2007)

    Google Scholar 

  28. Staddon, J.N., Stinson, D.R., Wei, R.: Combinatorial properties of frameproof and traceability codes. IEEE Trans. Inf. Theory 47, 1042–1049 (2000)

    Article  MathSciNet  Google Scholar 

  29. Tardos, G.: Optimal probabilistic fingerprint codes. In: 35th Annual ACM Symposium on Theory of Computing, pp. 116–125. ACM Press, New York (2003)

    Google Scholar 

  30. Tonien, D., Safavi-Naini, R.: An efficient single-key pirates tracing scheme using cover-free families. In: Zhou, J., Yung, M., Bao, F. (eds.) ACNS 06: 4th International Conference on Applied Cryptography and Network Security. Lecture Notes in Computer Science, vol. 3989, pp. 82–97. Springer, Berlin (2006)

    Chapter  Google Scholar 

Download references

Acknowledgements

We would like to thank two anonymous referees for constructive comments which have helped greatly improve the presentation quality of the paper. This work was supported in part by the French ANR-09-VERS-016 BEST Project, and by NSF CCF-1161196.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hung Q. Ngo.

Appendix A: Definitions

Appendix A: Definitions

1.1 A.1 Basic Definition

Definition 36

(Broadcast Encapsulation)

A broadcast encapsulation scheme is a 3-tuple of algorithms \(\mathcal{DBE}= (\textsf{Setup}, \textsf{Encaps}, \textsf{Decaps})\):

  • Setup(1k,N), where k is the security parameter, and N the number of users, it generates the global parameters param of the system (omitted in the following); and returns a master secret key MSK and an encryption key EK. It also generates users’ keys upk i , for i=1,…,N.

  • Encaps(EK,R) takes as input a revoked set R and outputs a key header H and a session key K∈{0,1}k.

  • Decaps(usk i ,R,H) takes as input the revoked set R and a user secret key. If i∈[N]−R, outputs the session key K.

The correctness requirement is that for any revoked set R and for any user i∈[N]−R then the decapsulation algorithm gives back the ephemeral session key.

Definition 37

(Trace&Revoke Encapsulation)

A trace&revoke encapsulation scheme is a broadcast encapsulation scheme with an additional tracing algorithm \({\mathbf{Trace}}^{\mathbb{D}}(R_{\mathbb{D}}, \textsf{pk} ,\textsf{msk})\): the traitor tracing algorithm interacts in a black-box manner with a pirate decoder \(\mathbb{D}\) that is built from a certain set T of traitors. The algorithm takes as input a subset \(R_{\mathbb{D}}\subset[N]\) (could be adversarially chosen), the public key pk, the master key msk and outputs a set \(T_{\mathbb{D}} \subseteq[N]\).

More precisely, under the conditions:

  • there are at most t traitors: |T|≤t;

  • The minimal revoked set does not contain all the traitors: \(T \not\subseteq R_{\mathbb{D}}\), or equivalently \(S_{\mathbb{D}}= ([N] - R_{\mathbb{D}})\) contains at least a traitor;

  • \(\mathbb{D}\) is “efficient” to decrypt ciphertexts (i.e., decrypts with some non-negligible probability) for some revoked sets R that include the minimal revoked set \(R_{\mathbb{D}}\) but do not contain all the traitors (\(R_{\mathbb{D}}\subseteq R\) but TR);

then the tracing algorithm outputs at least a traitor in \(S_{\mathbb{D}}\), i.e., : \(\emptyset\neq T_{\mathbb{D}}\subseteq T \cap S_{\mathbb{D}}\).

Definition 38

(Public-Key Encryption Scheme)

\(\mathcal{PKE}= (\textsf{Setup}, \textsf{KeyGen}, \textsf{Enc}, \textsf{Dec})\):

  • Setup(1k), where k is the security parameter, generates the global parameters param of the system;

  • KeyGen(param) generates a pair of keys, the public (encryption) key ek and the associated private (decryption) key dk;

  • Enc(ek,m;r) produces a ciphertext c on the input message m and the public key ek, using the random coins r (we may omit r when the notation is obvious);

  • Dec(dk,c) decrypts the ciphertext c under the private key dk. It outputs the plaintext, or ⊥ if the ciphertext is invalid.

Definition 39

(Secret Sharing Scheme)

\(\mathcal{SSS}= (\textsf{Share}, \textsf{Combine})\):

  • Share(k,m,n), outputs a secret bit string K of length k, as well as n shares s 1,…,s n , so that any m of them will allow to recover K.

  • Combine({(i,s i )}), from m pairs (i,s i ), it recovers the bit string K.

The correctness requirement is that from any m-subset of {(i,s i )} generated by Share(k,m,n), the Combine algorithm outputs the bit string K generated by Share. Furthermore, the bit string K must be perfectly uniformly distributed.

Definition 40

(Constant Size Private Key)

Suppose there exists an algorithm that generates 1-Conjunction (r,s)-Revocable (,N)-Code.We build a BE scheme Π that can revoke up to r users in the following way.

  • Setup(1λ,N)

    1. 1.

      Run the Code generating algorithm on (N,r,d) to obtain a 1-Conjunction (r,s)-Revocable (,N)-Code Γ.

    2. 2.

      Generate two large primes of the same size p,q and publish M=pq

    3. 3.

      Generate pairs \((\textsf{dk}_{i}, \textsf{ek}_{i}), i\hspace{-0.5pt}=\hspace{-0.5pt}1,\ldots ,\ell\) such that \(e_{k} d_{k} \hspace{-0.5pt}=\hspace{-0.5pt}1\ (\operatorname{mod}(p-1)(q-1))\);

    4. 4.

      Choose a random \(X \stackrel{\$}{\leftarrow}\mathbb{Z}^{*}_{M}\)

    5. 5.

      Set MSK=(Γ,X,{dk i }), EK=(N,{ek i }), and Reg=∅.

  • Join(MSK,i)

    1. 1.

      The user i is associated with the codeword w iΓ.

    2. 2.

      Set \(\textsf{usk}_{i} \leftarrow X^{\prod_{j=1}^{\ell}\textsf {dk}_{j}^{w^{i}_{j}}} ; \textsf{upk}_{i} \leftarrow i\); RegReg∪{i}.

  • Encaps(EK,R):

    1. 1.

      The revoked set R should contain at most r users;

    2. 2.

      Because Γ is 1-conjunction (r,s)-revocable, one can find out an word c such that D 1(R,c)=0 and D 1(u,c)=1 for any u∈[N]−R, and m=H(c)≤d.

    3. 3.

      Denote by i 1,…,i m the positions of m bits 1 in c, i.e., \(c_{i_{j}} =1\), for j=1,…,m

    4. 4.

      Set \(e_{i_{j}} = X^{\textsf{dk}_{i_{j}}}\), for j=1,…,m.

    5. 5.

      Output \(\mathcal{K}_{e}\) and \(\mathit{Header} = (c,(e_{i_{j}}), {j= 1,\dots,m})\).

  • Decaps(usk j ,R,Header):

    1. 1.

      If j is in [N]−R, then D 1(w j,c)=1. There exists thus an index 1≤zm such that \(c_{i_{z}} = w^{j}_{i_{z}} = 1\)

    2. 2.

      Compute \(s_{i_{z}}= \textsf{usk}_{j}^{\prod_{s=1, s \neq i_{z} }^{\ell }\textsf{ek}_{j}^{w^{i}_{s}}} \). From the \(s_{i_{z}}\), reconstruct \(\mathcal{K}_{e}\)

Definition 41

(Trace&Revoke System from 1-Conjunction Trace&Revoke Codes)

Let us be given a generator of \((r,s,\mathcal{Q},p,\delta ,t)\)-blackbox Trace&Revoke 1-Conjunction (,N)-Codes, and a secure public-key encryption scheme \(\mathcal{PKE}\). We build a Trace&Revoke encapsulation scheme Π that can revoke up to r users, and tracing traitor for a pirate decoder having up to t traitors’ keys, in the following way.

  • Setup(1λ,N)

    1. 1.

      Run the code generating algorithm on \((\mathcal{Q},N,k,r,t,s)\) to obtain an \((r,s,\mathcal{Q},p, \delta,t)\)-blackbox Trace&Revoke 1-Conjunction (,N)-Codes.

    2. 2.

      Run \(\mathcal{PKE}.\textsf{Setup}(1^{\lambda})\) to get the public parameters param for the encryption scheme;

    3. 3.

      For i=1,…,, run the key generation algorithm \(\mathcal{PKE} .\textsf{KeyGen}(\textsf{param})\) to get the pair (dk i ,ek i ).

    4. 4.

      Set MSK=(Γ,{dk i }), and EK={ek i }.

    5. 5.

      For i=1,…,N, the user i is associated with the codeword w iΓ: we set \(\textsf{usk}_{i} \leftarrow\{\textsf{dk}_{j} / w^{i}_{j}=1, j=1,\ldots ,\ell\}\).

  • Encaps(EK,R):

    1. 1.

      For a revoked set R of size at most r, since the code Γ is efficiently (r,s)-revocable, one can find out a signal c of weight at most s, such that D 1(u,c)=0, for any uF(R), and D 1(u,c)=1 for any u∈[N]−R. We denote by m=w H (c) this weight;

    2. 2.

      Denote by i 1,…,i m the positions of m 1-bits in c, i.e., \(c_{i_{j}} =1\), for j=1,…,m;

    3. 3.

      Choose a random session key \(K\stackrel{\$}{\leftarrow}\{0,1\}^{\kappa}\).

    4. 4.

      Set \(e_{i_{j}} = \mathcal{PKE}.\textsf{Enc}(\textsf {pk}_{i_{j}},K)\), for j=1,…,m.

    5. 5.

      Output K and \(H = (c,(e_{i_{j}}), {j=1,\dots,m})\).

  • Decaps(usk j ,R,H):

    1. 1.

      If j is in [N]−R, then D 1(w j,c)=1. This means w H (w jc)≥1 and there exists thus i j in w jc

    2. 2.

      Compute \(K= \mathcal{PKE}.\textsf{Enc}(\textsf{sk}_{i_{j}},e_{i_{j}})\).

  • \({\mathbf{Trace}}^{\mathbb{D}}(R_{\mathbb{D}}, \textsf{pk},\textsf {msk})\): Running the tracing algorithm for the code, each time the tracer asks a qualified query c to the pirate decoder, we do as follows: run Encaps(EK,R) but directly use the signal c (in fact, the revoked set R in this case corresponds to the set of the users that cannot decrypt c) and query the pirate decoder on the R,H. If the pirate decoder exactly recovers the session key K, we return 1 to the tracer for the code, and otherwise we return 0.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ngo, H.Q., Phan, D.H. & Pointcheval, D. Black-Box Trace&Revoke Codes. Algorithmica 67, 418–448 (2013). https://doi.org/10.1007/s00453-012-9702-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00453-012-9702-y

Keywords

Navigation