密码学---公钥密码体制---椭圆曲线密码体制

椭圆曲线密码体制

椭圆曲线密码体制概念

椭圆曲线密码体制ECC可以用短得多的密钥获得同样的安全性,因此具有广泛的应用前景

椭圆曲线数学知识

一般的椭圆曲线

椭圆曲线的曲线方程为是以下形式的三次方程:
《密码学---公钥密码体制---椭圆曲线密码体制》椭圆曲线上的加法法则如下:
1、O为加法单位元,即对椭圆曲线上任一点,有P+O=P
2、设P1=(x,y)是椭圆曲线上的一点,其加法逆元定义为P2=-P1=(x,-y).特别的,O+O=O
3、设Q和R是椭圆曲线上x坐标不同的两点,Q+R的定义如下:画一条通过Q和R的直线,与椭圆曲线交与P1。由P1,Q,R三点共线,因此有Q+R+P1=O,所以Q+R=-P1
4、点Q的倍数定义如下:在Q点做椭圆曲线的一条切线,设切线与椭圆曲线交于点S,定义2Q=Q+Q=-S

有限域上的椭圆曲线

有限域上的椭圆曲线是指曲线方程定义式中,所有系数都是某一有限域GF§中的元素,密码学中最为常用的是如下方程定义的曲线:
《密码学---公钥密码体制---椭圆曲线密码体制》
有限域上的椭圆曲线Ep(a,b)上的点集产生方法:

1.对每一个x<p,计算y2 mod p
2.判断1中的结果是否有解,若有解,则求出两个平方根y1,y2.点(x,y1)、(x,y2)在曲线上,否则曲线上没有与x对应的点

Ep(a,b)上的加法法则定义如下:
1、P+O=P
2、若P=(x,y),其加法逆元定义为P2=-P=(x,-y)
3.设P=(x1,y1),Q=(x2,y2),P不是Q的逆元,则P+Q=(x3,y3),x3,y3如下确定:

《密码学---公钥密码体制---椭圆曲线密码体制》
《密码学---公钥密码体制---椭圆曲线密码体制》

椭圆曲线上的点数

椭圆曲线上点的个数可由如下定理去计算:
GF§上的椭圆曲线y2=x3+ax+b在第一象限中共的整数点加无穷远点O共有《密码学---公钥密码体制---椭圆曲线密码体制》其中,括号表示Legendre符号。定理中的ε由Hasse定理给出:
《密码学---公钥密码体制---椭圆曲线密码体制》

椭圆曲线密码体制流程

椭圆曲线上的密码体制其依赖的原理是离散对数问题,典型的代表有Diffie-Hellman密钥交换和ElGamal密码体制

Diffie-Hellman密钥交换

参数选择

流程如下:
1.选取一个素数P(P在2180左右)和两个参数a、b,得到椭圆曲线及其曲线上面点构成的Abel群Ep(a,b)
2.取Ep(a,b)的一个生成元G(x1,y1),要求G的阶是一个非常大的素数,且G的阶是满足nG=O的最小正整数n。Ep(a,b)和G作为公开参数

密钥交换过程

1.A选择一个小于n的整数nA作为私钥,并由PA=nAG产生Ep(a,b)上的一点作为公钥
2.B类似地选取自己的私钥nB和公钥PB
3.A、B分别由K=nAPB和K=nBPA产生出双方共享的私钥

ElGamal密码体制

密钥产生过程如下:
选取一个素数p和两个小于p的随机数g和x,计算y≡ gx mod p。以(y,g,p)作为公钥,x作为私钥

加密过程如下:
随机选取一个与p-1互素的整数k,计算C1≡ gk mod p,C2≡ ykM mod p,得到密文C=(C1,C2)

解密过程如下:
《密码学---公钥密码体制---椭圆曲线密码体制》

利用椭圆曲线实现ElGamal密码体制

1.选取一条椭圆曲线,并得到Ep(a,b),将明文消息m嵌入到曲线上的点Pm,对点Pm做加密变换
2.取Ep(a,b)的一个生成元G,Ep(a,b)和G作为公开参数
3.收方A选nA作为私钥,并以PA=nAG作为公钥。
4.发方B选取一个随机正整数k,对明文消息Pm进行加密:Cm={kG,Pm+kPA}=(C1,C2)
5.收方A对密文Cm进行解密操作,得到明文Pm=C2-nAkG

椭圆曲线密码体制的优点

1.安全性高,椭圆曲线密码体制比基于有限域上的离散对数问题的公钥体制更安全
2.密钥量小。在实现相同的安全性能的条件下,椭圆曲线密码体制所需的密钥量远比基于有限域上的离散对数问题的公钥体制的密钥量小
3.灵活性好。GF(q)上的椭圆曲线可以改变曲线参数,得到不同的曲线,形成不同的循环群

    原文作者:enough_time
    原文地址: https://blog.csdn.net/sfakh/article/details/120578376
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞