赞
踩
目前在做期末考试 算是任务吧 要求实现 简单的ECC算法。
第一步 算模拟 直接网上找的代码。
算点乘 网上没找到现成的代码 自己写了。好不容易熬到现在 终于调试ok了
之前虽然知道 怎么算,但是 用程序实现起来 确实 想了好久 ,以下代码调试OK
欢迎大家 提出意见。
int ecc_point_mul(PEcc pEcc, int x,EccPoint *R,EccPoint P)
{
int bits =0;
int temp = x;
int isone = 0;
EccPoint output,point1,tempPoint,sumPoint;
point1.x = P.x;
point1.y =P.y;
output.x=P.x;
output.y=P.y;
tempPoint.x = 0;
tempPoint .y = 0;
sumPoint.x=P.x;
sumPoint.y=P.y;
while(temp)
{
temp>>=1;
isone = temp&1;
//if(!temp) break;
bits++;
ecc_point_add(pEcc,&output,point1,point1);
point1.x = output.x;
point1.y = output.y;
if(isone)
{
ecc_point_add(pEcc,&sumPoint,tempPoint,output);
tempPoint.x = sumPoint.x;
tempPoint.y = sumPoint.y;
}
}
output.x=tempPoint.x;
output.y = tempPoint.y;
if(x&1) ecc_point_add(pEcc,&sumPoint,tempPoint,P);
R->x = sumPoint.x;
R->y = sumPoint.y;
return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。