当前位置:文档之家› 第6章 椭圆曲线密码体制

第6章 椭圆曲线密码体制


举例
y2≡x3+18x+15 mod 23 y2≡x3+17x+15 mod 23
/research/ec33_example.html
EC-1 EC-
EC-2 EC-
有限域上的椭圆曲线
曲线方程中的所有系数都是某一有限域GF(p) 曲线方程中的所有系数都是某一有限域GF(p)中的元素 GF(p)中的元素 (p为一大素数 (p为一大素数),最为常用的曲线方程为 为一大素数) y2=x3+ax+b mod(p) (a,b∈GF(p),4a3+27b2≠0 mod p) (a,b∈ (mod23),方程 例:p=23,a=b=1, 4a3+27b2=8 ≠0 (mod23),方程 mod(p),图形为连续图形。 为y2=x3+x+1 mod(p),图形为连续图形。我们感兴趣 的是在第一象限的整数点。 (a,b)表示 表示ECC上点集 的是在第一象限的整数点。设Ep(a,b)表示ECC上点集 {(x,y)|0≤x<p,0 ≤y<p,且x,y均为整数}并上O. {(x,y)|0≤x<p,0 ≤y<p,且x,y均为整数 并上O. 均为整数}
椭圆曲线加密算法
背景 – RSA中用到了因子分解的困难性,而为了增加困难 RSA中用到了因子分解的困难性 中用到了因子分解的困难性, 得加大数的位数,从而导致计算速度变慢。 得加大数的位数,从而导致计算速度变慢。 – ECC可以用较小的密钥长度达到较高的计算难度 ECC可以用较小的密钥长度达到较高的计算难度
公钥密码
一、椭圆曲线公钥密码ECC 椭圆曲线公钥密码ECC (Elliptic Curve Cryptography) McEliece公钥密码 二、 McEliece公钥密码
椭圆曲线公钥密码ECC 椭圆曲线公钥密码ECC
1. 简要历史 椭圆曲线( 椭圆曲线(Elliptic curve)作为代数几何中的重要问题已有 curve)作为代数几何中的重要问题已有 100多年的研究历史 100多年的研究历史 1985年 1985年,N. Koblitz和V. Miller独立将其引入密码学中,成 Koblitz和 Miller独立将其引入密码学中 独立将其引入密码学中, 为构造双钥密码体制的一个有力工具。 为构造双钥密码体制的一个有力工具。 利用有限域GF(2 利用有限域GF(2n )上的椭圆曲线上点集所构成的群上定义 的离散对数系统, 的离散对数系统,可以构造出基于有限域上离散对数的一 些双钥体制--椭圆曲线离散对数密码体制 椭圆曲线离散对数密码体制( 些双钥体制--椭圆曲线离散对数密码体制(ECDLC ),如 Diffie-Hellman,ElGamal,Schnorr,DSA等 Diffie-Hellman,ElGamal,Schnorr,DSA等。 10余年的研究 尚未发现明显的弱点。 10余年的研究,尚未发现明显的弱点。 余年的研究,
研究现状
椭圆曲线密码是除RSA算法以外最重要的公 椭圆曲线密码是除RSA算法以外最重要的公 钥密码之一。 RSA算法相比它也有很多独 钥密码之一。与RSA算法相比它也有很多独 特的优点。出于国家安全战略考虑, 特的优点。出于国家安全战略考虑,国内学 术界和管理部门一直希望能够在国内一些应 用场合使用椭圆曲线密码。 用场合使用椭圆曲线密码。在推广和使用椭 圆曲线密码的过程中,相应的芯片是必不可 圆曲线密码的过程中, 少的。然而, 少的。然而,由于椭圆曲线密码算法是一种 很复杂的数学算法, 很复杂的数学算法,如何将椭圆曲线密码算 法芯片化,国内外没有成熟技术。 法芯片化,国内外没有成熟技术。
Ep(a,b)上加法 (a,b)上加法
如果P,Q∈ 如果P,Q∈ Ep(a,b)
–P+O=P –如果P=(x,y),则(x,y)+(x,-y)=O 如果P (x,y),则(x,y)+(x,-y)= –P=(x1,y1),Q= (x2,y2),P≠-Q,P+Qd p) p) y3=λ(x1-x3)-y1 (mod p)
椭圆曲线加法的定义
–Q,R是ECC上x坐标不同的两点,Q+R定义 Q,R是ECC上 坐标不同的两点,Q+R定义 画一条通过Q,R的直线与ECC交于P Q,R的直线与ECC交于 为:画一条通过Q,R的直线与ECC交于P1(交 点是唯一的,除非做的Q,R点的切线, Q,R点的切线 点是唯一的,除非做的Q,R点的切线,此时 分别取P =Q或 =R)。 =O,得 分别取P1=Q或P1=R)。由Q+R+P1=O,得 Q+R=Q+R=-P1 –点Q的倍数定义如下:在Q点做ECC的一条 的倍数定义如下: 点做ECC ECC的一条 切线,设切线与ECC交于S, ECC交于S,定义 切线,设切线与ECC交于S,定义 2Q=Q+Q=2Q=Q+Q=-S。类似可定义 3Q=Q+Q+Q,… 3Q=Q+Q+Q,…, –上述加法满足加法的一般性质,如交换律、 上述加法满足加法的一般性质,如交换律、 结合律等
y2 − y1 x −x P≠Q 2 1 λ = 2 3x1 + a P = Q 2y1
例:E23(1,1)
P=(3,10),Q(=9,7)
λ=
7 −10 −3 −1 22 = = ≡ =11m 23 od 9 −3 6 2 2 x3 =112 −3−9 =109 ≡17 m 23 od y3 =11(3−17) −10 = −164 ≡ 20 m 23 od ∴P +Q = (17,20) ∈E23(11) , 3•32 +1 5 1 2P: λ = = = ≡ 6 m 23 od 2×10 20 4 x3 = 62 −3−3 = 30 ≡ 7 m 23 od y3 = 6(3−7) −10 = −34 ≡12 m 23 od ∴2P = (7,12)
椭圆曲线密码示意图
椭圆曲线密码介绍
运算定义: 运算定义:
– 若曲线三点在一条直线上,则其和为O 若曲线三点在一条直线上,则其和为O – O用作加法的单位:O = -O; P+O = P 用作加法的单位: – 一条竖直线交X轴两点P1、P2,则 一条竖直线交X轴两点P P1+P2+O=O,于是P P1+P2+O=O,于是P1 = -P2 – 如果两个点Q和R的X轴不同,则画一连线,得到 如果两个点Q 轴不同,则画一连线, =O, Q+R=第三点P 第三点P1,则Q+R+P1=O,即Q+R=-P1 – 2倍,一个点Q的两倍是,找到它的切线与曲线 一个点Q的两倍是, 的另一个交点S 于是Q+Q=2Q=的另一个交点S,于是Q+Q=2Q=-S
在有限域上的椭圆曲线运算
•在此椭圆曲线上可以能出现的点有 (0,1)、(0,4)、(2,1)、(2,4)、(3,1)、 (3,4)、(4,2)、(4,3)、(∞, ∞) •任取椭圆曲线上两点,无论作加法、 減法或乘法,其結果永远为上述坐 标点中的一点. •椭圆曲线中的离散对数难题:给定 一参数K及一点A,要求得另一点B, 使得B=KA是很容易的。 例如:5A=A+A+A+A+A 但若給定A及B要求得K則很困難
椭圆曲线方程
Elliptic Curve
y2+axy+by=x3+cx2+dx+e axy+by= dx+
其中a 其中a、b、c、d、e是满足某个简单条件的 实数 点被定义为无穷点/ 另有O点被定义为无穷点/零点
椭圆曲线的定义
1.1 椭圆曲线的定义 是域, 的代数闭包。椭圆曲线的一般定义为F 设F是域,F-是F的代数闭包。椭圆曲线的一般定义为F上亏格为1的光滑的代数曲线。 上亏格为1的光滑的代数曲线。这个定义涉及很多代数几何 中的概念。实际上,定义在F 中的概念。实际上,定义在F上的椭圆曲线可等价地看作由方 程 y2+a1xy+a3xy=x3+a2x2+a4x+a6 (1) 刻划的F 上曲线再添加上一点O 其中ai∈ 刻划的F-上曲线再添加上一点O,其中ai∈F且满足判别式不 为零。椭圆曲线的有理点即为点O及坐标在F中的点(x,y)。 为零。椭圆曲线的有理点即为点O及坐标在F中的点(x,y)。 方程(1)称为该椭圆曲线的 称为该椭圆曲线的Weierstrass方程 方程。 方程(1)称为该椭圆曲线的Weierstrass方程。当F的特征不 是2或3时,这个方程可化为特别简单的形式 y2=x3+ax+b 并要求判别式 ∆=4a3+27b2≠0
EC上的离散对数问题 EC上的离散对数问题
Q=k×P中的k计算也是极其困难的 中的k k×P表示k个P相加:P + P + … + P 表示k 相加: DH密钥交换中 在DH密钥交换中 使用了y p中 使用了y=gx mod p中x的计算困难性 同样在ECC中 同样在ECC中 将使用Q 中计算k 将使用Q=k×P中计算k的困难性 有两个应用 密钥交换 加密解密
椭圆曲线上不同坐标点相加
椭圆曲线上相同坐标点相加
椭圆曲线上一坐标点与无穷远点相加
椭圆曲线上两对称点相加
A+B=A+(-A)=O
B
EC: EC: P+Q=R
素域上的EC 素域上的EC
在有限域Z 上的简化EC 在有限域Zp上的简化EC
y2≡x3+ax+b mod p ax+
其中4a 其中4a3+27b2 mod p ≠ 0 (这是一个离散点的集合)
由ECC上离散对数问题可以构造DiffieECC上离散对数问题可以构造Diffie上离散对数问题可以构造Diffie Hellman密钥交换和ElGamal密码体制 密钥交换和ElGamal Hellman密钥交换和ElGamal密码体制
椭圆曲线用于加密
找到一个难题: 找到一个难题: 属于E (a,b), – 考虑等式Q=kP,其中Q、P属于Ep(a,b), 考虑等式Q=kP,其中Q k<p – 已知k和P,计算Q,是容易的 已知k 计算Q – 已知Q和P,计算k,是困难的 已知Q 计算k 选择E (a,b)的元素G,使得 的阶n 选择Ep(a,b)的元素G,使得G的阶n是一个大素数 的元素G,使得G – G的阶是指满足nG=O的最小n值 的阶是指满足nG=O的最小 的最小n 秘密选择整数r 计算P=kG 秘密选择整数r,计算P=kG,然后 – 公开(p,a,b,G,P),P为公钥 公开(p,a,b,G,P), – 保密k 保密k
相关主题