Generating random (torsion) point on elliptic curve efficiently












1












$begingroup$


I am looking for an efficient way to generate a random point on an elliptic curve over a finite field, $E(mathbb{K})$.



I know that you can pick a random $x$, compute e.g. in Weierstrass coordinates $f=x^3+ax+b$, check if it is a quadratic residue and then solve $y^2=f$ using the Tonelli-Shanks or Cipolla algorithm. The former roughly has a complexity of $O(log^2_2|mathbb{K}|)$ multiplications on $mathbb{K}$, while the latter only conditionally runs faster. If your finite field is huge and your computational power weak, this can be a lot. Is there a way to do this faster?



Furthermore, what if I want the point to belong to a particular torsion group, e.g. let's say I want to generate a point $P$ with $[m]P=O$? Is there a shortcut for such points, or do I have to generate them, and then test?



EDIT:
In more detail, I am working with supersingular elliptic curves over finite field of characteristic $p=2^u3^vpm1$, such that $p$ prime. It roughly holds that $2^uapprox3^v$ such that there are two very large coprime torsion groups $E[2^u]$ and $E[3^v]$. The points I want to generate are in either of these torsion groups.



Thank you for any help!










share|cite|improve this question











$endgroup$












  • $begingroup$
    To generate a point with $[m]P=O$, it might be handy to know the order of the group.
    $endgroup$
    – Lord Shark the Unknown
    Jan 16 at 16:37










  • $begingroup$
    You can select random and encode it by Koblitz's encoding method. In Cryptography that is a problem of mapping messages to points.
    $endgroup$
    – kelalaka
    Jan 16 at 16:39










  • $begingroup$
    @LordSharktheUnknown Well, I am working on supersingular elliptic curves. In that case, the full torsion group $E[m]$ has order $m^2$, while the group generated by $P$ would be of order $m$. Or are you asking about the actual, numerical value of $m$?
    $endgroup$
    – Gemeis
    Jan 16 at 16:41












  • $begingroup$
    Finding the order of $E$ plus two generators shouldn't be much harder than computing the order of a single random point ?
    $endgroup$
    – reuns
    Jan 16 at 18:14










  • $begingroup$
    Torsion points are solutions to division polynomials, so maybe you can solve that instead? For any random $x$ you have $1/2$ chance of a solution $y$. This means on average only two tries. I tested that Tonelli-Shanks using Sage will complete this within tens of microseconds even if $|mathbb K|$ is around $2^{2000}$, is that fast enough?
    $endgroup$
    – Yong Hao Ng
    Jan 17 at 3:08


















1












$begingroup$


I am looking for an efficient way to generate a random point on an elliptic curve over a finite field, $E(mathbb{K})$.



I know that you can pick a random $x$, compute e.g. in Weierstrass coordinates $f=x^3+ax+b$, check if it is a quadratic residue and then solve $y^2=f$ using the Tonelli-Shanks or Cipolla algorithm. The former roughly has a complexity of $O(log^2_2|mathbb{K}|)$ multiplications on $mathbb{K}$, while the latter only conditionally runs faster. If your finite field is huge and your computational power weak, this can be a lot. Is there a way to do this faster?



Furthermore, what if I want the point to belong to a particular torsion group, e.g. let's say I want to generate a point $P$ with $[m]P=O$? Is there a shortcut for such points, or do I have to generate them, and then test?



EDIT:
In more detail, I am working with supersingular elliptic curves over finite field of characteristic $p=2^u3^vpm1$, such that $p$ prime. It roughly holds that $2^uapprox3^v$ such that there are two very large coprime torsion groups $E[2^u]$ and $E[3^v]$. The points I want to generate are in either of these torsion groups.



Thank you for any help!










share|cite|improve this question











$endgroup$












  • $begingroup$
    To generate a point with $[m]P=O$, it might be handy to know the order of the group.
    $endgroup$
    – Lord Shark the Unknown
    Jan 16 at 16:37










  • $begingroup$
    You can select random and encode it by Koblitz's encoding method. In Cryptography that is a problem of mapping messages to points.
    $endgroup$
    – kelalaka
    Jan 16 at 16:39










  • $begingroup$
    @LordSharktheUnknown Well, I am working on supersingular elliptic curves. In that case, the full torsion group $E[m]$ has order $m^2$, while the group generated by $P$ would be of order $m$. Or are you asking about the actual, numerical value of $m$?
    $endgroup$
    – Gemeis
    Jan 16 at 16:41












  • $begingroup$
    Finding the order of $E$ plus two generators shouldn't be much harder than computing the order of a single random point ?
    $endgroup$
    – reuns
    Jan 16 at 18:14










  • $begingroup$
    Torsion points are solutions to division polynomials, so maybe you can solve that instead? For any random $x$ you have $1/2$ chance of a solution $y$. This means on average only two tries. I tested that Tonelli-Shanks using Sage will complete this within tens of microseconds even if $|mathbb K|$ is around $2^{2000}$, is that fast enough?
    $endgroup$
    – Yong Hao Ng
    Jan 17 at 3:08
















1












1








1





$begingroup$


I am looking for an efficient way to generate a random point on an elliptic curve over a finite field, $E(mathbb{K})$.



I know that you can pick a random $x$, compute e.g. in Weierstrass coordinates $f=x^3+ax+b$, check if it is a quadratic residue and then solve $y^2=f$ using the Tonelli-Shanks or Cipolla algorithm. The former roughly has a complexity of $O(log^2_2|mathbb{K}|)$ multiplications on $mathbb{K}$, while the latter only conditionally runs faster. If your finite field is huge and your computational power weak, this can be a lot. Is there a way to do this faster?



Furthermore, what if I want the point to belong to a particular torsion group, e.g. let's say I want to generate a point $P$ with $[m]P=O$? Is there a shortcut for such points, or do I have to generate them, and then test?



EDIT:
In more detail, I am working with supersingular elliptic curves over finite field of characteristic $p=2^u3^vpm1$, such that $p$ prime. It roughly holds that $2^uapprox3^v$ such that there are two very large coprime torsion groups $E[2^u]$ and $E[3^v]$. The points I want to generate are in either of these torsion groups.



Thank you for any help!










share|cite|improve this question











$endgroup$




I am looking for an efficient way to generate a random point on an elliptic curve over a finite field, $E(mathbb{K})$.



I know that you can pick a random $x$, compute e.g. in Weierstrass coordinates $f=x^3+ax+b$, check if it is a quadratic residue and then solve $y^2=f$ using the Tonelli-Shanks or Cipolla algorithm. The former roughly has a complexity of $O(log^2_2|mathbb{K}|)$ multiplications on $mathbb{K}$, while the latter only conditionally runs faster. If your finite field is huge and your computational power weak, this can be a lot. Is there a way to do this faster?



Furthermore, what if I want the point to belong to a particular torsion group, e.g. let's say I want to generate a point $P$ with $[m]P=O$? Is there a shortcut for such points, or do I have to generate them, and then test?



EDIT:
In more detail, I am working with supersingular elliptic curves over finite field of characteristic $p=2^u3^vpm1$, such that $p$ prime. It roughly holds that $2^uapprox3^v$ such that there are two very large coprime torsion groups $E[2^u]$ and $E[3^v]$. The points I want to generate are in either of these torsion groups.



Thank you for any help!







finite-fields computational-complexity elliptic-curves cryptography torsion-groups






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Jan 21 at 10:38







Gemeis

















asked Jan 16 at 16:34









GemeisGemeis

133




133












  • $begingroup$
    To generate a point with $[m]P=O$, it might be handy to know the order of the group.
    $endgroup$
    – Lord Shark the Unknown
    Jan 16 at 16:37










  • $begingroup$
    You can select random and encode it by Koblitz's encoding method. In Cryptography that is a problem of mapping messages to points.
    $endgroup$
    – kelalaka
    Jan 16 at 16:39










  • $begingroup$
    @LordSharktheUnknown Well, I am working on supersingular elliptic curves. In that case, the full torsion group $E[m]$ has order $m^2$, while the group generated by $P$ would be of order $m$. Or are you asking about the actual, numerical value of $m$?
    $endgroup$
    – Gemeis
    Jan 16 at 16:41












  • $begingroup$
    Finding the order of $E$ plus two generators shouldn't be much harder than computing the order of a single random point ?
    $endgroup$
    – reuns
    Jan 16 at 18:14










  • $begingroup$
    Torsion points are solutions to division polynomials, so maybe you can solve that instead? For any random $x$ you have $1/2$ chance of a solution $y$. This means on average only two tries. I tested that Tonelli-Shanks using Sage will complete this within tens of microseconds even if $|mathbb K|$ is around $2^{2000}$, is that fast enough?
    $endgroup$
    – Yong Hao Ng
    Jan 17 at 3:08




















  • $begingroup$
    To generate a point with $[m]P=O$, it might be handy to know the order of the group.
    $endgroup$
    – Lord Shark the Unknown
    Jan 16 at 16:37










  • $begingroup$
    You can select random and encode it by Koblitz's encoding method. In Cryptography that is a problem of mapping messages to points.
    $endgroup$
    – kelalaka
    Jan 16 at 16:39










  • $begingroup$
    @LordSharktheUnknown Well, I am working on supersingular elliptic curves. In that case, the full torsion group $E[m]$ has order $m^2$, while the group generated by $P$ would be of order $m$. Or are you asking about the actual, numerical value of $m$?
    $endgroup$
    – Gemeis
    Jan 16 at 16:41












  • $begingroup$
    Finding the order of $E$ plus two generators shouldn't be much harder than computing the order of a single random point ?
    $endgroup$
    – reuns
    Jan 16 at 18:14










  • $begingroup$
    Torsion points are solutions to division polynomials, so maybe you can solve that instead? For any random $x$ you have $1/2$ chance of a solution $y$. This means on average only two tries. I tested that Tonelli-Shanks using Sage will complete this within tens of microseconds even if $|mathbb K|$ is around $2^{2000}$, is that fast enough?
    $endgroup$
    – Yong Hao Ng
    Jan 17 at 3:08


















$begingroup$
To generate a point with $[m]P=O$, it might be handy to know the order of the group.
$endgroup$
– Lord Shark the Unknown
Jan 16 at 16:37




$begingroup$
To generate a point with $[m]P=O$, it might be handy to know the order of the group.
$endgroup$
– Lord Shark the Unknown
Jan 16 at 16:37












$begingroup$
You can select random and encode it by Koblitz's encoding method. In Cryptography that is a problem of mapping messages to points.
$endgroup$
– kelalaka
Jan 16 at 16:39




$begingroup$
You can select random and encode it by Koblitz's encoding method. In Cryptography that is a problem of mapping messages to points.
$endgroup$
– kelalaka
Jan 16 at 16:39












$begingroup$
@LordSharktheUnknown Well, I am working on supersingular elliptic curves. In that case, the full torsion group $E[m]$ has order $m^2$, while the group generated by $P$ would be of order $m$. Or are you asking about the actual, numerical value of $m$?
$endgroup$
– Gemeis
Jan 16 at 16:41






$begingroup$
@LordSharktheUnknown Well, I am working on supersingular elliptic curves. In that case, the full torsion group $E[m]$ has order $m^2$, while the group generated by $P$ would be of order $m$. Or are you asking about the actual, numerical value of $m$?
$endgroup$
– Gemeis
Jan 16 at 16:41














$begingroup$
Finding the order of $E$ plus two generators shouldn't be much harder than computing the order of a single random point ?
$endgroup$
– reuns
Jan 16 at 18:14




$begingroup$
Finding the order of $E$ plus two generators shouldn't be much harder than computing the order of a single random point ?
$endgroup$
– reuns
Jan 16 at 18:14












$begingroup$
Torsion points are solutions to division polynomials, so maybe you can solve that instead? For any random $x$ you have $1/2$ chance of a solution $y$. This means on average only two tries. I tested that Tonelli-Shanks using Sage will complete this within tens of microseconds even if $|mathbb K|$ is around $2^{2000}$, is that fast enough?
$endgroup$
– Yong Hao Ng
Jan 17 at 3:08






$begingroup$
Torsion points are solutions to division polynomials, so maybe you can solve that instead? For any random $x$ you have $1/2$ chance of a solution $y$. This means on average only two tries. I tested that Tonelli-Shanks using Sage will complete this within tens of microseconds even if $|mathbb K|$ is around $2^{2000}$, is that fast enough?
$endgroup$
– Yong Hao Ng
Jan 17 at 3:08












0






active

oldest

votes












Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3075947%2fgenerating-random-torsion-point-on-elliptic-curve-efficiently%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Mathematics Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3075947%2fgenerating-random-torsion-point-on-elliptic-curve-efficiently%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Human spaceflight

Can not write log (Is /dev/pts mounted?) - openpty in Ubuntu-on-Windows?

張江高科駅