Abstract
NM-CPA secure asymmetric encryption schemes which prove plaintext knowledge are sufficient for secrecy and verifiability in some domains, for example, ballot secrecy and end-to-end verifiability in electronic voting. In these domains, some applications derive encryption schemes by coupling malleable IND-CPA secure ciphertexts with proofs of plaintext knowledge, without evidence that the sufficient condition is satisfied nor an independent security proof. Consequently, it is unknown whether these applications satisfy the desired secrecy and verifiability properties. In this paper, we propose a generic construction for such a coupling and prove that our construction produces NM-CPA secure encryption schemes which prove plaintext knowledge. Accordingly, we facilitate the development of applications satisfying their secrecy and verifiability objectives and, moreover, we make progress towards security proofs for existing applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Let \(\mathsf {A}(x_1,\dots ,x_n; r)\) denote the output of probabilistic algorithm \(\mathsf {A}\) on input \(x_1,\dots ,x_n\) and random coins r. We write \(A(x_1,\dots ,x_n)\) for \(A(x_1,\dots ,x_n;r)\), where r is chosen uniformly at random. Assignment of \(\alpha \) to x is written \(x\leftarrow \alpha \).
- 2.
The assignment of a random element from set S to x is written \(x\leftarrow _R S\).
- 3.
Vectors are denoted using boldface, for example, \(\mathbf{x}\). We write \(|\mathbf{x}|\) to denote the length of a vector \(\mathbf{x}\) and \(\mathbf{x}[i]\) for the ith component of the vector, where \(\mathbf{x} = (\mathbf{x}[1],\dots ,\mathbf{x}[|\mathbf{x}|])\). We extend set membership notation to vectors: we write \(x\in \mathbf{x}\) (respectively, \(x\not \in \mathbf{x}\)) if x is an element (respectively, x is not an element) of the set \(\{ \mathbf{x}[i] : 1 \le i \le |\mathbf{x}| \}\). We also extend notation for assignment: we write \(\mathbf{x} \leftarrow A(\mathbf{y})\) for \(\mathbf{x}[1] \leftarrow A(\mathbf{y}[1]); \dots ; \mathbf{x}[|\mathbf{y}|] \leftarrow A(\mathbf{y}[|\mathbf{y}|])\). We write \(R(x,\mathbf{x})\) for \(R(x,\mathbf{x}[1],\dots ,\mathbf{x}[t-1])\), where R is a relation of arity t, \(|\mathbf{x}| = t -1\), and t is polynomial in the security parameter.
- 4.
We write “for any x output by \(A(x_1,\dots ,x_n)\)” for the universal quantification over x such that x is a result of running probabilistic algorithm A on input \(x_1,\dots ,x_n\), i.e., \(x = A(x_1,\dots ,x_n; r)\) for some coins r.
We denote multisets as \(\{|\, x_1,\dots ,x_n \,|\}\) and write \(\emptyset _M\) for the empty multiset. The multiset union operator is denoted \(\cup _M\) and the multiset intersection operator is denoted \(\cap _M\). We write |S| for the cardinality of multiset S.
- 5.
References
Adida, B., Marneffe, O., Pereira, O., Quisquater, J.: Electing a University President using open-audit voting: analysis of real-world use of Helios. In: EVT/WOTE 2009: Electronic Voting Technology Workshop/Workshop on Trustworthy Elections. USENIX Association (2009)
Bellare, M., Desai, A., Pointcheval, D., Rogaway, P.: Relations among notions of security for public-key encryption schemes. In: Krawczyk, H. (ed.) CRYPTO 1998. LNCS, vol. 1462, p. 26. Springer, Heidelberg (1998)
Bellare, M., Rogaway, P.: Random oracles are practical: a paradigm for designing efficient protocols. In: CCS 1993: 1st ACM Conference on Computer and Communications Security, pp. 62–73. ACM Press (1993)
Bellare, M., Sahai, A.: Non-malleable encryption: equivalence between two notions, and an indistinguishability-based characterization. Cryptology ePrint Archive, Report 2006/228 (2006)
Benaloh, J., Yung, M.: Distributing the power of a government to enhance the privacy of voters. In: PODC 1986: 5th Principles of Distributed Computing Symposium, pp. 52–62. ACM Press (1986)
Bernhard, D.: Private email communication, 15th March 2012
Bernhard, D., Cortier, V., Pereira, O., Smyth, B., Warinschi, B.: Adapting Helios for provable ballot privacy. In: Atluri, V., Diaz, C. (eds.) ESORICS 2011. LNCS, vol. 6879, pp. 335–354. Springer, Heidelberg (2011)
Bernhard, D., Pereira, O., Warinschi, B.: How not to prove yourself: pitfalls of the Fiat-Shamir Heuristic and applications to Helios. In: Wang, X., Sako, K. (eds.) ASIACRYPT 2012. LNCS, vol. 7658, pp. 626–643. Springer, Heidelberg (2012)
Bernhard, D., Pereira, O., Warinschi, B.: On Necessary and sufficient conditions for private ballot submission. Cryptology ePrint Archive, Report 2012/236 (2012)
Bernhard, D., Smyth, B.: Ballot secrecy with malicious bulletin boards. Cryptology ePrint Archive, Report 2014/822 (2014)
Canetti, R., Halevi, S., Katz, J.: Chosen-ciphertext security from identity-based encryption. In: Cachin, C., Camenisch, J.L. (eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 207–222. Springer, Heidelberg (2004)
Chaum, D., Pedersen, T.P.: Wallet databases with observers. In: Brickell, E.F. (ed.) CRYPTO 1992. LNCS, vol. 740, pp. 89–105. Springer, Heidelberg (1993)
Clark, J.: Private email communication, 4th April 2012
Cohen, J.D., Fischer, M.J.: A robust and verifiable cryptographically secure election scheme. In: FOCS 1985: 26th Symposium on Foundations of Computer Science, pp. 372–382. IEEE Computer Society (1985)
Cortier, V., Smyth, B.: Attacking and fixing Helios: an analysis of ballot secrecy. In: CSF’11: 24th Computer Security Foundations Symposium, pp. 297–311. IEEE Computer Society (2011)
Cortier, V., Smyth, B.: Attacking and fixing Helios: an analysis of ballot secrecy. Cryptology ePrint Archive, Report 2010/625 (version 20111110:012334) (2011)
Cortier, V., Smyth, B.: Attacking and fixing Helios: an analysis of ballot secrecy. J. Comput. Secur. 21(1), 89–148 (2013)
Cramer, R., Damgård, I.B., Schoenmakers, B.: Proof of partial knowledge and simplified design of witness hiding protocols. In: Desmedt, Y.G. (ed.) CRYPTO 1994. LNCS, vol. 839, pp. 174–187. Springer, Heidelberg (1994)
Cramer, R., Franklin, M.K., Schoenmakers, B., Yung, M.: Multi-authority secret-ballot elections with linear work. In: Maurer, U.M. (ed.) EUROCRYPT 1996. LNCS, vol. 1070, pp. 72–83. Springer, Heidelberg (1996)
Damgård, I., Jurik, M.: A generalisation, a simplification and some applications of Paillier’s probabilistic public-key system. In: Kim, K. (ed.) PKC 2001. LNCS, vol. 1992. Springer, Heidelberg (2001)
Damgård, I., Jurik, M., Nielsen, J.B.: A generalization of Paillier’s public-key system with applications to electronic voting. Int. J. Inf. Secur. 9(6), 371–385 (2010)
Fiat, A., Shamir, A.: How to prove yourself: practical solutions to identification and signature problems. In: Odlyzko, A.M. (ed.) CRYPTO 1986. LNCS, vol. 263, pp. 186–194. Springer, Heidelberg (1987)
Fujisaki, E., Okamoto, T.: How to enhance the security of public-key encryption at minimum cost. In: Imai, H., Zheng, Y. (eds.) PKC 1999. LNCS, vol. 1560, p. 53. Springer, Heidelberg (1999)
Groth, J.: Extracting witnesses from proofs of knowledge in the random oracle model. Technical report RS-01-52, Basic Research in Computer Science (BRICS) (2001)
Groth, J.: Evaluating security of voting schemes in the universal composability framework. In: Jakobsson, M., Yung, M., Zhou, J. (eds.) ACNS 2004. LNCS, vol. 3089, pp. 46–60. Springer, Heidelberg (2004)
Hirt, M.: Receipt-free K-out-of-L voting based on ElGamal encryption. In: Chaum, D., Jakobsson, M., Rivest, R.L., Ryan, P.Y.A., Benaloh, J., Kutylowski, M., Adida, B. (eds.) Towards Trustworthy Elections. LNCS, vol. 6000, pp. 64–82. Springer, Heidelberg (2010)
Hirt, M., Sako, K.: Efficient receipt-free voting based on homomorphic encryption. In: Preneel, B. (ed.) EUROCRYPT 2000. LNCS, vol. 1807, pp. 539–556. Springer, Heidelberg (2000)
Kremer, S., Ryan, M., Smyth, B.: Election verifiability in electronic voting protocols. In: Gritzalis, D., Preneel, B., Theoharidou, M. (eds.) ESORICS 2010. LNCS, vol. 6345, pp. 389–404. Springer, Heidelberg (2010)
Sako, K., Kilian, J.: Secure voting using partially compatible homomorphisms. In: Desmedt, Y.G. (ed.) CRYPTO 1994. LNCS, vol. 839, pp. 411–424. Springer, Heidelberg (1994)
Schneier, B.: Hacking the Papal Election (2013)
Smyth, B.: Formal verification of cryptographic protocols with automated reasoning. Ph.D. thesis, School of Computer Science, University of Birmingham (2011)
Smyth, B.: Replay attacks that violate ballot secrecy in Helios. Cryptology ePrint Archive, Report 2012/185 (2012)
Smyth, B., Bernhard, D.: Ballot secrecy and ballot independence coincide. In: Crampton, J., Jajodia, S., Mayes, K. (eds.) ESORICS 2013. LNCS, vol. 8134, pp. 463–480. Springer, Heidelberg (2013)
Smyth, B., Bernhard, D.: Ballot secrecy and ballot independence: definitions and relations. Cryptology ePrint Archive, Report 2013/235 (version: 20141010:082554) (2014)
Smyth, B., Frink, S., Clarkson, M.R.: Computational election verifiability: definitions and an analysis of Helios and JCJ. Cryptology ePrint Archive, Report 2015/233 (2015)
Smyth, B., Ryan, M., Kremer, S., Kourjieh, M.: Towards automatic analysis of election verifiability properties. In: Armando, A., Lowe, G. (eds.) ARSPA-WITS 2010. LNCS, vol. 6186, pp. 146–163. Springer, Heidelberg (2010)
Wikström, D.: Simplified submission of inputs to protocols. In: Ostrovsky, R., De Prisco, R., Visconti, I. (eds.) SCN 2008. LNCS, vol. 5229, pp. 293–308. Springer, Heidelberg (2008)
Acknowledgements
We are grateful to Ben Adida, David Bernhard, Véronique Cortier, Olivier Pereira, Elizabeth Quaglia and Bogdan Warinschi for extensive discussion leading to this result. We are also grateful to the anonymous reviewers for their helpful suggestions. Smyth’s work was largely conducted as part of the Toshiba Fellowship Programme atToshiba Corporation, Kawasaki, Japan.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Proof of Theorem 1
A Proof of Theorem 1
Suppose \(\varGamma (\varPi , \varSigma ,k)\) does not satisfy IND-1-CPA, hence \(\mathsf{IND }{\text {-}}1{\text {-}}\mathsf{CPA }_{\mathcal A, \varGamma (\varPi , \varSigma ,k)}(\kappa ) \ge \mathsf {negl}(\kappa )\) for some adversary \(\mathcal {A} = (A_1, A_2)\), negligible function f, and security parameter \(\kappa \). We construct an adversary \(\mathcal {B} = (B_1, B_2)\) against IND-CPA using \(\mathcal A\). Let \(\mathsf {S}_i\) be an event such that \(b^* = b\) in the game i.
1.1 A.1 Game 0: IND-1-CPA
Game 0 is derived from IND-1-CPA by replacing the challenger with oracles:
-
1.
\(A_1\) takes \((pk, \mathfrak {m}')\) from the key generation oracle KG.
-
2.
\(A_1\) chooses \(M_0, M_1 \in \mathfrak {m}'\) such that \(|M_0| = |M_1|\) and sends \(M_0\) and \(M_1\) to the challenge oracle E. \(A_1\) outputs \((M_0, M_1, s)\), where s is some state.
-
3.
\(A_2\) takes \((M_0, M_1, s, C^*)\) from E, where \(C^*\) is a challenge ciphertext.
-
4.
\(A_2\) sends ciphertexts \((C'_1, \dots C'_m)\) to the decryption oracle D and D responds with the corresponding plaintexts \((M'_1, \dots , M'_m)\) or the error symbol \(\perp \).
-
5.
Finally, \(A_2\) outputs \(b' \in [0,1]\).
The challenge and decryption oracles are defined in Tables 1 and 2, and the key generation and random oracle are defined as follows.
-
Key generation oracle KG. The oracle takes a security parameter \(\kappa \) as input, computes \(( pk , sk , \mathfrak {m}') \leftarrow \mathsf {Gen}'(\kappa )\), and outputs \((pk, \mathfrak {m}')\).
-
Random oracle Chal. The oracle takes \((i, pk , c, \mathsf {comm})\) as input and if \(((i, pk , c,\mathsf {comm}), \mathsf {chal}) \in L_{Chal}\), then Chal outputs \(\mathsf {chal}\), otherwise, Chal chooses \(\mathsf {chal} \in \mathcal {CH}\) uniformly at random, where \(\mathcal {CH}\) is the range of \(\mathsf {Chal}\), outputs \(\mathsf {chal}\) and adds \(((i, pk , c, \mathsf {comm}), \mathsf {chal})\) to \(L_{Chal}\).
By definition of IND-1-CPA, we have: \( | \Pr [\mathsf {S}_0] - \frac{1}{2} | = \mathsf{IND }\text {-}1\text {-}\mathsf{CPA } _{\mathcal {A}, \varGamma } (\kappa ). \)
1.2 A.2 Game 1: Simulate Decryption Oracle
Game 1 uses simulation sound extractability to simulate the decryption oracle without knowledge of \( sk \). Formally, the simulation of the decryption oracle is presented in Table 2, where \(i^* \in [1,k]\) is chosen by \(\mathcal {B}\) uniformly at random. In the case \(c'_{i,j} = c_{b,i} \wedge i\not =i^*\), the simulator knows the plaintext \(m_{b,i}\) corresponding to \(c_{b,i}\). In the case \(c'_{i,j} \not = c_{b,i} \wedge i\not =i^*\), due to [8, Theorem 1], a plaintext \(m'_{i,j}\) and a coin \(r'_{i,j}\) can be extracted from the ciphertext \(c'_{i,j}\) with non-negligible probability using an extractor \(\mathcal {K}\). In the remaining case, \(m'_{k+1,j} = m'_{1,j} \oplus \dots \oplus m'_{i^*-1,j} \oplus m'_{i^*,j} \oplus m'_{i^* + 1,j} \oplus \dots \oplus m'_{k,j}\) and \(m'_{i^* ,j}\) can be computed as \(m'_{k+1,j} \oplus ^{-1} (m'_{1,j} \oplus \dots \oplus m'_{i^* -1,j} \oplus m'_{i^* + 1,j} \oplus \dots \oplus m'_{k,j})\).
Let \(\mathsf {F}_1\) be the event that occurs if \(\mathcal {K}\) cannot extract \(m'_{i,j}\) and \(r'_{i,j}\), i.e., \(c'_{i,j} \not = \mathsf {Enc}_{pk}(m'_{i,j}; r'_{i,j})\) or \(\mathcal {K}\) halts with no output. Game 0 and Game 1 are the same when \(\mathsf {F}_1\) does not occur. Since \(\mathsf {F}_1\) never occurs in Game 0, we have \(\Pr [\mathsf {S}_0] = \Pr [\mathsf {S}_1 | \lnot \mathsf {F}_1]\). Moreover, we have an extractor such that \(\Pr [\lnot \mathsf {F}_1] = \delta _1\), where \(\delta _1\) is a non-negligible (i.e., \(\delta _1\) is a success probability of \(\mathcal {K}\)). \(\mathcal {B}\) can detect whether \(F_1\) occurs, by checking \(c'_{i,j} = \mathsf {Enc}_{pk}(m'_{i,j}, r'_{i,j})\). Let \(\mathcal {B}\) decide \(b' \in \{ 0,1 \}\) uniformly at random if \(\mathsf {F}_1\) occurs, hence, \(\Pr [\mathsf {S}_1 | \mathsf {F}_1] = 1/2\). We have:
1.3 A.3 Game 2: Simulate the Challenge Oracle
Game 2 uses the special honest verifier zero knowledge (special HVZK) property to simulate the challenge oracle. Table 1 formalises the simulator. By Definition 6, \(\mathcal {B}\) can compute \((\mathsf {comm}, \mathsf {resp})\) from a correct ciphertext c and challenge \(\mathsf {chal}\) such that \(\mathsf {Verify}((pk,c), (\mathsf {comm}, \mathsf {chall}, \mathsf {resp}))= {\top }\). But, if the random oracle has already been queried with \((i^*, pk , c_{b,i^*},\mathsf {comm}_{b,i^*})\) or \((k+1, pk , c_b, \mathsf {comm}_{b})\), then \(\mathcal {B}\) fails to compute the challenge ciphertext. Let \(\mathsf {F}_2\) be the event that \(\mathcal {B}\) fails. Game 1 and Game 2 are the same, when \(\mathsf {F}_2\) does not occur. Since \(\mathsf {F}_2\) never occurs in Game 1, we have \(\Pr [\mathsf {S}_1] = \Pr [\mathsf {S}_2 | \lnot \mathsf {F}_2]\). Let \(\Pr [\lnot \mathsf {F}_2] = \delta _2\). Since coins \(\{ r_j \}_{j \in [1,k]}\) are chosen from a large space, \(\delta _2\) is non-negligible. Let \(\mathcal {B}\) decide \(b' \in \{ 0,1 \}\) uniformly at random if \(\mathsf {F}_2\) occurs, hence, \(\Pr [\mathsf {S}_2 | \mathsf {F}_2] = 1/2\). We have
1.4 A.4 Game 3: Embed a Challenge Ciphertext
Game 3 embeds \(\mathcal {B}\)’s challenge ciphertext as the \(i^*\)th ciphertext in the vector of challenge ciphertexts sent to \(\mathcal {A}\). Formally, the embedding is handled by the decryption oracle (Table 2), where \(i^* \in [1,k]\) is chosen by \(\mathcal {B}\).
Let \(H_0\) be Game 2 modified such that b is always 1 and let \(H_n\) be Game 2 when b is always 0. For \(0 < i < k\), let \(H_i\) be \(H_{i-1}\) modified such that the first \(3\cdot i\) elements of the challenge ciphertext are generated from \(M_0\) and the remaining elements of the challenge ciphertext are generated from \(M_1\). If \(b^* = 1\), then the challenge ciphertext that \(\mathcal {B}\) inputs to \(\mathcal {A}\) is the same as the hybrid game \(H_{i^*-1}\), since \(c^* = c_{1,i^*} = \mathsf {Enc}_{ pk }(m_{1,i^*}; r_{i^*})\). Otherwise (\(b^*=0\)), \(\mathcal {B}\)’s input to \(\mathcal {A}\) is the same as the game \(H_{i^*}\), since \(c^* = c_{0,i^*} = \mathsf {Enc}_{ pk }(m_{0,i^*}; r_{i^*})\). Let \(\mathsf {E}_i\) be an event that occurs if \(\mathcal {A}\) outputs 1 in \(H_i\), then \(|\Pr [\mathsf {E}_{i-1}] - \Pr [\mathsf {E}_i]| \le \mathsf{IND }\text {-}\mathsf{CPA } _{\mathcal {B}, \varPi } (\kappa )\) holds. By a hybrid argument, we have
Moreover, since
We have, by (1), that
We have \(2 \cdot \delta _1 \cdot \delta _2 \cdot \mathsf{IND }\)-1-\(\mathsf{CPA } _{\mathcal {A}, \varGamma } (\kappa ) \) is non-negligible. By (2) and (3), we have \(|\Pr [\mathsf {E}_{i-1}] - \Pr [\mathsf {E}_i]|\) is non-negligible too, i.e., \(\mathsf{IND }\)-1-\(\mathsf{CPA } _{\mathcal {B}, \varPi } (\kappa ) \) is non-negligible. It follows by Proposition 1 that \(\varGamma \) satisfies NM-CPA. \(\Box \)
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Smyth, B., Hanatani, Y., Muratani, H. (2015). NM-CPA Secure Encryption with Proofs of Plaintext Knowledge. In: Tanaka, K., Suga, Y. (eds) Advances in Information and Computer Security. IWSEC 2015. Lecture Notes in Computer Science(), vol 9241. Springer, Cham. https://doi.org/10.1007/978-3-319-22425-1_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-22425-1_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-22424-4
Online ISBN: 978-3-319-22425-1
eBook Packages: Computer ScienceComputer Science (R0)