Ask Your Question

implement given divisor as a specific hyperelliptic curve divisor

asked 2018-01-13 12:03:30 +0100

sherifasagewad gravatar image

updated 2018-01-13 17:26:05 +0100

I get the values of a divisor for a hyperelliptic curve from a research paper to ensure the divisor is correct and i want to use this divisor on calculation.

so Idid the following:

A Secured Cloud System using Hyper Elliptic Curve and in sage:

p = 4112543547855339322343814790708185367671872426434747235319998473455582535888229747778325047393413053
K = GF(p)
R.<x> = K[]

f = x^5 + 7943193*x^4 + 6521255*x^3 + 1065528*x^2 + 3279922*x + 3728927
C = HyperellipticCurve( f )
J = C.jacobian()
X = J(K)

u, v = x^2 + 22457213658579645161*x + 62960708771725664757, 65279057408798633572*x + 32004384923913711271
D = X( [u,v] )

verbose 0 (3324:, groebner_basis) Warning: falling back to very slow toy implementation. verbose 0 (1083:, dimension) Warning: falling back to very slow toy implementation. Error in lines 9-9 Traceback (most recent call last):
File "/cocalc/lib/python2.7/site-packages/smc_sagews/", line 1013, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> File "/ext/sage/sage-8.1/local/lib/python2.7/site-packages/sage/schemes/hyperelliptic_curves/", line 145, in __call__ return JacobianMorphism_divisor_class_field(self, tuple(P)) File "/ext/sage/sage-8.1/local/lib/python2.7/site-packages/sage/schemes/hyperelliptic_curves/", line 388, in __init__ polys, C)) ValueError: Argument polys (= (x^2 + 22457213658579645161x + 62960708771725664757, 65279057408798633572x + 32004384923913711271)) must be divisor on curve Hyperelliptic Curve over Finite Field of size 4112543547855339322343814790708185367671872426434747235319998473455582535888229747778325047393413053 defined by y^2 = x^5 + 7943193x^4 + 6521255x^3 + 1065528x^2 + 3279922x + 3728927.

Does this mean the paper is wrong or I am at wrong. and if so, how can I modify my work?

edit retag flag offensive close merge delete


Please format your code, so that it is displayed properly. On this page, the markdown is - for instance - considering a star, *, to be something that starts italic text. For instance, *star* is shown as star . But we need of course a * in the above code with an other meaning.

In order to force a proper display, after applying the site markdown, one can proceed as follows:

  • copy and paste the python block (in a new line (after a new line)), then mark it, if not already marked, then press Control+K on it. (This will further indent the code in the typing frame.)
  • alternatively press that button with 101 and 010 in the "frame menu bar", where the question was posted.
  • or just indent once more (four spaces) before copy pasting...
dan_fulea gravatar imagedan_fulea ( 2018-01-13 13:42:36 +0100 )edit

If i woul have to trust either sage or a paper, then sage is my choice. In the given case, we may add asnegative "style arguments" for the paper:

  • the prime is "huge", but all coefficients in multiples of a "random divisor" are very "small". And which multiples are taken is also hidden in the darkness.
  • the test for $f-v^2= 0$ modulo $u$ fails for every "Mumfortd pair" published in the article.
  • we get a very accurate precision for the time taken by each computation, that has even more "relevant digits" than some "big coefficients in the Mumford representations", for instance: To create Divisor, it took 0.28114057028514255 Seconds - how can i give credit to such a paper?
  • references tend rather to mention elliptic curves, no "hype", and there is no page reference!
dan_fulea gravatar imagedan_fulea ( 2018-01-14 09:53:54 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-01-14 15:22:52 +0100

dan_fulea gravatar image

The cited source above claims things in a two columns paper, that cannot be valid.

To support this, and to give an answer to the question "how can I modify my work?", please let us consider an other source using:

  • the same hyperelliptic curve
  • over the same prime
  • where there appears a divisor with Mumford representation $(u,v)$ with more "realistic" coefficients in $u,v$:

Let us take a look at Table 5.4. inside the above Chapter 5, and adapt the code to work with the new objects in this working reference:

p = 4112543547855339322343814790708185367671872426434747235319998473455582535888229747778325047393413053
K = GF(p)
R.<u> = K[]
f = u^5 + 7943193*u^4 + 6521255*u^3 + 1065528*u^2 + 3279922*u + 3728927

C = HyperellipticCurve( f )
J = C.jacobian()
X = J(K)

U = ( u^2
      + 1860389956661272000673008332624408105124473591357802495195699152127038244919646073105431091649161433*u
      + 3678638643325468767033409217184617082278646180398696096065435808423595790408365381053077562453250122 )

V = ( 1442288836874733903146967744806211994245652783209857240169344848296298432525255771657442734321755066*u
      + 921980454689397557939882885330855476778834577885555086747866424426336117619472682642574975583793355 )

D = X( [ U,V ] )

key = 11794224706464405453771880923682985303502368223256244790322242497664987902757947838816724010526943231
div = key * D

And sage confirms the printed result from this Chapter 5, page 107:

sage: print div
(x^2 + 1334417218673579196183082084171449472807365544624463016735162813781624145553691422830410095888029556*x + 3947000779241763670672412101498061083590545643436596730239170524313050659358606510365451650167089110, y + 3685255333461212784675197538912907368200372565862892461204210868447776269393357974512751786077530346*x + 4039903126531302725487748758957892552553012169705313271281907787620627040317525523860359172450156937)

Note: The computation also gives the warning:

verbose 0 (3324:, groebner_basis) Warning: falling back to very slow toy implementation.
verbose 0 (1083:, dimension) Warning: falling back to very slow toy implementation.

Note: This post is related to 40509 on this site.

Note: As mentioned in the comment, the coefficients of $(u,v)$ are expected to be (at least for $k\cdot D$) as "big" as the prime $p$...

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-01-13 12:03:30 +0100

Seen: 464 times

Last updated: Jan 14 '18