椭圆曲线密码算法

椭圆曲线密码算法

椭圆曲线密码算法(Elliptic Curve Cryptography,ECC)是基于椭圆曲线数学的一种公钥密码算法,其安全性依赖于椭圆曲线离散对数问题的困难性。

下面这3篇文章详细讲述了椭圆曲线密码算法的数学原理,不过是英文版的,但是讲述的非常详细,需要掌握的相关数学概念也讲述的很清楚。
http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/
http://andrea.corbellini.name/2015/05/23/elliptic-curve-cryptography-finite-fields-and-discrete-logarithms/
http://andrea.corbellini.name/2015/05/30/elliptic-curve-cryptography-ecdh-and-ecdsa/
下面这2篇是上面文章的翻译:
http://blog.csdn.net/mrpre/article/details/72850598
http://blog.csdn.net/mrpre/article/details/72850644

椭圆曲线密码算法优点
  • 短的密钥长度,意味着小的带宽和存储要求。
  • 所有的用户可以选择同一基域上的不同的椭圆曲线,可使所有的用户使用同样的操作完成域运算。
椭圆曲线定义

p p p是一个大于3的素数,在有限域 F p F_p Fp上的椭圆曲线 y 2 = x 3 + a x + b y^2=x^3+ax+b y2=x3+ax+b由一个基于同余式 y 2 = x 3 + a x + b   m o d   p y^2=x^3+ax+b \ mod \ p y2=x3+ax+b mod p的解集 ( x , y ) ∈ F p × F p (x,y)\in F_p\times F_p (x,y)Fp×Fp和一个无穷远点的特定点 O O O组成,这里 a , b ∈ F p a,b \in F_p a,bFp是满足 4 a 3 + 27 b 2 ≠ 0   m o d   p 4a^3+27b^2 \neq 0 \ mod \ p 4a3+27b2̸=0 mod p的常数。

下图是显示了其中一种实际的椭圆曲线:
这里写图片描述

对椭圆曲线上的点,我们可以定义一种形式的加法:如果椭圆曲线上的三个点位于同一直线上,那么它们的和为 O O O(无穷远点)。

根据上面的定义导出椭圆曲线上的加法运算法则如下:
P ≠ Q P \neq Q P̸=Q时:
这里写图片描述

P = Q P=Q P=Q时:
这里写图片描述

下面的动画解释了为什么是切线:
这里写图片描述
随着两个点越来越接近,过这两点的直线最终变成了曲线的切线

上面用几何的形式解释了椭圆曲线上的加法法则,下面是数学表达式。设 P 1 = ( x 1 , y 1 ) P_1=(x_1,y_1) P1=(x1,y1) P 2 = ( x 2 , y 2 ) P_2=(x_2,y_2) P2=(x2,y2)为椭圆曲线上的两个点,加减法运算如下:
1) − O = O -O=O O=O
2) − P 1 = ( x 1 , − y 1 ) -P_1=(x_1,-y_1) P1=(x1,y1)
3) O + P 1 = P 1 O+P_1=P_1 O+P1=P1
4) 若 P 2 = − P 1 P_2=-P_1 P2=P1,则 P 1 + P 2 = O P_1+P_2=O P1+P2=O
5) 若 P 2 ≠ − P 1 P_2 \neq -P_1 P2̸=P1,则 P 1 + P 2 = ( x 3 , y 3 ) P_1+P_2=(x_3,y_3) P1+P2=(x3<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值