* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download PDF
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
Fundamental theorem of algebra wikipedia , lookup
Quartic function wikipedia , lookup
Eisenstein's criterion wikipedia , lookup
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