<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Modulo Errors &#187; Algebraic Geometry</title>
	<atom:link href="http://maths.straylight.co.uk/archives/category/algebraic-geometry/feed" rel="self" type="application/rss+xml" />
	<link>http://maths.straylight.co.uk</link>
	<description>for when the margin is too small</description>
	<lastBuildDate>Thu, 12 Jan 2012 16:36:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>New records for integral multiples of points</title>
		<link>http://maths.straylight.co.uk/archives/545</link>
		<comments>http://maths.straylight.co.uk/archives/545#comments</comments>
		<pubDate>Thu, 24 Nov 2011 15:04:10 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[Postdoc]]></category>
		<category><![CDATA[SAGE]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=545</guid>
		<description><![CDATA[I&#8217;ve been trying to extend the results of the work described in the previous post, and following a suggestion of Noam Elkies have changed my search strategy from points corresponding to simple EDS triples to those given by (A,u,c) parametrisations as described here. Experimenting with these revealed some serious deficiencies with the height function in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to extend the results of the work described in the previous post, and following a suggestion of Noam Elkies have changed my search strategy from points corresponding to simple EDS triples to those given by (A,u,c) parametrisations as described <a href="http://www.math.harvard.edu/~elkies/low_height.html">here</a>. Experimenting with these revealed some serious deficiencies with the height function in SAGE, so EDS are still involved at a practical level- but with enough magma licenses, one could just test all the points directly.</p>
<p>In good news for maths but perhaps bad news for my would-be paper, this straightforward approach has yielded several new (and record-breaking) examples of small height points, which I&#8217;ve added to <a href="http://maths.straylight.co.uk/low_height">the tables</a>. A few also match or improve upon the best known values for most, highest, and most consecutive integral multiples. The table below summarises these: for the point [0,0] on the curve E:Y<sup>2</sup> + a<sub>1</sub>XY + a<sub>3</sub>Y = X<sup>3</sup> + a<sub>2</sub>X<sup>2</sup>,with <i>P</i> the corresponding point on the minimal model of E, we list the values of <i>n</i>&le;50 such that <i>nP</i> is integral.</p>
<table>
<tr>
<td></td>
<td>w</td>
<td>(A,u,c)</td>
<td>[a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>]</td>
<td>n</td>
</tr>
<tr>
<td>A</td>
<td>&radic;2</td>
<td>(w+1,w-1,1)</td>
<td>[-13w - 23, 49w + 70, -1820w - 2576]</td>
<td>1-10,12,13,15-20,25,35</td>
</tr>
<tr>
<td>B</td>
<td>&radic;6</td>
<td>(w-3,w-3,1)</td>
<td>[-12443w + 30479, -230496005w + 564597600, -7958566915120w + 19494428025840]</td>
<td>1-15,19,20,21,23,24,26,29</td>
</tr>
<tr>
<td>C</td>
<td>&radic;3</td>
<td>(-2w-4,-w-3,1)</td>
<td>[17298w + 29961, 332452269w + 575824221, 9670381784073w + 16749592578603]</td>
<td>1-12,14,15,18,24,29</td>
</tr>
<tr>
<td>D</td>
<td>&radic;3</td>
<td>(1,2w-4,1)</td>
<td>[2856w - 4944, 42937344w - 74369664, -746077879296w + 1292244793344]</td>
<td>1-12,14,15,16,18,27</td>
</tr>
<tr>
<td>E</td>
<td>&radic;7</td>
<td>(2w-6,1-w,1)</td>
<td>[-5922w + 15669, -35749431w + 94584105, -543103643331w + 1436917176387]</td>
<td>1-11,13,15,17,21,26</td>
</tr>
<tr>
<td>F</td>
<td>&radic;3</td>
<td>(-2w-4,w+1,1)</td>
<td>[1086w + 1881, 716035w + 1240209, 1277410855w + 2212540503]</td>
<td>1-8,10,11,12,14,15,16,21,22</td>
</tr>
<tr>
<td>G</td>
<td>&radic;5/2+1/2</td>
<td>(w,w-2,1)</td>
<td>[4-w,6w-18,60w-90]</td>
<td>1-15,18,22</td>
</tr>
</table>
<p><strong>Highest integral multiples</strong>: Over Q, the record is 31; this is exceeded by point A, at 35.<br />
<strong>Most integral multiples</strong>: Over Q, the record is 16. All seven examples above match or exceed this: point B has the most, at 22; followed by A at 20; C,D and G at 17; and E and F at 16.<br />
<strong>Most consecutive integral multiples</strong>: Over Q, the record is 14: points B and G both beat this, with their first 15 multiples being integral.</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/545/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nontorsion Points of Low Height on Elliptic Curves over Quadratic Fields</title>
		<link>http://maths.straylight.co.uk/archives/540</link>
		<comments>http://maths.straylight.co.uk/archives/540#comments</comments>
		<pubDate>Fri, 11 Nov 2011 13:30:50 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[Papers]]></category>
		<category><![CDATA[Postdoc]]></category>
		<category><![CDATA[SAGE]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=540</guid>
		<description><![CDATA[I have uploaded a preprint of my third paper to the arXiv. In a break from my cyclotomic matrix work, this revisits a project I first became interested in over four years ago: the search for points with small height on elliptic curves over number fields, through the use of elliptic divisibility sequences. There used [...]]]></description>
			<content:encoded><![CDATA[<p>I have uploaded a preprint of my third paper <a href="http://arxiv.org/abs/1111.2475v1">to the arXiv</a>. In a break from my cyclotomic matrix work, this revisits a project I first became interested in over four years ago: the search for points with small height on elliptic curves over number fields,  through the use of elliptic divisibility sequences. There used to be a series of posts on this topic here on Modulo Errors, but I think the paper does a better job of summarising the bits that are right, whilst some of my other claims (on the related question of computing pairings via elliptic nets) I am now dubious about, and a lot of the SAGE code supplied is unusably out of date, so I&#8217;ve taken them down for now. </p>
<p>However, I have created <a href="http://maths.straylight.co.uk/low_height">a more permanent page</a> that lists all the points/curves I recovered, in fuller detail than summarised in the paper: for each sequence one can easily write down two points on non-isomorphic curves, so in the interests of brevity I gave the recipe and then just one example per sequence. It&#8217;s my hope that new entries will be added to this list over time, by the eds method or others: in particular, I&#8217;m keen for it to include examples over number fields of higher degree than the quadratic cases it&#8217;s currently restricted to. Contributions welcome! </p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/540/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geometry Club Talk: Computational aspects of ECDLP</title>
		<link>http://maths.straylight.co.uk/archives/118</link>
		<comments>http://maths.straylight.co.uk/archives/118#comments</comments>
		<pubDate>Wed, 23 Apr 2008 09:05:35 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Complexity]]></category>
		<category><![CDATA[Cryptology]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=118</guid>
		<description><![CDATA[Notes from my geometry club talk given April 18th, 2008.]]></description>
			<content:encoded><![CDATA[<p>On Friday I gave a <a href="http://www.maths.ed.ac.uk/~s0198576/gc/">geometry club</a> seminar, speaking about some of the computational aspects of discrete-logarithm cryptography in general and as implemented for elliptic curves.  <a href="http://www.maths.ed.ac.uk/~s0677951/gc_apr_08.pdf">My notes</a> supplement rather than completely describe the talk, being heavier on the formalities and lighter on the narrative. </p>
<p>The topics covered are: Diffie-Hellman and one-way functions for key exchange; the generic Discrete Logarithm Problem and BSGS algorithm; scalar multiplication- addition chains, fast exponentiation, m-ary methods and windowing; group law implementations, Side-channel attacks and the Edwards form. </p>
<p>I&#8217;ve discussed several of these ideas elsewhere on this blog, as well as the cryptanalysis ideas I mentioned on the day but which are not in the notes. I also refered to a recent real-world example of a side-channel attack; see <a href="http://www.theregister.co.uk/2008/04/03/keeloq_master_key_found/">this</a> story from The Register for details.</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/118/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Year Presentation</title>
		<link>http://maths.straylight.co.uk/archives/88</link>
		<comments>http://maths.straylight.co.uk/archives/88#comments</comments>
		<pubDate>Mon, 11 Jun 2007 19:12:16 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebra]]></category>
		<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=88</guid>
		<description><![CDATA[Slides and Report from my first year presentation on the point counting problem.]]></description>
			<content:encoded><![CDATA[<p>Tomorrow I give my first year presentation, which determines whether I&#8217;m allowed to continue my studies. At 20-30 minutes, it&#8217;s a rather condensed version of my recent geometry club talk on the point counting problem, although this time I&#8217;m skipping more quickly through the fundamentals so that I can discuss some of the algorithms in depth, and taking a (hopefully) clearer route. </p>
<p>Both <a href="http://www.maths.ed.ac.uk/~s0677951/y1report.pdf">the report itself</a> and <a href="http://www.maths.ed.ac.uk/~s0677951/y1talk.pdf">the OHP slides</a> version are available (pdf).  Content covered: hyperelliptic curves, points, divisors, mumford polynomials and the Picard group/Jacobian; the discrete logarithm problem; explicit group law computation; characteristic polynomial of Frobenius and Weil theorems/interval; group-theoretic approaches; Schoof&#8217;s algorithm, SEA in genus 1,  genus 2 hybrid algorithms.</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/88/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geometry Club Talk: Hyperelliptic curves</title>
		<link>http://maths.straylight.co.uk/archives/83</link>
		<comments>http://maths.straylight.co.uk/archives/83#comments</comments>
		<pubDate>Fri, 27 Apr 2007 15:05:03 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Cryptology]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/archives/83</guid>
		<description><![CDATA[Slides from my talk on the geometry of hyperelliptic curves in connection with cryptography.]]></description>
			<content:encoded><![CDATA[<p>Today I spoke at <a href="http://www.maths.ed.ac.uk/~s0567465/GC/gchome.shtml">the Geometry Club</a> about the use of hyperelliptic curves in public key cryptography. You can find my slides <a href="http://www.maths.ed.ac.uk/~s0677951/hypertalk.pdf">here</a>, although they were supplemented by some boardwork that you&#8217;ll have to figure out from my other postings!</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/83/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genus 2 jacobian group law in Maple</title>
		<link>http://maths.straylight.co.uk/archives/80</link>
		<comments>http://maths.straylight.co.uk/archives/80#comments</comments>
		<pubDate>Wed, 18 Apr 2007 11:32:32 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[Maple]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/archives/80</guid>
		<description><![CDATA[Maple procedures for working with the group of rational divisors of a genus 2 hyperelliptic curve; designed for compatibility with generic_group procedures.]]></description>
			<content:encoded><![CDATA[<p><strong>Update 4/v/07: I&#8217;ve switched from Cantor&#8217;s definitions for a curve of the form y<sup>2</sup>=f(x) to a more general form, following   the notation of a paper by Tanja Lange; that also describes many efficiency gains for these calculations, none of which I have yet adopted&#8230; I&#8217;m also implementing these procedures in SAGE, which seems a more natural environment. So consider all genus 2 stuff as work in progress!</strong></p>
<p><a href="http://www.maths.ed.ac.uk/~s0677951/jac.mpl"><tt>jac</tt></a> is an implementation of the group law on the jacobian of a genus 2 hyperelliptic curve over a finite field, to work with the <a href="http://www.maths.ed.ac.uk/~s0677951/generic_group.mpl"><tt>generic_group</tt></a> procedures described <a href="http://maths.straylight.co.uk/archives/74">previously</a>. Standard version is for Maple 10; you can also get <a href="http://www.maths.ed.ac.uk/~s0677951/jac9.mpl">a version</a> for Maple 9, but this may not be updated as frequently.</p>
<p>An arbitrary divisor D is now either a list [a(u),b(u)] or the identity element <tt>zero</tt>. Addition of two such divisors D,E is given by <tt>g2JacGroupLaw(D,E)</tt> whilst <tt>g2JacMinus(D)</tt> gives the inverse. So these functions can be used as arguments for <tt>ncopies</tt> and so on. To set up the worksheet, specify a characteristic p; a degree five monic squarefree polynomial f(u) and a polynomial h(u) of degree at most 2. Only rational divisors and prime fields seem to work: working mod p generates sufficiently ugly Maple code to discourage me from trying extension fields there.</p>
<p>Also included are a couple of ways to get random divisors to compute with. <tt>randomDiv</tt> is incredibly slow as it naively tests random choices of a (monic quadratic) and b (linear) for suitability (that is, a dividing b^2+bh-f). <tt>randPoint(f,h)</tt> is smarter (transforming to y<sup>2</sup>=g(x), using the legendre symbol to test random choices of x for square g(x) then finding a root and transforming back to a suitable y) and of course you can combine two points into a weight 2 divisor using the group law.</p>
<p>Order computation, even with BSGS, becomes very slow for less than staggering values of p: this is of course the point cryptographically! For instance, it took my university workstation about 11 hours to find the order of a randomly constructed divisor from a curve over a field with around a hundred-thousand elements. </p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/80/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computation in the jacobian of hyperelliptic curves</title>
		<link>http://maths.straylight.co.uk/archives/79</link>
		<comments>http://maths.straylight.co.uk/archives/79#comments</comments>
		<pubDate>Wed, 18 Apr 2007 09:45:52 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=79</guid>
		<description><![CDATA[Polynomial representation of divisors and the notion of rationality.]]></description>
			<content:encoded><![CDATA[<p>Last time I introduced the idea of divisors on a curve; but an observant reader may have noticed that along the way the idea of rational points seemed to be lost. Further, whilst the Riemann-Roch theorem guarantees that a divisor from the jacobian will have a reduced representative, no indication was given as to how that representative is to be found. In this post I&#8217;ll try to clear up both of these issues.
</p>
<p>
Recall that a semi-reduced divisor D from the jacobian takes the form (&Sigma;<sub>i</sub><sup>r</sup>P<sub>i</sub>) &#8211; r&infin; where the P<sub>i</sub> are points (x<sub>i</sub>,y<sub>i</sub>) of C. We will represent this by a pair of polynomials D=div(a(u),b(u)) with the following properties:</p>
<p align=center><img src="http://straylight.co.uk/cgi-bin/mimetex.cgi?a(u)=\prod_i^r (u-x_i)"/></p>
<p align=center><img src="http://straylight.co.uk/cgi-bin/mimetex.cgi?b(x_i)=y_i\,\,1\leq i \leq r"/></p>
<p>such that b has degree less than that of a, and the appropriate multiplicity for repeated points- i.e., if P<sub>i</sub> occurs k times in the semi-reduced representation of D, then (u-x<sub>i</sub>)<sup>k</sup> divides b-y<sub>i</sub>. This ensures uniqueness.</p>
<p>
The empty divisor (zero element of the jacobian) is denoted by div(1,0); if a is linear (and hence b constant) then the divisor corresponds to a single point of C; for the point (x,y) the divisor is div(u-x,y). The degree of a is described as the weight; &#8216;most&#8217; reduced divisors will be of weight g.  Recall that the co-ordinates of a point were only required to be in A rather than K; we describe a divisor as rational over K if the coefficients of a and b are from K. Beware that a rational divisor may therefore be the sum of points which are not K-rational points of the curve; however, a weight 1 rational divisor obviously corresponds to a K-rational point.
</p>
<p>
The K-rational principal divisors of C are a subgroup of <b>P<sub>0</sub></b> and their image in J, J<sub>K</sub>, the subgroup of rational divisors of the Jacobian, is the object of computational interest. The K-rational points of C are then identified with a subset of J<sub>K</sub>; namely the divisors of weight at most 1; except in genus 1 (where they are J<sub>K</sub>), this isn&#8217;t a subgroup due to the lack of closure.
</p>
<p>
So we wish to work with rational divisors from J<sub>K</sub>.Given such divisors of the form div(a,b), it is undesirable to construct their sum by &#8216;unpacking&#8217; the points P<sub>i</sub> and forming new polynomials as the co-ordinates (roots of a, evaluations of b) might not be from K but A. Fortunately, it is also unnecessary: the only complications are connected to repeated points or the combination of a point and its negative; careful manipulation of gcds allows for direct computation of the semi-reduced form. See <sup>1</sup> for details, which also describes moving from semi-reduced to reduced form. To do this, note that for a divisor D=div(a,b), the divisor E=-((b-v)-D)=div(a&#8217;,b&#8217;) is equivalent to D with deg(a&#8217;)=max(2g+1,2)-deg(a); thus by repeated iteration we can move to a reduced representative (the explicit formulae are a&#8217;=(f-b<sup>2</sup>)/a, b&#8217;=-b mod a&#8217;).
</p>
<p>Maple procedures to do all this will be provided in the next post.</p>
<p>
<strong>Reference</strong><br />
<sup>1</sup><i>Computing in the Jacobian of a Hyperelliptic Curve</i> D.Gantor Mathematics of Comptuation Vol.48.No.177 (Jan., 1987).</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/79/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From points to divisors:  the jacobian.</title>
		<link>http://maths.straylight.co.uk/archives/78</link>
		<comments>http://maths.straylight.co.uk/archives/78#comments</comments>
		<pubDate>Tue, 17 Apr 2007 15:19:42 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=78</guid>
		<description><![CDATA[Extending the idea of the group of rational points of an elliptic curve to higher genus: the jacobian of a hyperelliptic curve.]]></description>
			<content:encoded><![CDATA[<p>One of the most celebrated properties of elliptic curves is that the set of rational points is a group, with a highly geometric explanation of the group law: the &#8216;chord and tangent&#8217; process. Two points and their sum are linked by consideration of the intersection of straight lines with the curve: as the curve is a cubic, there are three intersections (subject to some technical book-keeping with repeated points and the point &#8216;at infinity&#8217;). Such an approach clearly won&#8217;t transfer immediately to curves given by higher degree polynomials, as there will be more intersections, but as there are only finitely many, one would still hope to be able to define relationships between points. For instance, on an elliptic curve, if A, B and &infin; are colinear then B is -A; thus if on a more complicated curve we had A,B,C,&infin; colinear it might make sense to think of C as -(A+B), and then A+C as -B and so on. That is to say, there may be relationships between groups of points rather than individual points.
</p>
<p>
In algebraic geometry, this (and much more) is captured by the notion of a divisor; rather than present them here in full generality, I will consider the specific case of divisors on (hyperelliptic) curves. These will then serve as the building blocks for a group structure connected to the curve which reduces in the special case of an elliptic curve to the familiar group of rational points.
</p>
<p>
To fix ideas, let K be a field of characteristic other than 2 with algebraic closure A. A curve C is described as a hyperelliptic curve of genus g if there is some degree 2g+1 polynomial f with distinct roots such that v<sup>2</sup>=f(u) is a model of C: so the familiar elliptic curves are the special cases with genus 1.
</p>
<p>
A point P on C is a pair (x,y) of elements of A (not K) satisfying y=f(x); or the point at infinity &infin;. Then a divisor D of C is a finite formal sum &Sigma;<sub>i</sub>m<sub>i</sub>P<sub>i</sub> for integers m<sub>i</sub> and points P<sub>i</sub> on C.  D is described as having degree &Sigma;<sub>i</sub>m<sub>i</sub>; if all the m<sub>i</sub>&ge;0 then we write D&ge;0. Formal (that is, pointwise) addition of divisors gives the additive group <b>D</b> of divisors; its identity is the divisor consisting of summing no points and it has  a subgroup <b>D<sub>0</sub></b> consisting of divisors with degree zero.
</p>
<p>
Any polynomial p(u,v) can be considered as a function on C of the form p=a(u)+b(u)v, since v<sup>2</sup>=f(u). If p vanishes at (x,y) then the order of the zero (x,y) of p is the exponent of the highest power of (u-x) which divides a<sup>2</sup>-b<sup>2</sup>f.
</p>
<p>
Thus we can define functions on C as h=p/q for p,q polynomials from K[u,v] such that v<sup>2</sup>-f(u) does not divide q(u,v): that is, q is not everywhere zero on C. Then h will have a finite set of zeros (those of p) and of poles (those of q); we associate to h a divisor, (h) = &Sigma;<sub>i</sub>m<sub>i</sub>P<sub>i</sub> where the P<sub>i</sub> are those zeros and poles and m<sub>i</sub> their multiplicities:
</p>
<p align=center><img src="http://straylight.co.uk/cgi-bin/mimetex.cgi?(h)=\displaystyle\sum_{\mbox{zeros of } p} ord_{P_i}(p)P_i - \displaystyle\sum_{\mbox{zeros of } q} ord_{P_i}(q)P_i"/></p>
<p>
If there is a nonzero function h on C such that D a divisor is (h), then D is described as principal. the principal divisors form a subgroup <b>P</b> of <b>D<sub>0</sub></b> and hence <b>D</b>: the jacobian J of C is then the quotient <b>D<sub>0</sub>/</b><b>P</b>. That is, two divisors correspond to the same element of the jacobian if they differ by a principal divisor. This gives some idea as to how to simplify arbitrary divisors- we work in the jacobian and seek a simplest representative; that is, one comprised of the minimal number of points.
</p>
<p>
Consider that if (x,y) is a point P of C, then so is P&#8217;=(x,-y). The function u-x has zeros P and P&#8217; with a double pole at &infin; so P+P&#8217;+&infin; = (u-x) is principal and hence equivalent to zero mod <b>P</b>.   Hence -P&#8217; is equivalent to P-2&infin; so we can rewrite divisors to only feature positive multiples of points other than &infin; Thus in J, where the degree is necessarily 0, any element has a representation
</p>
<p align=center><img src="http://straylight.co.uk/cgi-bin/mimetex.cgi?D=\left\(\displaystyle\sum_{i=1}^r P_i\right\) - r\infty"/></p>
<p>such that if P<sub>i</sub> appears in D, then no P<sub>j</sub>=P&#8217; for any j different to i. Hence, any point of the form (x,0) will appear at most once. Such a representation is called semi-reduced; if r&le;g then it is called reduced.
</p>
<p>
Remarkably, (by the Riemann-Roch theorem) any divisor in the Jacobian will have a unique, reduced representative (in other words, any divisor is the sum of a reduced divisor and a principal divisor). Now we can see what&#8217;s really going on with the elliptic curve group law: as a reduced divisor will have r&le;1, it takes the form P-&infty; so there is an obvious isomorphism between the set of rational points and the Jacobian. Hence adding two points A,B on the curve gives rise to another point of the curve, by reducing the divisor A+B-2&infin; to some representative C-&infin; and setting A+B=C.
</p>
<p>
But with hyperelliptic curves, this needn&#8217;t be the case: the sum of two points is a perfectly good reduced divisor in the next simplest case of genus 2, for instance, so we can&#8217;t add two points and expect the answer to be a point. Hence we need to consider the divisors corresponding to rational points in the broader setting of the jacobian; to extract useful information about those points, we&#8217;ll need to consider the rational divisors. This motivates an alternative notation for divisors, more suitable to computation: I leave all these issues to the next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/78/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elliptic Curve group law in Maple</title>
		<link>http://maths.straylight.co.uk/archives/75</link>
		<comments>http://maths.straylight.co.uk/archives/75#comments</comments>
		<pubDate>Tue, 03 Apr 2007 11:23:43 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[Maple]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/archives/75</guid>
		<description><![CDATA[Maple procedures for working with the group of rational points of an elliptic curve; designed for compatibility with generic_group procedures.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.maths.ed.ac.uk/~s0677951/ella.mpl"><tt>ella</tt></a> is an update of <tt>gla</tt>, the elliptic curve group law procedures, to work with the <a href="http://www.maths.ed.ac.uk/~s0677951/generic_group.mpl"><tt>generic_group</tt></a> procedures described <a href="http://maths.straylight.co.uk/archives/74">previously</a>.</p>
<p>An arbitrary point P is now either a list [x,y] or the identity element <tt>zero</tt>. Addition of two such points P,Q is given by <tt>ellGroupLaw(P,Q)</tt> whilst <tt>ellMinus(P)</tt> gives the inverse. So these functions can be used as arguments for <tt>ncopies</tt> and so on. Setting up the curve <a href="http://maths.straylight.co.uk/archives/54">is</a> <a href="http://maths.straylight.co.uk/archives/55">as</a> <a href="http://maths.straylight.co.uk/archives/56">described</a> for <tt>gla</tt>: specify variables <i>a_1</i> through <i>a_6</i> and optionally set <tt>workModM</tt> and a modulus <i>M</i> for computation over prime fields.  The <tt>getQuantities</tt> function is also included for convenience; order calculations and functions like the old  <tt>mnadd</tt> should make use of the <tt>generic_group</tt> procedures and thus are omitted.</p>
<p>I&#8217;m keeping <tt>gla</tt> available for use with <tt>torsion_tools</tt>, most of the functions of the latter depend strongly on the underlying group being that of an elliptic curve so cannot be translated to generic form, so I can&#8217;t be bothered to update the notation from x,y to [x,y] ! </p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/75/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baby Steps, Giant Steps, and element orders</title>
		<link>http://maths.straylight.co.uk/archives/73</link>
		<comments>http://maths.straylight.co.uk/archives/73#comments</comments>
		<pubDate>Mon, 02 Apr 2007 16:53:30 +0000</pubDate>
		<dc:creator>Graeme</dc:creator>
				<category><![CDATA[Algebraic Geometry]]></category>
		<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Cryptology]]></category>
		<category><![CDATA[Group Theory]]></category>
		<category><![CDATA[Number Theory]]></category>
		<category><![CDATA[PhD]]></category>

		<guid isPermaLink="false">http://maths.straylight.co.uk/?p=73</guid>
		<description><![CDATA[Establishing the order of an element by BSGS.]]></description>
			<content:encoded><![CDATA[<p>The discrete logarithm problem is the vital part of elliptic curve cryptography, but can be defined (to varying cryptographic strength) for any cyclic group:  </p>
<blockquote><p><strong>Discrete Logarithm Problem (DLP)</strong><br />
Let G be a cyclic group, with operation &oplus;.  Let [n] represent (n-1)-fold application of &oplus; i.e., [2]g=g&oplus;g, [3]g=g&oplus;g&oplus;g etc.<br />
<br />
Given g,h from G, the discrete logarithm problem is to find t such that [t]g=h.</p>
</blockquote>
<p>The baby-step, giant step (BSGS) algorithm is a generic algorithm for solving the DLP- that is to say, it makes no appeal to properties of the group involved, merely calculating abstractly with &oplus;.  There is a theoretical upper bound to the effectiveness of generic algorithms, and BSGS approaches are of that order of magnitude. </p>
<p>The simplest demonstration of BSGS (the original by Shanks) assumes that g generates G, with both of known order n: recall that the group order is simply the number of elements it contains, whereas the order of an element g is the least n such that [n]g=id<sub>G</sub>, should such a value exist. The order n of an element always divides the order of the group N, with equality when g generates G.  Between the two there is also the exponent, the least value e such that [e]g=id<sub>G</sub> for all g in G; for cyclic groups this is N, but for products of cyclic groups (the structure of groups of rational points) it is the lowest common multiple of their respective orders, and thus, although a divisor of N, may be significantly smaller than it.</p>
<p>So, if we can find an order m rational point on a curve, we know that the cardinality of the group of rational points is zero modulo m. By testing random points and taking the lowest common multiple of their order we can usually find the exponent e of the group. With luck, but not always, this will be large enough that when combined with bounds on the cardinality the latter is established exactly (as with modular information in the SEA algorithm). </p>
<p>But it is no good attempting to do so using an algorithm that requires the order of the point! There are BSGS algorithms for the DLP which can handle unknown order, for a given g we can apply these to solve for h=id<sub>G</sub> in the cyclic group generated by g. Provided the algorithm gives the minimal t such that [t]g=h=id<sub>G</sub> in G=&lt;g&gt;, then t is the order of g. </p>
<p>One such algorithm, by Terr, is given in Cohen and Frey&#8217;s <i>Handbook of Elliptic and Hyperelliptic curve cryptography</i> (my current bible!) It relies on the following observation:</p>
<blockquote><p>
<p>Let T<sub>n</sub> be the <em>n</em>th triangular number: that is, defined by the recursion T<sub>1</sub>=0, T<sub>n+1</sub>=T<sub>n</sub>+n.<br />
<br />Then any non-negative integer t, there are unique integers j and k with t=T<sub>j+1</sub>-k with 0&le;k&lt;j.</p>
<p>
<em>To see how, notice that there is a unique j such that t lies in the interval (T<sub>j</sub> , &#8230; , T<sub>j+1</sub>]=(T<sub>j+1</sub>-j , &#8230; , T<sub>j+1</sub>-0] and that this interval has width j so there is an appropriate choice of k. </em>
</p></blockquote>
<p>We then suppose that t satisfies [t]g=h. Then we have [T<sub>j+1</sub>]g=h&oplus;[k]g. So, instead of testing each [t] in turn until we hit equality, for a given j we need only test the &#8216;giant step&#8217; [T<sub>j+1</sub>]g against the set of &#8216;baby steps&#8217; &beta;={&beta;<sub>i</sub>}={h&oplus;[0]g,&#8230;,h&oplus;[i]g,&#8230;,h&oplus;[j-1]g. If that j yields no matches, we move to j&#8217;=j+1: by keeping track of [j]g at each iteration, the new T<sub>j&#8217;+1</sub> and the extra h&oplus;[j'-1]g are found by a single group operation each. Hence this is attractive from both storage and time complexity perspectives: we need only record the baby steps &beta;, [j]g and a single giant step at any given iteration j, whilst the time complexity is of order t<sup>1/2</sup>.</p>
<blockquote><p><strong>Terr&#8217;s BSGS variant for the DLP</strong><br /><em>Finds t such that [t]g=h for g generating G of unknown order, h from G.</em><br />
<br />Initialise &beta;={&beta;<sub>0</sub>=h}, &gamma;=&delta;=id<sub>G</sub>, j=0. (<em>(For each iteration, we have &gamma;=[T<sub>j+1</sub>]g and &delta;=[j]g</em>)<br />
Then loop over j as follows:</p>
<ul>
<li>Increment j by 1, then update:
</li>
<li>Set &delta;=&delta;&oplus;g=[j-1]g&oplus;g=[j]g.</li>
<li>Set &gamma;=&gamma;&oplus;&delta;=[T<sub>j</sub>]g+[j]g=[T<sub>j+1</sub>]g.</li>
<li>If j&ge;2 then
<ul>
<li>For s from 0 to j, if &gamma;=&beta;<sub>s</sub> then return T<sub>j+1</sub>-s</li>
</ul>
</li>
<li>Add &beta;<sub>j</sub>=&beta;<sub>j-1</sub>&oplus;g to &beta;</li>
</ul>
</blockquote>
<p>I&#8217;ve implemented this generic DLP algorithm and an order-finding version (which requires you to catch g=id<sub>G</sub>) as Maple procedures for arbitrary groups- details on that will be in the next post! BSGS-based approaches become impractical at finite field sizes well within the grasp of SEA for counting on elliptic curves; but are of interest in the higher genus case which lacks an Elkies procedure.</p>
]]></content:encoded>
			<wfw:commentRss>http://maths.straylight.co.uk/archives/73/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

