6 Finding good cryptographic elliptic curves
This chapter covers
- Using PARI/gp command line
- PARI library programming
- A program to find the number of points on an elliptic curve
- What constitutes a good curve
In this chapter, I’ll show you how to find good cryptographic curves using mathematicians’ software tools. At the end of this chapter, I’ll go over what "bad" and "good" mean for cryptography. The ability to find and use many different cryptographically secure curves increases security by forcing attackers to work hard to find breaks on every possible curve. The resulting curves are good for the applications in chapters 4
and 5.
Up to this point, we have assumed we know the cardinality of a curve (see section 4.1.1). Unfortunately, the mathematics of computing the number of points on an elliptic curve over finite fields is really deep. For those who want to dig into the details, I suggest starting with chapter VII in Blake et al. (1999). For this chapter, I am just going to use the mathematician’s tool PARI/gp, which has the point-counting algorithms built in. In addition, the authors of PARI/gp have optimized their point-counting algorithms for efficiency.
Appendix A describes how to get hold of PARI/gp. For those who are skilled with Python, you can get SageMath, which has PARI as just one of the options available.