0
点赞
收藏
分享

微信扫一扫

第九十六篇 ECC加密算法

天涯学馆 2022-03-12 阅读 95

1.1 椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem):

椭圆曲线上的两个点P和Q,k为整数。

在这里插入图片描述

椭圆曲线加密的数学原理:

点P称为基点(base point);k为私钥(private key);Q为公钥(public key)

给定k和P,根据加法法则,计算Q很容易。

但给定P和Q,求k⾮常困难(实际应⽤ECC,质数p取的⾮常⼤,穷举出k⾮常困难)。

椭圆曲线 :

在这里插入图片描述

a=-2,b=4时椭圆曲线形状
在这里插入图片描述

1.2 数学定义:

基于椭圆曲线的群定义
在椭圆曲线的基础上,可以定义一个加法群:

所有椭圆曲线上的点,就是这个群里的元素
单位元就是0
点P的逆元是点P相对x坐标的对称点
加法定义如下:在椭圆曲线上,和一条直线相交的3个点P,Q以及R,三点相加满足

在这里插入图片描述

。也就说,椭圆曲线上的两点相加的结果,还在椭圆曲线上。
结合群的定义,可以证明定义的这个加法群,就是阿贝尔群。

1.3 椭圆曲线加法计算

在这里插入图片描述

如图所示: 点A(x1,y1) + B(x2,y2) 就等于交点关于x轴对称的点 A+B

在这里插入图片描述

1.4 椭圆曲线乘法计算

假如点A 和 点B 无限接近, 即点A和点B重合,计算A+B也就转换成了计算2A,就得到了 此处的Q=2A ,假如我们需要计算3A怎么计算?

A和2A都在椭圆曲线线,点A和点2A交点的关于x对称轴为点3A的结果:

在这里插入图片描述

计算点nA,并映射到mod23有限域上

在这里插入图片描述

1.5 加密过程:

在这里插入图片描述

  1. 选⼀条椭圆曲线Ep(a,b), 并取椭圆曲线上⼀点作为基点P。
  2. 选定⼀个⼤数k作为私钥,并⽣成公钥Q=kP。
  3. 加密:选择随机数r,将消息M⽣成密⽂C。密⽂是⼀个点对,即C=(rP, M+rQ)。
  4. 解密:M+rQ-k(rP) = M+r(kP)-k(rp) = M

1.6 有限域上的椭圆曲线运算

先做倍数再做加法。假设n=151,其对应的⼆进制是10010111。⽽⼆进制数字可以转化为:
在这里插入图片描述

举报

相关推荐

0 条评论