Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography
The subject of the thesis at hand is the description of an efficient algorithm for finding an elliptic curve over a finite prime field of large characteristic suitable for use in cryptography. The algorithm is called cryptoCurve. It makes use of the theory of complex multiplication. Our work relies...
id |
ndltd-tu-darmstadt.de-oai-tuprints.ulb.tu-darmstadt.de-211 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
English en |
format |
Others
|
sources |
NDLTD |
description |
The subject of the thesis at hand is the description of an efficient algorithm for finding an elliptic curve over a finite prime field of large characteristic suitable for use in cryptography. The algorithm is called cryptoCurve. It makes use of the theory of complex multiplication. Our work relies on proposals of A.-M.Spallek and G.J.Lay/H.G.Zimmer. However, their work leaves several important questions and problems unanswered. First, neither author presents an algorithm to find a suitable cardinality, that is a prime field and a cardinality of a suitable elliptic curve group. We develop and describe a very efficient algorithm for this task; in addition, we give upper bounds of its complexity. In this efficient algorithm the prime field may not be chosen in advance. However, in some cases the field is given first. For instance, all international cryptographic standards which describe an algorithm for finding a suitable cardinality, make use of the latter approach (P1363, Chapter A.14.2.3, p.155, X9.62, Chapter E.3.2.c, p.115-116). We show how to significantly speed up these algorithms. Second, no previously proposed algorithm for the generation of an elliptic curve considers the class number of the endomorphism ring of the curve. The German Information Security Agency requires the class number of the maximal order containing the endomorphism ring to be at least 200. Our algorithm cryptoCurve respects this condition. Third, we develop and thoroughly investigate different methods to compute class polynomials. The computation of a class polynomial is an important subalgorithm in the complex multiplication approach. In general the integer coefficients of a class polynomial are very large. Hence their computation in practice is rather difficult. It was believed in the cryptographic community that only class polynomials of low degree, say of degree at most 50, are amenable to the complex multiplication approach. However, using our efficient algorithm, we are able to compute a class polynomial of degree up to 3000 in reasonable time, that is in less than 10 minutes on an ordinary PC. In addition, we are able to compute a class polynomial of degree 15000 on the same computer in less than two days. Fourth, we carry out a detailed practical investigation of the floating point precision needed to compute a class polynomial. The precision in use is important for the run time to compute a class polynomial in practice. However, in order to get a correct result, we have to choose the floating point precision with care. As of today, different precisions were proposed. All of them are only based on heuristic arguments, and none of the authors presents a practical investigation. In addition, none of the cryptographic standards P1363 or X9.62 gives a hint on how to choose an appropriate floating point precision. Furthermore, in case of the class polynomial due to N.Yui and D.Zagier, which uses Weber functions, we propose a new floating point precision to compute this polynomial in practice. Our precision yields a significant performance improvement. Sample tests show an acceleration of about 45 % in practice compared to the precision proposed by Lay/Zimmer. All algorithms of this thesis are implemented in C++ and available via the LiDIA module gec. |
author |
Baier, Harald |
spellingShingle |
Baier, Harald Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography |
author_facet |
Baier, Harald |
author_sort |
Baier, Harald |
title |
Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography |
title_short |
Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography |
title_full |
Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography |
title_fullStr |
Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography |
title_full_unstemmed |
Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography |
title_sort |
efficient algorithms for generating elliptic curves over finite fields suitable for use in cryptography |
publishDate |
2002 |
url |
https://tuprints.ulb.tu-darmstadt.de/211/1/dissertation_harald_baier.pdf Baier, Harald <http://tuprints.ulb.tu-darmstadt.de/view/person/Baier=3AHarald=3A=3A.html> (2002): Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography.Darmstadt, Technische Universität, [Online-Edition: http://elib.tu-darmstadt.de/diss/000211 <http://elib.tu-darmstadt.de/diss/000211> <official_url>],[Ph.D. Thesis] |
work_keys_str_mv |
AT baierharald efficientalgorithmsforgeneratingellipticcurvesoverfinitefieldssuitableforuseincryptography |
_version_ |
1719326810244644864 |
spelling |
ndltd-tu-darmstadt.de-oai-tuprints.ulb.tu-darmstadt.de-2112020-07-15T07:09:31Z http://tuprints.ulb.tu-darmstadt.de/211/ Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography Baier, Harald The subject of the thesis at hand is the description of an efficient algorithm for finding an elliptic curve over a finite prime field of large characteristic suitable for use in cryptography. The algorithm is called cryptoCurve. It makes use of the theory of complex multiplication. Our work relies on proposals of A.-M.Spallek and G.J.Lay/H.G.Zimmer. However, their work leaves several important questions and problems unanswered. First, neither author presents an algorithm to find a suitable cardinality, that is a prime field and a cardinality of a suitable elliptic curve group. We develop and describe a very efficient algorithm for this task; in addition, we give upper bounds of its complexity. In this efficient algorithm the prime field may not be chosen in advance. However, in some cases the field is given first. For instance, all international cryptographic standards which describe an algorithm for finding a suitable cardinality, make use of the latter approach (P1363, Chapter A.14.2.3, p.155, X9.62, Chapter E.3.2.c, p.115-116). We show how to significantly speed up these algorithms. Second, no previously proposed algorithm for the generation of an elliptic curve considers the class number of the endomorphism ring of the curve. The German Information Security Agency requires the class number of the maximal order containing the endomorphism ring to be at least 200. Our algorithm cryptoCurve respects this condition. Third, we develop and thoroughly investigate different methods to compute class polynomials. The computation of a class polynomial is an important subalgorithm in the complex multiplication approach. In general the integer coefficients of a class polynomial are very large. Hence their computation in practice is rather difficult. It was believed in the cryptographic community that only class polynomials of low degree, say of degree at most 50, are amenable to the complex multiplication approach. However, using our efficient algorithm, we are able to compute a class polynomial of degree up to 3000 in reasonable time, that is in less than 10 minutes on an ordinary PC. In addition, we are able to compute a class polynomial of degree 15000 on the same computer in less than two days. Fourth, we carry out a detailed practical investigation of the floating point precision needed to compute a class polynomial. The precision in use is important for the run time to compute a class polynomial in practice. However, in order to get a correct result, we have to choose the floating point precision with care. As of today, different precisions were proposed. All of them are only based on heuristic arguments, and none of the authors presents a practical investigation. In addition, none of the cryptographic standards P1363 or X9.62 gives a hint on how to choose an appropriate floating point precision. Furthermore, in case of the class polynomial due to N.Yui and D.Zagier, which uses Weber functions, we propose a new floating point precision to compute this polynomial in practice. Our precision yields a significant performance improvement. Sample tests show an acceleration of about 45 % in practice compared to the precision proposed by Lay/Zimmer. All algorithms of this thesis are implemented in C++ and available via the LiDIA module gec. 2002-05-14 Ph.D. Thesis PeerReviewed application/pdf eng only the rights of use according to UrhG https://tuprints.ulb.tu-darmstadt.de/211/1/dissertation_harald_baier.pdf Baier, Harald <http://tuprints.ulb.tu-darmstadt.de/view/person/Baier=3AHarald=3A=3A.html> (2002): Efficient Algorithms for Generating Elliptic Curves over Finite Fields Suitable for Use in Cryptography.Darmstadt, Technische Universität, [Online-Edition: http://elib.tu-darmstadt.de/diss/000211 <http://elib.tu-darmstadt.de/diss/000211> <official_url>],[Ph.D. Thesis] http://elib.tu-darmstadt.de/diss/000211 en info:eu-repo/semantics/doctoralThesis info:eu-repo/semantics/openAccess |