Skip to main content

Covercrypt: An Efficient Early-Abort KEM for Hidden Access Policies with Traceability from the DDH and LWE

  • Conference paper
  • First Online:
Computer Security – ESORICS 2023 (ESORICS 2023)

Abstract

Attribute-Based Encryption (ABE) is a very attractive primitive to limit access according to specific rights. While very powerful instantiations have been offered, under various computational assumptions, they rely on either classical or post-quantum problems, and are quite intricate to implement, generally resulting in poor efficiency; the construction we offer results in a powerful efficiency gap with respect to existing solutions. With the threat of quantum computers, post-quantum solutions are important, but not yet tested enough to rely on such problems only. We thus first study an hybrid approach to rely on the best of the two worlds: the scheme is secure if at least one of the two underlying assumptions is still valid (i.e. the DDH and LWE). Then, we address the ABE problem, with a practical solution delivering encrypted contents such that only authorized users can decrypt, without revealing the target sets, while also granting tracing capabilities. Our scheme is inspired by the Subset Cover framework where the users’ rights are organized as subsets and a content is encrypted with respect to a subset covering of the target set. Quite conveniently, we offer black-box modularity: one can easily use any public-key encryption of their choice, such as Kyber, with their favorite library, to combine it with a simple ElGamal variant of key encapsulation mechanisms, providing strong security guarantees.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://github.com/Cosmian/cover_crypt.

  2. 2.

    https://docs.rs/aes-gcm/latest/aes_gcm/.

  3. 3.

    Note that this is the optimized version of a generic one where one would have drawn |B| extra session keys \(K_i'\), \(E_i\) would actually have been a Kyber encryption of these \(K_i'\)’s instead of the \(S\oplus K_i\), and one would have had to send |B| extra \(F_i \leftarrow K_i \oplus K'\oplus S\).

  4. 4.

    Again, this corresponds to our optimized version, taking advantage of the encrypting properties of Kyber. For a generic hybrid \(\textsf {KEMAC}\), one would have output \(U'_{i,j} \oplus F_i\) when \(V'_{i,j}=V\) (cf. previous footnote for the definition of \(F_i\)).

  5. 5.

    https://github.com/Cosmian/cover_crypt.

  6. 6.

    https://docs.rs/pqc_kyber/latest/pqc_kyber/.

  7. 7.

    Whose implementation can be found at: https://github.com/Cosmian/abe_gpsw.

  8. 8.

    In this comparison, to translate the attribute setting into a subset-cover one, we consider a context in which users hold \(|A|+1\) attributes, corresponding to |A| subsets in the subset-cover setting, the subsets being the intersection of one of these attributes with each of the other ones, and that encapsulations are made in the same way with respect to \(|B|+1\) attributes corresponding to |B| subsets, and for the decapsulation timings, we suppose there is always exactly one subset in the intersection of the ones the user has access to and the ones in the encapsulation.

References

  1. Applebaum, B.: Pseudorandom generators with long stretch and low locality from random local one-way functions. In: Karloff, H.J., Pitassi, T. (eds.) 44th ACM STOC, pp. 805–816. ACM Press, May 2012. https://doi.org/10.1145/2213977.2214050

  2. Avanzi, R., et al.: Crystals-Kyber algorithm specifications and supporting documentation (2021). https://pq-crystals.org/kyber/resources.shtml

  3. Bellare, M., Boldyreva, A., Desai, A., Pointcheval, D.: Key-privacy in public-key encryption. In: Boyd, C. (ed.) ASIACRYPT 2001. LNCS, vol. 2248, pp. 566–582. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45682-1_33

    Chapter  Google Scholar 

  4. Bindel, N., Brendel, J., Fischlin, M., Goncalves, B., Stebila, D.: Hybrid key encapsulation mechanisms and authenticated key exchange. In: Ding, J., Steinwandt, R. (eds.) PQCrypto 2019. LNCS, vol. 11505, pp. 206–226. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-25510-7_12

    Chapter  Google Scholar 

  5. Boneh, D., Franklin, M.: An efficient public key traitor tracing scheme. In: Wiener, M. (ed.) CRYPTO 1999. LNCS, vol. 1666, pp. 338–353. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48405-1_22

    Chapter  Google Scholar 

  6. Brézot, T., de Perthuis, P., Pointcheval, D.: Covercrypt: an efficient early-abort Kem for hidden access policies with traceability from the DDH and LWE. Cryptology ePrint Archive, Report 2023/836 (2023). https://eprint.iacr.org/2023/836

  7. Chevassut, O., Fouque, P.-A., Gaudry, P., Pointcheval, D.: The twist-AUgmented technique for key exchange. In: Yung, M., Dodis, Y., Kiayias, A., Malkin, T. (eds.) PKC 2006. LNCS, vol. 3958, pp. 410–426. Springer, Heidelberg (2006). https://doi.org/10.1007/11745853_27

    Chapter  Google Scholar 

  8. Dai, W., et al.: Implementation and evaluation of a lattice-based key-policy ABE scheme. Cryptology ePrint Archive, Report 2017/601 (2017). https://eprint.iacr.org/2017/601

  9. Dai, W., et al.: Implementation and evaluation of a lattice-based key-policy ABE scheme. IEEE Trans. Inf. Forensics Secur. 13(5), 1169–1184 (2018)

    Article  Google Scholar 

  10. Fazio, N., Perera, I.M.: Outsider-anonymous broadcast encryption with sublinear ciphertexts. In: Fischlin, M., Buchmann, J., Manulis, M. (eds.) PKC 2012. LNCS, vol. 7293, pp. 225–242. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-30057-8_14

    Chapter  Google Scholar 

  11. Giacon, F., Heuer, F., Poettering, B.: KEM combiners. In: Abdalla, M., Dahab, R. (eds.) PKC 2018. LNCS, vol. 10769, pp. 190–218. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-76578-5_7

    Chapter  Google Scholar 

  12. Goyal, V., Pandey, O., Sahai, A., Waters, B.: Attribute-based encryption for fine-grained access control of encrypted data. In: Juels, A., Wright, R.N., De Capitani di Vimercati, S. (eds.) ACM CCS 2006. pp. 89–98. ACM Press, October/November 2006. https://doi.org/10.1145/1180405.1180418. Cryptology ePrint Archive Report 2006/309

  13. Håstad, J., Impagliazzo, R., Levin, L.A., Luby, M.: A pseudorandom generator from any one-way function. SIAM J. Comput. 28(4), 1364–1396 (1999)

    Article  MathSciNet  Google Scholar 

  14. Langlois, A., Stehlé, D.: Worst-case to average-case reductions for module lattices. Des. Codes Cryptogr. 75(3), 565–599 (2015)

    Article  MathSciNet  Google Scholar 

  15. Li, J., Gong, J.: Improved anonymous broadcast encryptions. In: Preneel, B., Vercauteren, F. (eds.) ACNS 2018. LNCS, vol. 10892, pp. 497–515. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-93387-0_26

    Chapter  Google Scholar 

  16. Libert, B., Paterson, K.G., Quaglia, E.A.: Anonymous broadcast encryption: adaptive security and efficient constructions in the standard model. In: Fischlin, M., Buchmann, J., Manulis, M. (eds.) PKC 2012. LNCS, vol. 7293, pp. 206–224. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-30057-8_13

    Chapter  Google Scholar 

  17. Maram, V., Xagawa, K.: Post-quantum anonymity of kyber. Cryptology ePrint Archive, Report 2022/1696 (2022). https://eprint.iacr.org/2022/1696

  18. Shoup, V.: A proposal for an ISO standard for public key encryption, December 2001. https://shoup.net/papers/iso-2_1.pdf

  19. Wee, H.: ABE for DFA from LWE against bounded collusions, revisited. In: Nissim, K., Waters, B. (eds.) TCC 2021. LNCS, vol. 13043, pp. 288–309. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-90453-1_10

    Chapter  Google Scholar 

Download references

Acknowledgments

This work was supported in part by the France 2030 ANR Project ANR-22-PECY-003 SecureCompute.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paola de Perthuis .

Editor information

Editors and Affiliations

Appendices

Appendix

A Public-Key Encryption

A Public-Key Encryption (PKE) scheme is defined by 3 algorithms:

  • \(\textsf {PKE}.\textsf{KeyGen}(1^\kappa )\): the key generation algorithm outputs a pair of public and secret keys \(({\textsf{pk}},{\textsf{sk}})\);

  • \(\textsf {PKE}.\textsf{Enc}({\textsf{pk}}, m)\): the encryption algorithm encrypts the input message m under the public key \({\textsf{pk}}\) and outputs the ciphertext C;

  • \(\textsf {PKE}.\textsf{Dec}({\textsf{sk}},C)\): the decryption algorithm outputs the message m encrypted in C.

We will use the classical notion of indistinguishability and of anonymity of such a PKE scheme, similarly to the same notions for KEMs:

  • Indistinguishability. For an honestly generated \({\textsf{pk}}\), if the adversary chooses two messages \(m_0\) and \(m_1\), it cannot distinguish an encryption of \(m_0\) from an encryption of \(m_1\), both under \({\textsf{pk}}\).

  • Anonymity. For two honestly generated \({\textsf{pk}}_0\) and \({\textsf{pk}}_1\), if the adversary chooses a message m, it cannot distinguish an encryption of m under \({\textsf{pk}}_0\) from the encryption of m under \({\textsf{pk}}_1\).

B Proof of Theorem 5

We present a sequence of games, from the \(\textsf {AUTH} \) security game against \({\textsf {KEM}}'\).

  • Game G\(_{0}\) : In the initial game, one runs \(({\textsf{pk}}_i,{\textsf{sk}}_i)\leftarrow {\textsf {KEM}}'.\textsf{KeyGen}(1^\kappa )\), \((c,s)\leftarrow {\textsf {KEM}}.\textsf{Enc}({\textsf{pk}}_0)\) and \(K_0 \Vert V \leftarrow \textsf{PRG}(s)\). One then runs \(s' \leftarrow {\textsf {KEM}}.\textsf{Dec}({\textsf{sk}}_1,c)\), followed by \(U'\Vert V' \leftarrow \textsf{PRG}(s')\). We denote \(P_{0}\) the probability \(V' = V\). This is \(\textsf{Adv}^{\textsf {auth}}_{{\textsf {KEM}}'}(1^\kappa )\).

  • Game G\(_{1}\) : In this game, we just replace \(s {\mathop {\leftarrow }\limits ^{{}_\$}}\{0;1\}^\kappa \), that is drawn uniformly at random from the session-key space of \({\textsf {KEM}}\), \(\{0;1\}^\kappa \). The difference between this game and the previous one is the \(\textsf {SK-IND} \)-game on the underlying \({\textsf {KEM}}\), against a trivial adversary \(\mathcal {A}_0\). Hence, \(P_{0} - P_{1} \le \textsf{Adv}^{\textsf {sk-ind}}_{{\textsf {KEM}}}(\tau )\), \(\tau \) the running time of the trivial adversary \(\mathcal {A}_0\) that runs two key generations, one encapsulation, two \(\textsf{PRG}\) evaluations, and one decapsulation.

  • Game G\(_{2}\) :In this game, one takes \(K_0\Vert V {\mathop {\leftarrow }\limits ^{{}_\$}}\{0;1\}^{k+\ell }\). This is indistinguishable from the previous game except with probability \(\textsf{Adv}_{\textsf{PRG}_{\kappa ,k+\ell }}^\textsf{ind}(\tau ')\). Hence, \(P_{1} - P_{2} \le \textsf{Adv}_{\textsf{PRG}_{\kappa ,k+\ell }}^\textsf{ind}(\tau ')\), where \(\tau '\) is the running time of another trivial adversary \(\mathcal {A}_1\) that runs two key generations, one encapsulation, one \(\textsf{PRG}\) evaluations, and one decapsulation. In this game, as V is drawn uniformly at random from \(\{0;1\}^\ell \), the probability that it is equal to \(V'\in \{0;1\}^\ell \) is equal to \(2^{-\ell }\): \(P_{2} = 2^{-\ell }\).

Finally, from the above, one deducts that:

$$\begin{aligned} \textsf{Adv}^{\textsf {auth}}_{{\textsf {KEM}}'}(\kappa ) \le 2^{-\ell } + \textsf{Adv}^{\textsf {sk-ind}}_{{\textsf {KEM}}}(\tau ) + \textsf{Adv}_{\textsf{PRG}_{\kappa ,k+\ell }}^\textsf{ind}(\tau ') \end{aligned}$$

C Proof of Theorem 11

To prove this theorem, we first give a description of the confirmer algorithm \(\mathcal {C}\), then we provide the indistinguishability analysis, and eventually prove \(\mathcal {C}\) will give a correct answer.

Description of the Confirmer \(\mathcal {C}\): The confirmer algorithm \(\mathcal {C}\) can proceed as follows, for a candidate subset \(\mathcal {G}\): \(\{\textsf{usk}_j = (v_{j,k})_k\}_{j\in \mathcal {G}}\), for \(\mathcal {G}\) of size at most t: it chooses \((u_k)_k\) orthogonal to the subvector-space spanned by \(\{(v_{j,k})_k\}_{j\in \mathcal {G}}\), which means that: \(\sum _k u_k v_{j,k} = 0, \forall j\in \mathcal {G}.\) This is possible as \((v_{j,k})_{k\in [1,t+1],j\in \mathcal {G}}\) is of rank at most t in \(\mathbb {Z}_q^{t+1}\). Then the kernel is of dimension at least 1. One generates a fake ciphertext \(C = (C_k)_k\), with \(C_k \leftarrow h_k^r \cdot g^{u_k s'}\), for random \(r,s'{\mathop {\leftarrow }\limits ^{{}_\$}}\mathbb {Z}_q\), and then \(K \leftarrow h^r\):

  • Any key \(\textsf{usk}_j\) in \(\mathcal {G}\) will lead to:

    $$\prod _k C_k^{v_{j,k}} = \prod _k g^{(r s_k + s' u_k) \cdot v_{j,k}} = g^{r \sum _k s_k v_{j,k} + s' \sum _k u_k v_{j,k}} = g^{r s + s' \times 0} = K;$$
  • and any key \(\textsf{usk}_j\) outside \(\mathcal {G}\) will lead to: \(\prod _k C_k^{v_{j,k}} = K \times (g^{\sum _k u_k v_{j,k}})^{s'} \ne K.\)

we will show this allows to confirm at least one traitor from a candidat subset of traitors.

Indistinguishability Analysis. The above remark about the output key from a pirate decoder \(\mathcal {P}\) assumes an honest behavior, whereas it can stop answering if it detects the fake ciphertext. We first need to show that, with the public key \({\textsf{pk}}= ((h_k)_k,h)\) and only \(\{\textsf{usk}_j = (v_{j,k})_k\}_{j\in \mathcal {G}}\), one cannot distinguish the fake ciphertext from a real ciphertext, generated as above: from a Diffie-Hellman tuple \((A = g^a,B = g^r, C)\), one can derive, from random scalars \(s, s'_k, u_k{\mathop {\leftarrow }\limits ^{{}_\$}}\mathbb {Z}_q\), such that \(\sum _k v_{j,k} s'_k = s\) and \(\sum _k v_{j,k} u_k = 0\), for \(j=1\,\ldots ,n\):

$$\begin{aligned} h_k & \leftarrow A^{u_k}\cdot g^{s'_k} = g^{a u_k + s'_k} & h & \leftarrow g^{s} & \textsf{usk}_j & = (v_{j,k})_k \text{ for } j\in \mathcal {G}\end{aligned}$$

where we implicitly define \(s_k \leftarrow a u_k + s'_k\), that satisfy

$$\sum _k v_{j,k} s_k = \sum _k v_{j,k} (s'_k + a u_k) = \sum _k v_{j,k} s'_k + a \sum _k v_{j,k} u_k = s + 0 = s.$$

Then, one defines \(C_k \leftarrow C^{u_k} \cdot B^{s'_k}\) and \(K \leftarrow B^{s}\).

Let us note \(C = g^{r-c}\), where c is either 0 (a Diffie-Hellman tuple) or random:

$$C_k = A^{(r+c) u_k} \cdot g^{r s'_k} = (A^{u_k} \cdot g^{s'_k})^r \cdot A^{c u_k} = h_k^r \cdot (A^c)^{u_k}.$$

One can remark that: when \(c=0\) (Diffie-Hellman tuple), \(C = (C_k)_k\) is a normal ciphertext; when \(c=s'\) (random tuple), this is a fake ciphertext. Under the \(\textsf {DDH}\) assumption, they are thus indistinguishable for an adversary knowing the keys \((\textsf{usk}_i)_{i\in \mathcal {G}}\).

Confirmation of a Traitor. The above analysis shows that a pirate decoder \(\mathcal {P}\) built from \((\textsf{usk}_i)_{i\in \mathcal {G}}\) cannot distinguish the fake ciphertext from a real ciphertext. A useful pirate decoder should necessarily distinguish real key from random key. Then, several situations may appear, according to the actual set \(\mathcal {T}\) of traitors’ keys used to build the pirate decoder \(\mathcal {P}\) by the adversary \(\mathcal {A}\):

  • If \(\mathcal {T}\subseteq \mathcal {G}\), a useful decoder \(\mathcal {P}\) can distinguish keys;

  • If \(\mathcal {T}\cap \mathcal {G}= \emptyset \), \(\mathcal {P}\) cannot distinguish keys, as it can get several candidates, independent from the real or random keys.

Let us now assume we started from \(\mathcal {G}\supseteq \mathcal {T}\), then the advantage of \(\mathcal {P}\) in distinguishing real and random keys, denoted \(p_{\mathcal {G}}\), is non-negligible, from the usefulness of the decoder. The following steps would also work if one starts with \(\mathcal {G}\cap \mathcal {T}\ne \emptyset \), so that the advantage \(p_{\mathcal {G}}\) is significant.

One then removes a user J from \(\mathcal {G}\) to generate \(\mathcal {G}'\) and new ciphertexts to evaluate \(p_{\mathcal {G}'}\): if \(J \not \in \mathcal {T}\), \(\textsf{usk}_J\) is not known to the adversary, and so there is no way to check whether \(\sum _k v_{J,k} s'_k = s\) and \(\sum _k v_{J,k} u_k = 0\), even for a powerful adversary. So necessarily, \(p_{\mathcal {G}'} = p_{\mathcal {G}}\).

On the other hand, we know that \(p_{\emptyset } = 0\). So, one can sequentially remove users until a significant gap appears: this is necessarily for a user in \(\mathcal {T}\).    \(\square \)

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Brézot, T., de Perthuis, P., Pointcheval, D. (2024). Covercrypt: An Efficient Early-Abort KEM for Hidden Access Policies with Traceability from the DDH and LWE. In: Tsudik, G., Conti, M., Liang, K., Smaragdakis, G. (eds) Computer Security – ESORICS 2023. ESORICS 2023. Lecture Notes in Computer Science, vol 14344. Springer, Cham. https://doi.org/10.1007/978-3-031-50594-2_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-50594-2_19

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-50593-5

  • Online ISBN: 978-3-031-50594-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics