Download PDF

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Homogeneous coordinates wikipedia , lookup

Horner's method wikipedia , lookup

History of algebra wikipedia , lookup

System of linear equations wikipedia , lookup

Quadratic equation wikipedia , lookup

Cubic function wikipedia , lookup

Factorization of polynomials over finite fields wikipedia , lookup

Equation wikipedia , lookup

Fundamental theorem of algebra wikipedia , lookup

Quartic function wikipedia , lookup

Eisenstein's criterion wikipedia , lookup

Factorization wikipedia , lookup

System of polynomial equations wikipedia , lookup

Transcript
Math 445
Handy facts since the second exam
Don't forget the handy facts from the rst two exams!
Rational points on curves
For more general curves, dened by polynomials ( ) = 0 of higher degree, looking at how
lines meet the curve can provide a wealth of information.
Notation: Cf (R ) = f( ) 2 R 2 : ( ) = 0g For the most part, we will focus on cubic
polynomials , whose highest degree monomial is 3 2 2, and/or 3.
If is a line (generically, dened by an equation + + = 0, or 6= 0), which we
usually write = + = ( ) (if not vertical: = ), any point on both and Cf (R)
satises ( ) = (
+ ) = 0. This is a polynomial of degree = the (total) degree of
. It therefore has exactly (complex) roots (counting multiplicity), unless it is identically
0. So if meets Cf (R ) in more than points (counting multiplicity; we will consider this
shortly), then 0, i.e., 2 implies 2 Cf (R ), i.e., Cf (R ). Even more, if
is dened by ( ) = + + = 0 and meets Cf (R) in more than points, then
( ) = ( ) ( ) for some polynomial (of degree 1).
More generally, we can rene this by considering points in Cf (R ) with multiplicity. In the
one-variable case, a point is a solution to ( ) = 0 with multiplicity if is a root of
both and the rst 1 derivatives of (this is equivalent to ( ) having factor ( )m ).
In the multivariable case, = ( ) is a root of ( ) with multiplicity if is a root
of both and every partial derivative (
)i (
)j ( ) for +
. For the most part
we will worry about multiplicity 2, i.e., is a root of
, and
. Such a point
is called a double point of Cf (R). More generally, a point of a curve Cf (R) of multiplicity
greater than 1 is called a singular point. A curve with no singular points is called smooth.
As with quadratic curves, we can use knowledge of some rational points in Cf (R ), for
a cubic polynomial, to nd more, using lines. The idea now is to use the line through
two solutions to nd a third. Such a line will have rational slope, given by an equation
= ( ) = + . If we look to solve the polynomial ( ) = ( ( )) = 0, our two
points provide two solutions; the third root (which we can nd by factoring) will give us
the third solution (plugging into = ( ) to recover its -value). This is known as the
chord method.
If the cubic curve Cf (R) has a double point , we don't even need a second point; will serve
for both (so long as it has rational coordinates!). Even line with rational slope through
will give a third, rational, point; in fact, every rational solution can be found this way
(remembering the line with innite slope...).
If we only know one rational point = ( ) in Cf (R ), we can still nd a line for which
( ) = ( ( )) = 0 has a double root; the tangent line to Cf (R), is dened by the
equation x ( )( )+ y ( )( ) = 0, which implies (via the chain rule) ( ) = 0 ( ) = 0,
i.e., is a double root. [If has rational coeÆcients, this line has rational slope.] The third
root then gives us a new rational point in Cf (R ). This method is known as the tangent
method.
f x; y
x; y
f x; y
f
x ; x y; xy
L
ax
y
p x
mx
b
f x; mx
L x
by
x
y
c
a
L
b
f
b
c
d
d
L
d
p
P
L x; y
f x; y
ax
L
by
P
L
c
L x; y K x; y
d
K
a
d
p x
m
p
L
L
m
p
P
a; b
f
a
p x
x
f x; y
@ =@ x
@ =@ y
P
m
f
i
f; @ f =@ x
a
P
j < m
@ f =@ y
f
y
L x
mx
b
p x
y
L x
f x; L x
y
P
P
P
P
p x
a; b
f x; L x
f
a
P
x
a
f
P
y
b
p a
f
1
p
a
Projective space.
There are some situations when this approach seems to break down; for example with an
equation like
( ) = 2 ( 3 5 + 3)
the line through the solutions (1 1) and (1 1) (i.e., the vertical line = 1), meets Cf (R)
in only two points. [Plug in = 1 to verify this.] It is going to be very important to
us, however, that this approach not break down, and so we will take the (at the moment
somewhat irrational) step of \inventing" new solutions, to cover these cases. The idea is
to think of our solutions as living in a larger space; real projective space P2 (R). The idea
is to rst projectivize our equation, replacing ( ) = 0 with the homogeneous equation
(
)= 3 (
)=0
2
3
2
For example, our equation becomes
(
5
+ 3 3) = 0. Such an equation
has the property that (
) is a solution implies (
) for any , i.e., solutions
are \really" lines of solutions through the origin. P2 (R ) is nothing more than this; it
is the set of all lines through the origin in R 3 ; since exact values of the coordinates are
unimportant, we write points in P2 (R) as : : rather than (
). Since any
solution to (
) = 0 can be replaced with a constant multiple, any solution with
6= 0 has a corresponding solution with = 1. But if : : 1 is a solution, then
( ) = 0, i.e., it gives an ordinary solution in Cf (R ). The solutions with = 0 do not
have any corresponding solutions in Cf (R ), as we have originally interpreted it; they are
our extra solutions \at innity" in P2 (R ). They are found by projectivizing , and setting
= 0. In our example above, the point 0 : 1 : 0 is a solution. It is the third point on our
vertical line. It can in fact be interpreted as the vertical line; points in R 2 correspond to
lines : : with 6= 0, by looking at where the line meets the plane = 1 in R 3 . The
points : : 0, on the other hand, are lines in the -plane in R 3 , with slope
. So
0 : 1 : 0 corresponds to the vertical line in the -plane. In general, : : 0 is the point
in P2 (R ) where all lines of slope meet!
f x; y
y
;
x
x
;
x
x
f x; y
F X; Y ; Z
Y
Z f X=Z; Y =Z
Z
X
XZ
X; Y ; Z
Z
aX; aY ; aZ
X
Y
Z
a
X; Y ; Z
F X; Y ; Z
Z
Z
X
Y
f X; Y
Z
f
Z
X
X
Y
Z
Z
Z
Y
XY
XY
Y =X
a
b
b=a
Elliptic curves.
The type of curve where these tools prove the most useful are the elliptic curves. A cubic
curve Cf (R ) is called elliptic if it has no singular point (in P2 (R)), and has no linear
factor (i.e., Cf (R) contains no line). The quickest test for this is to verify both of these
properties over the complex numbers C ; and for this, we have the useful fact that
The polynomial ( ) = 2 ( ) ( cubic) denes an elliptic curve over C if and only if
has no repeated root (over C ). For such a curve, we have that any line through two points
of Cf (R ) intersects Cf (R ) in a unique third point (in P2 (R )), which nd as above.
We denote this third point . [When = , it is understood that the line meant is the
tangent line to Cf (R) at .] But this turns out to be, by itself, not terribly useful as a
binary operation; it is, for example, not associative. [It has the useful properties, however,
that AB=BA, and AB=C implies AC=B and BC=A.] To make a useful operation, we
proceed as follows.
Pick any point in Cf (R); call it 0. Then given
2 Cf (R ), we rst nd as above, and
then nd 0( ), and call it 0( ) = + . This product, it turns out, is much more
well behaved:
f
f x; y
y
q x
q
q
A; B
AB
A
B
A
A; B
AB
AB
A
B
2
AB
(1) + = + for all
2 Cf (R )
(2) + 0 = for all 2 Cf (R )
(3) For every 2 Cf (R ), there is a unique 2 Cf (R ) with + = 0
[In fact, = (00) .]
(4) For all
2 Cf (R ), ( + ) + = + ( + )
The last fact is the most involved to verify; it use the fact:
If and are cubic polynomials, has no linear factor, 1
9 are distinct points in
Cf (R ) \ Cg (R ) and 1 2 3 lie in a line , then there is a quadratic polynomial ( )
so that 4
9 2 Cq (R ).
[Typically, six points in the plane do not lie on a quadratic (other than the zero polynomial).]
When we apply this to the points
0 0( ) 0( ) (0( )) , and the polynomial ( ) = 1 ( ) 2( ) 3( ), where the line 1 contains
, 2 contains
0 0( ), and 3 contains 0( ) (0( )) , we nd that the last six points lie on
a quadratic. But the rst three of these lie on a line, and so the last three do, as well.
This implies that
(0( )) = (0( ))
and so ( + ) + = 0((0( )) ) = 0( (0( ))) = + ( + ). This argument really
only applies if the nine points above are actually distinct. When they are not, we perturb
slightly to make the nine points distinct, and apply \continuity".
the points 0
Taken together, the four properties (1) through (4) tell us that Cf (R ) is an abelian group
under +. If we choose 0 to be a rational point (i.e., 0 2 Cf (Q )), then Cf (Q ) forms a
subgroup of Cf (R ).
We can see that the actual choice of 0 certainly eects the denition of the addition, but it
does not have a big eect on the structure of the resulting group; if we choose a dierent
point 00 and dene = 00 ( ), then = + 00 , and therefore the function
: (Cf (R ) ) ! (Cf (R) +) dened by ( ) =
00 , is an isomorphism of groups.
Focusing on elliptic curves of the form ( ) = 2 ( 3
) (which is all we will need
for our applications), and using the point 0 : 1 : 0 at innity as 0, we can nd explicit
formulas for the addition of points. If = ( 1 1) and = ( 2 2), then (noting that
0( ) = (
)) + = 0( ) will equal
( 2 1 2 ( 1 + ( 2 2 1 2 )))
where = 2 1 , if 1 6= 2
2
1
0
if 1 = 2 and 1 6= 2
( 2 2 1 ( 1 + ( 2 3 1)))
2
where = 3 21 , if 1 = 2 and 1 = 2
A
B
B
A
A
A; B
A
A
A
B
B
B
A
A; B; C
f
A
A
B
g
C
A
B
C
f
P ;::: ;P
P ;P ;P
L
q x; y
P ;::: ;P
B; BC; C; AB;
g x; y
BC;
;
L
BC
x; y L
x; y L
L
C;
B
C
AB
AB ; A;
x; y
C
BC ;
L
AB ;
AB
A
;
AB
C
A
AB
C
B; AB; A L
C
A
BC
BC
A
B
C
; A; B; C
A
B
;
AB
A
;
B
A
f x; y
y
A
x; y
x;
m
y
x
x ;
m
x
M
A
B
y
y
x
x
x
x ;
M
x
x
y
y
B
x
x ;y
ax
B
b
x ;y
AB
m m
y
A
A
x
x
y
M M
x
a
1
y
x
x
x
y
y
Factoring integers using elliptic curves
Elliptic curves have turned out to have many uses in the \real" world. We will look at one
of them: providing the (to date) fastest known method to factor large integers. It uses the
group operation on Cf (Q ) , and is based on the fact that for a nite group , with order
G
3
, every element 2 satises = 0.
Our approach, the Elliptic Curve Method, is modelled on another factoring algorithm due
to Pollard, called the Pollard ( 1)-test. The idea is that if is a (large) integer, with
prime factor , then by Fermat, for any relatively prime to , j p 1 1, and so the g.c.d.
( p 1 1 ) 1. As usual, the problem is that we don't know , but for this test we guess
that 1 consists of a product of fairly small primes, and test ( n 1 ) for a (large)
product of fairly small numbers, in an eort to nd a g.c.d. that is both greater than 1 and
less than , giving us a proper factor of . In practice, we start with a randomly chosen
, and a sequence of fairly small numbers n , like n = . We then form the sequence
1 = , 2 = r11 = r1 , 3 = r22 = r1 r2 , and inductively, i+1 = ri = r1 r . We
then compute i = ( i 1 ). Noting that i 1j i+1 1 for every , and so ij i+1 for
every , we typically, compute the g.c.d.'s only occasionally (since we expect to get i = 1
for awhile). This process will always eventually stop, since for any prime divisor of ,
1 will divide 1 n = 1 2 for some , so n 1. The rst time this happens,
however, it might be that n = , and so the test fails; we then restart with a dierent .
The typical amount of time it take for this method to nd a factor is on the order of the
size of the smallest among the set of largest prime factors of 1, where ranges among
all of the prime factors of . The problem: this could be fairly large!
The elliptic curve method attempts to get around this problem. The basic idea behind the
method above is that we are attempting to express the identity element in Zp (the group
of units of Zp), as a power of some number , where the power is a product of fairly small
numbers. [The fun part is that we are doing this without actually choosing rst!] The
problem is that we are not guaranteed a where products of small numbers will work.
The ECM takes this problem and translates it into a framework where it is much more
likely to work, using elliptic curves mod .
The basic idea is to take the machinery we have developed for computing on elliptic curves,
and do all of the calculations mod , for some (unknown!) prime dividing . In practice,
this really means we do the calculations mod . The basic fact is that, using the formulas
for addition we have above (and really, it works in general), we can work out an addition
formula for points in what we choose to call Cf (Zp) . The formulas involve division, but
mod , we simply carry these out by instead multiplying by the invers (which we nd by
the Euclidean algorithm). We still need to know that this form of addition on Cf (Zp) gives
us a group; but from the formulas, the needed properties can be veried directly (including
associativity!).
To implement the ECM to nd a factor of an integer , we pick an elliptic curve Cf (Zp) by
choosing values for and , and a point on the curve. [Usually this is done the other
way around; pick a point you want on the curve, such as = (1 1), and choose the values
of and accordingly.] Cf (Zp) is a group of some nite (but unknown) order; the idea is
that we expect that for some choices of and , it has order a product of small primes,
and so a calculation like the one in the Pollard ( 1)-test will quickly succeed. But this
is where the fun starts!
The idea is to compute high multiples 1 n of a point; we do this as we dealt with high
powers long ago, by repeated doubling, and then adding together the necessary powers of
2 to get 1 n . Our calculations are supposed to be carried out mod , but they can't
n
g
G
n
g
p
N
p
a
;N
a
p p a
>
p
p
a
N
r
a
a
n
N
a
a
;N
a
a
g
a
a
a
r
n
a
a
;N
a
a
a
i
i
a
i
g
g
i
g
p
p
r
r
n
g
n
g
>
N
a
p
p
N
a
p
p
p
p
N
N
p
N
a
b
A
A
a
;
b
a
b
p
r
r
N
r A
r
p
4
be; we don't know . So instead we carry them out mod (while pretending we are
computing in Cf (Zp)). But this will not always work; not every integer has an inverse mod
. So in our calculations we might occasionally fail to be able to compute a step. But
this is a good thing! We will fail, because the quantity we need to invert, 2 1 , is not
relatively prime to , i.e., ( 2 1 ) 1 (or, when doubling, ((2 1) ) 1). Unless
this is a multiple of (i.e., since we are computing mod , 2 = 1 or j 1), we have
found what we sought; a proper factor of ! In point of fact, this is what the method is
designed to do; we don't even want to nd the order of in Cf (Zp), since the orderpof this
group really
has no relation to , it can, in fact, be any number between + 1 2 and
p
+ 1 + 2 . What we really want to do is to discover that we can't compute the order,
because the formulas break down and nds a factor of , before the computation nishes.
The point is that by varying the curve, we should relatively quickly stumble across one
for which Cf (Zp) would have the kind of order that would allow us to compute it, if the
computation were not going to break down. The basic idea is to nd a curve where the
calculation
p breaks down fairly quickly, and so we typically limit the size of 1 n (to
around , so it is at least the expected size of Cf (Zp) for the smallest prime dividing
), and vary the curve.
p
N
N
x
N
x
x ;N
>
y
N
N
x
x
;N
x
>
N y
N
A
N
p
p
p
p
N
r
N
p
N
5
r