c语言实现椭圆曲线算法,椭圆曲线加密算法的C语言设计和实现

椭圆曲线加密系统是迄今为止每比特具有最高安全强度的加密系统,它被认为最有希望成为下一代通用的公钥加密系统。文章将采用标准的C语言设计与实现椭圆曲线加密算法。

椭圆曲线加密算法的C语言设计和实现

1-320-png_6_0_0_295_549_302_176_892.979_1262.879-547-0-1459-547.jpg

椭圆曲线加密算法于1985年提出,由于自身优点,它一出现便受到关注,现在密码学界普遍认为它将替代RSA加密算法成为通用的公钥加密算法。那么我们今天就来看看椭圆曲线加密算法是如何通过C语言来设计实现的。

一、椭圆曲线加密算法的C语言设计

1、椭圆曲线加密系统的基本结构

椭圆曲线的加解密流程如图1所示:

椭圆曲线进行加密通信的过程如下:首先选定一个适合加密的椭圆曲线Ep(a,b),并取椭圆曲线上的一点作为基点G。选择一个私有密钥k,并生成公开密钥K=kG。加密时,将明文编码到Ep(a,b)上的一点M,并产生一个随机整数r(r

计算点C1=M+rK,C2=rGo将C1、C2存入密文。解密时,从密文中读出CI、C2,计算C1-kC2,根据C1-kC2=M+rK-k( rG)=M+rK-r( kG)=M,解得的结果就是点M,即明文。

2、高精度整数的表示

加密算法几乎都是建立在高精度大整数的运算上, 而一般的程序语言都不提供大整数的结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值