Abstract
Secret handshake (SH) allows two users to authenticate each other anonymously only when they are in the same group. Recently, due to the concern of developments on large-scale quantum computers, designing post-quantum SH has been investigated and three constructions were proposed: One is code-based [21] and two others are lattice-based [1, 2]. However, it turns out that the code-based construction [21] has a security flaw that the adversary easily impersonates an honest user to activate a handshake.
In this paper, we show how to construct a code-based SH scheme in the framework of CA-oblivious encryption by utilizing the recently proposed code-based signature scheme, called LESS-FM, whose security is based on the hardness of the code equivalence problem. Our proposed scheme is the first secure code-based SH and has the smallest communication cost among all known post-quantum SH schemes. For example, for 80-bit security, our scheme has communication costs of about 260 KB and 3.4 KB when instantiated with Classic McEliece and BIKE, respectively, while other existing post-quantum constructions have communication costs of megabytes or gigabytes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
An, Z., Pan, J., Wen, Y., Zhang, F.: Secret handshakes: Full dynamicity, deniability and lattice-based design. Theoret. Comput. Sci. 940, 14–35 (2023)
An, Z., Zhang, Z., Wen, Y., Zhang, F.: Lattice-based secret handshakes with reusable credentials. In: Gao, D., Li, Q., Guan, X., Liao, X. (eds.) ICICS 2021. LNCS, vol. 12919, pp. 231–248. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-88052-1_14
Aragon, N.m et al.: BIKE. Technical report, National Institute of Standards and Technology, 2022. https://csrc.nist.gov/Projects/post-quantum-cryptography/round-4-submissions
Balfanz, D., Durfee, G., Shankar, N., Smetters, D.K., Staddon, J., Wong, H.: Secret handshakes from pairing-based key agreements. In: IEEE Symposium on Security and Privacy (S&P 2003), pp. 180–196. IEEE Computer Society (2003)
Barenghi, A., Biasse, J.-F., Persichetti, E., Santini, P.: LESS-FM: fine-tuning signatures from the code equivalence problem. In: Cheon, J.H., Tillich, J.-P. (eds.) PQCrypto 2021 2021. LNCS, vol. 12841, pp. 23–43. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-81293-5_2
Barenghi, A., Biasse, J.-F., Persichetti, E., Santini, P.: On the computational hardness of the code equivalence problem in cryptography. Cryptology ePrint Archive, Paper 2022/967 (2022). https://eprint.iacr.org/2022/967
Barenghi, A., Biasse, J.-F., Persichetti, E., Santini, P.: On the computational hardness of the code equivalence problem in cryptography. Adv. Math. Commun. 17(1), 23–55 (2023)
Bellare, M., Boldyreva, A., Desai, A., Pointcheval, D.: Key-privacy in public-key encryption. In: Boyd, C. (ed.) ASIACRYPT 2001. LNCS, vol. 2248, pp. 566–582. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45682-1_33
Bernstein, D.J.: Classic McEliece. Technical report, National Institute of Standards and Technology (2022). https://csrc.nist.gov/Projects/post-quantum-cryptography/round-4-submissions
Biasse, J.-F., Micheli, G., Persichetti, E., Santini, P.: LESS is more: code-based signatures without syndromes. In: Nitaj, A., Youssef, A. (eds.) AFRICACRYPT 2020. LNCS, vol. 12174, pp. 45–65. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-51938-4_3
Castelluccia, C., Jarecki, S., Tsudik, G.: Secret handshakes from ca-oblivious encryption. In: Lee, P.J. (ed.) ASIACRYPT 2004. LNCS, vol. 3329, pp. 293–307. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30539-2_21
Faugère, J.-C., Gauthier-Umanã, V., Otmani, A., Perret, L., Tillich, J.-P.: A distinguisher for high rate McEliece cryptosystems. In: 2011 IEEE Information Theory Workshop, pp. 282–286 (2011)
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). https://doi.org/10.1007/3-540-47721-7_12
Jarecki, S., Kim, J., Tsudik, G.: Authentication for paranoids: multi-party secret handshakes. In: Zhou, J., Yung, M., Bao, F. (eds.) ACNS 2006. LNCS, vol. 3989, pp. 325–339. Springer, Heidelberg (2006). https://doi.org/10.1007/11767480_22
Jarecki, S., Kim, J., Tsudik, G.: Group secret handshakes or affiliation-hiding authenticated group key agreement. In: Abe, M. (ed.) CT-RSA 2007. LNCS, vol. 4377, pp. 287–308. Springer, Heidelberg (2006). https://doi.org/10.1007/11967668_19
Jarecki, S., Liu, X.: Unlinkable secret handshakes and key-private group key management schemes. In: Katz, J., Yung, M. (eds.) ACNS 2007. LNCS, vol. 4521, pp. 270–287. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-72738-5_18
Nojima, R., Imai, H., Kobara, K., Morozov, K.: Semantic security for the McEliece cryptosystem without random oracles. Des. Codes Crypt. 49(1), 289–305 (2008)
Shor, P.W.: Algorithms for quantum computation: Discrete logarithms and factoring. In: 35th Annual Symposium on Foundations of Computer Science (FOCS) 1994, pp. 124–134. IEEE Computer Society (1994)
Wen, Y., Zhang, F., Wang, H., Gong, Z., Miao, Y., Deng, Y.: A new secret handshake scheme with multi-symptom intersection for mobile healthcare social networks. Inf. Sci. 520, 142–154 (2020)
Wen, Y., Zhang, F., Xu, L.: Secret handshakes from ID-based message recovery signatures: a new generic approach. Comput. Elect. Eng. 38(1), 96–104 (2012)
Zhang, Z., Zhang, F., Tian, H.: CSH: a post-quantum secret handshake scheme from coding theory. In: Chen, L., Li, N., Liang, K., Schneider, S. (eds.) ESORICS 2020. LNCS, vol. 12309, pp. 317–335. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-59013-0_16
Zhou, L., Susilo, W., Mu, Y.: Three-round secret handshakes based on ElGamal and DSA. In: Chen, K., Deng, R., Lai, X., Zhou, J. (eds.) ISPEC 2006. LNCS, vol. 3903, pp. 332–342. Springer, Heidelberg (2006). https://doi.org/10.1007/11689522_31
Acknowledgements
The authors thank the anonymous reviewers for their helpful comments. H. T. Lee was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. NRF-2021R1A2C1007484, NRF-2022R1A4A5034130).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
A Definitions for Digital Signatures
A signature scheme \(\textsf{Sig}=(\textsf{KeyGen}, \textsf{Sign}, \textsf{Verify})\) consists of the following three polynomial-time algorithms:
-
\(\textsf{KeyGen}(\lambda )\rightarrow (\textsf{sk}, \textsf{pk})\): On input a security parameter \(\lambda \), it returns a pair of secret and public keys \((\textsf{sk}, \textsf{pk})\).
-
\(\textsf{Sign}(\textsf{sk}, \textsf{msg})\rightarrow \sigma \): Given the secret key \(\textsf{sk}\) and a message \(\textsf{msg}\), it returns a signature \(\sigma \).
-
\(\textsf{Verify}(\textsf{pk}, \sigma , \textsf{msg})\rightarrow 1/0\): Given the public key \(\textsf{pk}\), a signature \(\sigma \), and a message \(\textsf{msg}\), it returns 1 (accept) or 0 (reject).
We say that a signature scheme \(\textsf{Sig}=(\textsf{KeyGen}, \textsf{Sign}, \textsf{Verify})\) is correct if for any security parameter \(\lambda \) and message \(\textsf{msg}\), it always holds that
where \(\textsf{KeyGen}(\lambda )\rightarrow (\textsf{sk}, \textsf{pk})\) and \(\textsf{Sign}(\textsf{sk}, \textsf{msg})\rightarrow \sigma \).
EUF-CMA Security. A digital signature scheme is existentially unforgeable against chosen message attacks (EUF-CMA) if for any PPT adversary \(\mathcal {A}\) its advantage in the following experiment is negligible in the security parameter \(\lambda \):
\(\underline{\textsf {Exp}_{\mathcal {A}, \textsf{Sig}}^{\text {EUF-CMA}}(\lambda )}\)
-
\(\textsf{KeyGen}(\lambda )\rightarrow (\textsf{sk}, \textsf{pk})\)
-
\(\mathcal {A}^{\mathcal {O}^{\textsf{Sign}(\textsf{sk}, \cdot )}}(\textsf{pk})\rightarrow (\textsf{msg}^*, \sigma ^*)\)
where \(\mathcal {O}^{\textsf{Sign}(\textsf{sk}, \cdot )}\) is the signing oracle that takes a message as an input and returns a signature of input message under the secret key \(\textsf{sk}\). There is a restriction that \(\textsf{msg}^*\) should not be queried to \(\mathcal {O}^{\textsf{Sign}(\textsf{sk}, \cdot )}\). The advantage of \(\mathcal {A}\) in the above experiment is defined as \(\textbf{Adv}_{\!\mathcal {A},\textsf{Sig}}^{\text {EUF-CMA}}(\lambda ):=\Pr [\textsf{Verify}(\textsf{pk}, \sigma ^*, \textsf{msg}^*)\rightarrow 1]\).
B Proof of Lemma 2
Consider the OW-CPA security experiment between \(\mathcal {A}\) and \(\mathcal {S}\) where \(\mathcal {A}\) may generate the event that \(\mathcal {B}\) aborts as in the security game of the proof of Theorem 1 and \(\mathcal {S}\) is a PPT adversary who wants to break the EUF-CMA security of LESS-FM. Let \(\mathcal {C}_{L}\) be the challenger who interacts with \(\mathcal {S}\) in the EUF-CMA security experiment of LESS-FM.
-
1.
Once the target parameter \(\textsf{pp},\textbf{G}\) and public key \(\textsf{pk}^*=(\textbf{G}_1, \ldots , \textbf{G}_r)\) of LESS-FM are given to \(\mathcal {S}\), set \(\textsf{params}=(\lambda , \textsf{pp}, \textbf{G})\) and \(\textsf{pk}_{\textsf{CA}}=\textsf{pk}^*\). Then, \(\mathcal {S}\) passes \(\textsf{params}\) and \(\textsf{pk}_{\textsf{CA}}\) to \(\mathcal {A}\).
-
2.
For \(\mathcal {A}\)’s queries, \(\mathcal {S}\) responds as follows:
-
\(\mathcal {H}_1\) and \(\mathcal {H}_2\) queries: For \(\mathcal {H}_1\) and \(\mathcal {H}_2\) queries, the list List is initialized as an empty set and \(\mathcal {S}\) performs as follows:
-
\(\mathcal {H}_1\) queries: On input \(((\tilde{\textbf{G}}_{j,i})_{1\le i\le t}, \textsf{ID}_j)\),
-
(a)
Request a \(\widehat{\mathcal {H}}\) query on \(((\tilde{\textbf{G}}_{j,i})_{1\le i\le t}, \textsf{ID}_j)\) to \(\mathcal {C}_{L}\) and obtain \(\textbf{h}_j\) which is corresponded to \(\widehat{\mathcal {H}}((\tilde{\textbf{G}}_{j,i})_{1\le i\le t}, \textsf{ID}_j)\) in LESS-FM.
-
(b)
Search the list List if a pair of \((\textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j})\) was already generated. If it exists, take and use it for the following steps. Otherwise, run and use \(\textsf{PKE}.\textsf{KeyGen}(\lambda )\rightarrow (\textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j})\).
-
(c)
Pick a random \(rv_j\) from \(\{0, 1\}^{\ell }\) and compute \(c_j=rv_j\oplus \textsf{pk}_{\textsf{ID}_j}\).
-
(d)
Store \(\langle \textsf{ID}_j, \textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j}, (\textbf{G}_{j,i})_{1\le i\le t}, c_j, rv_j, \textbf{h}_j\rangle \) at List and return \(rv_j\) to \(\mathcal {A}\).
We note that at this point \(\mathcal {H}_2(c_j, \textsf{ID}_j)\) is determined as \(\textbf{h}_j\) as well as \(\mathcal {H}_1((\tilde{\textbf{G}}_{j,i})_{1\le i\le t}, \textsf{ID}_j)\) is determined as \(rv_j\).
-
(a)
-
\(\mathcal {H}_2\) queries: On input \((c_j, \textsf{ID}_j)\), \(\mathcal {S}\) checks if a tuple \(\langle \textsf{ID}_j, \cdot , \cdot , \cdot , c_j, \cdot , \textbf{h}_j\rangle \) already exists. If it exists, return the corresponding \(\textbf{h}_j\). Otherwise, \(\mathcal {S}\) performs as follows:
-
(a)
Check the list List if a pair of \((\textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j})\) was already generated. If it exists, take and use it for the following step. Otherwise, run and use \(\textsf{PKE}.\textsf{KeyGen}(\lambda )\rightarrow (\textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j})\).
-
(b)
Pick \(\textbf{h}_j{\mathop {\leftarrow }\limits ^{\$}}\mathbb {Z}_{r+1, w}^t\), store \(\langle \textsf{ID}_j, \textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j}, -, c_j, -, \textbf{h}_j\rangle \) at List where − indicates an empty string, and return \(\textbf{h}_j\) to \(\mathcal {A}\) .
-
(a)
-
-
\(\textsf{Certify}\) queries: For \(\mathcal {A}\)’s request on \((\textsf{tr}_{\textsf{ID}_j}, \textsf{cert}_{\textsf{ID}_j})\) of any ID string \(\textsf{ID}_j\) under \(\textsf{pk}_{\textsf{CA}}\), \(\mathcal {S}\) performs as follows:
-
(a)
Request a signing query on message \(\textsf{ID}_j\) to obtain the LESS-FM signature \(((\textbf{R}_{j,i})_{1\le i\le t}, \textbf{h}_j)\) for message \(\textsf{ID}_j\).
-
(b)
Check the list List if a tuple \(\langle \textsf{ID}_j, \textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j}, \cdot , \cdot , \cdot , \cdot \rangle \) is stored. If it exists, take and use \((\textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j})\) for the following steps. Otherwise, run and use \(\textsf{PKE}.\textsf{KeyGen}(\lambda )\rightarrow (\textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j})\).
-
(c)
Pick a random \(rv_j\) from \(\{0, 1\}^{\ell }\) and compute \(c_{j}=\textsf{pk}_{\textsf{ID}_j}\oplus rv_j\).
-
(d)
Store \(\langle \textsf{ID}_j, \textsf{pk}_{\textsf{ID}_j}, \textsf{sk}_{\textsf{ID}_j}, -, c_{j}, rv_j, \textbf{h}_j\rangle \) at List. Set and return \(\textsf{tr}_{\textsf{ID}_j}=\textsf{sk}_{\textsf{ID}_j}\), \(\textsf{cert}_{\textsf{ID}_j}=(c_{j},(\textbf{R}_{j,i})_{1\le i\le t})\).
-
(a)
-
-
3.
Once \(\mathcal {A}\) submits a pair of target ID string and certificate \((\textsf{ID}_{\!\mathcal {A}}, \textsf{cert}_{\textsf{ID}_{\!\mathcal {A}}})\) where \(\textsf{cert}_{\textsf{ID}_{\!\mathcal {A}}}=(c_{\textsf{ID}_{\!\mathcal {A}}}, (\textbf{R}_{\textsf{ID}_{\!\mathcal {A}}, i})_{1\le i\le t})\), \(\mathcal {S}\) performs as follows:
-
(a)
Check the list List if \(\langle \textsf{ID}_{\!\mathcal {A}}, \textsf{pk}_{\textsf{ID}_{\!\mathcal {A}}}, \textsf{sk}_{\textsf{ID}_{\!\mathcal {A}}}, \cdot , \cdot , \cdot , \cdot \rangle \) is stored. If it exists, take and use \((\textsf{pk}_{\textsf{ID}_{\!\mathcal {A}}}, \textsf{sk}_{\textsf{ID}_{\!\mathcal {A}}})\) for the following steps. Otherwise, run and use \(\textsf{PKE}.\textsf{KeyGen}(\lambda )\rightarrow (\textsf{pk}_{\textsf{ID}_{\!\mathcal {A}}}, \textsf{sk}_{\textsf{ID}_{\!\mathcal {A}}})\).
-
(b)
Store \(\langle \textsf{ID}_{\!\mathcal {A}}, \textsf{pk}_{\textsf{ID}_{\!\mathcal {A}}}, \textsf{sk}_{\textsf{ID}_{\!\mathcal {A}}}, -, c_{\textsf{ID}_{\!\mathcal {A}}},-, -\rangle \) at List.
-
(c)
Select a random message \(m\in \mathcal {M}\) and run \(\textsf{PKE}.\textsf{Enc}(\textsf{pk}_{\textsf{ID}_{\!\mathcal {A}}},m)\rightarrow \textsf{CT}^*\). Return \(\textsf{CT}^*\) to \(\mathcal {A}\).
-
(a)
-
4.
For \(\mathcal {A}\)’s queries, \(\mathcal {S}\) responds as Step 2.
-
5.
Finally, once \(\mathcal {A}\) outputs \(m'\), \(\mathcal {S}\) selects \(\textbf{h}\) randomly in the last column of List and returns a message \(\textsf{ID}_{\mathcal {A}}\) and a pair of \(((\textbf{R}_{\textsf{ID}_{\!\mathcal {A}}, i})_{1\le i\le t},\textbf{h})\) as the corresponding signature.
We first consider the case that the above simulation fails. It may occurs when \(\mathcal {H}_1\) and \(\mathcal {H}_2\) queries are operated incorrectly. In the simulation, suppose that \((c_{j}, \textsf{ID}_j)\) was requested to the \(\mathcal {H}_2\) oracle first, and a value for \(\mathcal {H}_2(c_{j}, \textsf{ID}_j)\) was assigned. Later, once \(((\textbf{G}_{j,i})_{1\le i\le t}, \textsf{ID}_j)\) is requested to the \(\mathcal {H}_1\) oracle, \(\mathcal {S}\) requests a value to \(\mathcal {C}_{L}\) and receives \(\textbf{h}'\). Then, \(\mathcal {S}\) selects a random \(rv_{j}\), computes \(c_{j}=rv_{j}\oplus \textsf{pk}_{\textsf{ID}_j}\), and returns \(rv_{j}\). In this process, if \((c_{j}, \textsf{ID}_j)\) was already stored and the value for \(\mathcal {H}_2(c_{j}, \textsf{ID}_j)\) is different from \(\textbf{h}'\), then the simulation fails. On the one hand, \(rv_{j}\)’s are randomly selected from \(\{0, 1\}^\ell \) whose cardinality \(2^\ell \) is exponential in the security parameter \(\lambda \) and so the probability that a collision occurs among up to \(2^{\ell /2}\) randomly selected elements is less than 1/2. On the other hand, the number of queries allowed to \(\mathcal {A}\) is polynomial in the security parameter. Thus, the probability that the above simulation fails is less than 1/2.
Suppose that the event that \(\mathcal {B}\) aborts occurs in the previous OW-CPA security experiment between \(\mathcal {A}\) and \(\mathcal {B}\). That is, when \(\mathcal {A}\) submits a pair of target ID string and certificate \((\textsf{ID}_{\!\mathcal {A}}, \textsf{cert}_{\textsf{ID}_{\!\mathcal {A}}})\) where \(\textsf{cert}_{\textsf{ID}_{\!\mathcal {A}}}=(c_{\textsf{ID}_{\!\mathcal {A}}}, (\textbf{R}_{\textsf{ID}_{\!\mathcal {A}}, i})_{1\le i\le t})\), each \(\textbf{R}_{\textsf{ID}_{\!\mathcal {A}}, i}\) satisfies \(\tilde{\textbf{Q}}_i = \textbf{R}_{\textsf{ID}_{\!\mathcal {A}}, i}\textbf{Q}_{h_i}\) and \(\tilde{\textbf{G}}_i=\textsf{SF}(\textbf{G}\tilde{\textbf{Q}}_i)\) where \(\textbf{Q}_{h_i}\)’s are in the target secret key of LESS-FM and \(\textbf{h}=(h_1, \ldots , h_t)=\mathcal {H}_2(c_{\textsf{ID}_{\!\mathcal {A}}},\textsf{ID}_{\!\mathcal {A}})\). So, it holds that
for some \(\textbf{h}=(h_1, \ldots , h_t)\), which is the same as the verification algorithm of LESS-FM with input signature \(((\textbf{R}_{\textsf{ID}_{\!\mathcal {A}}, i})_{1\le i\le t},\textbf{h})\) of message \(\textsf{ID}_{\!\mathcal {A}}\). Such the \(\textbf{h}\) should appear in List since \(\textbf{h}\) is a hash value if the simulation does not fail.
Now, let us calculate the advantage of \(\mathcal {S}\). Let E be the event that \(\mathcal {B}\) aborts and F be the event that the simulation fails. Then, the advantage of \(\mathcal {S}\) is
where \(\varepsilon _{\!\mathcal {A}}\) is the probability of the event that \(\mathcal {B}\) aborts, and \(q_{\mathcal {H}_1}\) and \(q_{\mathcal {H}_2}\) are the numbers of queries on \(\mathcal {H}_1\) and \(\mathcal {H}_2\) oracles, respectively. Thus, if LESS-FM is EUF-CMA secure, the probability that the event that \(\mathcal {B}\) aborts is negligible in the security parameter.
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Kim, M., Lee, H.T. (2024). Code-Based Secret Handshake Scheme, Revisited. In: Tsudik, G., Conti, M., Liang, K., Smaragdakis, G. (eds) Computer Security – ESORICS 2023. ESORICS 2023. Lecture Notes in Computer Science, vol 14344. Springer, Cham. https://doi.org/10.1007/978-3-031-50594-2_6
Download citation
DOI: https://doi.org/10.1007/978-3-031-50594-2_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-50593-5
Online ISBN: 978-3-031-50594-2
eBook Packages: Computer ScienceComputer Science (R0)