1 TOOLS for Apple-CryptKit curve generation/testing.
 
   4 The state-of-the-art in ECC (elliptic-curve cryptography)
 
   5 is in a well known mode of imperfection.  For example,
 
   6 it is very easy to generate CM (complex-multiplication)
 
   7 curves, with known order and parameters; yet, it is suspected
 
   8 by some (though unproven in any sense of rigor)
 
   9 that better security accrues if curves are entirely
 
  10 "random" in the sense of random base prime p, and random (a,b)
 
  11 under minimal constraints such as prime curve order, etc.
 
  12 Thus the collection of this Directory is a potpourri of
 
  13 various tools, including a Schoof implementation (schoof.c, 
 
  14 schoofs.c) for arbitrary curves.  As expected, said implementation
 
  15 is very slow, yet we have used it for some of the current
 
  16 CryptKit curves, while for other curves we have used the
 
  17 fast CM methods, and for yet other curves we have borrowed
 
  18 recommended parameters from other investigators.
 
  20 Contained in this Directory are various C sources:
 
  22 * curvegen.c, curvegenFEE.c
 
  23   Utility for generating CM curves, links to other sources
 
  24   as shown in comment atop source.
 
  27   Utility for factoring such as curve orders;
 
  28   see comment atop source.
 
  30 * giants.c, ellproj.c, fmodule.c, tools.c
 
  31   Number-theoretical library sources, having standard and
 
  32   some ECC-specific tools.
 
  35   Curve-order finder, using the celebratd Schoof algorithm
 
  36   When run, you input p, a, b (Weierstrass parameterization)
 
  37   and out comes the curve order, sometimes after a very long
 
  38   wait.  The source schoofs.c is a "sieving Schoof" method
 
  39   as explained in the References below, for finding curves
 
  40   of prime-or-nearly-prime order (along with the same constraint
 
  43 together with Mathematica sources:
 
  46   A program to test current CryptKit points/orders.
 
  48 * FEED affine.nb, FEEDsansY.nb
 
  49   Programs for testing FEED, in particular the integrity of
 
  50   any choice for x1Minus (a coordinate for the twist curve).
 
  54 Crandall R and Pomerance C, "Prime numbers: a computational perspective," Springer-Verlag, 2001.
 
  56 Crandall, R. E., U.S. Patents #5159632 (1992), #5271061 (1993),
 
  57     #5463690 (1994), "Method and apparatus for public key exchange in 
 
  58     a cryptographic system."
 
  60 Crandall, R. E. 1996 U. S. Patent #5581616, "Method and apparatus
 
  61     for Digital Signature Authentication."