Skip to main content

Verifiable Functional Encryption Using Intel SGX

  • Conference paper
  • First Online:
Provable and Practical Security (ProvSec 2021)

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 13059))

Included in the following conference series:

Abstract

Most functional encryption schemes implicitly assume that inputs to decryption algorithms, i.e., secret keys and ciphertexts, are generated honestly. However, they may be tampered by malicious adversaries. Thus, verifiable functional encryption (VFE) was proposed by Badrinarayanan et al. in ASIACRYPT 2016 where anyone can publicly check the validity of secret keys and ciphertexts. They employed indistinguishability-based (IND-based) security due to an impossibility result of simulation-based (SIM-based) VFE even though SIM-based security is more desirable. In this paper, we propose a SIM-based VFE scheme. To bypass the impossibility result, we introduce a trusted setup assumption. Although it appears to be a strong assumption, we demonstrate that it is reasonable in a hardware-based construction, e.g., Fisch et al. in ACM CCS 2017. Our construction is based on a verifiable public-key encryption scheme (Nieto et al. in SCN 2012), a signature scheme, and a secure hardware scheme, which we refer to as VFE-HW. Finally, we discuss an implementation of VFE-HW using Intel Software Guard Extensions (Intel SGX).

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 64.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 84.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.

    We note that we also relax the condition that the verifiability holds where the probability that the decryption algorithm outputs P(msg) is not exactly 1 (concretely 1-negl(\(\lambda \))) in our definition. Because the underlying local or remote attestations require non-perfect correctness, this relaxation is reasonable. This relaxation provides the converted proof system to be an argument, i.e., soundness holds only for computationally bounded adversaries.

References

  1. The PBC (pairing-based cryptography) library. http://crypto.stanford.edu/pbc/

  2. Abdalla, M., Bourse, F., Caro, A.D., Pointcheval, D.: Simple functional encryption schemes for inner products. In: PKC, pp. 733–751 (2015)

    Google Scholar 

  3. Abdalla, M., Bourse, F., Marival, H., Pointcheval, D., Soleimanian, A., Waldner, H.: Multi-client inner-product functional encryption in the random-oracle model. In: SCN, pp. 525–545 (2020)

    Google Scholar 

  4. Abdalla, M., Catalano, D., Gay, R., Ursu, B.: Inner-product functional encryption with fine-grained access control. In: Moriai, S., Wang, H. (eds.) ASIACRYPT 2020. LNCS, vol. 12493, pp. 467–497. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-64840-4_16

    Chapter  Google Scholar 

  5. Abdalla, M., Gong, J., Wee, H.: Functional encryption for attribute-weighted sums from k-Lin. In: Micciancio, D., Ristenpart, T. (eds.) CRYPTO 2020. LNCS, vol. 12170, pp. 685–716. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-56784-2_23

    Chapter  Google Scholar 

  6. Agrawal, S., Gorbunov, S., Vaikuntanathan, V., Wee, H.: Functional encryption: new perspectives and lower bounds. In: Canetti, R., Garay, J.A. (eds.) CRYPTO 2013. LNCS, vol. 8043, pp. 500–518. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40084-1_28

    Chapter  Google Scholar 

  7. Agrawal, S., Koppula, V., Waters, B.: Impossibility of simulation secure functional encryption even with random oracles. In: Beimel, A., Dziembowski, S. (eds.) TCC 2018. LNCS, vol. 11239, pp. 659–688. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03807-6_24

    Chapter  MATH  Google Scholar 

  8. Agrawal, S., Libert, B., Maitra, M., Titiu, R.: Adaptive simulation security for inner product functional encryption. In: Kiayias, A., Kohlweiss, M., Wallden, P., Zikas, V. (eds.) PKC 2020. LNCS, vol. 12110, pp. 34–64. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-45374-9_2

    Chapter  Google Scholar 

  9. Anati, I., Gueron, S., Johnson, S., Scarlata, V.: Innovative technology for cpu based attestation and sealing. In: HASP (2013)

    Google Scholar 

  10. Badrinarayanan, S., Goyal, V., Jain, A., Sahai, A.: Verifiable functional encryption. In: Cheon, J.H., Takagi, T. (eds.) ASIACRYPT 2016. LNCS, vol. 10032, pp. 557–587. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-53890-6_19

    Chapter  Google Scholar 

  11. Barak, B., Pass, R.: On the possibility of one-message weak zero-knowledge. In: Naor, M. (ed.) TCC 2004. LNCS, vol. 2951, pp. 121–132. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24638-1_7

    Chapter  MATH  Google Scholar 

  12. Bhatotia, P., Kohlweiss, M., Martinico, L., Tselekounis, Y.: Steel: composable hardware-based stateful and randomised functional encryption. In: Garay, J.A. (ed.) PKC 2021. LNCS, vol. 12711, pp. 709–736. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-75248-4_25

    Chapter  Google Scholar 

  13. Blum, M., Feldman, P., Micali, S.: Non-interactive zero-knowledge and its applications (extended abstract). In: STOC, pp. 103–112 (1988)

    Google Scholar 

  14. Boneh, D., Sahai, A., Waters, B.: Functional encryption: definitions and challenges. In: Ishai, Y. (ed.) TCC 2011. LNCS, vol. 6597, pp. 253–273. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-19571-6_16

    Chapter  Google Scholar 

  15. Boyle, E., Chung, K.-M., Pass, R.: On extractability obfuscation. In: Lindell, Y. (ed.) TCC 2014. LNCS, vol. 8349, pp. 52–73. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54242-8_3

    Chapter  Google Scholar 

  16. Bulck, J.V., et al.: FORESHADOW: extracting the keys to the intel SGX kingdom with transient out-of-order execution. In: USENIX, pp. 991–1008 (2018)

    Google Scholar 

  17. Bulck, J.V., et al.: LVI: hijacking transient execution through microarchitectural load value injection. In: IEEE S&P, pp. 54–72 (2020)

    Google Scholar 

  18. De Caro, A., Iovino, V., Jain, A., O’Neill, A., Paneth, O., Persiano, G.: On the achievability of simulation-based security for functional encryption. In: Canetti, R., Garay, J.A. (eds.) CRYPTO 2013. LNCS, vol. 8043, pp. 519–535. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40084-1_29

    Chapter  Google Scholar 

  19. Chotard, J., Dufour Sans, E., Gay, R., Phan, D.H., Pointcheval, D.: Decentralized multi-client functional encryption for inner product. In: Peyrin, T., Galbraith, S. (eds.) ASIACRYPT 2018. LNCS, vol. 11273, pp. 703–732. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03329-3_24

    Chapter  Google Scholar 

  20. Contiu, S., Pires, R., Vaucher, S., Pasin, M., Felber, P., Réveillère, L.: IBBE-SGX: cryptographic group access control using trusted execution environments. In: DSN, pp. 207–218 (2018)

    Google Scholar 

  21. Damgård, I., Haagh, H., Mercer, R., Nitulescu, A., Orlandi, C., Yakoubov, S.: Stronger security and constructions of multi-designated verifier signatures. In: Pass, R., Pietrzak, K. (eds.) TCC 2020. LNCS, vol. 12551, pp. 229–260. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-64378-2_9

    Chapter  Google Scholar 

  22. Datta, P., Okamoto, T., Tomida, J.: Full-hiding (unbounded) multi-input inner product functional encryption from the k-linear assumption. In: Abdalla, M., Dahab, R. (eds.) PKC 2018. LNCS, vol. 10770, pp. 245–277. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-76581-5_9

    Chapter  Google Scholar 

  23. Dufour-Sans, E., Pointcheval, D.: Unbounded inner-product functional encryption with succinct keys. In: Deng, R.H., Gauthier-Umaña, V., Ochoa, M., Yung, M. (eds.) ACNS 2019. LNCS, vol. 11464, pp. 426–441. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-21568-2_21

    Chapter  Google Scholar 

  24. Fisch, B., Vinayagamurthy, D., Boneh, D., Gorbunov, S.: IRON: functional encryption using intel SGX. In: ACM CCS, pp. 765–782 (2017)

    Google Scholar 

  25. Galbraith, S.D., Paterson, K.G., Smart, N.P.: Pairings for cryptographers. In: Discrete Applied Mathematics, pp. 3113–3121 (2008)

    Google Scholar 

  26. Garg, S., Gentry, C., Halevi, S., Raykova, M., Sahai, A., Waters, B.: Candidate indistinguishability obfuscation and functional encryption for all circuits. SIAM J. Comput. 45(3), 882–929 (2016)

    Google Scholar 

  27. Garg, S., Gentry, C., Halevi, S., Zhandry, M.: Fully secure attribute based encryption from multilinear maps. IACR Cryptology ePrint Archive 2014:622 (2014)

    Google Scholar 

  28. Goldreich, O., Oren, Y.: Definitions and properties of zero-knowledge proof systems. J. Cryptol. 7(1), 1–32 (1994). https://doi.org/10.1007/BF00195207

  29. Goyal, V., Pandey, O., Sahai, A., Waters, B.: Attribute-based encryption for fine-grained access control of encrypted data. In: ACM CCS, pp. 89–98 (2006)

    Google Scholar 

  30. Hoekstra, M., Lal, R., Pappachan, P., Phegade, V., Cuvillo, J.D.: Using innovative instructions to create trustworthy software solutions. In: HASP (2013)

    Google Scholar 

  31. Johnson, S., Scarlata, V., Rozas, C., Brickell, E., Mckeen, F.: Intel software guard extensions: EPID provisioning and attestation services (2016)

    Google Scholar 

  32. McKeen, F., et al.: Innovative instructions and software model for isolated execution. In: HASP 2013 (2013)

    Google Scholar 

  33. Nieto, J.M.G., Manulis, M., Poettering, B., Rangasamy, J., Stebila, D.: Publicly verifiable ciphertexts. In: SCN, pp. 393–410 (2012)

    Google Scholar 

  34. O’Neill, A.: Definitional issues in functional encryption. IACR Cryptology ePrint Archive 2010:556 (2010)

    Google Scholar 

  35. Schwarz, M., et al.: ZombieLoad: cross-privilege-boundary data sampling. In: ACM CCS, pp. 753–768 (2019)

    Google Scholar 

  36. Soroush, N., Iovino, V., Rial, A., Rønne, P.B., Ryan, P.Y.A.: Verifiable inner product encryption scheme. In: PKC, pp. 65–94 (2020)

    Google Scholar 

  37. Tomida, J., Takashima, K.: Unbounded inner product functional encryption from bilinear maps. In: Peyrin, T., Galbraith, S. (eds.) ASIACRYPT 2018. LNCS, vol. 11273, pp. 609–639. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03329-3_21

    Chapter  Google Scholar 

  38. Waters, B.: A punctured programming approach to adaptively secure functional encryption. In: Gennaro, R., Robshaw, M. (eds.) CRYPTO 2015. LNCS, vol. 9216, pp. 678–697. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-48000-7_33

    Chapter  Google Scholar 

  39. Wee, H.: Public key encryption against related key attacks. In: PKC, pp. 262–279 (2012)

    Google Scholar 

  40. Wee, H.: Attribute-hiding predicate encryption in bilinear groups, revisited. In: Kalai, Y., Reyzin, L. (eds.) TCC 2017. LNCS, vol. 10677, pp. 206–233. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70500-2_8

    Chapter  Google Scholar 

Download references

Acknowledgement

This work was supported by the JSPS KAKENHI Grant Numbers JP20K11811, JP20J22324, and JP21K11897. We thank Dr. Rafael Pires for helpful discussion.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tatsuya Suzuki .

Editor information

Editors and Affiliations

A The Nieto et al. VPKE Scheme

A The Nieto et al. VPKE Scheme

In this appendix, we introduce the Nieto et al. VPKE scheme [33], Fig. 4] as follows. For the underlying One-Time Signature (OTS) scheme, we employ the discrete-log-based Wee OTS scheme [39], and for the DDH test, we employ symmetric pairings whether e(g, \(\pi \)) is the same as e(\(c_1\), \(u^tv\)) or not.

  • VPKE.PGen(\(\mathsf{1}^{\lambda }\)): Choose (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\)) where \({\mathbb G}\) and \({\mathbb G}_T\) are groups of \(\lambda \)-bit prime order p, \(g \in {\mathbb G}\) is a generator, and \(e: {\mathbb G} \times {\mathbb G} \rightarrow {\mathbb G}_T\) is a bilinear map. Let \(H: {\mathbb G} \rightarrow \{0,1\}^\mathsf{poly(\lambda )}\), \(H_{OTS}: \{0,1\}^{*} \rightarrow \{0,1\}^\mathsf{poly(\lambda )}\), and \(\mathsf{TCR}: {\mathbb G} \times \{0,1\} \rightarrow {\mathbb Z}_p\) be collision or target collision resistant hash functions where \(\mathsf{poly(\lambda )}\) is a polynomial in \({\lambda }\). Output pars = (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\), H, \(H_{OTS}\), TCR).

  • VPKE.KeyGen(pars): Parse pars = (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\), H, \(H_{OTS}\), TCR). Choose \(x_1 \xleftarrow {\$} {\mathbb Z}_p^{*}\) and \(v \xleftarrow {\$} {\mathbb G}\) and compute \(u = g^{x_1}\). Output pk = (u, v) and dk = \(x_1\).

  • VPKE.Enc(pars, pk, msg): Parse pars = (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\), H, \(H_{OTS}\), TCR) and pk = (u, v). Choose \(s_0, s_1,x_2,r,n \xleftarrow {\$} {\mathbb Z}_p^{*}\) and compute \(u_0 = g^{s_0}\), \(u_1 = g^{s_1}\), \(c^{\prime } = g^{x_2}\), \(c_1 = g^r\), \(t \leftarrow TCR(c_1, (u_0, u_1, c^{\prime }))\), \(K \leftarrow H(u^r)\) and \(\pi \leftarrow (u^tv)^r\). Set \(c_2 \leftarrow \mathsf{msg} \oplus K\) and \(c = (c_1, c_2, \pi )\). Compute \(w \leftarrow x_2 + ns_0 + s_1(H_{OTS}(c) + n)\). Output \(\mathsf{CT} \leftarrow (c, (n, w), (u_0, u_1, c^{\prime }))\).

  • VPKE.Ver(pars, pk, CT): Parse pars = (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\), H, \(H_{OTS}\), TCR), pk = (u, v), \(\mathsf{CT} = (c, (n, w), (u_0, u_1, c^{\prime }))\) and \(c = (c_1, c_2, \pi )\). Compute \(t \leftarrow TCR(c_1, (u_0, u_1, c^{\prime }))\) and \(\pi \leftarrow (u^tv)^r\). If \(e(g, \pi ) \ne e(c_1, u^tv)\) or \(g^w \ne c^{\prime }u_0^n\cdot u_1^{H_{OTS}(c)+n}\), then output 0. Otherwise, output 1.

  • VPKE.Conv: Parse pars = (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\), H, \(H_{OTS}\), TCR), pk = (u, v), \(\mathsf{CT} = (c, (n, w), (u_0, u_1, c^{\prime }))\) and \(c = (c_1, c_2, \pi )\). Output \(\mathsf{CT}^{\prime } = (c_1, c_2)\).

  • \(\mathsf{VPKE.Dec^{\prime }}\)(pars, pk, dk, \(CT^{\prime }\) ): Parse pars = (p, e, g, \({\mathbb G}\), \({\mathbb G}_T\), H, \(H_{OTS}\), TCR), pk = (u, v), \(\mathsf{dk} =x_1\) and \(\mathsf{CT}^{\prime } = (c_1, c_2)\). Compute \(K \leftarrow H(c_1^{x_1})\) and set \(\mathsf{msg} \leftarrow c_2 \oplus K\). Output msg.

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Suzuki, T., Emura, K., Ohigashi, T., Omote, K. (2021). Verifiable Functional Encryption Using Intel SGX. In: Huang, Q., Yu, Y. (eds) Provable and Practical Security. ProvSec 2021. Lecture Notes in Computer Science(), vol 13059. Springer, Cham. https://doi.org/10.1007/978-3-030-90402-9_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-90402-9_12

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-90401-2

  • Online ISBN: 978-3-030-90402-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics