<div dir="ltr"><div class="gmail_default" style="font-size:small">I was trying to work out quite why my code was behaving oddly and then I discovered that I was calculating the order of the group wrongly.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">What I am trying to do/have done is to make proxy re-encryption (and some other related tricks) work in Elliptic Curve. Right now I am working on the Edwards curve Ed25519 but the same scheme could work for Montgomery with some additional math to recover the X point and permit addition to be defined.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So the basic idea is that</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Normal DH agreement: x.y.B = y.x.B</div><div class="gmail_default" style="font-size:small">Split DH agreement: x.y.B = a.y.B + b.y.B where x = a + b</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">In the DH case, the same scheme works for x = a + b mod (p-1) since e^(p-1) = 1 mod p.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">In elliptic curve:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">q.X = Neutral</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Where q is the small order subgroup. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I am trying to get my head around what this means geometrically. </div></div>