I want to double all the points on the elliptic curves in matlab

6 views (last 30 days)
I want to double all the points on the elliptic curves .I have written a code but it gives error. Matrix A contains few points but this code dosnot work.
%curve equation is y^2=x^3+17 mod 313
A=[[199 29] [200 26] [202 14] [203 110] [209 102]];
for i=1:5
B=multell(A(i),2,0,17,313);
end
B
  1 Comment
Bruno Luong
Bruno Luong on 17 Jul 2019
Edited: Bruno Luong on 17 Jul 2019
You have issue with construction and indexing of your A matrix.
Please revise MATLAB syntax and array indexing.

Sign in to comment.

Accepted Answer

Bruno Luong
Bruno Luong on 17 Jul 2019
Edited: Bruno Luong on 17 Jul 2019
See this post there a an algo to demonstrate doubling and adding points in EC.
Adapt for your case
% EL parameters
a = 0;
b = 17;
% Group Z/pZ parameter
p = 313;
A=[[199 29]; [200 26]; [202 14]; [203 110]; [209 102]]
B = zeros(size(A));
% Point
for k=1:size(A,1)
G = A(k,:);
% Compute G2 = 2*G
x = G(1);
y = G(2);
d = mod(2*y,p);
[~,invd,~] = gcd(d,p);
n = mod(3*x*x + a,p);
lambda = mod(n*invd,p);
x2 = mod(lambda*lambda - 2*x,p);
y2 = mod(lambda*(x-x2)-y,p);
G2 = [x2 y2];
B(k,:) = G2;
end
B

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!