]> git.saurik.com Git - apple/security.git/blame - OSX/libsecurity_cryptkit/lib/CurveParamDocs/README
Security-57336.1.9.tar.gz
[apple/security.git] / OSX / libsecurity_cryptkit / lib / CurveParamDocs / README
CommitLineData
b1ab9ed8
A
1TOOLS for Apple-CryptKit curve generation/testing.
224 Apr 2001 REC
3
4The state-of-the-art in ECC (elliptic-curve cryptography)
5is in a well known mode of imperfection. For example,
6it is very easy to generate CM (complex-multiplication)
7curves, with known order and parameters; yet, it is suspected
8by some (though unproven in any sense of rigor)
9that better security accrues if curves are entirely
10"random" in the sense of random base prime p, and random (a,b)
11under minimal constraints such as prime curve order, etc.
12Thus the collection of this Directory is a potpourri of
13various tools, including a Schoof implementation (schoof.c,
14schoofs.c) for arbitrary curves. As expected, said implementation
15is very slow, yet we have used it for some of the current
16CryptKit curves, while for other curves we have used the
17fast CM methods, and for yet other curves we have borrowed
18recommended parameters from other investigators.
19
20Contained in this Directory are various C sources:
21
22* curvegen.c, curvegenFEE.c
23 Utility for generating CM curves, links to other sources
24 as shown in comment atop source.
25
26* factor.c
27 Utility for factoring such as curve orders;
28 see comment atop source.
29
30* giants.c, ellproj.c, fmodule.c, tools.c
31 Number-theoretical library sources, having standard and
32 some ECC-specific tools.
33
34* schoof.c, shoofs.c
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
41 for twists).
42
43together with Mathematica sources:
44
45* curverecords.nb
46 A program to test current CryptKit points/orders.
47
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).
51
52References
53
54Crandall R and Pomerance C, "Prime numbers: a computational perspective," Springer-Verlag, 2001.
55
56Crandall, R. E., U.S. Patents #5159632 (1992), #5271061 (1993),
57 #5463690 (1994), "Method and apparatus for public key exchange in
58 a cryptographic system."
59
60Crandall, R. E. 1996 U. S. Patent #5581616, "Method and apparatus
61 for Digital Signature Authentication."
62