椭圆曲线密码的C语言设计与实现

基于TOM算法库的ECC加密算法的C语言设计与实现 研究生 徐立均 内容: 一、源代码下载 二、ECC算法的设计思想三、椭圆曲线参数的选取和基点的确定 四、椭圆曲线的点加和纯量乘法 五、加密文件的读入与输出 六、密文的存取和读入 七、ECC加密的实现八、ECC解密的实现 九、测试结果及分析   

一、源代码下载

本文使用了TOM算法库实现了椭圆曲线公钥密码体制,能对各类不同的磁盘文件进行加密
和解密。

1 请下载可执行程序MY_ECC.exe,此程序无需任何额外的LIB或DLL,可在Windows下
独立运行,运行情况如下:
 
椭圆曲线密码的C语言设计与实现
     
椭圆曲线密码的C语言设计与实现
     

2 请下载源代码source.rar:
  编译此源代码需要使用TOM的高精度算法库
                MathLib.lib
和相关的头文件
                tommath.h
                tommath_class.h
                tommath_superclass.h
一并打包在source.rar中,请下载

3 对于TOM的高精度算法库的详细说明,请看本站C语言:

  

二、 ECC算法的设计思想

  根据椭圆曲线进行加密通信的过程,首先选定一个适合加密的椭圆曲线Ep(a,b),并取
椭圆曲线上一点,作为基点G。选择一个私有密钥k,并生成公开密钥K=kG。加密时,将
明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r < n)。计算点C1=M+rK;C2=rG。
将C1、C2存入密文。解密时,从密文中读出C1、C2,计算C1-kC2,根据:

  C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M,

解得的结果就是点M,即明文。
  
  

三、椭圆曲线参数的选取和基点的确定

  并不是所有的椭圆曲线都适合加密,y^2=x^3+ax+b是一类可以用来加密的椭圆曲线,也
是最为简单的一类。下面我们就选用y^2=x^3+ax+b作为我们的加密曲线。这条曲线定义在Fp
上:两个满足下列条件的小于p(p为素数)的非负整数a、b:4a3+27b2≠0 (mod p) 则满足
下列方程的所有点(x,y),再加上 无穷远点∞ ,构成一条椭圆曲线。y^2=x^3
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值