文档详情

现代密码学公钥密码体制课件

工****
实名认证
店铺
PPT
605.50KB
约127页
文档ID:568735677
现代密码学公钥密码体制课件_第1页
1/127

第6章 公钥密码体制 6.1 公钥密码的原理及典型公钥密码 6.2 椭圆曲线密码 6.3 超椭圆曲线密码 6.4 基于身份的公钥密码体制 第第6章章 公钥密码体制公钥密码体制 第6章 公钥密码体制 6.1 公钥密码的原理及典型公钥密码公钥密码的原理及典型公钥密码6.1.1 公钥密码的原理公钥密码的原理  公钥密码的思想最早由Diffie和Hellman在其论文“New Directions in Cryptography”中提出他们设想了一种无须事先传递密钥的密码体制,在该体制中,用户Alice有一对密钥:公开的加密密钥(简称公钥)和保密的解密密钥(简称私钥)向Alice发送秘密信息时,用其公钥加密,Alice收到信息后,用私钥解密由于加密密钥与解密密钥不同,因此公钥密码体制又被称为非对称密码体制,而传统密码(分组密码、序列密码)被称为对称密码体制 第6章 公钥密码体制   与对称密码相比,公钥密码有以下特点:  (1) 安全性取决于某些困难问题的难解性;  (2) 无须事先传递密钥;  (3) 计算量通常大于对称密码  公钥密码中常用的难解问题有分解大整数、离散对数问题、椭圆曲线上的离散对数问题等,其安全性取决于构造算法所依赖的数学问题的计算复杂性,所以公钥密码在理论上是不安全的,但在实际应用中可以选择足够安全的参数来保证计算上的安全性。

第6章 公钥密码体制 6.1.2 Diffie-Hellman密钥交换  Diffie和Hellman给出了一种通信双方无须事先传递密钥也能利用对称密码体制进行保密通信的方法,这就是Diffie-Hellman密钥交换协议(简称D-H协议),在该协议中,通信双方通过协商可以建立一个秘密的密钥D-H协议充分体现了公钥密码的思想,其安全性基于离散对数问题 第6章 公钥密码体制   设系统中公开的参数为大素数p和模p的原根g,用户Alice和Bob为了协商一个公用的秘密密钥,需要进行如下步骤:  (1) Alice随机选择整数xA,计算          ,将yA传给Bob;  (2) Bob随机选择整数xB,计算          ,将yB传给Alice;  (3) Alice计算          ,Bob计算            ,易知两者是相等的,从而可将           作为双方的通信密钥  D-H协议的安全性是基于这样一个假设,即已知    和   ,求xB是困难的,Diffie和Hellman假设此问题的困难等价于离散对数问题 第6章 公钥密码体制 6.1.3 RSA    1977年,美国麻省理工学院的三位数学家Ron Rivest、Adi Shamir和Len Adleman成功地设计了一个公钥密码算法,该算法根据设计者的名字被命名为RSA,在其后的30年中,RSA成为世界上应用最为广泛的公钥密码体制。

  设RSA系统中每个用户有公开的加密密钥n、e和保密的解密密钥d,这些密钥通过以下步骤确定:  (1) 用户选择两个大素数p、q,计算n=pq及φ(n)=(p-1)(q-1); 第6章 公钥密码体制   (2) 选择随机数e,要求1

  接收方收到密文组(c1,c2)后,进行如下的解密运算: 第6章 公钥密码体制 6.2 椭圆曲线密码椭圆曲线密码6.2.1 椭圆曲线椭圆曲线(Elliptic Curve)  椭圆曲线的图像轨迹并不是椭圆,而是一个平面上的三次曲线,是人们在研究如何计算椭圆的弧长时发现的问题  定义 定义6-1 由三次威乐斯特拉斯方程(Weierstrass方程):y2+axy+by=x3+cx2+dx+e所确定的平面曲线称为椭圆曲线,满足方程的点称为曲线上的点若系数a,b,c,d,e来自有限域Fp,则曲线上的点数目也是有限的,这些点再加上一个人为定义的无穷远点O,构成集合E(Fp),E(Fp)的点数记作#E(Fp) 第6章 公钥密码体制   Hasse证明了如下结论:  在构造密码系统时,我们主要关心这样一种椭圆曲线,其方程为  y2=x3+ax+b  x,y,a,b,∈Fp 第6章 公钥密码体制   定理定理6-1 椭圆曲线上的点集合E(Fp)对于如下定义的加法规则构成一个Abel群:  (1) O+O=O;  (2) 对 (x,y)∈E(Fp),(x,y)+O=(x,y);  (3) 对 (x,y)∈E(Fp),(x,y)+(x,-y)=O,即点(x,y)的逆为(x,-y);  (4) 若x1≠x2,则(x1,y1)+(x2,y2)=(x3,y3),其中, 第6章 公钥密码体制   (5) (倍点规则)对 (x1,y1)∈E(Fp),y1≠0,有2(x1,y1)=(x2,y2),其中, 第6章 公钥密码体制   以上规则体现在曲线图形上,含义为  (1) O是加法单位元;  (2) 一条与x轴垂直的线和曲线相交于两个x坐标相同的点,即P1=(x,y)和P2=(x,-y),同时它也与曲线相交于无穷远点,因此P2=-P1;  (3) 横坐标不同的两个点R和Q相加时,先在它们之间画一条直线并求直线与曲线的第三个交点P,此时有R+Q=-P;  (4) 对一个点Q加倍时,通过该点画一条切线并求切线与曲线的另一个交点S,Q+Q=2Q=-S。

第6章 公钥密码体制 6.2.2 椭圆曲线公钥密码体制椭圆曲线公钥密码体制    设P∈E(Fp),点Q为P的倍数,即存在正整数x,使Q=xP,则椭圆曲线离散对数问题ECPLP(Elliptic Curve Discrete Logarithm Problem)是指由给定的P和Q确定出x从目前的研究成果看,椭圆曲线上的离散对数问题比有限域上的离散对数似乎更难处理,这就为构造公钥密码体制提供了新的途径基于椭圆曲线离散对数问题,人们构造了椭圆曲线密码体制  定义定义6-2 设E为椭圆曲线,P为E上的一点,若存在正整数n,使nP=O,则称n是点P的阶,这里O为无穷远点 第6章 公钥密码体制   系统的构造  系统的构造    选取基域Fp,椭圆曲线E,在E上选择阶为素数n的点P(xp,yp)  公开信息为:域Fp、曲线方程E、点P及其阶n   密钥的生成密钥的生成  用户Alice随机选取整数d,1

第6章 公钥密码体制   Alice收到密文后,利用秘密密钥d,计算:d(x1,y1)=dkP=k(dP)=kQ=(x2,y2)再计算     ,得到明文m  这里Q=dP是公开的,若破译者能够解决椭圆曲线上的离散对数问题,就能从dP中恢复d,完成解密[21] 第6章 公钥密码体制 6.2.3 基于椭圆曲线公钥密码体制的密码协议基于椭圆曲线公钥密码体制的密码协议    计算机网络技术正以前所未有的速度渗入到我们工作生活的方方面面由于自身开放与共享的互联特性,网络在给我们提供方便、快捷、高效的信息服务的同时,也带来了各种安全隐患数字签名是对电子文档做出承诺或保证电子文档合法性、抗抵赖性的有效手段在电子商务与电子政务中,有时需要多人进行联合签名,若采用传统的签名方式就会产生巨大的签名验证计算量及信息通信量,违背了网络业务廉价、高效的设计原则此时,多重数字签名方案就有着不可替代的重要作用 第6章 公钥密码体制   1994年,Harn首次提出了一种广播多重数字签名方案,目前又出现了基于离散对数的ElGamal有序多重数字签名方案与广播多重数字签名方案,这些方案的安全性都是建立在有限域GF(p) 上离散对数问题的难解性之上的,而且多重数字签名本身就是一种多层次、联合式的签名认证协议,因此已有方案存在着密钥量大、运算复杂、软硬件实现时系统开销大等不足。

为了保证签名认证协议的安全性,同时降低实现多重数字签名的空间与时间复杂度,提高系统执行效率,基于椭圆曲线公钥密码体制提出了一类网络通信中的多重数字签名方案这类方案将算法的安全性建立在椭圆曲线离散对数问题(ECDLP)的难解性之上,在保证系统数据信息安全性的基础上,充分发挥了椭圆曲线密码系统效率高、安全强度大的特点在同等安全强度下,方案可以用较小的开销(所需计算量、存储量、带宽、软件和硬件实现的规模等)和时延(加密和签名速度快)实现较高的安全性 第6章 公钥密码体制    1. 多重数字签名方案及其分类多重数字签名方案及其分类  在网络通信中,有时要求多个用户对同一消息进行签名与认证(如几位领导或当事人签署同一份文件)能够实现这种多个协议方对同一消息进行签名的数字签名协议就称为多重数字签名 (Digital Multisignature)根据签名协议过程的不同,多重数字签名又可以分为有序多重数字签名 (Sequential Multisignature)与广播多重数字签名(Broadcasting Multisignature)  1) 有序多重数字签名  有序多重数字签名协议过程如图6-1所示。

第6章 公钥密码体制 图6-1 有序多重数字签名方案 第6章 公钥密码体制   有序多重数字签名方案包含消息发送者(issuer)、消息签名者(signers)、签名验证者(verifier) 三个协议方,消息发送者规定消息签名顺序,然后将消息发给第一个签名者除了第一个签名者以外的每一位签名者收到签名消息后,首先验证上一签名的有效性,如果有效则继续签名,然后将签名消息发送到下一个签名者;如果签名无效则拒绝对消息进行签名,终止签名协议签名验证者最后收到签名消息,对消息进行有效性验证,如果签名有效则通过认证,否则拒绝进一步的协议过程 第6章 公钥密码体制   2) 广播多重数字签名  广播多重数字签名协议过程如图6-2所示  广播多重数字签名方案包含消息发送者、消息签名者、签名收集者(signature collector)、 签名验证者四个协议方消息发送者将消息同时发送给每一位签名者进行签名;签名者将签名消息发送到签名收集者;收集者对各个签名消息进行处理并将结果发送给签名验证者;签名验证者完成对多重数字签名的有效性验证工作 第6章 公钥密码体制 图6-2 广播多重数字签名方案 第6章 公钥密码体制   2. 基于基于ECC的多重数字签名方案的多重数字签名方案  1) 有序多重数字签名方案  有序多重数字签名方案包括系统初始化、签名产生与签名验证过程,方案的协议方为消息发送者、消息签名者与签名验证者。

  初始化过程设A为消息发送者,B1,B2,…,Bn为消息签名者,C为签名验证者 第6章 公钥密码体制   鉴于安全性和执行效率的考虑,系统参数设定为:Fp为特征值Char(Fq)>3的有限域,定义该域上的椭圆曲线E,E:y2=x3+ax+b(a,b∈Fp,4a3+27b2(mod q)≠ 0,q为 n bit的素数,n ≥190),P∈E(Fq) 是一个公开基点,P的阶为L(L≥160 bit),#E(Fq)为椭圆曲线的阶,至少有50位以上的大素因子  假设ki∈(1,2,…,q-1)分别为消息签名者Bi的私钥,Ki=kiP为Bi的公钥,共享的安全散列函数选择SHA_1或RIPEMD_160消息发送者A预先设计一个签名顺序B1,B2,…,Bn,并且将签名顺序发送给每一位签名者Bi与验证者C 第6章 公钥密码体制   签名产生过程 签名产生过程    A将消息m发送到第一位签名者B1,规定此时的签名消息s=0每一位签名者Bi(i≥2)收到签名信息(m,(si-1,Ri-1))后,先对签名进行验证,然后执行以下步骤:  (1) Bi随机选取ui∈(1,2,…,q-1),计算:m′=SHA_1(m),Ri=uiP=(xi,yi)≠0,si=si-1+kixi-m′ui(mod q)(6-1) 第6章 公钥密码体制    (2) 将(m,(si,Ri))发送到下一个签名者Bi+1,同时将Ri发送给Bi以后的签名者以及签名验证者C。

  签名验证过程签名验证过程    签名者Bi(i≥2)要对B1,B2,…,Bi-1的签名进行验证,验证者C要对所有签名者B1,B2,…,Bn的签名进行验证Bi验证  (6-2)是否成立若等式成立,则Bi认为B1,B2,…,Bi-1的签名消息有效;否则判定签名无效,拒绝继续对消息签名 第6章 公钥密码体制   同样,C验证   (6-3)是否成立如果等式成立,则认为B1,B2,…,Bn的签名有效;否则认定为无效签名 第6章 公钥密码体制   签名验证中,由式(6-1)可得(6-4)因此 这就验证了上述有序多重数字签名方案的正确性式(6-2)右边=等式左边 第6章 公钥密码体制   2) 广播多重数字签名方案  初始化过程  此方案的系统初始化和参数设定与有序多重数字签名方案相同,且Bc为签名收集者  签名产生过程  A将消息m发送到每一位签名者Bi(i=1,2,…,n)和签名收集者Bc,规定此时的签名消息s=0签名者Bi和收集者Bc收到消息后执行以下步骤:  (1) Bi随机选取ui∈(1,2,…,q-1)计算Ri=uiP=(xi,yi)≠0,将Ri发送到签名收集者Bc; 第6章 公钥密码体制   (2) 签名收集者Bc收集到所有Ri(i=1,2,…,n)后,计算          , 随后Bc将R发送到每一位签名者Bi(i=1,2,…,n);  (3) 对于消息m,签名者Bi计算m′=RIPEMD_160(m),然后生成签名 (6-5)则si作为签名者Bi对消息m的子签名,Bi将签名消息(m, si)发送到签名收集者Bc; 第6章 公钥密码体制   (4) 当Bc收集到所有(m, si)(i=1,2,…,n)后,计算  (6-6)然后将(m,s,R)作为最后签名信息发送到签名验证者C。

第6章 公钥密码体制   签名验证过程  签名验证过程    C接收到签名信息(m,s,R)后,首先计算m′=RIPEMD_160(m),然后验证   (6-7)是否成立如果等式成立,则认为B1,B2,…,Bn 对消息m的签名有效;否则认定为无效签名 第6章 公钥密码体制   上述验证签名的等式中,由于因此 式(6-7)右边=等式左边  上式验证了上述广播多重数字签名方案的正确性 第6章 公钥密码体制   3) 方案分析  基于ECC的多重数字签名方案除体现了现有多重数字签名方案的优点外,还具有以下特点:  (1) 实现了一类透明的协议过程广播多重签名中,签名收集者通过签名处理过程 第6章 公钥密码体制 的引入,隐蔽了各个签名者的随机中间参数Ri与单个子签名消息si,验证者与攻击者都无法将签名信息与单个签名者联系起来,因此方案对于外部攻击具有较强的抵抗能力对于内部攻击,假定有m(m

方案避免了出现由部分成员可决定的系统秘密,所以对于内部成员同样具有较强的抗攻击能力 第6章 公钥密码体制   (2) 具有较强的防伪造性伪造者B′在不知道各个签名者Bi的私钥ki及随机数ui的情况下,伪造签名信息(m,s′,R)(其中s′≠s)满足广播多重签名公式(6-7):或伪造签名信息(m,(    ))(其中    )满足有序多重签名公式(6-3):时,都是求解多重的椭圆曲线离散对数问题即使对于签名收集者Bc,方案也具有较强的防伪造性,因为签名者Bi的私钥和随机参数ui对Bc是保密的,要伪造签名,面对的是求解椭圆曲线离散对数问题 第6章 公钥密码体制   (3) 具有牢固的抗抵赖性两种多重签名子方案中,签名验证者对各个签名者公钥进行遍历,完成验证后,签名者Bi不能否认对消息进行了签名,因为完成签名协议过程的前提是掌握Bi的私钥及相应随机数ui   (4) 算法简洁、高效方案充分发挥了ECC密钥短、安全性高的优势,密钥长度仅需160 bit就可以提供与1024 bit的RSA或DSA同样的安全度因此,该方案特别适用于计算能力和集成电路空间受限(如智能卡smart card)、带宽受限(如无线通信和某些计算机网络)、要求高效率实现的情况。

第6章 公钥密码体制   需要特别指出的是,方案中签名者Bi每次签名时必须更换随机产生的秘密参数ui例如,在有序多重签名方案中,如不更换随机数且签名的顺序保持不变,那么攻击者根据变化了的si与m′的值,依据式(6-4),在经过2(i-1)次协议过程后,就可以联立2(i-1) 个关系式,从而求解出前面i-1个签名者的私钥与相应的随机数同理,在广播多重签名中,可由式(6-5)、(6-6)得到如不更换随机数,那么协议过程次数越多私钥就越不安全,当协议次数大于2n时,就完全有可能攻破私钥,伪造签名 第6章 公钥密码体制   4) 方案的软件实现效率与安全性  椭圆曲线密码软件实现时的函数包括:模一般素整数运算函数集,其中有加、减、乘、除、求逆;大素数域GF(q)中运算函数集,这其中也有加、减、乘、除、求逆;椭圆曲线基本运算函数集,其中有点加、倍点、固定点标量乘(scalar multiplication,即求固定点p的k倍)、随机点标量乘;辅助函数,如安全散列函数选择SHA_1或RIPEMD_160 第6章 公钥密码体制   模一般素整数运算与大素数域GF(q)中运算是ECC软件实现中调用最频繁的函数,这些函数采用汇编语言编写,其它的函数与算法用标准C语言编写。

   表6-1列出了运用相关文献提出的椭圆曲线软件实现方法,在PⅢ800 MHz 128 M内存的运行环境下方案的执行效率 第6章 公钥密码体制   方案中,椭圆曲线选取192 bit二元域上的Koblitz曲线,安全素数(公开基点P的阶)是160 bit的素数利用目前对一般椭圆曲线离散对数问题进行攻击的最好方法Pollardρ算法,对于一台每分钟能执行1百万条指令的机器(每秒钟能执行4×104次椭圆曲线加法运算,在一年内可执行(4×104)(60×60×24×365)≈240次椭圆曲线点加运算),要完成(πn/2)1/2≈280步攻击运算,至少需要9.6×1011年到2004年时,可得到的计算能力已为108 MIPS(一个MIPS为一台每分钟能执行1百万条指令的机器工作一年),到2014年,可得到的计算能力为1010~1011 MIPS,即使此时要实现对此ECDLP的攻击也分别至少需要9.6×103年和9.6年(不考虑并行Pollardρ攻击方法)因此可以得出结论:对算法进行强力攻击在计算上是不可实现的,同时方案也以较少的存储空间和较小的通信带宽与系统开销实现了较高的安全性 第6章 公钥密码体制   多重数字签名是网络中常用的一种通信协议,但由于是通过多次签名与认证的策略实现联合签名以加强协议的安全性,因此多重签名方案存在着协议过程复杂、签名认证运算开销大等不足之处。

上文中提出的基于椭圆曲线密码的网络通信中的多重数字签名方案体现了低通信消耗(low communication costs)与低系统开销的设计原则 第6章 公钥密码体制 6.3 超椭圆曲线密码超椭圆曲线密码  Neal Koblitz和Victor Miller在20世纪80年代中期提出了椭圆曲线密码体制(ECC),经过20多年的研究,ECC理论已经比较成熟,并且已经广泛应用于实际当中作为椭圆曲线的一个推广,Neal Koblitz在1989年提出了超椭圆曲线密码体制(HCC),它的安全性基于有限域上超椭圆曲线的Jacobian上的离散对数问题的难解性 第6章 公钥密码体制 6.3.1 超椭圆曲线超椭圆曲线  定义  定义6-3 设F是域,  是其代数闭域,则F上亏格为g(g≥1)的超椭圆曲线C是指具有方程形式:C:v2+h(u)v=f(u)       (6-8)的曲线这里h(u)∈F[u]是次数不大于g的多项式,f(u)∈F[u]是一个次数为2g+1的首一多项式,而且不存在                满足下列方程组:如果g=1,则称C为椭圆曲线 第6章 公钥密码体制   定义定义6-4 设K是F上的一个扩域,那么C上的一个K-点P是符号∞(称为C上的无穷远点)或是方程C:v2+h(u)v=f(u)的一个解(x,y)∈K×K。

C上的所有K-点记为C(K)  定义定义6-5 设P=(x,y)是一条椭圆曲线C:v2+h(u)v=f(u)上的一个有限K-点,那么它的相反点记为          如果P=∞,我们取     如果P是一个有限点且满足     ,则称P是一个特殊点,否则称P是一个普通点 第6章 公钥密码体制   引理引理6-1 设C是由方程C:v2+h(u)v=f(u)定义的域F上的超椭圆曲线,则满足:  (1) 如果h(u)=0,那么Char(F)≠2  (2) 如果Char(F)≠2,那么作变换u→u及v→v-h(u)/2,从而将C的形式变为v2=f(u) (其中deguf=2g+1) 第6章 公钥密码体制 6.3.2 除子与除子与Jacobian群群  定义  定义6-6 一个除子d是C上若干点的一种形式和:其中只有有限个整数mP非零整数     称为d的度数,记为degdd在P点的阶是mP,表示为ordP(d)=mP设D表示C上所有除子的集合,那么D在如下加法规定之下是一个加群:设D0={d∈D|degd=0},那么D0是D的一个子群 第6章 公钥密码体制   定义定义6-7 设C是域F上的一条超椭圆曲线,域   上C的坐标环是定义为 的商环。

    中的元素称为C上的多项式函数  对每一个多项式函数         ,可以通过重复地将G(u,v)中的v2替换成f(u)-h(u)v来降低v的幂次,最终得到G(u,v)的一种唯一形式,可设为 第6章 公钥密码体制   定义定义6-8 设             是一个非零的多项式函数,P∈C,那么G在P点的阶记为ordP(G),定义如下:  (1) 如果P=(x,y)是一个有限点,那么可设G(u,v)=(u-r)r(a0(u)-b0(u)v),这里r是可同时整除a(u)和b(u)的(u-x)的最高次幂如果(a0(x)-b0(x)y)≠0,则设s=0;否则,设s是使(u-x) s整除范数的最高次幂如果P是一个普通点,则定义ordP(G)=r+s;如果P是一个特殊点,则定义ordP(G)=2r+s 第6章 公钥密码体制   (2) 如果P=∞,则定义ordP(G)=-max{2degu(a),2g+1+2degu(b)}对于一个非零的有理函数          及C上的一个点P的阶定义为ordP(R)=ordP(G)-ordP(H) 第6章 公钥密码体制   定义定义6-9 设      是一个有理函数,则R的除子定义为  例如,如果P是一个普通点,则有          ; 如果P是一个特殊点,则有div(u-x)=2P-2∞。

  显然, 如果R=G/H,则div(R)=div(G)-div(H) 第6章 公钥密码体制   定义定义6-10 设J(更准确地说为      也可以用F的任何一个扩域代替)表示商域D0/P,J称为曲线C上的Jacobian群  设d1,d2∈D0,如果d1-d2∈P,那么记d1~d2,并称d1与d2等价  J中的每一个元素是D0中元素的一个等价类,它可以表示成d+P,或简单地记为   ,这里d∈D0是一个除子,并称为   的一个代表元很显然,该代表元不唯一J中元又称为除子类 第6章 公钥密码体制 6.3.3 超椭圆曲线超椭圆曲线Jacobian群中的运算群中的运算  定理  定理6-2 设d=∑miPi-∞∑mi是一个半约化除子,这里Pi=(xi,yi)∈C,设          ,那么存在唯一的一对多项式(a(u),b(u))满足d=gcd(div(a(u)),div(b(u)-v))为了简便,通常将其写成div(a,b)因此,J中的每一个元素可唯一地表示成      其中,多项式a(u)、b(u)满足degub<degua<g及a(u)|(b2(u)+b(u)h(u)-f(u)),因此J(Fq)是一个有限Abelian群,且其阶#J(Fq)≤q2g。

第6章 公钥密码体制   设D*表示所有约化除子div(a,b)组成的集合,a,b∈F(u),且满足degub<degua<g及a|(b2+bh-f),则集合J(F)与集合D*之间存在一个一一映射在如下的讨论中,我们可以将J(F)看成是D*,将    看成是div(a,b),群J(F)的零元则是div(1,0) 第6章 公钥密码体制   此处定义一种运算,称为J(F)中的加法,用标记,这也被称为超椭圆曲线Jacobian上的除子加  设d1=div(a1,b1),d2=div(a2,b2)∈D*,规定d1⊕d2=d(a,b)是由下列算法唯一确定的约化除子:  (1) 利用广义Euclidean算法找出多项式d,s1,s2,s3∈F(u),满足: d=gcd(a1,a2,b1+b2+h),d=s1a1+s2a2+s3(b1+b2+h)  (2) 置 第6章 公钥密码体制   (3) 置   (4) 如果degua>g,则作变换a′←a,b′←b,并返回(3)  (5) 输出div(a,b)即为d 第6章 公钥密码体制   有限域上超椭圆曲线的Jacobian是一个有限交换群,超椭圆曲线的Jacobian上的基本运算包括除子加、倍除子和除子标量乘。

Jacobian上实用的群运算算法最早是由Cantor提出的,当时只是限定在非特征2的域上之后,Neal Koblitz于1988年提出超椭圆曲线密码体制时将Cantor算法推广到了任意的域上Cantor-Koblitz群运算法则实际上等价于高斯的二元二次型归约算法Andreas Enge将归约算法进行了推广,在除子运算中运用了扩展的Euclidean算法,对几种除子运算的计算量作了理论上的分析,得到了一次除子加用到有限域GF(qn)中运算的平均值,其数据如表6-2所示(超椭圆曲线为C:v2+h(u)v=f(u)) 第6章 公钥密码体制 第6章 公钥密码体制   我们以F.G.Zhang[19]借助Frobenius自同态提出的一种快速除子标量乘算法为例,计算分析快速除子标量乘的运算量Zhang的方法可推广为一类计算超椭圆曲线除子标量乘的方法,实现步骤如下:  (1) 输入一个除子D及一个正整数m;  (2) 计算曲线Jacobian上的Frobenius自同态的特征多项式P(T);  (3) 对于1≤i≤qg-1,预计算iD; 第6章 公钥密码体制   (4) 将m转换成符号q-进制:        ,其中-qg+1≤i≤qg-1;  (5) 令B:=〈1,0〉;  (6) 对于i自l-1 递减到0,计算: B:B+rD 若ri不为零   (7) 输出B为mD。

  下面我们以几条选定的GF(qn)上的超椭圆曲线为例,比较二元法与Zhang提出的方法计算qnP的运算量,如表6-3所示表中,a、m和s分别表示一次除子加、倍加和赋值运算) 第6章 公钥密码体制 第6章 公钥密码体制 6.3.4 超椭圆曲线密码体制超椭圆曲线密码体制(HCC)    设C是Fq上亏格为g的超椭圆曲线,J(Fq)是它的Jacobian,       ,n是160 bit的大素数(h=1,或是较小的余因子),q约为160 bitp∈J(Fq)是具有大素数阶n的一个约化除子,在g=2时,   设    , Q=kP=[aq,bq] ≠0,则Q可以作为公钥公布,k作为密钥保存,加密时将信息嵌入密钥当中 第6章 公钥密码体制   同时我们需要一个单射,将P对应于一个整数设ψ表示该对应关系,则ψ是一个从J(Fq) 到有限整数集             的单射,将其记为(P) x或(P) q很显然,这样的赋值映射是不唯一的在实际密码应用中,可以根据给定的超椭圆曲线规定一个适当的映射的值域范围下面是例子:  (1) 设β=(c0,c1,…,c2g-1)是集合{a0,…, ag-1,b0,…, bg-1}上的一个置换映射,那么是一个单的赋值映射。

第6章 公钥密码体制   (2) 先对每个ai与bi取模q,转换为不大于q-1的非负的整数,令上式表示将所有ai与bi取模q后的非负数联接而得到的整数 第6章 公钥密码体制   超椭圆曲线密码体制的安全性是建立在超椭圆曲线离散对数问题(HCDLP)的难解性之上的,目前对低亏格(g≤4)的HCC的攻击是指数时间的,对亏格小于4的一般超椭圆曲线没有发现亚指数时间攻击在与RSA或传统的离散对数密码系统相同的安全强度下,它可以使用更短的操作数长度实际中,操作数长度在50~80之间(依赖于亏格的取值)所建立的密码体制就足以抗击目前已知的攻击若取亏格为3,则所基于的有限域的大小可以是60 bit,由此所建立的密码体制的安全性与180 bit的ECC等同,远远大于1024 bit的RSA如果使用的是64 bit处理器的计算机,则超椭圆曲线的运算就可以用单个计算机的字去处理,从而避免了多精度整数运算,使得存储和运算更简单[1] 第6章 公钥密码体制 6.3.5 基于超椭圆曲线密码体制的密码协议基于超椭圆曲线密码体制的密码协议    分工的社会化、经济的全球化促使经济业务更为复杂多变,单一的经营实体经常难以处理专业性强、职能特征突出的交易与事务,这就不可避免地出现了委托、信托、行寄的经营形式。

而在经营实体规模不断扩大的趋势下,所有权与经营权的分离也出现了管理经营的授权委托,比较典型的就是合伙制与股份公司制的受托经营在这些运作模式下,处理电子商务重大事务的真正决定权仍在所有者,由其对重大合同、契约等授权签字,而又需要由运作者执行签字这就内含一种代理行使签名权的机制,即代理签名同样,在B2B模式下的电子交易系统中,代理数字签名也成为代理营销方案保证交易真实性、完整性、有效性与可靠性的关键技术 第6章 公钥密码体制    1. 代理数字签名方案及其分类代理数字签名方案及其分类  代理数字签名可以分为单个代理签名与多重代理数字签名  1) 单个代理签名  设A,B是某个数字签名体制(M,S,K,SIG,VER)的两个用户,他们的私钥和公钥分别是(xA,yA)与(xB,yB),若有以下5个条件成立,那么,就称A将他的数字签名权力委托给了B,称A为原始签名人,B为A的代理签名人,f为委托密钥,fAB为代理签名密钥  (1) A利用他的密钥xA计算出一个数f,并将f秘密地交给B; 第6章 公钥密码体制   (2) 任何人(包括B)在试图求出xA时,f不会对其有任何帮助;  (3) B利用xB和f生成一个新的签名密钥fAB;  (4) 存在一个公开的验证算法VERAB,满足对于任何s∈S和m∈M,都有VER(yA,s,m)=True,等价于s=SIG(fAB, m);  (5) 任何人在试图求出xA,xB,f或fAB时,任何数字签名SIG(fAB,m)都不会对其产生帮助。

第6章 公钥密码体制   2) 多重代理数字签名  若Ai(1≤i≤n)是某个数字签名体制(M,S,K,SIG,VER)的n个用户,Ai的秘钥与公钥对为(xi,yi)假若对于任意的Ai(1≤i≤n)都将他的签名权力委托给了B(设B得到的代理签名秘钥为fi),B对某个特定的消息m∈M联合生成了一个多重签名s=SIG(f1,f2,…,fn,m),使得验证这个多重签名的有效性时,必须使用所有Ai的公钥,那么称S为一个由B代表Ai (1≤i≤n)生成的多重代理签名[2] 第6章 公钥密码体制    2. 基于基于HCC的单一代理数字签名方案的单一代理数字签名方案  方案包括系统初始化、委托过程、签名产生与签名验证过程,同时方案的协议方为原始签名者、代理签名者与签名验证者 第6章 公钥密码体制   1) 初始化过程  设C是Fq上亏格为g的超椭圆曲线,J(Fq)是它的Jacobian,#J(Fq)=hl,l是190 bit的大素数(h=1,或是较小的余因子),q约为190/g bitP, P1∈J(Fq)是具有大素数阶的约化除子,它们的阶分别为L0、 L1(满足min(L0,L1)≥190 bit)。

n为一个大素数(满足n>max(L0,L1))H0、 H1、 H2为安全的散列函数,H0,H1,H2{0,1} *→Znka, kb∈  分别为用户A和银行的私钥,Kb=kbP,Ka=kaP作为两者的公钥,密钥对 (Ka,ka)、 (Kb,kb)作为协议中的主密钥ψ表示是一个从J(Fq)到有限整数集   ={0,1,…,q2g+1-1}的单射函数,将其记为(P)x或(P)q公开n,P、 P1和H0、 H1、 H2以及公钥Kb=kbP,Ka=kaP设kA,kB∈(1,2,…,n-1)分别为A和B的私钥, KA=kAp,KB=kBp为A和B的公钥,共享的安全散列函数为H1和H2 第6章 公钥密码体制   2) 委托过程  (1) A随机选取u∈(1,2,…, n-1),计算:R=up≠0,h=H1((R) x)f=hkA+u(mod n) (6-9)并将(R,f)秘密地发送给B   (2) B计算h=H1((R) x),然后验证:fp=hKA+R是否成立,若成立则计算f′=f+kB(mod n)(6-10) 第6章 公钥密码体制   3) 代理签名过程  对于某个消息m,B随机选取v∈(1,2,…, n-1),计算得到T=vp≠0,再计算m′=H2(m)s=(T) xf′-m′v(mod n)(6-11)并将(m,s,R,T)发送给签名验证者。

第6章 公钥密码体制   4) 代理签名验证过程  验证者接收到(m,s,R,T)后,计算h=H1((R) x),m′=H2(m)验证(T) x(hKA+R+KB)=sp+m′T (6-12)是否成立如果等式成立,则认为B代理A的签名有效;否则认定为无效签名 第6章 公钥密码体制   签名验证中,由式(6-11)可得式(6-12)右边=等式左边这就验证了上述单一代理数字签名方案的正确性 第6章 公钥密码体制   3. 基于基于HCC的多重代理数字签名方案的多重代理数字签名方案  1) 初始化过程  系统初始化和参数设定与单一代理数字签名的方案相同,假设ki,kB分别为Ai(i=1,2,…,n) 和B的私钥, Ki=kip,KB=kBp为Ai和B的公钥,共享的安全散列函数为H1和H2 第6章 公钥密码体制   2) 委托过程  (1) Ai随机选取ui∈(1,2,…, n-1),计算Ri=uip≠0,hi=H1((Ri) x)fi=hiki+ui(mod n)(6-13)并将(Ri,fi)秘密地发送给B   第6章 公钥密码体制   (2) B在收到(Ri,fi)(i=1,2,…,n)后,计算hi=H1((Ri)x),然后验证fip=hiKi+Ri是否成立。

若成立则认为(Ri,fi)是一个有效的子代理密钥; 否则B要求Ai重复(1)或终止协议过程 第6章 公钥密码体制   3) 代理签名过程  B在收到所有(Ri,fi)后,计算出 (6-14)对于某个消息m,B随机选取v∈(i=1,2,…, n-1),计算T=vp≠0,m′=H2(m)s=f′-(m′+(T) x)v(mod n)(6-15)(s,T,R1,R2,…, Rn)为B代表Ai(i=1,2,…,n)生成的多重代理签名 第6章 公钥密码体制   4) 代理签名验证过程  验证者收到(s,T,R1,R2,…, Rn)和消息m后,计算hi=H1((Ri) x),m′=H2(m)验证(6-16)是否成立如果等式成立,则认为B代理Ai生成的多重代理签名有效;否则认定为无效签名 第6章 公钥密码体制   签名验证中,由式(6-15)可得式(6-16)右边=等式左边这就验证了上述多重代理数字签名方案的正确性 第6章 公钥密码体制   4. 代理数字签名方案分析代理数字签名方案分析  (1) 代理签名方案可具有区分与身份证实性根据式(6-10),在单一代理签名中有f′=f+kB(mod n)根据式(6-14),在多重代理签名中有 第6章 公钥密码体制 所以代理签名密钥的产生依赖于原始签名人的普通签名密钥,但不同于原始签名者的普通签名密钥,因此与原始签名密钥是可区分的,而且在存在多个代理签名者的情况下,每个代理签名者的子代理密钥(Ri,fi)也是不相同的。

所以,原始签名者可以将不同的代理者区分开,有效地实现对代理者的监督,防止代理签名权力的滥用在出现问题时,第三方也可以将原始签名者与代理签名者、不同的代理者区分开来 第6章 公钥密码体制   (2) 具有较强的防伪造性除了原始签名人A以外,任何人(包括代理签名者)在不知道私钥kA的情况下,都不能伪造原始签名人的普通签名信息同理,代理签名者的签名秘钥对于攻击者(包括原始签名者)也是安全的如果原始签名者委托了多人代理签名,则根据式(6-10) 、(6-14),由于代理签名秘钥f′中引入了代理签名者的私钥kB,各个代理签名者之间也不能伪造签名信息,因为要伪造签名必须攻击相应代理签名者的私钥及随机数v,这就使得面对的都是求解HCDLP问题对于内部攻击,假定有m(m

由于代理签名密钥与普通签名密钥具有较强的防伪造性与身份证实性,因此签名验证者对各个原始签名者的公钥进行遍历,完成验证或(T) x(hKA+R+KB)=sp+m′T后,原始签名者Ai不能否认将代理签名权委托给了B,代理签名者B也不能否认对消息进行了签名,因为完成委托与代理签名协议过程的前提是掌握相应的私钥及协议中产生的随机数 第6章 公钥密码体制   (4) 代理签名权撤销灵活当原始签名人想撤消代理签名者Bi的代理签名权时,他可以通过媒体公开宣布原有委托信息(Ri,fi)不再有效,注销代理签名密钥f′但是这种广播方式必须要有签名机制,以防止攻击者发布伪造的撤销消息进行中间入侵攻击(intruder-in-middle attack) 第6章 公钥密码体制   (5) 算法简洁、高效方案充分发挥了HCC密钥短、安全性高的优势当超椭圆曲线亏格为3时,方案所基于的有限域仅需60 bit就可以提供与180 bit的ECC相同的安全强度  需要特别指出的是,签名者B每次签名时必须更换随机产生的秘密参数v,否则攻击者根据si与m′值的变化,从单一代理签名式(6-9)、 (6-10) 、(6-11)可得s=(T) x(hkA+u+kB)-m′v(mod n)经过四次协议过程就可以联立四个关系式,解出原始签名者与代理签名者的私钥与相应的随机数。

第6章 公钥密码体制   同理,在多重代理签名中,依据式(6-13)~(6-15)可得 如不更换随机数,那么协议过程越多私钥就越不安全,当协议次数大于2(n+1)时,就完全能够攻破私钥,破坏整个签名系统 第6章 公钥密码体制 6.4 基于身份的公钥密码体制基于身份的公钥密码体制6.4.1 基于身份的密码体制简介基于身份的密码体制简介  基于身份的密码体制最早于1984年由Shamir提出[8],针对公钥基础设施利用向用户分发证书实现密钥管理而造成的使用上的不便,Shamir提出了用任意字符串作为密钥的思想,即IBE(Identity Based Encryption),其主要思路是利用用户的身份信息(ID、邮箱等)生成公钥,从而信息的发送方无须访问任何证书机构或可信第三方就能得到接收方的公钥 第6章 公钥密码体制   Shamir通过邮件加密来阐述IBE的工作过程,当用户Alice要向Bob发送邮件时,假设Bob的邮箱为//,,无须从任何证书管理机构获得Bob的公钥证书Bob收到密文时,与称为私钥生成器(PKG,Private Key Generator)的第三方联系,通过认证后,得到自己的私钥,从而可以解密信息。

这样做可以大大简化邮件系统中的密钥管理,从而使公钥密码的应用变得极为方便 第6章 公钥密码体制   IBE的思想提出后,人们用各种数学工具设计了许多实现方案,但这些方法都有一定的局限性,因此,长期以来,设计实用的IBE方案被视为一个公开的难题2001年,Boneh和Franklin利用代数曲线上的双线性对实现了第一个既实用又安全的IBE方案[9]他们还利用随机预言机模型(ROM,Random Oracle Model)证明,该方案能抵抗不可区分的自适应选择密文攻击此后,大量基于双线性对技术的加密和签名机制被提出,基于身份的密码学研究成为学者们关注的热点目前,基于身份的方案包括基于身份的加密体制、可鉴别身份的加密和签密体制、签名体制、密钥协商体制、鉴别体制、门限密码体制和层次密码体制等 第6章 公钥密码体制   一个基于身份的密码体制由四个随机算法构成  初始化(Setup):给定安全参数k,输出系统参数params和主密钥,系统参数包括消息空间M、密文空间C系统参数是公开的,而主密钥只有“私钥生成器”PKG知道  密钥提取(Extract):输入系统参数params,主密钥和任意的ID∈{0,1}*,输出私钥d,其中ID为用户公钥,d为相应的私钥,提取算法由给定的公钥生成私钥d。

  加密(Encrypt):输入系统参数params、ID,以及m∈M,输出密文c∈C  解密(Decrypt):输入系统参数params、ID,私钥d以及c∈C,输出m∈M 第6章 公钥密码体制   这些算法必须满足一致性条件,即当d为由提取算法产生的相对于ID的私钥时,对任意m∈M,有Decrypt(params,ID,c,d)=m其中,c=Encrypt(params,ID,m)  基于身份的密码体制建立在椭圆曲线密码学(ECC,Elliptic Curve Cryptography)的基础之上,ECC体制的安全基础是有限域中椭圆曲线上的点群中的离散对数问题(ECDLP,Elliptic Curve Discrete Logarithm Problem)目前的研究结果表明,解决椭圆曲线离散问题比有限域上的离散对数问题更加困难对椭圆曲线密码体制的研究与应用极大地促进了基于身份密码体制的研究 第6章 公钥密码体制   以下我们详细介绍Boneh和Franklin提出的IBE体制(BF方案)6.4.2 BF方案及其安全性方案及其安全性    1. 安全模型安全模型    在公钥密码体制中,由于加密密钥公开,因此认为攻击者拥有所有用户的公钥,并且可以任意选择明文进行加密,此外攻击者还有机会获得密文,而且可能利用各种途径来获得解密。

因此,足够安全的公钥密码体制应该能够抵抗选择密文攻击 第6章 公钥密码体制   公钥密码体制按照攻击者所掌握的条件及攻击目标的不同,可以分为  单向性(OW)安全:由密文不能恢复相应的明文;  不可区分性(IND)安全:对已知给定的两个明文,加密者随机选择其中一个进行加密,攻击者无法从密文中获知是对哪个明文的加密;  非延展性(NM)安全:攻击者无法构造与已给密文相关的新密文  以上安全性概念是依次加强的,NM比IND安全,IND比OW安全 第6章 公钥密码体制   此外,公钥密码体制还可按照可能的攻击模型分为  选择明文(CPA)攻击:攻击者可以先适应性选择明文,获得相应的密文;  非适应性选择密文(CCA1)攻击:攻击者除了可以适应性选择明文攻击外,在给定目标密文前,还可以任意选择密文并获得相应的解密;  适应性选择密文(CCA2)攻击:攻击者的唯一限制就是不能直接获得与目标密文相对应的明文,即攻击者可以在给定目标密文后,任意选择密文并获得相应的解密  同时考虑攻击目标和攻击模型,可以获得不同的安全性,其中最重要的是IND-CCA2和NM-CCA2安全,而二者被证明是等价的,所以通常意义上的选择密文攻击安全性是指IND-CCA2安全。

第6章 公钥密码体制   1) IND-ID-CCA  IND-CCA是一种被普遍接受的公钥密码安全性标准,在一般情况下,对于攻击者所掌握的条件可以定义为得到了某个公钥ID相对应的私钥,而在IBE中,选择密文攻击安全性的定义必须有所加强这是因为攻击者在攻击时,可以任意选择系统中任何一个用户的ID因此应该定义为允许攻击者任意选择公钥IDi,并得到与之相应的私钥这个条件被称为私钥提取询问(Private Key Extraction Query),而加入了私钥提取询问条件的IND-CCA记作IND-ID-CCA 第6章 公钥密码体制   在定义IND-ID-CCA安全的IBE系统时,Boneh和Franklin设计了如下攻击游戏:  初始化:挑战者选择安全参数k,运行IBE中的初始化算法,将系统参数送给敌手,而将主密钥保密  阶段1:敌手发出m个询问q1,q2,…,qm其中,qi可以是以下二者之一:  (1) 提取询问〈IDi〉,此时挑战者的响应是运行IBE中的密钥提取算法,产生相应于公钥IDi的私钥di并将其送给敌手 第6章 公钥密码体制   (2) 解密询问〈IDi,ci〉,此时挑战者的响应是运行密钥提取算法,产生私钥di,然后运行解密算法,利用di对密文解密,将明文送给敌手。

  敌手可以根据q1,q2,…,qi-1的结果自适应地选择qi为何种询问  挑战:阶段1结束后,挑战者输出两个明文m0,m1∈M,以及要挑战的公钥ID,唯一的限制条件是ID不出现在阶段1的任何询问中挑战者随机选择1比特b∈{0,1},设置C=Encrypt(params,ID,Mb),将C作为挑战发送给敌手 第6章 公钥密码体制   阶段2:敌手发出更多的询问qm+1,…,qn其中,qi为以下二者之一:  (1) 提取询问〈IDi〉,其中IDi≠ID,挑战者的响应如阶段1  (2) 解密询问〈IDi,ci〉≠〈ID,c〉,挑战者的响应如阶段1  猜测:敌手输出一个猜测b′∈{0,1},如果b′=b,则获胜   第6章 公钥密码体制 进行以上攻击的敌手A被称为一个IND-ID-CCA攻击者,其优势定义为  如果不存在敌手A,能以不可忽略的优势在上述攻击游戏中获胜,则说一个IBE系统在IND-ID-CCA下是语义安全的不可忽略的优势”理解为存在某个多项式f,使得             ,其中k为系统的安全参数 第6章 公钥密码体制   2) OWE  为了证明IBE系统的安全性,需要采用一个弱化的安全概念,称为单向加密(OWE,One-Way Encryption)。

OWE是针对标准公钥体制而定义的,其含义为:假设敌手A掌握了一个随机的公钥Kpub和密文c,c是利用Kpub对随机明文m加密的结果,攻击者的目标是恢复相应的明文,其优势定义为Pr[A(Kpub,c)=m]  如果不存在多项式时间攻击者,能够以不可忽略的优势攻破该体制,则称一个公钥体制是单向加密体制 第6章 公钥密码体制   在IBE中,Boneh和Franklin对该定义进行了强化,即如果不存在多项式时间的敌手,能以不可忽略的优势在以下的攻击中获胜,则称一个IBE体制是基于身份的单向加密体制(ID-OWE)攻击包括四个步骤:  初始化:挑战者选择安全参数k,运行IBE中的初始化算法,将系统参数给敌手,而将主密钥保密 第6章 公钥密码体制   阶段1:敌手发出私钥提取询问ID1,…,IDr,挑战者运行密钥提取算法,输出每个公钥IDi对应的私钥di,并将其传给敌手;  挑战:阶段1结束后,挑战者输出公钥ID≠ID1,…,IDrID为其要挑战的公钥,随机选择m∈M,并用ID对m加密,将密文c送给敌手  阶段2:敌手发出更多的询问IDr+1,…,IDn,要求IDi≠ID,挑战者的响应如阶段1。

  猜测:最后敌手输出消息m′∈M,如果m′=m,则获胜 第6章 公钥密码体制    2. 数学工具数学工具  1) 双线性映射  定义定义6-11 令G1和G2为两个阶为素数q的循环群,P为G1的生成元,如果映射e:G1×G1→G2满足如下性质,则称e为双线性映射:  (1) 可计算性:给定P,Q∈G1,存在一个多项式时间算法计算e(P,Q)∈G2;  (2) 双线性性:对任意P,Q∈G1,a,b∈Zp,有e(aP,bQ)=e(P,Q) ab;  (3) 非退化性:存在P∈G1,使得e(P,P)≠1 第6章 公钥密码体制   此时,称G1为双线性群,如果其中的群运算以及双线性映射都是可以有效计算的注意,映射e是对称的,因为e(Pa,Pb)=e(P,P) ab=e(Pb,Pa) 第6章 公钥密码体制   在加法群G1上,有如下一些数学难题:  (1) 离散对数问题(DLP):对P,Q∈G1,找到一个整数n∈   ,使Q=nP成立;  (2) Difie-Hellman判定问题(DDHP,Decisional Diffie-Hellman Problem):对于a,b,c∈   ,给定P,aP,bP,cP∈G1,判定c=ab mod p是否成立;  (3) Difie-Hellman计算问题(CDHP,Computational Diffie-Hellman Problem):对a,b∈  ,给定P,aP,bP∈G1,计算abP。

第6章 公钥密码体制   2) Weil对及其性质  令p为素数,满足p=2 mod 3,且存在素数q,使得p=6q-1,令E/Fp为由Fp上方程y2=x3+1确定的椭圆曲线,这种曲线满足如下性质:  (1) 由于x3+1是Fp上的置换多项式,因而E/Fp中包含p+1个点,令O表示无穷远点,P∈E/Fp为      阶群Gq中的生成元;  (2) 对任意y0∈Fp,存在唯一的点(x0,y0)∈E/Fp从而若(x,y)随机地取遍E/Fp上的非零点,则y随机地取遍Fp上的所有点; 第6章 公钥密码体制   (3) 若ζ∈   ,ζ≠1,为x3-1=0 mod p的根,则映射φ(x,y)=(ζx,y)为曲线E上的自同构,注意到P=(x,y)∈E/Fp,从而有        ,但φ(P)  E/Fp,因此P∈E/Fp与φ(P)线性无关;  (4) 由于点P与φ(P)线性无关,它们可以生成一个与Zq×Zq同构的群,将该群记作E[q]  令μq为    中由所有     阶点构成的子群,曲线    上的Weil对定义为映射e:E[q]×E[q]→μq定义修正后的Weil对为 (6-17) 第6章 公钥密码体制   修正后的Weil对满足以下性质:  (1) 双线性性:对任意P,Q∈Gq,a,b∈Z,有           ;  (2) 非退化性:       是q阶元素,事实上,它是μq的生成元;  (3) 可计算性:给定P,Q∈Gq,存在一种有效的算法计算     。

第6章 公钥密码体制   3) Weil Diffie-Hellman (WDH)假设  在双线性群中,BDHP问题是指已知P,aP,bP,cP∈G1,计算W=e(P,P) abc在现有条件下,不存在多项式算法解决BDHP问题  Jouxt和Nguyen指出[12],在群Gq中,CDHP问题是困难的,而DDH(Decisional Diffie-Hellman)问题容易解决因为给定P,aP,bP,cP∈Gq,易知 第6章 公钥密码体制   从而修正后的Weil对提供了一种简单的方法来验证Diffie-Hellman向量,所以,不能利用DDH问题在群Gq上构建公钥密码体制,而必须依赖于以下的CDH假设的变体,即WDH (Weil Diffie-Hellman)假设  WDH假设:令p=2 mod 3为一个k比特素数,且存在素数q,使得p=6q-1,E/Fp为Fp上由y2=x3+1确定的椭圆曲线,P∈E/Fp为曲线上的q阶元,双线性映射  如式 (6-17)中所定义,则WDH问题描述为,对任意的a,b,c∈  ,给定〈P,aP,bP,cP〉,计算            WDH假设是指当p为随机的k比特素数时,不存在多项式时间算法求解WDH问题。

第6章 公钥密码体制     3. BasicIdent方案方案  在描述基于Weil对的IBE方案之前,为了使该方案更易于理解,Boheh和Franklin给出了一种简化的IBE体制,称为 BasicIdent,并指出这种体制在选择密文攻击下是不安全的  BasicIdent方案的构建环境:令p=2 mod 3为一个k比特素数,且存在素数q,使得p=6q-1,E为由Fp上方程y2=x3+1确定的椭圆曲线,BF方案利用一个算法MapToPoint将任意串ID∈{0,1}*映射到曲线上的q阶点QID,令G为Hash函数G:{0,1}*→Fp 第6章 公钥密码体制   MapToPoint算法描述如下:  (1) 计算y0=G(ID)及  (2) 设Q=(x0,y0)∈E/Fp,令QID=6Q,则QID即为曲线上的q阶点  BasicIdent方案包括如下四大步骤 第6章 公钥密码体制   初始化:  Step1:选择一个k 比特大素数,且存在素数q>3,使得p=6q-1,E为由Fp上方程y2=x3+1确定的椭圆曲线,在E/Fp上随机选取q阶点P;  Step2:随机选择    ,令Ppub=sP;  Step3:选择Hash函数H:   →{0,1} n,G:{0,1}*→Fp,在安全性分析中,将H与G视为随机预言机(Random Oracle)。

第6章 公钥密码体制   系统的消息空间为M={0,1} n,密文空间为C=E/Fp×{0,1}n,系统参数为params=〈p,n,P,Ppub,G,H〉,主密钥为      提取:对给定的串ID∈{0,1}*,算法通过如下方法生成私钥d  Step1:利用MapToPoint将ID映射为E/Fp上的q阶元QID;  Step2:计算私钥dID=sQID,其中s为主密钥  加密:对消息m∈M加密时,进行如下步骤  Step1:利用MapToPoint将ID映射为E/Fp上的q阶元QID;  Step2:随机选择r∈Zq;  Step3:计算密文其中,         第6章 公钥密码体制   解密:解密:令c=(U,V)∈C为利用公钥ID加密后的密文,如果U不是E/Fp上的q阶点,则丢弃此密文,否则,利用私钥dID进行如下计算来解密: 第6章 公钥密码体制   以下定理表明,在WDH假设成立的前提下,BasicIdent方案具有单向性  定理 定理6-3 令H与G为随机预言机,假设存在一个ID-OWE敌手A,能以优势ε攻破BasicIdent,并且假设A最多进行了qE>0次私钥提取询问及qH>0次Hash询问,那么存在算法B,能以至少              的优势计算WDH,其中e≈2.71,为自然对数的底,而B的运行时间是O(time(A))。

  证明详见参考文献[5] 第6章 公钥密码体制   4. 具有选择密文攻击安全性的具有选择密文攻击安全性的IBE  利用Fujisaki-Okamoto在参考文献[13]中提供的方法,可以将BasicIdent方案转化为在随机预言模型下具有选择密文攻击安全性的IBE  设E为一个公钥加密方案,用Epk(m; r)表示在公钥pk下利用随机比特r对m加密的结果,Fujisaki-Okamoto定义了混合方案Ehy如下:其中,σ为随机生成的串; H1,G1为Hash函数Fujisaki-Okamoto证明了如果E为单向加密方案,则Ehy是在随机预言模型下选择密文攻击安全(IND-CCA)的方案 第6章 公钥密码体制   如果将上述变换施加于BasicIdent,则可以得到一个IND-ID-CCA的IBE体制,称之为FullIdent  设n为要加密的消息长度,FullIdent方案描述如下所述  初始化:与BasicIdent基本相同,区别是还需要选择Hash函数H1:{0,1}n×{0,1} n→Fq,以及G1:{0,1} n→{0,1} n 第6章 公钥密码体制   提取:与BasicIdent相同。

  加密:用公钥ID对消息m∈M加密时,进行如下步骤  Step1:运行算法MapToPoint,将ID转化为E/Fp中的q阶点QID;  Step2:随机选择σ∈{0,1} n;  Step3:令r=H1(σ,m);  Step4:计算密文为其中,            第6章 公钥密码体制   解密:设c=〈U,V,W〉为用公钥ID加密后的密文,如果U不是E/Fp中的q阶点,则丢弃该密文,否则,利用私钥dID进行如下的解密过程  Step1:计算             ;  Step2:计算m=W⊕G1(σ);  Step3:令r=H1(σ,m),验证是否有U=rP,若未通过验证,则丢弃该密文;  Step4:输出m作为解密结果 第6章 公钥密码体制   以下定理表明了当WDH假设成立时,FullIdent是一个选择密文攻击安全的IBE体制,即IND-ID-CCA  定理定理6-4 设A为一个IND-ID-CCA攻击者,其运行时间为t,A能以优势ε成功攻破FullIdent假设A最多进行了qE次提取私钥询问、 qD次解密询问以及分别qH、   、   次对于Hash函数H、G1、H1的询问,则存在一个运行时间为t1的算法,可以以优势ε1解决WDH问题,其中 第6章 公钥密码体制 其中,函数FOadv定义为证明详见参考文献[5]。

下载提示
相似文档
正为您匹配相似的精品文档