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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 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
The PBC (pairing-based cryptography) library. http://crypto.stanford.edu/pbc/
Abdalla, M., Bourse, F., Caro, A.D., Pointcheval, D.: Simple functional encryption schemes for inner products. In: PKC, pp. 733–751 (2015)
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)
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
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
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
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
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
Anati, I., Gueron, S., Johnson, S., Scarlata, V.: Innovative technology for cpu based attestation and sealing. In: HASP (2013)
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
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
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
Blum, M., Feldman, P., Micali, S.: Non-interactive zero-knowledge and its applications (extended abstract). In: STOC, pp. 103–112 (1988)
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
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
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)
Bulck, J.V., et al.: LVI: hijacking transient execution through microarchitectural load value injection. In: IEEE S&P, pp. 54–72 (2020)
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
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
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)
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
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
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
Fisch, B., Vinayagamurthy, D., Boneh, D., Gorbunov, S.: IRON: functional encryption using intel SGX. In: ACM CCS, pp. 765–782 (2017)
Galbraith, S.D., Paterson, K.G., Smart, N.P.: Pairings for cryptographers. In: Discrete Applied Mathematics, pp. 3113–3121 (2008)
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)
Garg, S., Gentry, C., Halevi, S., Zhandry, M.: Fully secure attribute based encryption from multilinear maps. IACR Cryptology ePrint Archive 2014:622 (2014)
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
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)
Hoekstra, M., Lal, R., Pappachan, P., Phegade, V., Cuvillo, J.D.: Using innovative instructions to create trustworthy software solutions. In: HASP (2013)
Johnson, S., Scarlata, V., Rozas, C., Brickell, E., Mckeen, F.: Intel software guard extensions: EPID provisioning and attestation services (2016)
McKeen, F., et al.: Innovative instructions and software model for isolated execution. In: HASP 2013 (2013)
Nieto, J.M.G., Manulis, M., Poettering, B., Rangasamy, J., Stebila, D.: Publicly verifiable ciphertexts. In: SCN, pp. 393–410 (2012)
O’Neill, A.: Definitional issues in functional encryption. IACR Cryptology ePrint Archive 2010:556 (2010)
Schwarz, M., et al.: ZombieLoad: cross-privilege-boundary data sampling. In: ACM CCS, pp. 753–768 (2019)
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)
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
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
Wee, H.: Public key encryption against related key attacks. In: PKC, pp. 262–279 (2012)
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
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
Corresponding author
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
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)