椭圆曲线密码算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 3x1 a if P Q 2 y1
Fra Baidu bibliotek
y3 ( x1 x3 ) y1
如果 s, t Fp,则对所有的点 P E( Fp ) 而言,
( s t ) P sP tP
乘法规则: 如果 k Fp ,则对所有的点 P E( Fp ) 而言, kP=P+P+…+ P (k个P相加) 如果 s, t Fp ,则对所有的点 P E( Fp ) 而 言,
s(tP) (st ) P
如果椭圆曲线上一点P,存在最小的正整数n,使得数乘nP =O,则将n称为P的阶,若n不存在,我们说P是无限阶的. 事实上,在有限域上定义的椭圆曲线上所有的点的阶n都 是存在的.
例1:有限域F23之下,点P (0, 1) 是椭圆曲线 E: y 2 x 3 12 x 1 的生成数。求nP
R (22,19)
例3:条件同例2,若 P P 2P R ( x3 , y3 ) ,则R ?
x3 x1 x2 mod p
2
81 18 18 mod 23 22 y3 ( x1 x3 ) y1 mod p
P P 2 P R (22,19)
g g
g g
2 P R ( g, g 5)
椭圆曲线密钥生成
令E是FP上的椭圆曲线,P是E(FP)上的点,设P的阶是 素数n,则集合<P>={∞,P,2P,3P,…,(n-1)P}是由P生成的 椭圆曲线循环子群。 素数p,椭圆曲线方程E,点P和阶n构成公开参数组。
私钥在区间[1,n-1]内随机选择的正整数d,相应的公钥 是Q=dP。 由公开参数组和公钥Q求私钥d的问题是椭圆曲线离散 对数问题(ECDLP)
基本椭圆曲线解密
输入:椭圆曲线参数组(p,E,P,n),私钥d ,密文(C1,C2) 输出:明文m 1. 计算M=?,并从点M取出明文m 2. 返回(m)
椭圆曲线在软件注册保护的应用
将简介一种利用Fp(a,b)椭圆曲线进行软件注册的方法。
密钥对生成
输入:椭圆曲线参数组(p,E,P,n) 输出:公钥Q和私钥d 选择d[1,n] 计算Q=dP 返回(Q,d)
1.
2.
3.
基本椭圆曲线加密
输入:椭圆曲线参数组(p,E,P,n),公钥Q,明文m 输出:密文(C1,C2) 1. 将明文m表示为E(FP)上的点M 2. 选择k[1,n] 3. 计算C1=kP 4. 计算C2=M+kQ 5. 返回(C1,C2)
y1 y2 y1 y2 x3 x1 x2 a x1 x2 x1 x2 g 9 g5 g 9 g5 3 8 g g g 3 g3 g g g g9
2 2
y1 y 2 y3 ( x1 x 3 ) x 3 y1 x1 x 2
椭圆曲线具有的性质: 有限域上椭圆曲线在点加运算下构成有限交换群,且 其阶与基域规模相近; 类似于有限域乘法群中的乘幂运算,椭圆曲线多倍点 运算构成一个单向函数
RSA 与 ElGamal 系统中需要使用长度为 1024 位的模数, 才能达到足够的安全等级。而 ECC 只需使用长度为 160 位的模数即可,且传送密文或签章所需频宽较少,并已 正式列入IEEE 1363标准
例5 条件同例4,若 P P 2P R ( x3 , y3 ) ,则R = ?
x 3 x1 g g
3 2 6
2
b x12
2 3 2 11
y y 3 x12 x1 1 x 3 x 3 x1 =g 32 g 3 g 9 g 3 g g g6 g3 g g5
E( F23 ) 15 其实还要加上一个无穷远点,故E上的点共有16个,点P的秩n
= 16。
在坐标上画出,并观察 图像特点
例2:在有限域F23之下,取椭圆曲线
E : y 2 x3 16x 10 上的两点 P (18, 14)及 Q (5, 10) 若 P Q R ( x3 , y3 ) 则R=?
g 9 g5 3 (g g9 ) g9 g9 3 g g g 13
注:g的乘幂如下
g8 (0101), g 9 (1010), g10 (0111), g11 (1110), g12 (1111), g13 (1101), g14 (1001), g15 (0001)
P = (0, 1) 2P = (13, 13) 3P = (5, 5) 4P = (3, 15) 5P = (6, 17) 6P = (19, 2) 7P = (17, 9) 8P = (18, 0)
注:
9P = (17, 14) 10P = (19, 21) 11P = (6, 6) 12P = (3, 8) 13P = (5, 18) 14P = (13, 10) 15P = (0, 22)
E : y 2 x3 x2
E : y 2 x3
满足方程的任意一点是否都存在切线
加法运算
两异点相加:假设 P 和 Q 是椭圆曲线上两个相异的点, 而且P不等于-Q 。若P +Q=R ,则点R是经过P、Q两点 的直线与椭圆曲线相交之唯一交点的负点。
双倍的点:令P +P=2P ,则点2P是经过P的切线与椭圆 曲线相交之唯一交点的负点。
椭圆曲线密码算法(ECC)
Content
1 2
• 简单背景介绍
• 单击此处添加内容文本
3 4
5 6
• 单击此处添加内容文本
• 单击此处添加内容文本
• 单击此处添加内容文本
• 单击此处添加内容文本
椭圆曲线是由Neil Koblitz和Victor Miller两位学者分别 于1985年首先独立提出。
n n
y y 2 y y 2 1 2 1 x1 x2 a if P Q x1 x2 x1 x2 x3 x 2 b if P Q 1 x2 1
y1 y2 ( x1 x3 ) x3 y1 if P Q x x 1 2 y3 x 2 x y1 x x if P Q 3 1 3 1 x1
(iii)
如果
s, t Z p
,则对所有的点 P E(F2 ) 而言 ( s t ) P sP tP
n
例子4:在有限域 F2 之下,取椭圆曲线
4
y2+xy=x3+g8x2+g2 上的两点P=(g3,g9) 及Q=(g,g5) ,其中 g=(0010) 为F 4的 2 生成数,且不可约多项式为f(x)=x4+x+1 若 P+Q=R=(x3,y3) 则R = ?
使ECC成为构造公开密钥密码体制一个有力的工具。
椭圆曲线并非椭圆,之所以称为椭圆曲线是因为它的曲线 方程与计算椭圆周长的方程类似。 2 3 2 y axy by x cx dx e 其中a, b, c, 椭圆曲线的方程: d, e是满足某些简单条件的实数。 椭圆曲线有一个特殊的点,记为 O ,它并不在椭圆曲线 E 上,此点称为无穷远点。 一条椭圆曲线 E(x,y) 是由全体解 (x,y) 再加上一个无穷远点 构成的集合。(椭圆曲线上的是有限的) E {( x, y) | Y 2 aXY bY X 3 cX 2 dX e} {O}
9(18 22) 14 mod 23 19
椭圆曲线在
(i) (ii)
n
下的运算规则
加法规则: 对所有的点 P E(F2 ) 则 P O O P P ,P ( P) O 令 P ( x1, y1 ) E(F2 ) 及 Q ( x2 , y2 ) E(F2 ) ,P Q ( x3 , y3 ) 且 P Q ,则x3,y3分别为
在实数域中,椭圆曲线可定义成 若方程式没有重复的因式或 4a 3 27b2 0 ,E(a,b)是 一条非奇异椭圆曲线。 否则, E ( a,b )是一条奇异椭圆曲线(某些数的逆元素 (inverse)将不存在)。
E: y x 7 x 3
2
3
E : y 2 x3 73
椭圆曲线运算规则
椭圆曲线在模p下的运算规则
加法规则: 对所有的点 PE(Fp),则P+O=O+P ,P+(-P)=O 令P ( x1, y1 ), Q ( x2 , y2 ) E(Fp ) 及 P Q ( x3 , y3 ) 且 P Q ,则 y2 y1 if P Q 2 x x1 x2 x x 3 2 1
3x12 a 3 182 16 mod p mod 23 9 2 y1 2 14
x3 2 x1 x2 mod p 81 18 18mod 23 22 y3 ( x1 x3 ) y1 mod p 9(18 22) 14mod 23 19