ecc 算法 PHP实现,[原创]椭圆曲线加密算法 ECC 点乘自己写的算法

目前在做期末考试 算是任务吧 要求实现 简单的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;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值