第一范文网 - 专业文章范例文档资料分享平台

椭圆曲线加密算法代码

来源:用户分享 时间:2025/7/31 23:03:39 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

y1=y3; } }

return x3; }

//求两点纵坐标的和

intsumy(int x1,int y1,int x2,int y2,int k,inta,int p) {

int x3,y3,i,u=x1,v=y1,m=x2,n=y2; if(k==1) {

x3=f2(u,v,m,n,a,p)*f2(u,v,m,n,a,p)-u-m; x3=mod(x3,p);

y3=f2(u,v,m,n,a,p)*(u-x3)-v; y3=mod(y3,p); } else {

for(i=1;i<=k-1;i++) {

x3=f2(u,v,m,n,a,p)*f2(u,v,m,n,a,p)-u-m; x3=mod(x3,p);

y3=f2(u,v,m,n,a,p)*(u-x3)-v; y3=mod(y3,p); m=x1; u=x3; n=y1; v=y3; } }

return y3; }

//加密过程

voidencry(int x1,int y1,int x2,int y2,int k, int a, intp,int r) {

int c1x,c1y,bx,by,bx1,by1,mbx,mby; c1x=sumx(x1,y1,x1,y1,r,a,p); c1y=sumy(x1,y1,x1,y1,r,a,p); bx1=sumx(x1,y1,x1,y1,k,a,p); by1=sumy(x1,y1,x1,y1,k,a,p);

bx=sumx(sumx(x1,y1,x1,y1,k,a,p),sumy(x1,y1,x1,y1,k,a,p),sumx(x1,y1,x1,y1,k,a,p),sumy(x1,y1,x1,y1,k,a,p),r,a,p);

by=sumy(sumx(x1,y1,x1,y1,k,a,p),sumy(x1,y1,x1,y1,k,a,p),sumx(x1,y1,x1,y1,k,a,p),sumy(x1,y1,x1,y1,k,a,p),r,a,p); mbx=sumx(x2,y2,bx,by,1,a,p); mby=sumy(x2,y2,bx,by,1,a,p);

cout<<\; }

void main() {

cout<<\令曲线方程格式为y^2=x^3+ax+b\ inta,b,c,d,m,n,x,y,r; cout<<\请输入a的值:\ cin>>a;

cout<<\请输入b的值:\ cin>>b;

cout<<\请给定一个素数P:\ cin>>c;

cout<<\请给定一个秘密正数k:\ cin>>d;

cout<<\令曲线上点的格式为(x1,y1):\ cout<<\请输入x1的值:\ cin>>m;

cout<<\请输入y1的值:\ cin>>n;

cout<<\令消息的格式为(x2,y2)\ cout<<\请输入x2的值:\ cin>>x;

cout<<\请输入y2的值:\ cin>>y;

cout<<\请任选一个整数r:\ cin>>r;

cout<<\加密消息为:\ encry(m,n,x,y,d,a,c,r); cout<

程序开始运行的界面:

搜索更多关于: 椭圆曲线加密算法代码 的文档
椭圆曲线加密算法代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8mbqd1wul481m9s3zgyl_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top