Abstract
The CL cryptosystem, introduced by Castagnos and Laguillaumie in 2015, is a linearly homomorphic encryption scheme that has seen numerous developments and applications in recent years, particularly in the field of secure multiparty computation. Designing efficient zero-knowledge proofs for the CL framework is critical, especially for achieving adaptive security for such multiparty protocols. This is a challenging task due to the particularities of class groups of quadratic fields used to instantiate the groups of unknown order required in the CL framework. In this work, we provide efficient proofs and arguments for statements involving a large number of ciphertexts. We propose a new batched proof for correctness of CL ciphertexts and new succinct arguments for correctness of a shuffle of these ciphertexts. Previous efficient proofs of shuffle for linearly homomorphic encryption were designed for Elgamal “in the exponent" which has only a limited homomorphic property. In the line of a recent work by Braun, Damgård and Orlandi (CRYPTO 2023), all the new proofs and arguments provide partial extractability, a property that we formally introduce here. Thanks to this notion, we show that bulletproof techniques, which are in general implemented with groups of known prime order, can be applied in the CL framework despite the use of unknown order groups, giving non-interactive arguments of logarithmic sizes. To prove the practicability of our approach, we have implemented these protocols with the BICYCL library, showing that computation and communication costs are competitive. We also illustrate that the partial extractability of our proofs provide enough guarantees for complex applications by presenting a bipartite private set intersection sum protocol which achieves security against malicious adversaries using CL encryption, removing limitations of a solution proposed by Miao et al. (CRYPTO 2020).










Similar content being viewed by others
References
D. F. Aranha, C. P. L. Gouvêa, T. Markmann, R. S. Wahby, and K. Liao. RELIC is an Efficient LIbrary for Cryptography. https://github.com/relic-toolkit/relic.
Nikolaos Alexopoulos, Aggelos Kiayias, Riivo Talviste, and Thomas Zacharias. MCMix: Anonymous messaging via secure multiparty computation. In Engin Kirda and Thomas Ristenpart, editors, USENIX Security 2017: 26th USENIX Security Symposium, pages 1217–1234. USENIX Association, August 2017.
Benedikt Bünz, Jonathan Bootle, Dan Boneh, Andrew Poelstra, Pieter Wuille, and Greg Maxwell. Bulletproofs: Short proofs for confidential transactions and more. In 2018 IEEE Symposium on Security and Privacy, pages 315–334. IEEE Computer Society Press, May 2018.
Claudia Bartoli and Ignacio Cascudo. On sigma-protocols and (packed) black-box secret sharing schemes. In Qiang Tang and Vanessa Teague, editors, PKC 2024: 27th International Conference on Theory and Practice of Public Key Cryptography, Part II, volume 14602 of Lecture Notes in Computer Science, pages 426–457. Springer, Cham, April 2024.
Jonathan Bootle, Andrea Cerulli, Pyrros Chaidos, Jens Groth, and Christophe Petit. Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting. In Marc Fischlin and Jean-Sébastien Coron, editors, Advances in Cryptology – EUROCRYPT 2016, Part II, volume 9666 of Lecture Notes in Computer Science, pages 327–357. Springer, Berlin, Heidelberg, May 2016.
Lennart Braun, Guilhem Castagnos, Ivan Damgård, Fabien Laguillaumie, Kelsey Melissaris, Claudio Orlandi, and Ida Tucker. An improved threshold homomorphic cryptosystem based on class groups. In Clemente Galdi and Duong Hieu Phan, editors, SCN 24: 14th International Conference on Security in Communication Networks, Part II, volume 14974 of Lecture Notes in Computer Science, pages 24–46. Springer, Cham, September 2024.
Cyril Bouvier, Guilhem Castagnos, Laurent Imbert, and Fabien Laguillaumie. I want to ride my BICYCL : BICYCL implements CryptographY in CLass groups. Journal of Cryptology, 36(3):17, July 2023.
Mira Belenkiy, Melissa Chase, Markulf Kohlweiss, and Anna Lysyanskaya. P-signatures and noninteractive anonymous credentials. In Ran Canetti, editor, TCC 2008: 5th Theory of Cryptography Conference, volume 4948 of Lecture Notes in Computer Science, pages 356–374. Springer, Berlin, Heidelberg, March 2008.
Lennart Braun, Ivan Damgård, and Claudio Orlandi. Secure multiparty computation from threshold encryption based on class groups. In Helena Handschuh and Anna Lysyanskaya, editors, Advances in Cryptology – CRYPTO 2023, Part I, volume 14081 of Lecture Notes in Computer Science, pages 613–645. Springer, Cham, August 2023.
Stephanie Bayer and Jens Groth. Efficient zero-knowledge argument for correctness of a shuffle. In David Pointcheval and Thomas Johansson, editors, Advances in Cryptology – EUROCRYPT 2012, volume 7237 of Lecture Notes in Computer Science, pages 263–280. Springer, Berlin, Heidelberg, April 2012.
Mihir Bellare, Juan A. Garay, and Tal Rabin. Fast batch verification for modular exponentiation and digital signatures. In Kaisa Nyberg, editor, Advances in Cryptology – EUROCRYPT’98, volume 1403 of Lecture Notes in Computer Science, pages 236–250. Springer, Berlin, Heidelberg, May / June 1998.
Lennart Braun, Adrià Gascón, Mariana Raykova, Phillipp Schoppmann, and Karn Seth. Malicious security for sparse private histograms. Cryptology ePrint Archive, Report 2024/469, 2024.
Guilhem Castagnos, Dario Catalano, Fabien Laguillaumie, Federico Savasta, and Ida Tucker. Two-party ECDSA from hash proof systems and efficient instantiations. In Alexandra Boldyreva and Daniele Micciancio, editors, Advances in Cryptology – CRYPTO 2019, Part III, volume 11694 of Lecture Notes in Computer Science, pages 191–221. Springer, Cham, August 2019.
Guilhem Castagnos, Dario Catalano, Fabien Laguillaumie, Federico Savasta, and Ida Tucker. Bandwidth-efficient threshold EC-DSA. In Aggelos Kiayias, Markulf Kohlweiss, Petros Wallden, and Vassilis Zikas, editors, PKC 2020: 23rd International Conference on Theory and Practice of Public Key Cryptography, Part II, volume 12111 of Lecture Notes in Computer Science, pages 266–296. Springer, Cham, May 2020.
Chris Culnane, Aleksander Essex, Sarah Jamie Lewis, Olivier Pereira, and Vanessa Teague. Knights and knaves run elections: Internet voting and undetectable electoral fraud. IEEE Security & Privacy, 17(4):62–70, 2019.
David L Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms. Communications of the ACM, 24(2):84–90, 1981.
Guilhem Castagnos and Fabien Laguillaumie. Linearly homomorphic encryption from \({\sf DDH}\). In Kaisa Nyberg, editor, Topics in Cryptology – CT-RSA 2015, volume 9048 of Lecture Notes in Computer Science, pages 487–505. Springer, Cham, April 2015.
Guilhem Castagnos, Fabien Laguillaumie, and Ida Tucker. Practical fully secure unrestricted inner product functional encryption modulo p. In Thomas Peyrin and Steven Galbraith, editors, Advances in Cryptology – ASIACRYPT 2018, Part II, volume 11273 of Lecture Notes in Computer Science, pages 733–764. Springer, Cham, December 2018.
Geoffroy Couteau, Thomas Peters, and David Pointcheval. Removing the strong RSA assumption from arguments over the integers. In Jean-Sébastien Coron and Jesper Buus Nielsen, editors, Advances in Cryptology – EUROCRYPT 2017, Part II, volume 10211 of Lecture Notes in Computer Science, pages 321–350. Springer, Cham, April / May 2017.
Ivan Damgård and Eiichiro Fujisaki. A statistically-hiding integer commitment scheme based on groups with hidden order. In Yuliang Zheng, editor, Advances in Cryptology – ASIACRYPT 2002, volume 2501 of Lecture Notes in Computer Science, pages 125–142. Springer, Berlin, Heidelberg, December 2002.
Yi Deng, Shunli Ma, Xinxuan Zhang, Hailong Wang, Xuyang Song, and Xiang Xie. Promise \(\varSigma \)-protocol: How to construct efficient threshold ECDSA from encryptions based on class groups. In Mehdi Tibouchi and Huaxiong Wang, editors, Advances in Cryptology – ASIACRYPT 2021, Part IV, volume 13093 of Lecture Notes in Computer Science, pages 557–586. Springer, Cham, December 2021.
Yevgeniy Dodis and Aleksandr Yampolskiy. A verifiable random function with short proofs and keys. In Serge Vaudenay, editor, PKC 2005: 8th International Workshop on Theory and Practice in Public Key Cryptography, volume 3386 of Lecture Notes in Computer Science, pages 416–431. Springer, Berlin, Heidelberg, January 2005.
Jun Furukawa and Kazue Sako. An efficient scheme for proving a shuffle. In Joe Kilian, editor, Advances in Cryptology – CRYPTO 2001, volume 2139 of Lecture Notes in Computer Science, pages 368–387. Springer, Berlin, Heidelberg, August 2001.
Jun Furukawa. Efficient, verifiable shuffle decryption and its requirement of unlinkability. In Feng Bao, Robert Deng, and Jianying Zhou, editors, PKC 2004: 7th International Workshop on Theory and Practice in Public Key Cryptography, volume 2947 of Lecture Notes in Computer Science, pages 319–332. Springer, Berlin, Heidelberg, March 2004.
Jens Groth and Yuval Ishai. Sub-linear zero-knowledge argument for correctness of a shuffle. In Nigel P. Smart, editor, Advances in Cryptology – EUROCRYPT 2008, volume 4965 of Lecture Notes in Computer Science, pages 379–396. Springer, Berlin, Heidelberg, April 2008.
Kristian Gjøsteen. The norwegian internet voting protocol. In Aggelos Kiayias and Helger Lipmaa, editors, E-Voting and Identity, pages 1–18, Berlin, Heidelberg, 2012. Springer Berlin Heidelberg.
Chaya Ganesh, Hamidreza Khoshakhlagh, and Roberto Parisella. NIWI and new notions of extraction for algebraic languages. In Clemente Galdi and Stanislaw Jarecki, editors, SCN 22: 13th International Conference on Security in Communication Networks, volume 13409 of Lecture Notes in Computer Science, pages 687–710. Springer, Cham, September 2022.
Jens Groth and Steve Lu. Verifiable shuffle of large size ciphertexts. In Tatsuaki Okamoto and Xiaoyun Wang, editors, PKC 2007: 10th International Conference on Theory and Practice of Public Key Cryptography, volume 4450 of Lecture Notes in Computer Science, pages 377–392. Springer, Berlin, Heidelberg, April 2007.
Rosario Gennaro, Darren Leigh, R. Sundaram, and William S. Yerazunis. Batching Schnorr identification scheme with applications to privacy-preserving authorization and low-bandwidth communication devices. In Pil Joong Lee, editor, Advances in Cryptology – ASIACRYPT 2004, volume 3329 of Lecture Notes in Computer Science, pages 276–292. Springer, Berlin, Heidelberg, December 2004.
GMP. The GNU Multiple Precision Arithmetic Library. https://gmplib.org/.
Bernardo A. Huberman, Matt Franklin, and Tad Hogg. Enhancing privacy and trust in electronic communities. In Proceedings of the 1st ACM Conference on Electronic Commerce, EC ’99, page 78-86, New York, NY, USA, 1999. Association for Computing Machinery.
Max Hoffmann, Michael Klooß, and Andy Rupp. Efficient zero-knowledge arguments in the discrete log setting, revisited. In Lorenzo Cavallaro, Johannes Kinder, XiaoFeng Wang, and Jonathan Katz, editors, ACM CCS 2019: 26th Conference on Computer and Communications Security, pages 2093–2110. ACM Press, November 2019.
Darrel Hankerson, Alfred J. Menezes, and Scott Vanstone. Guide to Elliptic Curve Cryptography. Springer-Verlag, Berlin, Heidelberg, 2003.
Mihaela Ion, Ben Kreuter, Erhan Nergiz, Sarvar Patel, Shobhit Saxena, Karn Seth, David Shanahan, and Moti Yung. Private intersection-sum protocol with applications to attributing aggregate ad conversions. Cryptology ePrint Archive, Report 2017/738, 2017.
Mihaela Ion, Ben Kreuter, Ahmet Erhan Nergiz, Sarvar Patel, Shobhit Saxena, Karn Seth, Mariana Raykova, David Shanahan, and Moti Yung. On deploying secure computing: Private intersection-sum-with-cardinality. In IEEE European Symposium on Security and Privacy, EuroS &P 2020, Genoa, Italy, September 7-11, 2020, pages 370–389. IEEE, 2020.
Peihan Miao, Sarvar Patel, Mariana Raykova, Karn Seth, and Moti Yung. Two-sided malicious security for private intersection-sum with cardinality. In Daniele Micciancio and Thomas Ristenpart, editors, Advances in Cryptology – CRYPTO 2020, Part III, volume 12172 of Lecture Notes in Computer Science, pages 3–33. Springer, Cham, August 2020.
C. Andrew Neff. A verifiable secret shuffle and its application to e-voting. In Michael K. Reiter and Pierangela Samarati, editors, ACM CCS 2001: 8th Conference on Computer and Communications Security, pages 116–125. ACM Press, November 2001.
Lan Nguyen, Reihaneh Safavi-Naini, and Kaoru Kurosawa. Verifiable shuffles: A formal model and a Paillier-based efficient construction with provable security. In Markus Jakobsson, Moti Yung, and Jianying Zhou, editors, ACNS 04: 2nd International Conference on Applied Cryptography and Network Security, volume 3089 of Lecture Notes in Computer Science, pages 61–75. Springer, Berlin, Heidelberg, June 2004.
Lan Nguyen, Rei Safavi-Naini, and Kaoru Kurosawa. Verifiable shuffles: a formal model and a paillier-based three-round construction with provable security. International Journal of Information Security, 5:241–255, 2006.
Chiara Spadafora, Michele Battagliola, Giuseppe D’Alconzo, and Andrea Gangemi. Multiparty class group encryption and applications to e-voting. CIFRIS23, 2023.
Ida Tucker. Functional encryption and distributed signatures based on projective hash functions, the benefit of class groups. PhD thesis, École Normale Supérieure de Lyon, 2020.
Douglas Wikström. A sender verifiable mix-net and a new proof of a shuffle. In Bimal K. Roy, editor, Advances in Cryptology – ASIACRYPT 2005, volume 3788 of Lecture Notes in Computer Science, pages 273–292. Springer, Berlin, Heidelberg, December 2005.
Tsz Hon Yuen, Handong Cui, and Xiang Xie. Compact zero-knowledge proofs for threshold ECDSA with trustless setup. In Juan Garay, editor, PKC 2021: 24th International Conference on Theory and Practice of Public Key Cryptography, Part I, volume 12710 of Lecture Notes in Computer Science, pages 481–511. Springer, Cham, May 2021.
Acknowledgements
This research was supported by the French ANR Project ANR-21-CE39-0006 SANGRIA and the France 2030 ANR Project ANR-22-PECY-003 SecureCompute. The authors thank Lennart Braun for his feedback on the \(\mathcal {C}\)-rough order assumption.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Carla Rafols Salvador and Benoit Libert.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This paper was reviewed by Antonio Sanso and an anonymous reviewer.
Appendices
Variants of CL Encryption
1.1 Two-Party CL Encryption
Given a security parameter \(\lambda \), a prime number q and \(({\widehat{G}}, {\widetilde{s}}, g, h, f,\textsf{Solve}_DL )\), the output of \(\textsf{Setup}_{CL }(1^\lambda , q)\), one can construct a two-party encryption scheme as follows:
-
A generates its keys with \((\textsf {CL-sk}_A, \textsf {CL-pk}_A) \leftarrow \textsf{KeyGen}_{CL }({\widehat{G}}, {\widetilde{s}}, g, h, f)\), similarly B generates \((\textsf {CL-sk}_B, \textsf {CL-pk}_B) \leftarrow \textsf{KeyGen}_{CL }({\widehat{G}}, {\widetilde{s}}, g, h, f)\)
-
\(\textsf {CL-sk}\leftarrow \textsf {CL-sk}_A + \textsf {CL-sk}_B\) and \(\textsf {CL-pk}\leftarrow \textsf {CL-pk}_A \cdot \textsf {CL-pk}_B\). The key \(\textsf {CL-pk}\) is public, while \(\textsf {CL-sk}\) is unknown to both A and B.
-
The encryption is done normally using the public key \(\textsf {CL-pk}\).
-
The decryption is done in two party as follows: for a ciphertext \(c = (c_1, c_2)\), A computes \(c_2' = c_2 \cdot c_1^{-\textsf {CL-sk}_A}\), and sends it to B. Then, B can decrypt normally, computing first \(d = c_2' \cdot c_1^{-\textsf {CL-sk}_B}\), and retrieving the message by \(m = \textsf{Solve}_DL (d)\). If both parties want to retrieve the message, these operations are done symmetrically.
In the case in which A can be malicious, B can ask him to prove in a zero-knowledge argument (or \(\textsf {HVZK-AwPE} \)) that he performed the half decryption honestly.
We use this encryption scheme in the PSI protocol exposed in Fig. 9 to encrypt the values, so that both parties can decrypt together the sum in the last step.
1.2 Vector CL Encryption
For efficiency purpose, we can reduce the size of CL ciphertexts for a batch of m messages by sharing randomness. Instead of using one randomness for each message to be encrypted, we only use one for the vector. To allow this, each key (public or private) will be a vector of m keys, i.e., if \(\textbf{sk}= (\textsf {CL-sk}_1, \dots , \textsf {CL-sk}_m)\), then the associated public key is \(\textbf{pk}=(\textsf {CL-pk}_1, \dots , \textsf {CL-pk}_m)=(h^{\textsf {CL-sk}_1}, \dots , h^{\textsf {CL-sk}_m})\).
For \(\varvec{a} = (a_1, \dots , a_m)\) a vector in \((\textbf{Z}/q\textbf{Z})^m\), we denote \(\textsf{Enc}_{CL }(\textbf{pk}; \varvec{a}; r)\) the encryption of \(\varvec{a}\) under the public key \(\textbf{pk}\), and with randomness \(r \xleftarrow {\$}\mathcal {D}_H\). It stands for
With this transformation, a ciphertext encrypts m values in \(m+1\) components instead of 2m if we encrypted separately the values.
We denote \(\textsf{Dec}_{CL }(\textbf{sk}; \varvec{c})\) the decryption of \(\varvec{c}\) under the secret key \(\textbf{sk}\), which is computed as follows:
In order to simplify the notations, we also define the encryption of a matrix \(\varvec{M}_a=(\varvec{a}_{i})_{i \in \llbracket 1, \ell \rrbracket }\) of size \(\ell \times m\). If \(\textbf{pk}\) is a public key and \(\varvec{r} = (r_1, \dots , r_\ell )\) is a vector of \(\ell \) randomnesses,
denotes a vector of \(\ell \) ciphertexts, such that for every \(i \in \llbracket 1, \ell \rrbracket \), the i-th ciphertext encrypts the i-th row of \(\varvec{M}_a\) with randomness \(r_i\), i.e.,
with for every \(1 \le i \le \ell \),
The encryption of a matrix of size \(\ell \times m\) thus contains \(\ell (m+1)\) elements of the class group.
Rewinding Procedures
We consider a ZK protocol in which the challenge sent by the verifier is of the form \(\varvec{x}= (x_1, \dots , x_n)\) where the \(x_i\)’s are independent and uniformly random in \(\llbracket 0, \mathcal {C} \llbracket \) and \(n>1\). Figure 1 is an example of such a protocol. We fix a statement \(\mathcal {S}\) and a prover \(\mathcal {P}\) that has probability \(\varepsilon \) of making the verifier accept the proof on the statement \(\mathcal {S}\).
We design an algorithm that outputs in expected polynomial time a set of challenges \(\varvec{x}_1, \varvec{x}_1', \dots , \varvec{x}_n, \varvec{x}_n'\) such that for any \(i \in \llbracket 1, n \rrbracket \), the coordinates of \(\varvec{x}_i\) and \(\varvec{x}_i'\) are the same, except for the i-th coordinate. Moreover, for all i, there exists a set of random coins \(\mathcal {R}_i\) such that if the prover uses \(\mathcal {R}_i\) as its random coins, then the proof is accepting for both challenges \(\varvec{x}_i\) and \(\varvec{x}_i'\).
The next two lemmas essentially follows the rewinding algorithm of [20], slightly adapted to match the case in which the challenge has n independent components. They are exposed mainly for completeness, and to allow a better understanding of Lemma 4.
To visualize the situation, we define M the success matrix of \(\mathcal {P}\) on the statement \(\mathcal {S}\). Precisely, M is a matrix in which each row corresponds to a possible set \(\mathcal {R}\) of random coins for \(\mathcal {P}\), and each of the \(\mathcal {C}^n\) columns corresponds to a value of the challenge \(\varvec{x} = (x_1, \dots , x_n)\). The matrix contains a one in the i-th row and the j-th column if \(\mathcal {P}\) makes \(\mathcal {V}\) accept for the i-th set of random coins and the j-th challenge, and a zero otherwise. Therefore, the proportion of ones is \(\varepsilon \). First, we organize the columns of the matrix by blocks:
where each block corresponds to a fixed value of the \(n-1\) coordinates \(x_2, \dots , x_n\), i.e., each block has \(\mathcal {C}\) columns, each corresponding to a value of \(x_1\).
Now finding the first pair \(\varvec{x}_1, \varvec{x}_1'\) is just finding two ones in the same block and the same row of the matrix. We now specify the rewinding algorithm:
Lemma 2
Suppose \(\varepsilon \ge 4/\mathcal {C}\). Set \(w = 13\), then the algorithm \(\textsf{TryExtract}\) presented in Fig. 11 has an expected running time \(\mathbb {E}[T] \le 14/\varepsilon \) and finds two ones in the same combination of block and row with probability \(p \ge 1/8\).
Proof
Let us first study the algorithm \(\textsf{Algo}_a\) of line (a). We consider the event E: “the one found in step 1 is in a combination block/row with a proportion at least \(\varepsilon /2\) of ones”. In this case, the number of other ones in the same block/row is at least \(\mathcal {C} \varepsilon /2 - 1\), so each trial to find another one has a probability of success of at least \(\frac{\mathcal {C} \varepsilon /2 - 1}{\mathcal {C}}\). Its expected running time is
As soon as \(\varepsilon \ge 4/\mathcal {C}\), one has \(\mathbb {E}[T_{a} ~ | ~ E] \le 4/\varepsilon \). In particular, by Markov inequality,
Moreover, at least half of the ones are in a row/block with a proportion at least \(\varepsilon /2\) of ones, i.e., \(\mathbb {P} (E) \ge 1/2\).
The algorithm of line (b) is a succession of identical trials with probability of success \(\varepsilon /13\). The probability that the first success happens after the m-th trial is
In particular, one can show that \(\mathbb {P} (T_{b} \ge 8/\varepsilon ) \ge 1/2.\) Finally,
Moreover, the expected running time for step 2 is at most the expected running time of (b), so \(13/\varepsilon \), and the expected running time of step 1 is \(1/\varepsilon \) (the time to find a one in a matrix with proportion \(\varepsilon \) of ones), so that the expected running time of the algorithm of Fig. 11 is at most \(14/\varepsilon \). \(\square \)
Lemma 3
If there is a prover \(\mathcal {P}=(\mathcal {P}_1, \mathcal {P}_2)\) with probability \(\varepsilon \ge 4/\mathcal {C}\) of making the verifier accept the proof on a statement \(\mathcal {S}\), then there exists an algorithm running in expected time
that outputs n pairs \((\varvec{x}_1, \varvec{x}_1'), \dots , (\varvec{x}_n, \varvec{x}_n')\) such that for every \(i \in \llbracket 1, n \rrbracket \), \(\varvec{x}_i\) and \(\varvec{x}_i'\) differ only by their i-th coordinate.
Moreover, there exist n sets of prover’s random coins \(\mathcal {R}_1, \dots , \mathcal {R}_n\) such that for all i, \((\mathcal {P}_1(\mathcal {S}, \mathcal {R}_i), \varvec{x}_i, \mathcal {P}_2(\mathcal {S}, \mathcal {R}_i, \varvec{x}_i))\) and \( (\mathcal {P}_1(\mathcal {S}, \mathcal {R}_i),\varvec{x}'_i, \mathcal {P}_2(\mathcal {S}, \mathcal {R}_i, \varvec{x}_i'))\) are two accepting transcripts.
Proof
We set \(w = 13\) and define the following algorithm: for \(i \in \llbracket 1,n \rrbracket \), we define \(M_i = [M_{i,1} | \dots |M_{i,\mathcal {C}^{n-1}}]\) to be the matrix M in which we reorganized the columns so that each block \(M_{i,j}\) corresponds to a given value of \((x_k)_{k \ne i}\). We repeat the algorithm \(\textsf{TryExtract}\) until it finds two ones in the same row of a same block, which corresponds to a pair \(\varvec{x}_i,\varvec{x}_i'\) (and a prover’s randomness \(\mathcal {R}_i\)). Given that the probability of success of \(\textsf{TryExtract}\) is at least 1/8, the expected number of repetitions between two successes is 8, and so the expected number of instances to find all the n pairs is 8n. This algorithm runs in expected time
\(\square \)
We underline that in Lemma 3, the prover’s random coins associated with the accepted transcripts is different for each couple of challenges. This type of rewinding is sufficient for extraction whenever the different components of the challenges do not “interact” in the argument of knowledge. The proof presented in Fig. 1 is such an example: each ciphertext is associated with only one component of the challenge, and the relation proved can be proved independently on each ciphertext.
However, in a case in which the components interact (as in the proof of Fig. 2), we need a stronger property. We now construct an algorithm that is able to find in polynomial time n pairs of challenges \((\varvec{x}_1, \varvec{x}_1'), \dots , (\varvec{x}_n, \varvec{x}_n')\) as before, except that there exists a unique prover’s random coins that make these challenges accepting.
In the matricial modelization, the first situation corresponds to finding two ones in a same row and in a same block, and repeating the operation n times; while the second situation corresponds to finding 2n ones in a same row, that have to be distributed in a particular way. Concretely, the algorithm first looks for a one in the matrix which fixes a row, and from this point, restricts its browsing to only this row, hoping that the chosen row contains enough ones.
Lemma 4
If there is a prover \(\mathcal {P}= (\mathcal {P}_1, \mathcal {P}_2)\) that makes the verifier accept the proof on a statement \(\mathcal {S}\) with probability \(\varepsilon \ge 8/\mathcal {C}\), then there exists an algorithm running in expected time
that outputs n pairs of challenges \((\varvec{x}_1, \varvec{x}_1'), \dots , (\varvec{x}_n, \varvec{x}_n')\) such that for every i, \(\varvec{x}_i\) and \(\varvec{x}_i'\) differ only by their i-th coordinate.
Moreover, there exists a set of random coins \(\mathcal {R}\) and 2n answers such that for all i, \((\mathcal {P}_1(\mathcal {S}, \mathcal {R}), \varvec{x}_i, \mathcal {P}_2(\mathcal {S}, \mathcal {R}, \varvec{x}_i))\) and \((\mathcal {P}_1(\mathcal {S}, \mathcal {R}), \varvec{x}_i', \mathcal {P}_2(\mathcal {S}, \mathcal {R}, \varvec{x}_i'))\) are two accepting transcripts.
Proof
In Fig. 12, we define the algorithm \(\textsf{TryExtractRepeat}\), with integers parameters w and t.
We fix \(w = 24\) and
Let E be the following event: “the one found in step 1 is in a row with a proportion at least \(\varepsilon /2\) of ones”. Then, E has probability at least 1/2 of happening. If E happens, then for every \(i \in \llbracket 1, n \rrbracket \), in step 2, the algorithm \(\textsf{TryExtract}\) is run on a matrix with a proportion at least \(\varepsilon /2 \ge 4/\mathcal {C}\) of ones. Doing the same computations as in the proof of Lemma 3, \(\textsf{Algo}_a\) in \(\textsf{TryExtract}\) runs in time \(T_a \le 16/\varepsilon \) with probability at least 1/2, and \(\textsf{Algo}_b\) has probability
of exceeding this time. So \(\textsf{TryExtract}\) succeeds with probability at least 1/8, and runs in expected time
Now, if we repeat this t times, the probability that at least one of the instances of \(\textsf{TryExtract}\) succeeds is \(p_i \ge 1-(7/8)^t\). We do this for every \(i \in \llbracket 1, n \rrbracket \), so there is a probability
that for every i, at least one of the t instances succeeds.
Our choice of t ensures that \(p \ge 1/2\). This means that knowing that E happens, the probability that we find a pair \(\varvec{x}_i, \varvec{x}_i'\) for every \(i \in \llbracket 1, n \rrbracket \) is at least one half. So the probability of success of \(\textsf{TryExtractRepeat}\) is
Moreover, the expected running time of \(\textsf{TryExtractRepeat}\) is
Finally, consider the algorithm that repeats \(\textsf{TryExtractRepeat}\) until it is successful. The expected number of repetitions is 4, and its expected running time is
One can show that \(t \le 15 \log n \), for \(n>1\), which gives the bound on the expected running time. \(\square \)
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Beaugrand, A., Castagnos, G. & Laguillaumie, F. Efficient Succinct Zero-Knowledge Arguments in the CL Framework. J Cryptol 38, 13 (2025). https://doi.org/10.1007/s00145-024-09534-1
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s00145-024-09534-1