aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters/90-crypto/rechnungen/elliptic.maxima
diff options
context:
space:
mode:
authorAndreas Müller <andreas.mueller@ost.ch>2021-02-02 21:31:33 +0100
committerAndreas Müller <andreas.mueller@ost.ch>2021-02-02 21:31:33 +0100
commit5125e2d9711ffd6904384159829673155cab683d (patch)
tree1cfe30bf0736adb7f59a50ec7a804e09b2ce9bf8 /buch/chapters/90-crypto/rechnungen/elliptic.maxima
parentintro to elliptic curve crypto (diff)
downloadSeminarMatrizen-5125e2d9711ffd6904384159829673155cab683d.tar.gz
SeminarMatrizen-5125e2d9711ffd6904384159829673155cab683d.zip
new stuff
Diffstat (limited to '')
-rw-r--r--buch/chapters/90-crypto/rechnungen/elliptic.maxima42
1 files changed, 42 insertions, 0 deletions
diff --git a/buch/chapters/90-crypto/rechnungen/elliptic.maxima b/buch/chapters/90-crypto/rechnungen/elliptic.maxima
new file mode 100644
index 0000000..8c43e6c
--- /dev/null
+++ b/buch/chapters/90-crypto/rechnungen/elliptic.maxima
@@ -0,0 +1,42 @@
+/*
+ * elliptic.maxima
+ *
+ * (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+ */
+
+p: Y^2+X*Y - X^3 - a*X -b;
+
+x: x1*t+(1-t)*x2;
+y: y1*t+(1-t)*y2;
+
+q: subst(x,X,p);
+q: subst(y,Y,q);
+q: ratsimp(expand(q));
+tex(q);
+
+qr: divide(q,t*(t-1),t);
+r: qr[2];
+q: qr[1];
+tex(q);
+
+subst(0,t,r);
+subst(1,t,r);
+
+tex(r);
+
+polydecomp(qr[2], t);
+
+s: solve(q = 0, t);
+tex(s);
+
+x3: ratsimp(expand(subst(s, x)));
+y3: ratsimp(expand(subst(s, y)));
+
+tex(x3);
+tex(y3);
+
+Y3: expand(y3 * (x2-x1)^3 - (y2-y1)^3 - (x2-x1)*(y2-y1)^2 );
+Y3: factor(expand(Y3));
+tex(Y3);
+
+