Skip to main content

Feel the Quantum Functioning: Instantiating Generic Multi-Input Functional Encryption from Learning with Errors

  • Conference paper
  • First Online:
Data and Applications Security and Privacy XXXVI (DBSec 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13383))

Included in the following conference series:

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.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 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. 2.

    The public parameters \(\mathsf {params}\) depend on the choice of the \(\mathsf {PKE}\) scheme.

  3. 3.

    We omit the description of the function since in this case we are only focusing on the sum.

  4. 4.

    https://github.com/lubux/ecelgamal.

  5. 5.

    https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distribution-covid-19-cases-worldwide.

  6. 6.

    https://github.com/iammrgenie/FeelQuantum.

  7. 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

  1. 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)

    Google Scholar 

  2. 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

    Chapter  Google Scholar 

  3. 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

    Chapter  Google Scholar 

  4. 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

  5. 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

  6. 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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  8. 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 

  9. Brakerski, Z., Gentry, C., Vaikuntanathan, V.: (leveled) fully homomorphic encryption without bootstrapping. In: ITCS 2012 (2012)

    Google Scholar 

  10. 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

    Chapter  Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. Elgamal, T.: A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Trans. Inf. Theory 31(4), 469–472 (1985)

    Article  MathSciNet  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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

    Chapter  Google Scholar 

  15. 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

    Chapter  Google Scholar 

  16. Regev, O.: On lattices, learning with errors, random linear codes, and cryptography. J. ACM 56(6) (2009). https://doi.org/10.1145/1568318.1568324

  17. 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)

    Google Scholar 

  18. 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

    Chapter  Google Scholar 

  19. Sans, E.D., Gay, R., Pointcheval, D.: Reading in the dark: classifying encrypted digits with functional encryption. IACR Cryptol. ePrint Arch. 2018, 206 (2018)

    Google Scholar 

  20. 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 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexandros Bakas .

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:

$$\begin{aligned} \mathsf {pk_i} = \alpha _i\cdot \mathsf {pk}_{C} + \sum _{j}^{n-1} \mathsf {pk}_{z_j} \quad \text {and}\quad \mathsf {mpk = (pk_1, \dots , pk_n)}. \end{aligned}$$
(11)

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:

$$\begin{aligned} c = \alpha \cdot c_b + \mathsf {PKE.Enc}\left( \sum _{i=1}^{n-1} \mathsf {pk}_{z_j}, 0 \right) + \mathsf {PKE.Enc}(0_{el}, \mathbf {x}_{\beta }) \end{aligned}$$
(12)

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:

$$\begin{aligned} s_{l} = \underline{\mathsf {sk}_l} + \underline{r_l} - (r_{1,l}+\dots + \underline{r_{l,l}}+ \dots + \underline{r_{\ell , l}} + \dots + r_{n, l}) \end{aligned}$$
(16)

and

$$\begin{aligned} s_{\ell } = \underline{\mathsf {sk}_\ell } + \underline{r_\ell } - (r_{1,\ell }+\dots + \underline{r_{l,\ell }}+ \dots + \underline{r_{\ell , \ell }} + \dots + r_{n, \ell }) \end{aligned}$$
(17)

Where the underlined terms are the ones that \(\mathcal {ADV}\) does not know. Equations 16 and 17 can also be written as:

$$\begin{aligned} s_{l} = \underline{\mathsf {sk}_l} + \sum _{j\ne l, \ell }^n (r_{l,j} - r_{j, l}) + \underline{r_{l,\ell } - r_{l, \ell }} \quad \text {and}\quad s_{\ell } = \underline{\mathsf {sk}_\ell } + \sum _{j\ne \ell , l}^n (r_{\ell ,j} - r_{j, \ell }) + \underline{r_{\ell ,l} - r_{\ell , l}} \end{aligned}$$

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

Reprints and permissions

Copyright information

© 2022 IFIP International Federation for Information Processing

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics