Skip to main content
Log in

A class of safe and efficient binary Edwards curves

  • Regular Paper
  • Published:
Journal of Cryptographic Engineering Aims and scope Submit manuscript

Abstract

This work describes a family of binary Edwards curves that admit modular reductions (an operation that can be responsible for up to 30% of the processing time in point arithmetic) twice as fast than the best usual settings, while essentially being as secure as a binary elliptic curve can be (in terms of being rigid and twist safe). Moreover, we present a hardware architecture with a generic VHDL description that can be synthesized to any FPGA with enough area to support the circuit. For this architecture, we are able to execute a point multiplication by scalar on \(\mathbb {F}_{562}\) in 2.28 ms on Cyclone IV GX, in 1.23 ms on Virtex-7 and in 1.01 ms on Zynq 7020.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

Notes

  1. Complete operation: when it is possible to calculate the result with one logical operation, regardless of input value.

  2. Approximate value due synthesis optimizations.

  3. This has been extensively tested manually to the fields of interest.

References

  1. Adapteva. Parallella board. www.parallella.orgboard (2015)

  2. Altera. Quartus II web edition (2018). http://dl.altera.com/?edition=lite

  3. Azarderakhsh, R., Reyhani-Masoleh, A.: Efficient FPGA implementations of point multiplication on binary edwards and generalized hessian curves using gaussian normal basis. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 20(8), 1453–1466 (2012)

    Article  Google Scholar 

  4. Bernstein, D.J., Lange, T.: Faster Addition and Doubling on Elliptic Curves, pp. 29–50. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  5. Bernstein, D.J., Lange, T., Farashahi, R.R.: Binary Edwards curves. In: Oswald, E., Rohatgi, P. (eds.) Cryptographic Hardware and Embedded Systems-CHES 2008. Lecture Notes in Computer Science, vol. 8, pp. 244–265. Springer, Heidelberg (2008)

  6. Chatterjee, A., Sengupta, I.: FPGA implementation of binary Edwards curve using ternary representation. In: Proceedings of the 21st Edition of the Great Lakes Symposium on Great Lakes Symposium on VLSI, pp. 73–78. ACM (2011)

  7. Chatterjee, A., Sengupta, I.: Performance modelling and acceleration of binary Edwards curve processor on FPGAs. Int. J. Electron. Inf. Eng. 2(2), 80–93 (2015)

    Google Scholar 

  8. Edwards, H.M.: A normal form for elliptic curves. Bull. Am. Math. Soc. 44, 393–422 (2007)

    Article  MathSciNet  Google Scholar 

  9. Farias, L.A., Albertini, B.C., Barreto, P.S.L.M: Parallelism level analysis of binary field multiplication on FPGAs. In: 2015 Brazilian Symposium on Computing Systems Engineering (SBESC), pp. 64–69 (2015)

  10. Farias, L.A., Albertini, B.C., Barreto, P.S.L.M: Cryptographic architecture for co-process on consumer electronics devices. In: 2016 IEEE International Symposium on Consumer Electronics (ISCE), pp. 3–4 (2016)

  11. Galbraith, S.D., Hess, F., Smart, N.P.: Extending the GHS Weil descent attack. Cryptology ePrint Archive, Report 2001/054, 2001. http://eprint.iacr.org/2001/054

  12. Gövem, B., Järvinen, K., Aerts, K., Verbauwhede, I., Mentens, N.: A fast and compact FPGA implementation of elliptic curve cryptography using lambda coordinates, pp. 63–83. Springer International Publishing, Cham (2016)

    Chapter  Google Scholar 

  13. Intel and Terasic. De2i-150 board. www.terasic.com.twen (2015)

  14. Itoh, T., Tsujii, S.: Structure of parallel multipliers for a class of fields GF (2m). Inf. Comput. 83(1), 21–40 (1989)

    Article  Google Scholar 

  15. Jacobson, M.J., Menezes, A., Stein, A.: Solving elliptic curve discrete logarithm problems using Weil descent. Cryptology ePrint Archive, Report 2001/041, 2001. http://eprint.iacr.org/2001/041

  16. Kim, K.H., Lee, C.O., Negre, C.: Binary Edwards curves revisited, pp. 393–408. Springer International Publishing, Cham (2014)

    Google Scholar 

  17. Lai, J.-Y., Huang, C.-T.: A highly efficient cipher processor for dual-field elliptic curve cryptography. IEEE Trans. Circuit Syst. II Express Briefs 56(5), 394–398 (2009)

    Article  Google Scholar 

  18. Loi, K.C., An, S., Ko, S.-B.: FPGA implementation of low latency scalable elliptic curve cryptosystem processor in GF (2m). In: 2014 IEEE International Symposium on Circuits and Systems (ISCAS), pp. 822–825 (2014)

  19. Loi, K.C.C., Ko, S.B.: High performance scalable elliptic curve cryptosystem processor for Koblitz curves. Microprocess. Microsyst. 37(4–5), 394–406 (2013)

    Article  Google Scholar 

  20. Montgomery, P.L.: Speeding the pollard and elliptic curve methods of factorization. Math. Comput. 48, 243–264 (1987)

    Article  MathSciNet  Google Scholar 

  21. Rashidi, B., Farashahi, R.R., Sayedi, S.M.: High-speed hardware implementations of point multiplication for binary Edwards and generalized Hessian curves. IACR Cryptol. ePrint Arch. 2017, 5 (2017)

    Google Scholar 

  22. Rivera J., Meulen R.D.: V. Weil descent page. www.cs.bris.ac.uk/~nigel/weil_descent.html (2017)

  23. Xilinx. Xilinx ise webpack 14.7. http://www.xilinx.comproductsdesign-toolsise-design-suiteise-webpack.html (2015)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Luckas A. Farias.

Additional information

L. Farias was supported by CAPES institutional share EPUSP. P. Barreto is Supported by the joint São Paulo Research Foundation (FAPESP)/Intel Research grant 2015/50520-6 “Efficient Post-Quantum Cryptography for Building Advanced Security Applications”.

Appendices

A Magma script

In the code present in this section, we are searching for fields with degree \(m=2*p\), where p covers each prime number in the gap from 234 to 300. (This gap can be changed if we intend to find others field size.)

We start p as 234 (and execute until m be 600). Then, we test if the result of \(x^{(m+1)}-1\) divided by \(x-1\) is irreducible. If it is irreducible, then we create a extension field F(z). With this field created, we search for a element rr in F(z) with trace zero.

Then we search for \(d\_1\) element; some values are different from those found previously. (In case the value that already has been found is \(z^{12} + z^{11} + z^8 + z^3 + z^2 + z\).)

After it we check whether the values that we are testing is a elliptic curve. If it is, we count who many points it have (with SEA function). We test whether this value of points is a probable prime multiplied by 2 or by 4.

If the SEA count is a probable prime number, we check the twist, and if the count of points in the twist yet is a probable prime number multiplied by 2 or by 4, then we found a good set of parameters for the curve that we describe in this paper.

figure c

B Sample curves: details

  • \(m = 58\):

    $$\begin{aligned} d_1= & {} z^8 + z^6 + z^5 + z^3 + z\\ n= & {} 288230375445473588\\= & {} 4 \,\times \, 72057593861368397\\ n'= & {} 288230376857949902\\= & {} 2 \,\times \, 144115188428974951 \end{aligned}$$
  • \(m = 82\):

    $$\begin{aligned} d= & {} z^{11} + z^9 + z^2 + 1\\ n= & {} 4835703278459576034907172\\= & {} 4 \,\times \, 1208925819614894008726793\\ n'= & {} 4835703278457457362742238\\= & {} 2 \,\times \, 2417851639228728681371119 \end{aligned}$$
  • \(m = 106\):

    $$\begin{aligned} d= & {} z^{14} + z^9 + z^6 + z^4 + z\\ n= & {} 81129638414606680316138098015796\\= & {} 4 \,\times \, 20282409603651670079034524503949\\ n'= & {} 81129638414606683075439912272334\\= & {} 2 \,\times \, 40564819207303341537719956136167 \end{aligned}$$
  • \(m = 178\):

    $$\begin{aligned} d= & {} z^{12} + z^{10} + z^6 + z^5 + z^4\\ n= & {} 3831238852164722145895867571509618001760\\&72870648066644\\= & {} 4 \,\times \, 957809713041180536473966892877404500\\&44018217662016661\\ n'= & {} 3831238852164722145895867564241927916332\\&96690443734446\\= & {} 2 \,\times \, 191561942608236107294793378212096395\\&816648345221867223 \end{aligned}$$
  • \(m = 226\):

    $$\begin{aligned} d= & {} z^{16} + z^{14} + z^{11}\\ n= & {} 1078397866686025591786680603480785148387\\&23978719346221822204112556116\\= & {} 4 \,\times \, 269599466671506397946670150870196287\\&09680994679836555455551028139029\\ n'= & {} 1078397866686025591786680603480785305503\\&73176660978358026624769437614\\= & {} 2 \,\times \, 539198933343012795893340301740392652\\&75186588330489179013312384718807 \end{aligned}$$
  • \(m = 346\):

    $$\begin{aligned} d= & {} z^{10} + z^9 + z^8 + z^6 + z^4\\ n= & {} 1433436634993794694756763059563804337997\\&8531182301756030815611442781745106431013\\&3494630692700326095277268\\= & {} 4 \,\times \, 358359158748448673689190764890951084\\&4994632795575439007703902860695436276607\\&7533373657673175081523819317\\ n'= & {} 1433436634993794694756763059563804337997\\&8531182301758015904249049554790844675046\\&7514121626438439615542062\\= & {} 2 \,\times \, 716718317496897347378381529781902168\\&9989265591150879007952124524777395422337\\&5233757060813219219807771031 \end{aligned}$$
  • \(m = 466\):

    $$\begin{aligned} d= & {} z^{22} + z^{20} + z^{17} + z^{16} + z^{11}\\ n= & {} 1905364105417475727161619402949930606536\\&0096085601630559443096677400950607274500\\&3825283402250238447512805874573608417060\\&858121508671009869012\\= & {} 4 \,\times \, 476341026354368931790404850737482651\\&6340024021400407639860774169350237651818\\&6250956320850562559611878201468643402104\\&265214530377167752467253\\ n'= & {} 1905364105417475727161619402949930606536\\&0096085601630559443096677400950501365216\\&6599558651346379224747915186354297664835\\&558867709992110895918\\= & {} 2 \,\times \, 952682052708737863580809701474965303\\&2680048042800815279721548338700475250682\\&6083299779325673189612373957593177148832\\&417779433854996055447959 \end{aligned}$$
  • \(m = 562\):

    $$\begin{aligned} d= & {} z^{20} + z^{15} + z^3 + 1\\ n= & {} 1509584969928616540896621832395307556366\\&7684881665761713504825200982496649568595\\&4083416982234451412114867987721595604655\\&9027609621738192282225111643168585180877\\&8317447524\\= & {} 4 \,\times \, 377396242482154135224155458098826889\\&0916921220416440428376206300245624162392\\&1488520854245558612853028716996930398901\\&1639756902405434548070556277910792146295\\&2194579361881\\ n'= & {} 1509584969928616540896621832395307556366\\&7684881665761713504825200982496649568595\\&4083473155779761289288449482280865502936\\&0788858082201641823824035757977571654041\\&6845168286\\= & {} 2 \,\times \, 754792484964308270448310916197653778\\&1833842440832880856752412600491248324784\\&2977041736577889880644644224741140432751\\&4680394429041100820911912017878988785827\\&0208422584143 \end{aligned}$$

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

A. Farias, L., C. Albertini, B. & Barreto, P.S.L.M. A class of safe and efficient binary Edwards curves. J Cryptogr Eng 8, 271–283 (2018). https://doi.org/10.1007/s13389-017-0174-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13389-017-0174-5

Keywords

Navigation