金融学考研排名-傻傻
《信息安全概论》习题
学号: 姓名: 班级:
一、所使用的工具软件及环境:windows7+eclipse+jdk1.6
二、题目要求:
用编程语言实现椭圆曲线群上的倍点公式
三、实现代码:
import .*;
public class Test
{
public static int x,y,n,a,p;
public static int getX(int x)求逆
{
int i=1;
while(true)
{
if(modP(x*i)==1)
{
break;
}
i++;
}
return i;
}
public static int modP(int x)求模
{
if(x<0)
{
while(x<0)
{
x=x+p;
}
}
else
x=x%p;
return x;
}
public static void getR()计算倍点,得结果
{
int X=x,Y=y;
for(int i=1;i
if(X==x&Y==y)
{
int k=getK(a,x,y);
X=modP(k*k-x-X);
Y=modP(k*(x-X)-y);
}
else
{
int k=getk(x,y,X,Y);
X=modP(k*k-x-X);
Y=modP(k*(x-X)-y);
}
}
n(+X++Y+);
}
public static int getK(int a,int x,int y)计算倍点K
{
int k=(3*x*x+a)*getX(2*y);
return modP(k);
}
public static int getk(int x1,int y1,int x2,int y2)计算点加K
{
int k=(y2-y1)*getX(x2-x1);
return modP(k);
}
public static void main(String args[]) throws IOException
{
BufferedReader f=new BufferedReader(new
InputStreamReader());
n(请按如下格式输入要计算的倍点:);
n(椭圆曲线方程:y^2=aX^3+bx+c,请输入:a);
String s=ne();
a=nt(s);
n(所求点的坐标:Q(x,y),请输入x,y);
s=ne();
x=nt(s);
s=ne();
y=nt(s);
n(请输入素数p:);
s=ne();
p=nt(s);
n(所求的倍点:nQ,请输入n);
s=ne();
n=nt(s);
(点Q(+x++y+的+n+倍点结果+n+是);
getR();
}
}
四、程序运行结果:
地方志书每几年-俄罗斯人肉大转盘规则
学信网学历认证怎么弄-重庆大学自主招生
2017年高考分数-力加
世界五百强排名-不什么时什么成语
小时候长大后经典语句-送女班主任什么礼物好
右手规则-什么的长江
功率计算-人生正能量的经典句子
上海的大学排名一览表-5月一号放几天假
本文更新与2020-10-11 00:05,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/413231.html
-
上一篇:构造任意合式公式的真值表
下一篇:如何提升高价位产品复购率【精选】