Abstract
The supersingular isogeny-based key encapsulation (SIKE) suite stands as an attractive post- quantum cryptosystem with its relatively small public keys. Public key sizes in SIKE can further be compressed by computing pairings and solving discrete logarithms in certain subgroups of finite fields. This comes at a cost of precomputing and storing large discrete logarithm tables. In this paper, we propose several techniques to optimize memory requirements in computing discrete logarithms in SIKE, and achieve to reduce table sizes by a factor of 4. We implement our techniques and verify our theoretical findings.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
- 2.
- 3.
- 4.
The case when \(w\not \mid e\) requires more attention as explained in [15].
References
Avizienis, A.: Signed-digit number representations for fast parallel arithmetic. IEEE Trans. Electron. Comput. EC-10, 389–400 (1961)
Azarderakhsh, R., et al.: Supersingular isogeny key encapsulation. In: Submission to the 3rd Round of the NIST Post-Quantum Standardization project (2020)
Azarderakhsh, R., et al.: Supersingular isogeny key encapsulation. Submission to the 2nd Round of the NIST Post-Quantum Standardization project (2019)
Azarderakhsh, R., et al.: Supersingular Isogeny Key Encapsulation. SIKE Team (2020). https://sike.org/
Azarderakhsh, R., Jao, D., Kalach, K., Koziel, B., Leonardi, C.: Key compression for isogeny-based cryptosystems. In: Proceedings of the 3rd ACM International Workshop on ASIA Public-Key Cryptography, pp. 1–10 (2016)
Costello, C., Jao, D., Longa, P., Naehrig, M., Renes, J., Urbanik, D.: Efficient compression of SIDH public keys. In: Coron, J.-S., Nielsen, J.B. (eds.) EUROCRYPT 2017, Part I. LNCS, vol. 10210, pp. 679–706. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-56620-7_24
De Feo, L., Jao, D., Plût, J.: Towards quantum-resistant cryptosystems from super singular elliptic curve isogenies. J. Math. Cryptology, 8(3), 209–247 (2014)
Gustavo, H.M., Zanon, M.A., Simplicio, G.C.C.F., Pereira, J.D., Paulo, S.L.M.B.: Faster Key Compression for Isogeny-Based Cryptosystems: IEEE Trans. Comput. 68, 688–701 (2018)
Longa, P.: SIDH Library. https://github.com/microsoft/PQCrypto-SIDH
Naehrig, M., Renes, J.: Dual isogenies and their application to public-key compression for isogeny-based cryptography. In: Galbraith, S.D., Moriai, S. (eds.) ASIACRYPT 2019, Part II. LNCS, vol. 11922, pp. 243–272. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-34621-8_9
Pereira, G., Doliskani, J., Jao, D.: x-only point addition formula and faster compressed SIKE. J. Cryptographic Eng. 1–13 (2020). https://doi.org/10.1007/s13389-020-00245-4
Pereira, G., Barreto, P.: Isogeny-based key compression without pairings. In: International Conference on Practice and Theory of Public-Key Cryptography (PKC). Springer (2021)
Pohlig, S., Hellman, M.: An improved algorithm for computing logarithms over \(GF(p)\) and its cryptographic significance. IEEE Trans. Inf. Theory 24, 106–110 (1978)
Rubin, K., Silverberg, A.: Compression in finite fields and torus-based cryptography. SIAM J. Comput. 37, 1401–1428 (2008)
Zanon, G.H.M., Simplicio, M.A., Pereira, G.C.C.F., Doliskani, J., Barreto, P.S.L.M.: Faster isogeny-based compressed key agreement. In: Lange, T., Steinwandt, R. (eds.) PQCrypto 2018. LNCS, vol. 10786, pp. 248–268. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-79063-3_12
Acknowledgements
The authors would like to thank the SIKE team members for their comments on the paper and support with integrating our results into the official SIKE suite. G. Pereira is supported in part by NSERC, CryptoWorks21, Canada First Research Excellence Fund, Public Works and Government Services Canada, and by the National Research Council Canada and University of Waterloo Collaboration Center (NUCC) program 927517.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
A The Pohlig-Hellman Algorithm with width-w Windows
Given an instance \(\mathbb {G}_{\ell , e}\), g, and \(h\in \mathbb {G}\) of a discrete logarithm problem (DLP) in \(\mathbb {G}_{\ell , e}\), Pohlig-Hellman algorithm (PH) [13] uses width-w windows and computes \(d=\log _{g}{h}\) as follows. Let w be a positive integer with \(w\mid e\)Footnote 4, define \(m = \lceil {e/w}\rceil \), and write the exponent d in base \(L = \ell ^w\) as \(d = \sum _{i=0}^{m-1}{D_iL^i}\), \(D_i\in [0,L)\). Define the sequence \(h_k = g^{\sum _{i=k}^{m-1}{D_iL^i}}\), which satisfies
Note that \(D_k = \log _{\rho }{h_k^{L^{m-1-k}}}\in [0,L)\), where \(\rho = g^{L^{m-1}}\) generates a group \(\mathbb {G}_{\ell , w}\) of order \(\ell ^{w}\). In PH, a table \(T\) of elements are precomputed and stored such that \(T[k][D] = g^{-DL^k}\), for \(0\le k \le m-1\) and \(0\le D< L\). Note that the table \(T\) consists of \(m\cdot L\) elements of \(\mathbb {G}_{\ell , e}\). One computes \(h_0^{L^{m-1}}\), and determines \(D_0\) by looking up the last row \(T[m-1]\) of T. For \(k=1,\ldots ,m-1\), first \(h_k = h_{k-1}T[k-1][D_{k-1}]\) is computed (one multiplication), and then \(h_k^{L^{m-1-k}}\) is computed (\((m-1-k)\) exponentiations by L), and \(D_k\) is determined by looking up the row \(T[m-1]\). Once \(D_0, \ldots , D_{m-1}\) are known, \(d = \sum _{i=0}^{m-1}{D_iL^i}\) can be recovered.
As previously observed in the literature [8, 15], the steps of the above PH algorithm can be associated with subgraph of a directed graph \(\mathcal {T}_{e,w}\). The vertices of \(\mathcal {T}_{e,w}\) are labeled as \(\varDelta _{j,k}\) for \(0 \le k \le m-1\) and \(0 \le j \le m-1-k\), with \(\varDelta _{0,0}\) being the top-most vertex and \(\varDelta _{j,k}\) being the vertex lying at the end of the path starting at \(\varDelta _{0,0}\) and following j many left edges and k many right edges. The vertices \(\varDelta _{m-1-k,k}\) for \(0 \le k \le m-1\) are referred to as leaves, and \(\varDelta _{0,0}\) is the root. We make a correspondence between vertices \(\varDelta _{j,k}\) of \(\mathcal {T}_{e,w}\) and elements of \(\mathbb {G}_{\ell ,e}\) by associating \(\varDelta _{j,k}\) with \(h_k^{L^j}\), and it will be convenient to use “\(=\)” for this association: \(\varDelta _{j,k} = h_k^{L^j}, \text{ for } 0\le k \le m-1 \text{ and } 0\le j \le m-1-k\) In particular, the root \(\varDelta _{0,0}\) is associated with the input \(h_0=h\) to the DLP, and the leaves \(\varDelta _{m-1-k,k}\) correspond to the elements \(h_k^{L^{m-1-k}}\) used to determine \(D_k\). The outgoing edges of non-leaf vertices \(\varDelta _{j,k}\) can then be interpreted as group operations in \(\mathbb {G}_{\ell ,e}\) as follows: \( \text{ left } \text{ traversal: } \varDelta _{j,k}\rightarrow \varDelta _{j+1,k} = \varDelta _{j,k}^L; \text{ right } \text{ traversal: } \varDelta _{j,k}\rightarrow \varDelta _{j,k+1} = \varDelta _{j,k}\cdot g^{-D_kL^{j+k}}. \)
Note that an edge with a positive slope in \(\mathcal {T}_{e,w}\) (a left traversal) corresponds to exponentiation by L, and an edge with a negative slope in \(\mathcal {T}_{e,w}\) (a right traversal) corresponds to a multiplication by a group element, assuming access to the lookup table \(T\), as previously defined.
One can notice that the computational steps in the generalized PH algorithm correspond to traversing a spanning subgraph S of \(\mathcal {T}_{e,w}\), where the edge set of S consists of all the positive slope edges of \(\mathcal {T}_{e,w}\), and all negative slope edges of the form \(\{\varDelta _{0,k}, \varDelta _{0,k+1}\}\) for \(k=0,\ldots ,m-1\). One can do better by assigning weights \(\mathfrak {p}\) (the cost of exponentiation by \(\ell ^w\) in \(\mathbb {G}_{\ell , e}\)) and \(\mathfrak {q}\) (the cost of multiplication in \(\mathbb {G}_{\ell , e}\)) to the edges of \(\mathcal {T}_{e,w}\) with positive and negative slopes, respectively, and determining an optimal strategy (originally introduced in the context of isogeny computation [7] and then extended to discrete logarithms [8]) to minimize the cost of solving DLP. Such strategies are typically represented in linear form as a list of positive integers of length m. This yields a recursive algorithm to solve discrete logarithms; see Algorithm 6.3 in [15].
B Torus-based Representations
We summarize the torus-based compressed representation of elements of \(\mathbb {G}\) as detailed in [14]. Elements of \(\mathbb {G}\) written in the form \(a+bi\) are said to be in standard representation, and we must have \(a^2 + b^2 = 1\) (see Sect. 2). When \(b\ne 0\), one can write \(a+bi = (\alpha + i)/(\alpha - i)\), where \(\alpha := (a+1)/b\). Since taking \(\alpha =0\) produces \(a+bi=-1+0i\), we can represent cyclotomic subgroup elements with a single element in \(\mathbb {F}_p\) as follows:
Under this correspondence, we define the compression function \(C : \mathbb {G}\setminus \lbrace 1,-1 \rbrace \rightarrow \mathbb {F}_p\) as \(C(a+bi):=(a+1)/b\). Group operations respect compressed representation of elements in \(\mathbb {G}\) in the following sense: If \(C(a+bi)=\alpha \) and \(C(c+di)=\beta \), then we have \(C((a+bi)^{-1}) = -\alpha \), and
Compressed representations inherit a projective representation as follows. For \(x,y \in \mathbb {F}_p\) not both zero, if we define , then we can write the identity element as \(1 = [1 : 0]\) (the point at infinity), and for any [x : y] with \(y\ne 0\) we have \([x:y]=[x/y : 1]\). In other words, we can rewrite (6) as
Note that the compression function C is undefined for \(1,-1 \in \mathbb {F}_p\), but these elements are represented in projective coordinates as [1 : 0] and [0 : 1], respectively. Passing from regular to projective representation is easy, but the reverse direction requires at least an inversion in \(\mathbb {F}_p\): for \(a+bi \not = -1\) and \(x^2 + y^2 \not =0\) we have
We summarize the group operations of \(\mathbb {G}\) in projective coordinates in Table 3. Each formula can be directly verified by converting to the regular representations of the involved elements using the above mappings.
C Proofs
Below is a proof of Theorem 3.
Proof
Given \(1\ne h\), we first determine the least positive integer k such that \(h^{\ell ^k}=1\), by performing k exponentiations by \(\ell \) in \(\mathbb {G}_{\ell , w}\). We also store the intermediate values \(h_i = h^{\ell ^{k-i}}\), \(i=0,\ldots ,k\), in an array \(H = [h_0=1, h_1, \ldots , h_k=h]\). By Theorem 2, there is a unique path \(P_{0,k} = v_{0,0}, v_{1,i_1}, \ldots , v_{j,i_{k}}\) in \(\mathcal {G}_{\ell , w}\) such that \(v_{j,i_j}\in V_j\) and \(h_j=g_{j,i_j}\) for \(j=0,\ldots ,k\). By the proof of Theorem 2, \(i_1\in \{0,\ldots ,(\ell -2)\}\) can be determined as the integer satisfying \(h_1 = g_{1,i_1}\), and we set \(s_1=i_1+1\). Next, we inductively assume that \(i_{j-1}\) and \(s_{j-1}\) are already known for some \(2\le j\le w\). By the definition of \(E_j\), and the fact that \(v_{j-1,i_{j-1}}v_{j,i_j}\in E_j\), \(i_j = \ell \cdot i_{j-1} + s_j\) for some \(s_j\in \{0,\ldots ,(\ell -1)\}\). Since \(i_{j-1}\) is already known, the value of \(s_j\) (and \(i_j\)) can be determined as the integer satisfying \(h_j = g_{j, i_j} = g_{j,\ell \cdot i_{j-1}+s_j}\). As a result, we can recover all \(i_j\) and \(s_j\) for all \(j=1,\ldots ,k\), where \(s_1=i_1+1\) and \(i_{j} = \ell \cdot i_{j-1}+s_j\). To prove the last claim of our theorem, we need to show \(d = v_{k,i_k}\), because \(h = h_k = g_{k,i_k} = \rho ^{v_{k, i_k}}\). For \(k=1\), Theorem 3 yields \(d = s_1\ell ^{w-1}\), and it follows from (2) that \(v_{1,i_1} = (i_1+1)\ell ^{w-1} = s_1\ell ^{w-1}=d\), as required. In the following, we assume that \(k\ge 2\). Using (1)–(3), we write
D Algorithms
![figure a](http://media.springernature.com/lw685/springer-static/image/chp%3A10.1007%2F978-3-030-81293-5_16/MediaObjects/513547_1_En_16_Figa_HTML.png)
![figure b](http://media.springernature.com/lw685/springer-static/image/chp%3A10.1007%2F978-3-030-81293-5_16/MediaObjects/513547_1_En_16_Figb_HTML.png)
![figure c](http://media.springernature.com/lw685/springer-static/image/chp%3A10.1007%2F978-3-030-81293-5_16/MediaObjects/513547_1_En_16_Figc_HTML.png)
![figure d](http://media.springernature.com/lw685/springer-static/image/chp%3A10.1007%2F978-3-030-81293-5_16/MediaObjects/513547_1_En_16_Figd_HTML.png)
![figure e](http://media.springernature.com/lw685/springer-static/image/chp%3A10.1007%2F978-3-030-81293-5_16/MediaObjects/513547_1_En_16_Fige_HTML.png)
Rights and permissions
Copyright information
© 2021 National Research Council of Canada
About this paper
Cite this paper
Hutchinson, A., Karabina, K., Pereira, G. (2021). Memory Optimization Techniques for Computing Discrete Logarithms in Compressed SIKE. In: Cheon, J.H., Tillich, JP. (eds) Post-Quantum Cryptography. PQCrypto 2021. Lecture Notes in Computer Science(), vol 12841. Springer, Cham. https://doi.org/10.1007/978-3-030-81293-5_16
Download citation
DOI: https://doi.org/10.1007/978-3-030-81293-5_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-81292-8
Online ISBN: 978-3-030-81293-5
eBook Packages: Computer ScienceComputer Science (R0)