Abstract
This paper presents inversion-free formulas for the efficient implementation of a scalar multiplication over elliptic curves. Specifically, it proposes to make use of curve isomorphisms as a way to avoid the computation of inverses in point addition formulas. Interestingly, the presented techniques are independent of the model used to represent the elliptic curve and of the coordinate system used to represent the points. In particular, they apply to affine representations. Further, whereas certain inversion-free techniques are mostly limited to specific scalar multiplication algorithms, the proposed techniques apply to all scalar multiplication algorithms. The so-obtained formulas are well suited to embedded systems and can easily be combined with existing countermeasures to provide secure implementations.
Similar content being viewed by others
Notes
As otherwise, at each step of the for-loop, the curve parameters should be updated with the current value of \({\mathbf {\Phi }}\) for evaluating \(\hbox {iADDC}\)/\(\hbox {iADDU}\) on the current isomorphic elliptic curve.
Since, as presented, in the short Weierstraß model the description of the isomorphism comprises only one parameter, we omit the arrow on \({\mathbf {\varphi }}\) and \({\mathbf {\Phi }}\), and \(\circ \) becomes \(\cdot \) (field multiplication).
References
Bernstein, D.J., Birkner, P., Joye, M., Lange, T., Peters, C.: Twisted Edwards curves. In: Vaudenay, S. (ed.) Progress in Cryptology–AFRICACRYPT 2008. LNCS, vol. 5023, pp. 389–405. Springer, Heidelberg (2008)
Bernstein, D.J., Lange, T.: Explicit-formulas database. http://www.hyperelliptic.org/EFD/
Bernstein, D.J., Lange, T.: Faster addition and doubling on elliptic curves. In: Kurosawa, K. (ed.) Advances in Cryptology– ASIACRYPT 2007. LNCS, vol. 4833, pp. 29–50. Springer, Heidelberg (2007)
Chudnovsky, D.V., Chudnovsky, G.V.: Sequences of numbers generated by addition in formal groups and new primality and factorization tests. Adv. Appl. Math. 7(4), 385–434 (1986)
Cohen, H.: Analysis of the sliding window powering algorithm. J. Cryptol. 18(1), 63–76 (2005)
Cohen, H., Frey, G., Avanzi, R., Doche, C., Lange, T., Nguyen, K., Vercauteren, F. (eds.): Handbook of Elliptic and Hyperelliptic Curve Cryptography. CRC Press, Boca Raton (2005)
De Win, E., Mister, S., Preneel, B., Wiener, M.J.: On the performance of signature schemes based on elliptic curves. In: Buhler, J. (ed.) Algorithmic Number Theory (ANTS-III). LNCS, vol. 1423, pp. 252–266. Springer, Heidelberg (1998)
Fips, P.U.B. 186–3: Digital signature standard (DSS). Federal Information Processing Standards Publication (2009)
Gordon, D.M.: A survey of fast exponentiation methods. J. Algorithms 27(1), 129–146 (1998)
Goundar, R.R., Joye, M., Miyaji, A.: Co-\(Z\) addition formulæ and binary ladders on elliptic curves. In: Mangard, S., Standaert, F.-X. (eds.) Cryptographic Hardware and Embedded Systems—CHES 2010. LNCS, vol. 6225, pp. 65–79. Springer, Heidelberg (2010)
Goundar, R.R., Joye, M., Miyaji, A., Rivain, M., Venelli, A.: Scalar multiplication on Weierstraß elliptic curves from co-\(Z\) arithmetic. J. Cryptogr. Eng. 1(2), 161–176 (2011)
Hankerson, D., Menezes, A., Vanstone, S.: Guide to Elliptic Curve Cryptography. Springer, Heidelberg (2004)
Hisil, H., Costello, C.: Jacobian coordinates on genus 2 curves. In: Sarkar, P., Iwata, T. (eds.) Advances in Cryptology–ASIACRYPT 2014. LNCS, vol. 8873, pp. 338–357. Springer, Heidelberg (2014)
Hışıl, H., Wong, K.K.H., Carter, G., Dawson, E.: Twisted Edwards curves revisited. In: Pieprzyk, J. (ed.) Advances in Cryptology–ASIACRYPT 2008. LNCS, vol. 5350, pp. 326–343. Springer, Heidelberg (2008)
IEEE Std P1363-2000: Standard specifications for public key cryptography. IEEE Computer Society (2000)
Joye, M.: Highly regular right-to-left algorithms for scalar multiplication. In: Paillier, P., Verbauwhede, I. (eds.) Cryptographic Hardware and Embedded Systems–CHES 2007. LNCS, vol. 4727, pp. 135–147. Springer, Heidelberg (2007)
Joye, M., Tunstall, M. (eds.): Fault Analysis in Cryptography. Springer, Heidelberg (2012)
Joye, M., Tymen, C.: Protections against differential analysis for elliptic curve cryptography: An algebraic approach. In: Koç, Ç.K., Naccache, D., Paar, C. (eds.) Cryptographic Hardware and Embedded Systems–CHES 2001. LNCS, vol. 2162, pp. 377–390. Springer, Heidelberg (2001)
Knuth, D.E.: The Art of Computer Programming: Seminumerical Algorithms, vol. 2, 3rd edn. Addison-Wesley, Boston (1997)
Koblitz, N.: Elliptic curve cryptosystems. Math. Comput. 48(177), 203–209 (1987)
Longa, P., Gebotys, C.H.: Efficient techniques for high-speed elliptic curve cryptography. In: Mangard, S., Standaert, F.-X. (eds.) Cryptographic Hardware and Embedded Systems–CHES 2010. LNCS, vol. 6225, pp. 80–94. Springer, Heidelberg (2010)
Longa, P., Miri, A.: New composite operations and precomputation for elliptic curve cryptosystems over prime fields. In: Cramer, R. (ed.) Public Key Cryptography–PKC 2008. LNCS, vol. 4939, pp. 229–247. Springer, Heidelberg (2008)
Mangard, S., Oswald, E., Popp, T.: Power Analysis Attacks. Springer, Heidelberg (2007)
Meloni, N.: New point addition formulæ for ECC applications. In: Carlet, C., Sunar, B. (eds.) Arithmetic of Finite Fields (WAIFI 2007). LNCS, vol. 4547, pp. 189–201. Springer, Heidelberg (2007)
Menezes, A.J.: Elliptic Curve Public Key Cryptosystems. Kluwer Academic Publishers, Boston (1993)
Miller, V.S.: Use of elliptic curves in cryptography. In: Williams, H.C. (ed.) Advances in Cryptology–CRYPTO ’85. LNCS, vol. 218, pp. 417–426. Springer, Berlin (1985)
Möller, B.: Securing elliptic curve point multiplication against side-channel attacks. In: Information Security (ISC 2001). LNCS, vol. 2200, pp. 324–334. Springer (2001)
Montgomery, P.L.: Speeding up the Pollard and elliptic curve methods of factorization. Math. Comput. 48(177), 243–264 (1987)
Morain, F., Olivos, J.: Speeding up the computations on an elliptic curve using addition-subtraction chains. RAIRO Theor. Inform. Appl. 24(6), 531–543 (1990)
NSA names ECC as the exclusive technology for key agreement and digital signature standards for the U.S. government. Press release (2 March 2005), announced on February 16, 2005 at the RSA conference
Okeya, K., Takagi, T.: The width-\(w\) NAF method provides small memory and fast elliptic scalar multiplications secure against side channel attacks. In: Joye, M. (ed.) Topics in Cryptology–CT-RSA 2003. LNCS, vol. 2612, pp. 328–342. Springer, Heidelberg (2003)
Reitwiesner, G.W.: Binary arithmetic. Adv. Comput. 1, 231–308 (1960)
Rivain, M.: Fast and regular algorithms for scalar multiplication over elliptic curves. Cryptology ePrint Archive, Report 2011/338, http://eprint.iacr.org/ (2011)
Silverman, J.H.: The Arithmetic of Elliptic Curves. Springer, New York (1986)
Stam, M.: On Montgomery-like representations for elliptic curves over \({\rm GF}(2^k)\). In: Desmedt, Y. (ed.) Public Key Cryptography–PKC 2003. LNCS, vol. 2567, pp. 240–253. Springer, Heidelberg (2003)
Tunstall, M., Joye, M.: Coordinate blinding over large prime fields. In: Mangard, S., Standaert, F.-X. (eds.) Cryptographic Hardware and Embedded Systems–CHES 2010. LNCS, vol. 6225, pp. 443–455. Springer, Heidelberg (2010)
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: Mathematical background
Let \(\mathbb {K}\) be a field. An elliptic curve E defined over \(\mathbb {K}\) is given by the Weierstraß equation
The set of points on E together with the formal point at infinity \(\varvec{O}\) form a group under the chord-and-tangent law [34, Chapter III].
Any two elliptic curves given the Weierstraß equations
and
are isomorphic over \(\mathbb {K}\) if and only if there exist \(u,r,s,t \in \mathbb {K}\), \(u \ne 0\), such that the linear change of variables
transforms E into \(E'\) [25, Theorem 2.2]. Such a transformation is said admissible and is the only change of variables fixing \(\varvec{O}\) and preserving the Weierstraß form. The corresponding curve parameters are related by
Two settings are commonly used in cryptographic applications (e.g., see [8, 15]): elliptic curves over a large prime field \(\mathbb {K}\) and non-supersingular elliptic curves over a large binary field \(\mathbb {K}\). When the characteristic of \(\mathbb {K}\) is not 2 or 3, one can without loss of generality select \(a_1 = a_2 = a_3 = 0\). Likewise, when the characteristic of \(\mathbb {K}\) is 2 (binary field), provided that the elliptic curve is non-supersingular, one can select \(a_1 = 1\) and \(a_3 = a_4 = 0\).
Appendix 2: Short Weierstraß model
Over a field of characteristic not equal to 2 or 3, the short Weierstraß model can be used to represent the points of an elliptic curve \(E_1\).
We define \(E_1: y^2 = x^3 + ax +b\) and use the notation of Sect. 2.1.
1.1 \(\hbox {iADD}\)nd \(\hbox {iADDU}\)perations
From the addition formula [Eq. (2)], letting \(\varphi := x_1 - x_2\), we get
That is, given points \(\varvec{P_1} = (x_1,y_1)\) and \(\varvec{P_2} = (x_2,y_2)\) on \(E_1\), one can easily obtain \(\varvec{\tilde{P_3}} := \varPsi _\varphi (\varvec{P_1} + \varvec{P_2}) = (\varphi ^2x_3, \varphi ^3y_3)\) on \(E_\varphi \) without inversion. In more detail, the evaluation of \(\varvec{\tilde{P_3}} = (\widetilde{x_3}, \widetilde{y_3})\) can be done as
We let \(\hbox {iADD}\) denote this operation; the cost of which amounts to \(\underline{{4\mathsf {M}+2\mathsf {S}}}\) —where \(\mathsf {M}\) and \(\mathsf {S}\) denote the cost of a field multiplication and of a squaring, respectively.
Obtaining \(\varvec{\tilde{P_1}} := \varPsi _\varphi (\varvec{P_1}) = (\varphi ^2x_1, \varphi ^3y_1)\) comes from free during the course of the evaluation of \(\varvec{\tilde{P_3}}\). Indeed, we immediately have \(\varvec{\tilde{P_1}} = (\widetilde{x_1}, \widetilde{y_1})\) with
We let \(\hbox {iADDU}\) denote the operation of getting \(\varvec{\tilde{P_3}}\) together with \(\varvec{\tilde{P_1}}\); the total cost of which is \(\underline{{4\mathsf {M}+2\mathsf {S}}}\).
1.2 \(\hbox {iADDC}\)peration
Since \(-\varvec{P_2} = (x_2, -y_2)\), it follows that \(\varvec{P_1} - \varvec{P_2} = (x_3', y_3')\) satisfies
Hence, once \(\varvec{\tilde{P_3}}\) has been evaluated, the evaluation of \(\varvec{\tilde{P_3'}} := \varPsi _\varphi (\varvec{P_1} - \varvec{P_2}) = (\widetilde{x_3'}, \widetilde{y_3'})\) only requires an additional cost of \(1\mathsf {M}+ 1\mathsf {S}\), since
We let \(\hbox {iADDC}\) denote the corresponding operation, the total cost of which is \(\underline{{5\mathsf {M}+3\mathsf {S}}}\).
1.3 \(\hbox {iDBL}\)nd \(\hbox {iDBLU}\)perations
From the doubling formula [Eq. (3)], letting now \(\varphi := 2y_1\), we get
(Note here that a is the parameter on the current curve.)
That is, given points \(\varvec{P_1}\) on \(E_1\), one can obtain \(\varvec{\tilde{P_4}} := \varPsi _\varphi (2\varvec{P_1}) = (\varphi ^2x_4, \varphi ^3y_4)\) on \(E_\varphi \). In more detail, the evaluation of \(\varvec{\tilde{P_4}} = (\widetilde{x_4}, \widetilde{y_4})\) can be done as
We let \(\hbox {iDBL}\) denote this operation; the cost of which amounts to \(\underline{{1\mathsf {M}+ 5\mathsf {S}}}\).
Moreover, obtaining \(\varvec{\tilde{P_1}} := \varPsi _\varphi (\varvec{P_1}) = (\varphi ^2x_1, \varphi ^3y_1)\) comes from free during the course of the evaluation of \(\varvec{\tilde{P_4}}\). We have \(\varvec{\tilde{P_1}} = (\widetilde{x_1}, \widetilde{y_1})\) with \(\widetilde{x_1} = S\) and \(\widetilde{y_1} = 8L\). The corresponding operation is denoted \(\hbox {iDBLU}\).
1.4 \(\hbox {iDAU}\)peration and the likes
Let \(\varvec{R} = 2\varvec{P_1} + \varvec{P_2}\) on \(E_1\). One can easily obtain \(\varvec{\tilde{R}} := \varPsi _{\varphi }(\varvec{R})\) together with \(\varvec{\tilde{P_1}} := \varPsi _{\varphi }(\varvec{P_1})\) as \((\varvec{T}, \varvec{V}, \varphi _1) = \hbox {iADDU}(\varvec{P_1}, \varvec{P_2})\) followed by \((\varvec{\tilde{R}}, \varvec{\tilde{P_1}}, \varphi _2) = \hbox {iADDU}(\varvec{V}, \varvec{T})\), and \(\varphi = \varphi _1 \varphi _2\). A straightforward implementation requires \(2\times (4\mathsf {M}+2\mathsf {S})+1\mathsf {M}= 9\mathsf {M}+ 4\mathsf {S}\). In a way similar to [10, 11], two (field) multiplications can be traded against two squarings using the basic identity \(2AB = (A+B)^2 - A^2 - B^2\), which leads to a cost of \(\underline{{7\mathsf {M}+6\mathsf {S}}}\). Explicitly, if \(\varvec{P_1} = (x_1, y_1)\) and \(\varvec{P_2} = (x_2, y_2)\) then \(\varvec{\tilde{P_1}} = (\widetilde{x_1}, \widetilde{y_1})\) and \(\varvec{\tilde{R}} = (\widetilde{x_R}, \widetilde{y_R})\) on \(E_\varphi \) where
In the same way, when one wants \(\varvec{\tilde{R}} := \varPsi _{\varphi }(\varvec{R})\) together with \(\varvec{\tilde{P_2}} := \varPsi _{\varphi }(\varvec{P_2})\), the \(\hbox {iDAU}\) operation can be evaluated with \(\underline{{8\mathsf {M}+7\mathsf {S}}}\) (instead of \(10\mathsf {M}+ 5\mathsf {S}\) from a straightforward application of \(\hbox {iADDU}\) followed by \(\hbox {iADDC}\)). In more detail, with the same notations as above, one can obtain \(\varvec{\tilde{P_2}} = (\widetilde{x_2}, \widetilde{y_2})\) and \(\varvec{\tilde{R}} = (\widetilde{x_R}, \widetilde{y_R})\) on \(E_\varphi \) together with \(\varphi \) as
When \(\varphi \) does not need to be returned, we see that one squaring is saved. In other words, \(\hbox {iDAU}^\prime \) can be evaluated with \(\underline{{8\mathsf {M}+ 6\mathsf {S}}}\).
For completeness, we describe \(\hbox {iACAU}^\prime \) as the combination of operation \(\hbox {iADDC}'\) followed by the operation \(\hbox {iADDU}^\prime \). A straightforward implementation requires \((5\mathsf {M}+ 3\mathsf {S})+(4\mathsf {M}+2\mathsf {S}) = 9\mathsf {M}+5\mathsf {S}\). However, we can mimic the trick of [10] by adding the squared difference of the x-coordinates as an input to \(\hbox {iACAU}^\prime \). This allows one to trade \(1\mathsf {M}\) against \(1\mathsf {S}\), yielding a cost of \(\underline{{8\mathsf {M}+ 6\mathsf {S}}}\). A detailed implementation follows.
The input is \(\varvec{P_1} = (x_1,y_1)\), \(\varvec{P_2} = (x_2, y_2)\), and \(C = (x_1 - x_2)^2\), and the output is \((\varvec{\tilde{R}}, \varvec{\tilde{S}}, {\tilde{C}}) = \hbox {iACAU}^\prime (\varvec{P_1}, \varvec{P_2}, C)\) with \(\varvec{\tilde{R}} = (\widetilde{x_R}, \widetilde{y_R})\), \(\varvec{S} = (\widetilde{x_S}, \widetilde{y_S})\) and where
and \({\tilde{C}} = (\widetilde{x_R} - \widetilde{x_S})^2\).
Remark 3
The formulas presented in this section make use of the square-multiply replacement technique. On some architectures, depending on the cost of a field addition, this is counterproductive. We refer the reader to [21] for some dedicated optimizations.
Appendix 3: More Scalar Multiplication Algorithms
We describe in this appendix a number of scalar multiplication algorithms.
1.1 Right-to-left scalar multiplication
We review two scalar multiplication algorithms. They both process the bits of scalar k from the right to the left. Algorithm 7 is the classical right-to-left method [19]. Algorithm 8 is a dual version of the Montgomery ladder. It was proposed in [16].
1.2 Scalar multiplication with elliptic curve isomorphisms
Below are some examples of scalar multiplication algorithms when used with the methodology of elliptic curve isomorphisms.
Rights and permissions
About this article
Cite this article
Goundar, R.R., Joye, M. Inversion-free arithmetic on elliptic curves through isomorphisms. J Cryptogr Eng 6, 187–199 (2016). https://doi.org/10.1007/s13389-016-0131-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13389-016-0131-8