基于椭圆曲线离散对数问题的无证书签名方法

文档序号:7866818阅读:258来源:国知局
专利名称:基于椭圆曲线离散对数问题的无证书签名方法
技术领域
本发明属于信息安全技术领域,具体涉及一种基于椭圆曲线离散对数问题的无证书签名方法。
背景技术
目前,电子商务等网络应用越来越普及,大大改变了人们的生活方式。虽然这些应用给人们带来了巨大的方便,但是其与生俱来的安全威胁需要我们认真解决,否则这些应用只会是过眼云烟。在所有需要考虑的安全问题中,用户发送数据的完整性及用户身份真实性的鉴另O,是最基本的问题之一。这个问题的解决需要使用安全的数字签名算法。数字签名算法一般是利用公钥密码体制来实现的。由于传统的公钥密码体制存在证书的管理和验证等问 题,基于身份的公钥密码体制存在密钥托管问题,所以目前大量基于无证书公钥密码体制的数字签名方案被相继提出。在无证书公钥密码体制中,用户的公钥不需要认证,其私钥是由密钥生成中心(Key Generation Center,记为KGC)和用户共同决定的,这样就同时避免了证书管理和密钥托管问题。安全性是任何一种数字签名算法首先必须考虑的事情,其次要尽可能的提高算法的效率。虽然无证书签名算法比传统的和基于身份的数字签名算法更容易实施,具有较高的效率,然而其面临的安全威胁也更多。具体地说,无证书签名算法的敌手有两类第一类是恶意的用户,他可以替换用户的公钥,但是不可以知道系统的主密钥;另一类是恶意的KGC,他知道系统主密钥,但是不能替换用户的公钥。尽管已经有一些安全的无证书签名算法被提出,然而这些算法大多数都需要双线性配对运算。由于双线性配对运算非常耗时,因此这类算法不适合应用于手机等能量和计算能力受限的设备中。

发明内容
本发明的目的在于提供一种更加高效并且安全的无证书签名方法,该方法不使用双线性配对运算,仅基于椭圆曲线上的离散对数问题。为了解决现有技术中的这些问题,本发明提供的技术方案是—种基于椭圆曲线离散对数问题的无证书签名方法,其特征在于所述方法中密钥生成中心(KGC)公开参数PP = (G, H1, H2, H3, P, Q),其中椭圆曲线G的阶为q,哈希函数分别为Ηι: {0,1F x G2 — Z:,//2 ,/Z3: {O,I}* X G 4 Z:,P 为 G 的生成元,Q = xp 是 KGC 的公钥,主密
钥为.所述方法包括以下步骤
I(I)身份为ID e {O, I}*的用户随机选择一个秘密值Ao eZ;,并根据秘密值ez\设置其公钥Pid = xIDP ;(2)密钥生成中心根据主密钥、用户的身份ID e {O, I}*以及其公钥Pid,随机选择i fc Zq,并根据 Rid = rIDP 和 Sid = !^+H1 (ID, Rid, Pid) xmodq 获得部分私钥(RID, sID),将部分私钥(Rid,sid)发送给身份为ID e {O, I}*的用户;(3)身份为ID的用户收到(Rid, sid)后,验证sIDP = R1^H1 (ID, Rid, PID)Q是否成立;如果等式成立,则用户接受(Rid,sid),进入步骤(4);否则用户要求密钥生成中心发送一个新的部分私钥(Rid,Sid);(4)身份为IDe {0,1}*的用户根据其秘密值eZ:和部分私钥(RID,sID),设置其完全私钥为Skm= (xID, sID);然后根据公开的参数PP和待签名消息me {0,1}%利用其私钥 skID,随机选择〃€Zti,并根据 R = rp, hi = H2(ID, Rid)和 h2 = H3(m, R)计算 σ =r+h2 (hi · xID+sID)modq,输出签名(RID, R, σ )。
本发明的另一目的在于提供了一种对所述的无证书签名方法进行验证的方法,其特征在于所述方法包括验证者根据密钥生成中心的公开参数PP,消息m,签名(Rid,R,O),用户身份ID以及相应的公钥Pid,通过验证σ P = IHh2Qi1 · PID+RID+hID · Q)等式是否成立;如果等式成立,则用户签名有效,否则证实签名无效的步骤。本发明技术方案提出的无证书签名方法能够同时抵抗无证书环境下两类敌手的攻击,且不需要使用昂贵的双线性配对运算,适用于手机等能量和计算能力受限的设备,而且算法非常高效。相对于现有技术中的方案,本发明的优点是本发明的技术方案不仅可以抵抗无证书环境中两类攻击者的攻击,而且其计算效率也比以往的同类算法高。通过分析可知,本发明仅使用基本的椭圆曲线上的运算而不需要使用双线性配对运算,算法输出的签名长度也较短。


下面结合附图及实施例对本发明作进一步描述图1为本发明基于椭圆曲线离散对数问题的无证书签名方法的流程图。
具体实施例方式以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。实施例基于椭圆曲线离散对数问题的无证书签名方法实现本实施例采用的基于椭圆曲线离散对数问题的无证书签名方法,包括以下步骤(I)密钥生成中心(KGC)选择一个阶为q的椭圆曲线G和主密钥e 以及三个
安全的哈希函数M :丨<V「xC;2 ":,",{0,1「><“4;^.令?为(;的生成元,Q = χρ是
9I
KGC的公钥,则系统公开参数PP = (G,H1, H2, H3, P,Q)。(2)身份为IDe {O, I}*的用户随机选择一个秘密值I/d ^2;.(3)身份为ID的用户根据其秘密值x/fl ^ Z〗设置其公钥Pm = χΙΙ)Ρ ;(4)输入系统主密钥X € Z; s用户的身份ID以及其公钥PID,KGC随机选择匕)e并计算 Rid = rIDP 和 Sid = γιβ+Η! (ID, Rid,Pid) xmodq ;最后,KGC 将(RID, sID)发送给身份为 ID的用户;(5)身份为ID的用户收到(Rid, sid)后,验证sIDP = R1^H1 (ID, Rid, PID) Q是否成立;如果等式成立,则用户接受(rid,Sid)并进入下一步,否则用户要求KGC发送一个新的部分私钥。(6)身份为ID的用户根据其秘密值e Z:和部分私钥(RID,sID),设置其完全私钥
为 sklD — (xID) sID);(7)输入系统公开参数PP和待签名消息m e {O, 1}%身份为ID的用户利用其私钥skID,首先随机选择r ,并计算R = rP, hi = H2 (ID, Rid)和h2 = H3 (m, R),然后计算σ=r+h2 (hi · xID+sID)modq,最后输出签名(RID, R, σ );(8)输入系统公开参数PP,消息m,签名(Rid,R,σ ),身份ID以及相应的公钥PID,验证者验证σ P = IHh2Qi1 · PID+RID+hID · Q)是否成立;如果成立,则签名有效,否则签名无效。本实施例基于椭圆曲线离散对数问题的无证书签名方法的目标与其他相关算法类似,也包括两点。第一点该算法必须满足无证书环境下签名的不可伪造性,即任何没有完全私钥的人即使有部分私钥也不能伪造一个合法的签名;第二点算法的高效性,即在保证算法安全性的前提下,算法的效率要尽可能高。无证书环境下的攻击者分为两大类,第一类攻击者代表恶意的用户,他可以自由替换其公钥,但是不能得到用户的部分私钥;第二类攻击者代表恶意的KGC,他可以得到 KGC的所有信息,但是不能替换任何用户的公钥。本发明提出的算法考虑了在不安全的无证书网络环境下算法安全运行的方法,使得任何一类攻击者都无法伪造合法签名。同时,本实施例无证书签名算法不需要双线性配对运算,也提高了其效率。双线性配对运算所消耗的时间远远大于其他运算所消耗的时间。最后,因为Rid对一个用户来说一般是不会变化的,所以算法输出的签名可以只是(R,σ),换句话说,算法的签名长度是短的,这可以有效降低签名的存储和传输开销。具体地,该签名算法也可以分为两个阶段。第一个阶段(包括步骤I到步骤6)是用户的公钥和完全私钥的生成阶段。在这一阶段,用户设置其公钥,并与KGC合作生成用户的完全私钥。首先,KGC选择一个阶为q的椭圆曲线G和主密钥Xe<,以及三个安全的哈
希函数 K :!0,1 丨 X G2 Η2,Η,·.\0Λ\ χ(/’ — 7,7/P 为 G 的生成元,Q = xP 是KGC 的公
钥,则系统公开参数PP = (G,H1, H2, H3, P, Q);接着,身份为ZDefO,fl的用户随机选择一个秘密值Xid e Z%并设置其公钥乃Λ= X ,然后,输入系统主密钥xe Ζ:,用户的身份ID以及其公钥 PID, KGC 随机选择& G Ζ*,计算 Rid = rIDP 和 sID = !^+H1 (ID, Rid, PID) x modq,并将(Rid,sid)发送给身份为ID的用户;当用户收到(Rid, zid)后,验证zIDP = R1JH1 (ID, RID)Q是否成立,当且仅当等式成立时,用户才接受(Rid,zid);最后,身份为ID的用户根据其秘密值xZD eZ:和部分私钥(RlD,Sid),设置其完全私钥为Skm = (XID, Sm)。本实施例选择美国国家标准技术局推荐的P-192椭圆曲线,相应的生成元P由其确定。三个哈希函数可以先对椭圆曲线G上的点进行编码,然后使用SHA-2,主密钥X选择<中一个的随机数。第二个阶段(包括步骤7和步骤8)是签名的生成和验证阶段。在这一阶段,输入系统公开参数PP和待签名消息m e {O, 1}%身份为ID的用户利用其私钥skID,首先随机选择r G Z* ,计算 R = rP, Ii1 = H2 (ID, Rid)和 h2 = H3 (m, R),然后计算 σ = r+h2 Qi1 · xID+sID)modq,最后输出签名(Rid,R,σ);给定系统公开参数ΡΡ,消息m,待验证签名(RID,R,σ),身份ID以及相应的公钥Pid,验证者验证σ P = IHh2Qi1 *PiD+RiD+hID *Q)是否成立;如果成立,则签名有效,否则签名无效。下面是算法的具体执行结果。设Tmul和Tadd分别表示一次点乘运算和点加运算所花费的时间。由于哈希运算以及数的普通加法和乘法运算花费时间很少,因此我们将其忽略。通过理论分析可知,算法总的花费时间是8Tmul+3Tadd,其中在第一阶段花费的时间是3Tmul,在第二阶段花费的时间是5Tmul+3Tadd,如表一所示。由于双线性配对运算时点加和点乘运算的数十倍,所以算法是高效的。表I
总耗费的时间第一阶段耗费的时间第二阶段耗费的时间
8^ + 3^3Tmul5Tmul+3Tadd在实际应用中,我们大多情况下只需要运行算法的第二阶段,因此其计算效率还可以进一步提闻。下面对算法的安全性进行分析。本算法在第一类和第二类敌手存在的情况下,都是安全的,原因如下。首先我们考虑第一类敌手存在时的情况。我们知道,第一类敌手只能替换用户的公钥却不知道KGC的主密钥X。如果第一类敌手能够伪造合法签名,那么他有如下两种方式1.通过KGC的公钥Q = XP或者KGC发送给用户的部分私钥(Rid,sid)计算主密钥X ;2.通过替换用户的公钥来直接伪造签名。第一种情况相当于敌手破解椭圆曲线上的离散对数问题,所以是困难的;对于第二种情况,由于我们的算法实际上是可证明安全的Schnorr签名算法(Schnorr CP. Efficient signature generation by smart cards. JournalofCryptology, 1991,4(3) : 161 - 174.)的变形,即私钥为 Ii1 · xID+sID 的 Schnorr 签名,所以第一类敌手必须能伪造这个私钥才可以伪造签名。尽管第一类敌手可能得到Rid和PID,但是由于 H1 (ID, Rid, Pid)是 Rid, Pid 的随机函数,所以私钥 Ii1 *xID+sID = Ii1 ·(ID, Rid, PID)X modq必然是主密钥X的函数,换句话说,第一类敌手不能得到私钥Ii1 · xID+sID,即我们的算法对第一类敌手是安全的。第二类敌手可以知道KGC拥有的所有秘密但是不能替换任何用户的公钥,即不能知道用户公钥所对应的秘密值。如果第二类敌手希望伪造合法签名,则他也有如下两种方式1.通过用户的的公钥Pid = XidP计算用户的秘密值Xid ;2.直接伪造签名。第一种情况相当于敌手破解椭圆曲线上的离散对数问题,所以是困难的;第二种情况类似于第一类敌手攻击时的情况,由于 Schnorr 签名的私钥 Ii1 · xID+sID = Ii1 · X1Jr11^H1 (ID, Rid, PID)x modq一定是xID的函数。因此,该算法对第二类攻击者也是安全的。上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精 神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种基于椭圆曲线离散对数问题的无证书签名方法,其特征在于所述方法中密钥生成中心(KGC)公开参数PP = (G, H1, H2, H,, P, Q),其中椭圆曲线G的阶为q,哈希函数分别为
2.一种对权利要求1所述的无证书签名方法进行验证的方法,其特征在于所述方法包括验证者根据密钥生成中心的公开参数PP,消息m,签名(Rid,R,σ),用户身份ID以及相应的公钥PID,通过验证σ = IHh2Qi1 · PID+RID+hID · Q)等式是否成立;如果等式成立,则用户签名有效,否则证实签名无效的步骤。
全文摘要
本发明公开了一种基于椭圆曲线离散对数问题的高效无证书签名方法,该方法具有一般无证书签名算法的优点,即消除了传统公钥密码体制的证书管理问题以及基于身份密码体制中的密钥托管问题,并且该算法计算过程较为简单,不需要使用非常耗时的双线性对运算。该算法可以高效地用于电子商务等需要电子签名的应用中。
文档编号H04L9/30GK103023648SQ20121049225
公开日2013年4月3日 申请日期2012年11月27日 优先权日2012年11月27日
发明者黄刘生, 田苗苗, 杨威 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1