Abstract
Functional Encryption (FE) allows users who hold a specific decryption key, to learn a specific function of encrypted data while the actual plaintexts remain private. While FE is still in its infancy, it is our strong belief that in the years to come, this remarkable cryptograhic primitive will have matured to a degree that will make it an integral part of access-control systems, especially cloud-based ones. To this end, we believe it is of great importance to not only provide theoretical and generic constructions but also concrete instantiations of FE schemes from well-studied cryptographic assumptions. Therefore, in this paper, we undertake the task of presenting two instantiations of the generic work presented in [5] from the Decisional Diffie-Hellman (DDH) problem that also satisfy the property of verifiable decryption. Moreover, we present a novel multi-input FE (MIFE) scheme, that can be instantiated from Regev’s cryptosystem, and thus remains secure even against quantum adversaries. Finally, we provide a multi-party computation (MPC) protocol that allows our MIFE construction to be deployed in the multi-client model.
This work was partially funded from the Technology Innovation Institute (TII), Abu Dhabi, United Arab Emirates, for the project ARROWSMITH: Living (Securely) on the edge.
This work was partially funded by the Harpocrates project, Horizon Europe.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
In mathematical logic, a predicate is a function that tests for some condition involving its arguments and returns 1 si the condition is true and 0 otherwise.
- 2.
The public parameters \(\mathsf {params}\) depend on the choice of the \(\mathsf {PKE}\) scheme.
- 3.
We omit the description of the function since in this case we are only focusing on the sum.
- 4.
- 5.
- 6.
- 7.
Note here that we abuse the notation of the \(\ell _1\) norm to denote the sum \(\sum _{1}^{n}x_i\) where \(\mathbf {x}= (x_1, \dots , x_n)\).
References
Abdalla, M.D., Fiore, D., Gay, R., Ursu, B.: Multi-input functional encryption for inner products: function-hiding realizations and constructions without pairings. In: Advances in Cryptology – CRYPTO 2018 (2018)
Abdalla, M., Bourse, F., De Caro, A., Pointcheval, D.: Simple functional encryption schemes for inner products. In: Katz, J. (ed.) PKC 2015. LNCS, vol. 9020, pp. 733–751. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-46447-2_33
Abdalla, M., Gay, R., Raykova, M., Wee, H.: Multi-input inner-product functional encryption from pairings. In: Coron, J.-S., Nielsen, J.B. (eds.) EUROCRYPT 2017. LNCS, vol. 10210, pp. 601–626. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-56620-7_21
Bakas, A., Michalas, A.: Multi-input functional encryption: efficient applications from symmetric primitives. In: 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), pp. 1105–1112 (2020). https://doi.org/10.1109/TrustCom50675.2020.00146
Bakas, A., Michalas, A., Dimitriou, T.: Private lives matter: a differential private functional encryption scheme. In: Proceedings of the Twelfth ACM Conference on Data and Application Security and Privacy. p. 300–311. CODASPY 2022, Association for Computing Machinery, New York, NY, USA (2022). https://doi.org/10.1145/3508398.3511514, https://doi.org/10.1145/3508398.3511514
Bakas, A., Michalas, A., Ullah, A.: (F)unctional sifting: a privacy-preserving reputation system through multi-input functional encryption. In: Asplund, M., Nadjm-Tehrani, S. (eds.) NordSec 2020. LNCS, vol. 12556, pp. 111–126. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-70852-8_7
Bellare, M., Boldyreva, A., Staddon, J.: Randomness re-use in multi-recipient encryption Schemeas. In: Desmedt, Y.G. (ed.) PKC 2003. LNCS, vol. 2567, pp. 85–99. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-36288-6_7
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
Brakerski, Z., Gentry, C., Vaikuntanathan, V.: (leveled) fully homomorphic encryption without bootstrapping. In: ITCS 2012 (2012)
Castagnos, G., Laguillaumie, F.: Linearly homomorphic encryption from \(\sf DDH\). In: Nyberg, K. (ed.) CT-RSA 2015. LNCS, vol. 9048, pp. 487–505. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-16715-2_26
Cheon, J.H., Kim, A., Kim, M., Song, Y.: Homomorphic encryption for arithmetic of approximate numbers. In: Takagi, T., Peyrin, T. (eds.) ASIACRYPT 2017. LNCS, vol. 10624, pp. 409–437. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70694-8_15
Elgamal, T.: A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Trans. Inf. Theory 31(4), 469–472 (1985)
Gentry, C.: Fully homomorphic encryption using ideal lattices. In: Proceedings of the Forty-First Annual ACM Symposium on Theory of Computing. STOC 2009, pp. 169–178. Association for Computing Machinery, New York, NY, USA (2009)
Goldwasser, S., et al.: Multi-input functional encryption. In: Nguyen, P.Q., Oswald, E. (eds.) EUROCRYPT 2014. LNCS, vol. 8441, pp. 578–602. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-55220-5_32
Goldwasser, S., Kalai, Y.T., Popa, R.A., Vaikuntanathan, V., Zeldovich, N.: How to run turing machines on encrypted data. In: Canetti, R., Garay, J.A. (eds.) CRYPTO 2013. LNCS, vol. 8043, pp. 536–553. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40084-1_30
Regev, O.: On lattices, learning with errors, random linear codes, and cryptography. J. ACM 56(6) (2009). https://doi.org/10.1145/1568318.1568324
Sahai, A., Seyalioglu, H.: Worry-free encryption: functional encryption with public keys. In: Proceedings of the 17th ACM Conference on Computer and Communications Security, pp. 463–472 (2010)
Sahai, A., Waters, B.: Fuzzy identity-based encryption. In: Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457–473. Springer, Heidelberg (2005). https://doi.org/10.1007/11426639_27
Sans, E.D., Gay, R., Pointcheval, D.: Reading in the dark: classifying encrypted digits with functional encryption. IACR Cryptol. ePrint Arch. 2018, 206 (2018)
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
A Proof of Theorem 4
Proof
The proof begins with \(\mathcal {B}\) sending (0, z) to the challenger \(\mathcal {C}\), where z is an element sampled at random from the message space of \(\mathsf {PKE}\). Upon receiving \((0, \mu )\), \(\mathcal {C}\) generates a public/private key pair \(\left( \mathsf {pk}_{\mathcal {C}}, \mathsf {sk}_{\mathcal {C}}\right) \), flips a truly random coin b and encrypts either 0 or \(\mu \) under \(\mathsf {pk}_{\mathcal {C}}\) according to the result of the random coin to produce \(c_b\). Finally, \(\mathcal {C}\) forwards the pair \(\left( \mathsf {pk}_{\mathcal {C}}, c_b\right) \) back to \(\mathcal {B}\). Upon reception, \(\mathcal {B}\) invokes \(\mathcal {A}\) and as a result, receives two messages \(\mathbf {x_0}\) and \(\mathbf {x_1}\) such that \(\Vert x_0\Vert _1 = \Vert x_1\Vert _1\)Footnote 7. To make sure that \(\mathcal {B}\) only issues functional decryption keys queries for vectors such that \(\Vert \mathbf {x_0}\Vert _1 = \Vert \mathbf {x_1}\Vert _1\), we impose the restriction that \(\mathcal {B}\) only issues queries to a vector space \(\mathcal {V} \subset \mathcal {M}\) of dimension n such that \(\forall \mathbf {x} \in \mathcal {V}, \Vert \mathbf {x}\Vert _1 = 0\) and is not able to decrypt in other vector spaces. As a next step, \(\mathcal {B}\) produces a basis of \(\mathcal {V}\) as \((\mathbf {x_1 - x_0}, r_1, \dots , r_{n-1})\).
Key Generation. The first thing \(\mathcal {B}\) needs to do, is to generate the master public key \(\mathsf {mpk}\). To do so, \(\mathcal {B}\) samples \(n-1\) linearly independent vectors \(\mathbf {r_1, \dots , r_{n-1}}\) such that \(\forall i\in [1, n-1]: r_i \in \mathcal {V}\) and each \(\mathbf {r_i}\) is also linearly independent to \(\mathbf {x_1 - x_0}\). The canonical vectors of the basis are then \(\mathbf {e} = \left[ \boldsymbol{\alpha }\cdot (\mathbf {x_1 - x_0})+\sum _1^{n-1} z_j\right] \), where \(\boldsymbol{\alpha } = (\alpha _1, \dots , \alpha _n)\) and \(\alpha _i = \frac{x_{1,i} - x_{0,i}}{\Vert x_{1,i-x_{0,i}}\Vert ^{2}_{2}}\). Subsequently, \(\mathcal {B}\) executes \((\mathsf {pk}_{z_j}, \mathsf {sk}_{s_j}) \leftarrow \mathsf {PKE.Gen}, \forall j \in [1, n-1]\) and sets:
Note that while \(\mathsf {sk}_{\mathcal {C}}\) is not known to \(\mathcal {B}\), due to the AKH property of \(\mathsf {PKE}\) \(\mathcal {B}\) is unknowingly setting \(\mathsf {sk}_i = \alpha _i\cdot \mathsf {sk}_{\mathcal {C}} + \sum _1^{n-1} \mathsf {sk_{z_j}}\)
Functional Decryption Keys. \(\mathcal {B}\) receives queries for functional decryption keys from \(\mathcal {A}\). To reply to such a query, all \(\mathcal {B}\) has to do, is set \(\mathsf {sk} = \sum _{1}^{n-1}\mathsf {sk}_{z_j}\).
Challenge Ciphertexts. At some point \(\mathcal {A}\) outputs two messages \(\mathbf {x_0}\) and \(\mathbf {x_1}\) such that \(\Vert \mathbf {x_0}\Vert \) to \(\mathcal {B}\). According to the game in the Definition 6, \(\mathcal {B}\) is supposed to flip a random coin \(\beta \in \{0, 1\}\), and reply to \(\mathcal {A}\) with \(c_\beta \). However, recall that \(\mathcal {B}\) not only needs to simulate a perfect view for \(\mathcal {A}\), but also extract as much information as possible in order to win its own indistinguishability game of the public-key encryption scheme \(\mathsf {PKE}\). To do so, \(\mathcal {B}\) flips the truly random coin \(\beta \) but instead of replying with \(c_\beta \), sets the challenge ciphertext to be:
where \(0_{el}\) in Eq. 12 denotes the zero element of the space in which the public keys live.
Finally, \(\mathcal {A}\) outputs a guess for \(\beta \). If \(\mathcal {A}\) correctly guess \(\mathcal {\beta }\), then \(\mathcal {B}\) guesses that \(\mathcal {C}\) encrypted 0. Otherwise, if \(\mathcal {A}\) fails to guess \(\beta \), then \(\mathcal {B}\) guesses that \(\mathcal {C}\) encrypted \(\mu \). For a clearer presentation, we distinguish between two cases based on \(\mathcal {C}\)’s choice.
-
C1: \(\mathcal {C}\) encrypted 0: Assuming that \(\mathcal {C}\) encrypted 0, then Eq. 12 becomes:
$$\begin{aligned} \begin{aligned} c&= \mathsf {PKE.Enc}(\alpha \cdot \mathsf {pk}_{\mathcal {C}}, 0) + \mathsf {PKE.Enc}\left( \sum _{i=1}^{n-1} \mathsf {pk}_{z_j}, 0 \right) + \mathsf {PKE.Enc}(0_{el}, \mathbf {x}_{\beta }) \\&= \mathsf {PKE.Enc}(\alpha \cdot \mathsf {pk}_{\mathcal {C}}+\sum _{i=1}^{n-1} \mathsf {pk}_{z_j}+0_{el}, 0+0+\mathbf {x}_{\beta }) = \mathsf {PKE.Enc}(\mathsf {pk}_i, \mathbf {x}_\beta ) \end{aligned} \end{aligned}$$It is evident, that in this case, \(\mathcal {B}\) simulates a perfect view of the environment for \(\mathcal {A}\), and hence, if \(\mathcal {A}\) can guess \(\beta \) with advantage \(\epsilon _{\mathcal {A}}\), then the advantage of \(\mathcal {B}\), \(\epsilon _{\mathcal {B}}\) in guessing that \(\mathcal {C}\) will be exaclty the same. Thus:
$$\begin{aligned} \epsilon _{\mathcal {A}} = \epsilon _{\mathcal {B}} \end{aligned}$$(13) -
C2: \(\mathcal {C}\) encrypted \(\mu \): Following the same procedure as in the previous case, if \(\mathcal {C}\) encrypted \(\mu \) instead of 0, then the challenge ciphertext from Eq. 12 becomes:
$$\begin{aligned} \begin{aligned} c&= \mathsf {PKE.Enc}(\alpha \cdot \mathsf {pk}_{\mathcal {C}}, \alpha \cdot \mu ) + \mathsf {PKE.Enc}\left( \sum _{i=1}^{n-1} \mathsf {pk}_{z_j}, 0 \right) + \mathsf {PKE.Enc}(0_{el}, \mathbf {x}_{\beta }) \\&= \mathsf {PKE.Enc}(\alpha \cdot \mathsf {pk}_{\mathcal {C}}+\sum _{i=1}^{n-1} \mathsf {pk}_{z_j}+0_{el}, \alpha \cdot \mu +0+\mathbf {x}_{\beta }) \\&= \mathsf {PKE.Enc}(\mathsf {pk}_i, \alpha \cdot \mu + \mathbf {x}_\beta ) = \mathsf {PKE.Enc}(\mathsf {pk}_i, \mathbf {x}') \end{aligned} \end{aligned}$$However, recall that \(\alpha \) is defined as: \(\alpha = \frac{\mathbf {x}_{1} - \mathbf {x}_{0}}{\Vert \mathbf {x}_{1}-\mathbf {x}_{0}\Vert ^{2}_{2}}\) Hence, \(\mathbf {x}'\) is:
$$\begin{aligned} \begin{aligned} \mathbf {x}'&= \mathbf {x}_{\beta } + \alpha \cdot \mu = \frac{\mu }{\Vert \mathbf {x}_1 - \mathbf {x}_0\Vert _2^2}(\mathbf {x}_1-\mathbf {x}_0) + \mathbf {x}_\beta \\&= \frac{\mu }{\Vert \mathbf {x}_1 - \mathbf {x}_0\Vert _2^2}(\mathbf {x}_1-\mathbf {x}_0) + \mathbf {x}_0 + \beta (\mathbf {x}_1 - \mathbf {x}_0) \end{aligned} \end{aligned}$$If we now set \(v = \frac{\mu }{\Vert \mathbf {x}_1 - \mathbf {x}_0\Vert _2^2} + \beta \), we see that the challenge message \(\mathbf {x}'\) becomes:
$$\begin{aligned} \mathbf {x}' = v\cdot \mathbf {x}_1 + (1-v)\mathbf {x}_0 \end{aligned}$$(14)which is exactly the message that corresponds the the challenge ciphertext. Note that \(\mathbf {x}' \in V\) since it is a linear combination of elements that live in V and whose coefficients sum up to one. Hence, \(\mathbf {x}'\) is well defined. Finally, \(\beta \) is information theoretically hidden as the distributions of u is independent of \(\beta \). Hence, in this case we have that:
$$\begin{aligned} \epsilon _{\mathcal {B}} = 0 \end{aligned}$$(15)
Combining Eqs. 13 and 15 we end up with \(\epsilon _{\mathcal {B}} = \epsilon _{\mathcal {A}}\). Hence, the best advantage one can get against the CPA security of our construction presented in Definition 13, is bounded by the best advantage one can get against the IND-CPA security of the public key encryption scheme \(\mathsf {PKE}\). In other words, we proved that if \(\mathcal {A}\) breaks our MIFE construction, then there exists a PPT algorithm \(\mathcal {B}\) that that wins the IND-CPA game of \(\mathsf {PKE}\) and hence, \(\mathsf {PKE}\) cannot be IND-CPA secure, which contradicts with our initial assumption that \(\mathsf {PKE}\) is IND-CPA secure. \(\square \)
Functional Keys for Vectors in Different Vector Spaces: As mentioned, \(\mathcal {A}\) is only allowed to request functional keys for vectors living in a vector space \(V \subset M\), where \(\forall \mathbf {x} \in V: \Vert \mathbf {x}\Vert _1 = 0\). Notice that by allowing \(\mathcal {A}\) to obtain functional decryption keys for vectors \(x \notin V\), our scheme can be trivially broken. However, this would imply that \(\mathcal {B}\) can generate such functional decryption keys, which is impossible since \(\mathcal {B}\) does not know \(\mathsf {sk}_{\mathcal {C}}\). Hence, the generated functional keys can only decrypt ciphertexts whose plaintexts are elements of V. This is a valid assumption since otherwise, we would demand security in a scenario where the master secret key is known to the adversary.
B Proof of Theorem 6
Proof
Recall that each user receives \(n-1\) shares from the remaining users. Assuming that \(\mathcal {ADV}\) has colluded with \(n-2\) users, we conclude that \(\mathcal {ADV}\) will know the \(n\cdot (n-2)\) shares of the compromised users. Moreover, \(\mathcal {ADV}\) will also know the \(n-4\) shares sent from the legitimate users \(u_l\) and \(u_\ell \) to the compromised ones. In other words, \(\mathcal {ADV}\) knows all the exchanged shares except from the ones that \(u_l\) and \(u_\ell \) keep for themselves as well as the ones exchanged between \(u_l\) and \(u_\ell \). More specifically, the shares \(r_{l,l}\) and \(r_{\ell , \ell }\) are kept with \(u_l\) and \(u_\ell \) respectively, while the shares \(r_{\ell , l}\) and \(r_{l, \ell }\) are exchanged between \(u_l\) and \(u_\ell \). We notice that:
and
Where the underlined terms are the ones that \(\mathcal {ADV}\) does not know. Equations 16 and 17 can also be written as:
We see that for \(\mathcal {ADV}\) to find the the secret keys \(\mathsf {sk}_l\) and \(\mathsf {sk}_{\ell }\), she needs to solve a system of two equations with four unknown terms. Hence, we conclude that even in the extreme scenario where \(n-2\) users are corrupted, \(\mathcal {ADV}\) cannot infer any information about the keys of the legitimate users. \(\square \)
Rights and permissions
Copyright information
© 2022 IFIP International Federation for Information Processing
About this paper
Cite this paper
Bakas, A., Michalas, A., Frimpong, E., Rabaninejad, R. (2022). Feel the Quantum Functioning: Instantiating Generic Multi-Input Functional Encryption from Learning with Errors. In: Sural, S., Lu, H. (eds) Data and Applications Security and Privacy XXXVI. DBSec 2022. Lecture Notes in Computer Science, vol 13383. Springer, Cham. https://doi.org/10.1007/978-3-031-10684-2_16
Download citation
DOI: https://doi.org/10.1007/978-3-031-10684-2_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-10683-5
Online ISBN: 978-3-031-10684-2
eBook Packages: Computer ScienceComputer Science (R0)