现现代密学 第10讲ECC
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x 3 6 2 3 3 30 7 mod 23 y 3 6 ( 3 7 ) 10 34 12 mod 23 2 P ( 7 ,12 )
2019/11/11
6
ECC上的密码
应用
Diffie-Hellman密钥交换
Elgamal密码体制
安全基础
ECC 本身还有许多需要研究提高的地方如高速ECC 密码算法芯片的研
制等.
2019/11/11
16
ECC未来主要研究
快速算法的研究 ECC的离散对数问题 ECC上编码方法的研究 超椭圆曲线
2019/11/11
17
对ECC的 攻击
至今没有发现比较有效的计算ECDLP 的方法, 目前计算ECDLP 的最好算法仍然是指数时间的 并行Pollard-rho 方法.
ECC上的离散对数问题是困难问题
在ECC构成的交换群Ep(a,b)上考虑方程 Q=kP,P,Q∈Ep(a,b),k<p.由k和P求Q 容易,由P,Q求k则是困难的。
2019/11/11
7
Diffie-Hellman密钥交换
取Ep(a,b),生成元G(x1,y1) (p≈2180, |G|大素数) Ep(a,b)和G公开
GF(P)上ECC点的个数?个数越多,越安全. Hasse定理
如果E是定义在GF(p)域上的椭圆曲线,N是E 上的点的个数,则:
N(p1)2 p
椭圆曲线加法的定义
Q+R: Q、 R连线与E交点关于x轴对称点
Q+R=-P
O为加法单位元 P+O=P
P (x,y)加法逆元-P(x,-y) P+(-P)否=则O导致加
m=5
②
(m+1)k<p) 令x=mk+j(m明文,j=0,1..k-1)
选K=10(满足 (5+1)10<179)
③
判断x3+ax+b +j(j=0,1..9) 当x=51,x3+2x+7
④ ⑤
如果x3+ax+b mod(p) y, 则 Pm= ( x,y ) ; 否 则 回2
l 7 10 93
3 1 22 6 22
11 mod
23
P+Q= (x3,y3)
x 3 11 2 3 9 109 17 mod 23
x3=l2-x1-x2(mod p)
y 3 11 ( 3 17 ) 10 164 20 mod 23
攻击ECC上离散对数问题运算复杂度 O(exp(lopgmax)) pmax是ECC形成的交换群的阶的最大素因子
ECC上的密码体制更安全
密钥量
实现相同安全性条件下,ECC所需密钥量小的多
灵活性
ECC具有丰富的群结构和多选择性(改变参数P,a,b))
带宽要求
2019/11/11
设用户A的私钥为7,则公钥为:P A = 7G 1,2 71
1)设用户B的消息m编码后为Pm1,1,且选取了随机
数
2)用户k= B计13算:C 1 k G 1 1 , 3 5 0 1 ,5 6 ,kA P 11 3 ,2 7 1 2,1 0 C 2 P m k A P 1 , 1 1 2 , 1 0 1 8 , 1 8 9
如果j=k;则嵌入失败。
有平方根 j=j+1, 返
mod(179) =121 则Pm=(51,11)
解密 m =[51/10]=5
失败概率1/2k
解密点 Pm(x,y) →整数m =[x/k]
2019/11/11
10
例子
椭圆曲线 E 21 3,2 3 :2 y 2 x 3 1x 3 2G 21,05
point add(point p1, point p2, long a, long b, long n)
{
//一些定义……
if(x1==x2&&y1==-y2)
P+Q= (x3,y3)
{
p3.x=inf;p3.y=inf;
return p3;
x3=l2-x1-x2(mod p) y3=l(x1-x3)-y1 (mod p)
当4a3+27b2≠0 mod p Ep(a,b)构成法加运法算交无意换群
2019/11/11
义
5
Ep(a,b)上加法
O为加法单位元 P+O=P
例:E23(1,1)
P (x,y)加法逆元-P(x,-y+p)
P=(3,10),Q(=9,7)
P=(x1,y1),Q= (x2,y2),P≠-Q,
2
有限域上的椭圆曲线
曲线方程中的所有系数都是某一有限域GF(p)中的元素 (p为一大素数),最为常用的曲线方程为
y2=x3+ax+b mod(p) (a,b∈GF(p),4a3+27b2≠0 mod p) 例:p=23,a=b=1, 4a3+27b2=8 ≠0 (mod23), 方程y2=x3+x+1 mod(p) 记为Ep(a,b):表示ECC上点集
ECDLP 是否存在亚指数时间攻击? 这一问题的 回答是肯定的,因为从理论上证明ECDLP 不存 在亚指数时间攻击已是不可能的了.
寻找ECDLP 的亚指数时间甚至多项式时间攻击 是非常重要和有意义的,这需要更高深的数学和 更天才的技巧.
2019/11/11
18
1,5 6,1,1 89
3)B向A发送消7息1:,5 62,1 08
4)用户A计算: 1 , 1 8 2 9 , 1 0 1 8 , 1 8 2 9 , 1 0 1 8 , 1
5)用户A计算:
2019/11/11
11
ECC算法实现
PA =nAG
A
B
秘钥nA
nAPB
PB =nBG 共享的秘钥K
秘钥nB
nBPA
攻击者如想获得K,必须由PA和G求出nA或PB 和G求出nB
2019/11/11
8
Elgamal密码体制
ECC实现Elgamal密码体制
密钥产生
选择一个素数p,g(g <p), x(x<p) 私钥:x 公钥:(y,g,p ), ygx mod p
C1=kG C2= Pm+kPA 密文Cm=(C1, C2)
M=C2/C1x=My k/gkx=Mgxk/gkx mod p 解密
p,g, x, y
指数关系
PmE=pC(2a-n,bA)C,1G, nA, PA 倍乘关系
明文嵌入(整数m→点 Pm)
y2=x3+2x+7mod(179)
① 选取K(大整数k,且满足
{
point q;
q.x=inf;q.y=inf;
while(m)
{
if(m%2) q=add(q,p,a,b,n);
p=add(p,p,a,b,n);
m=m>>1;
}
return q;
}
2019/11/11
13
椭圆曲线与离散对数密码体制比较
安全性
攻击离散对数问题运算复杂度 O(ex 3(plop)g(lloog pg )2 。
y3=l(x1-x3)-y1 (mod p)
P Q (17 , 20 ) E 23 (1 ,1 )
y2 y1
l
x2 x1 3 x12 a
2 y1
PQ PQ
2 P : l 3 3 2 1 5 1 6 mod 23 2 10 20 4
在无线网络的安全解决方面有着广阔的前景
大的主流厂商如Cisco Sybase 索尼等推出了相关的产品或解决方案.国 内也有不少学者和公司在作 相关的研发和应用.
目前ECC 在无线局域网安全中的应用尚十分有限,
原因可能有两个方面
尚没有十分的迫切性,RSA 因其适用范围广,支持产品多,不可能很快由 ECC 代替;
14
ECC与RSA/DSA在同等安全条件下所 需密钥长度
RSA/DSA 512 768 1024 2048 2100 0
ECC
106 132 160 211 600
2019/11/11
15
ECC的应用
现在密码学界普遍认为它将替代RSA 成为通用的公钥密码算 法.SET协议的制定者已把它作为下一代协议中缺省的公钥密 码算法.
椭圆曲线(ECC)密码体制
Elliptic Curve Cryptography
2019/11/11
1
椭圆曲线
椭圆曲线的曲线方程是以下形式的三次方程 y2+axy+by=x3+cx2+dx+e
a,b,c,d,e是满足某些简单条件的实数。定义中包含一个
称为无穷远点的元素,记为O.
2019/11/11
} if(p1.x==inf&&p1.y==inf)return p2; if(p2.x==inf&&p2.y==inf)return p1; if(x2!=x1)
y2 y1
l
x2 x1 3 x12 a
PQ PQ
else m=((y2-y1)*invmod(x2-x1,n))%n; 2 y1
m=((3*x1*x1+a)%n*invmod(2*y1,n))%n;
x3=(m*m-x1-x2)%n;
y3=(m*(x1-x3)-y1)%n;
p3.x =x3;p3.y=y3;
return p3;
}
point multipy(point p, long m, long a, long b, long n)
{(x,y)|0≤x<p,0 ≤y<p,且x,y均为整数}并上O.
2019/11/11
3
28个点
点集如何产生方法?
对每一x(0≤x<p且x为整数),计算x3+ax+b mod p 决定求出的值在模p下是否有平方根,如果没有则椭
圆曲线上没有与这一x对应的点;如果有,则求出两 个平方根。 除(4,0),对应每个x,都有2个点.
加密
选择随机数k,(k,p-1)=1, M明文
C1=g k mod p
C2=Myk mod p 密文C=C1||C2。
解密
密钥产生
选取椭圆曲线Ep(a,b),生成元G ,nA 。 私钥: nA 公钥: Ep(a,b), G,
PA( PA=nAG)
加密
选随机正整数k,将明文消息通过 编码嵌入曲线上得到点pm???
2019/11/11
6
ECC上的密码
应用
Diffie-Hellman密钥交换
Elgamal密码体制
安全基础
ECC 本身还有许多需要研究提高的地方如高速ECC 密码算法芯片的研
制等.
2019/11/11
16
ECC未来主要研究
快速算法的研究 ECC的离散对数问题 ECC上编码方法的研究 超椭圆曲线
2019/11/11
17
对ECC的 攻击
至今没有发现比较有效的计算ECDLP 的方法, 目前计算ECDLP 的最好算法仍然是指数时间的 并行Pollard-rho 方法.
ECC上的离散对数问题是困难问题
在ECC构成的交换群Ep(a,b)上考虑方程 Q=kP,P,Q∈Ep(a,b),k<p.由k和P求Q 容易,由P,Q求k则是困难的。
2019/11/11
7
Diffie-Hellman密钥交换
取Ep(a,b),生成元G(x1,y1) (p≈2180, |G|大素数) Ep(a,b)和G公开
GF(P)上ECC点的个数?个数越多,越安全. Hasse定理
如果E是定义在GF(p)域上的椭圆曲线,N是E 上的点的个数,则:
N(p1)2 p
椭圆曲线加法的定义
Q+R: Q、 R连线与E交点关于x轴对称点
Q+R=-P
O为加法单位元 P+O=P
P (x,y)加法逆元-P(x,-y) P+(-P)否=则O导致加
m=5
②
(m+1)k<p) 令x=mk+j(m明文,j=0,1..k-1)
选K=10(满足 (5+1)10<179)
③
判断x3+ax+b +j(j=0,1..9) 当x=51,x3+2x+7
④ ⑤
如果x3+ax+b mod(p) y, 则 Pm= ( x,y ) ; 否 则 回2
l 7 10 93
3 1 22 6 22
11 mod
23
P+Q= (x3,y3)
x 3 11 2 3 9 109 17 mod 23
x3=l2-x1-x2(mod p)
y 3 11 ( 3 17 ) 10 164 20 mod 23
攻击ECC上离散对数问题运算复杂度 O(exp(lopgmax)) pmax是ECC形成的交换群的阶的最大素因子
ECC上的密码体制更安全
密钥量
实现相同安全性条件下,ECC所需密钥量小的多
灵活性
ECC具有丰富的群结构和多选择性(改变参数P,a,b))
带宽要求
2019/11/11
设用户A的私钥为7,则公钥为:P A = 7G 1,2 71
1)设用户B的消息m编码后为Pm1,1,且选取了随机
数
2)用户k= B计13算:C 1 k G 1 1 , 3 5 0 1 ,5 6 ,kA P 11 3 ,2 7 1 2,1 0 C 2 P m k A P 1 , 1 1 2 , 1 0 1 8 , 1 8 9
如果j=k;则嵌入失败。
有平方根 j=j+1, 返
mod(179) =121 则Pm=(51,11)
解密 m =[51/10]=5
失败概率1/2k
解密点 Pm(x,y) →整数m =[x/k]
2019/11/11
10
例子
椭圆曲线 E 21 3,2 3 :2 y 2 x 3 1x 3 2G 21,05
point add(point p1, point p2, long a, long b, long n)
{
//一些定义……
if(x1==x2&&y1==-y2)
P+Q= (x3,y3)
{
p3.x=inf;p3.y=inf;
return p3;
x3=l2-x1-x2(mod p) y3=l(x1-x3)-y1 (mod p)
当4a3+27b2≠0 mod p Ep(a,b)构成法加运法算交无意换群
2019/11/11
义
5
Ep(a,b)上加法
O为加法单位元 P+O=P
例:E23(1,1)
P (x,y)加法逆元-P(x,-y+p)
P=(3,10),Q(=9,7)
P=(x1,y1),Q= (x2,y2),P≠-Q,
2
有限域上的椭圆曲线
曲线方程中的所有系数都是某一有限域GF(p)中的元素 (p为一大素数),最为常用的曲线方程为
y2=x3+ax+b mod(p) (a,b∈GF(p),4a3+27b2≠0 mod p) 例:p=23,a=b=1, 4a3+27b2=8 ≠0 (mod23), 方程y2=x3+x+1 mod(p) 记为Ep(a,b):表示ECC上点集
ECDLP 是否存在亚指数时间攻击? 这一问题的 回答是肯定的,因为从理论上证明ECDLP 不存 在亚指数时间攻击已是不可能的了.
寻找ECDLP 的亚指数时间甚至多项式时间攻击 是非常重要和有意义的,这需要更高深的数学和 更天才的技巧.
2019/11/11
18
1,5 6,1,1 89
3)B向A发送消7息1:,5 62,1 08
4)用户A计算: 1 , 1 8 2 9 , 1 0 1 8 , 1 8 2 9 , 1 0 1 8 , 1
5)用户A计算:
2019/11/11
11
ECC算法实现
PA =nAG
A
B
秘钥nA
nAPB
PB =nBG 共享的秘钥K
秘钥nB
nBPA
攻击者如想获得K,必须由PA和G求出nA或PB 和G求出nB
2019/11/11
8
Elgamal密码体制
ECC实现Elgamal密码体制
密钥产生
选择一个素数p,g(g <p), x(x<p) 私钥:x 公钥:(y,g,p ), ygx mod p
C1=kG C2= Pm+kPA 密文Cm=(C1, C2)
M=C2/C1x=My k/gkx=Mgxk/gkx mod p 解密
p,g, x, y
指数关系
PmE=pC(2a-n,bA)C,1G, nA, PA 倍乘关系
明文嵌入(整数m→点 Pm)
y2=x3+2x+7mod(179)
① 选取K(大整数k,且满足
{
point q;
q.x=inf;q.y=inf;
while(m)
{
if(m%2) q=add(q,p,a,b,n);
p=add(p,p,a,b,n);
m=m>>1;
}
return q;
}
2019/11/11
13
椭圆曲线与离散对数密码体制比较
安全性
攻击离散对数问题运算复杂度 O(ex 3(plop)g(lloog pg )2 。
y3=l(x1-x3)-y1 (mod p)
P Q (17 , 20 ) E 23 (1 ,1 )
y2 y1
l
x2 x1 3 x12 a
2 y1
PQ PQ
2 P : l 3 3 2 1 5 1 6 mod 23 2 10 20 4
在无线网络的安全解决方面有着广阔的前景
大的主流厂商如Cisco Sybase 索尼等推出了相关的产品或解决方案.国 内也有不少学者和公司在作 相关的研发和应用.
目前ECC 在无线局域网安全中的应用尚十分有限,
原因可能有两个方面
尚没有十分的迫切性,RSA 因其适用范围广,支持产品多,不可能很快由 ECC 代替;
14
ECC与RSA/DSA在同等安全条件下所 需密钥长度
RSA/DSA 512 768 1024 2048 2100 0
ECC
106 132 160 211 600
2019/11/11
15
ECC的应用
现在密码学界普遍认为它将替代RSA 成为通用的公钥密码算 法.SET协议的制定者已把它作为下一代协议中缺省的公钥密 码算法.
椭圆曲线(ECC)密码体制
Elliptic Curve Cryptography
2019/11/11
1
椭圆曲线
椭圆曲线的曲线方程是以下形式的三次方程 y2+axy+by=x3+cx2+dx+e
a,b,c,d,e是满足某些简单条件的实数。定义中包含一个
称为无穷远点的元素,记为O.
2019/11/11
} if(p1.x==inf&&p1.y==inf)return p2; if(p2.x==inf&&p2.y==inf)return p1; if(x2!=x1)
y2 y1
l
x2 x1 3 x12 a
PQ PQ
else m=((y2-y1)*invmod(x2-x1,n))%n; 2 y1
m=((3*x1*x1+a)%n*invmod(2*y1,n))%n;
x3=(m*m-x1-x2)%n;
y3=(m*(x1-x3)-y1)%n;
p3.x =x3;p3.y=y3;
return p3;
}
point multipy(point p, long m, long a, long b, long n)
{(x,y)|0≤x<p,0 ≤y<p,且x,y均为整数}并上O.
2019/11/11
3
28个点
点集如何产生方法?
对每一x(0≤x<p且x为整数),计算x3+ax+b mod p 决定求出的值在模p下是否有平方根,如果没有则椭
圆曲线上没有与这一x对应的点;如果有,则求出两 个平方根。 除(4,0),对应每个x,都有2个点.
加密
选择随机数k,(k,p-1)=1, M明文
C1=g k mod p
C2=Myk mod p 密文C=C1||C2。
解密
密钥产生
选取椭圆曲线Ep(a,b),生成元G ,nA 。 私钥: nA 公钥: Ep(a,b), G,
PA( PA=nAG)
加密
选随机正整数k,将明文消息通过 编码嵌入曲线上得到点pm???