专利名称:一种无证书公钥密码系统的构造方法
技术领域:
本发明属于信息安全领域,特别涉及到公钥密码技术,以及标识或基于身份的密码技术。
背景技术:
公钥密码技术是一种广泛应用的对发送给指定接收者的文件、消息等信息进行加密的技术。采用这种密码技术的系统需要为每个用户生成一对数学上相关联的公钥和私钥,公钥通过某种方式公开发布,使得任何发送者都可获得接收者的公钥,私钥则由接收者秘密保存。公钥密码系统应用中一个重要的安全需求就是确保使用的公钥确切地属于指定接收者,即需要一种将用户标识(ID)和其公钥绑定在一起的安全机制。传统公钥密码体制中,例如采用RSA、DSA、ECC等算法的系统,公钥的产生和用户的标识没有关系,需要由第三方认证中心CA(Certificate Authority)发放证书,即对用户的公钥和标识进行签名,将二者绑定,这个基于传统公钥密码系统的以CA为中心的体系叫做公钥基础架构,即I3KI (Public Key Infrastructure) 0借助于H(I,互联网上的很多应用得以实现,例如电子商务、电子银行等。1984年著名以色列密码学家Siamir提出标识密码系统的概念,又称基于身份的密码系统。标识密码系统中,用户标识就是该用户的公钥,不需要存储用户的公钥,也不需要借助于PKI将公钥和标识绑定在一起,因此有广泛的潜在应用前景。但是由于技术的局限,标识加解密方案的实现一直是个公开问题。二 ^^一世纪后,随着研究人员对椭圆曲线的深入研究,发掘出了双线性对作为一系列密码系统的工具。双线性对解决了标识密码系统的设计和实现难题。2001年,美国斯坦福大学的Boneh和加州大学戴维斯分校的Franlin利用椭圆曲线的双线性对,构造了一个基于BDH假设(Bilinear Diffie-Hellman)的标识密码系统BF-IBE。该密码系统成功的实现了 Siamir的标识密码系统概念的功能,并且在效率、密文长度上有很高的实用价值。 2003年大阪电气通信大学的Mkai和大阪学院大学的Kasahara提出了一个基于q_BDHI假设(q-bilinear Diffie-Hellman inversion)的标识密码系统 SK-IBE。2004 年 Boneh 和 Boyen同样利用椭圆曲线的双线性对,构造了一个基于D-BDH假设(Decisional Bilinear Diffie-Hellman)的标识密码系统BB-IBE。2005年美国得克萨斯大学的Waters提出了一个安全性基于 D-BDH 假设(Decisional Bilinear Diff ie-Hellman)的标识密码系统 W-IBE。目前普遍认为一个标识密码系统应该包含密钥中心KGC、公共参数发布服务器 PPS这两个组成部分。KGC的主要作用是接收用户的标识私钥请求,利用主密钥为用户生成标识私钥。PPS公开KGC设定的系统参数,包括除主密钥和能导出主密钥的参数之外的可公开参数等信息。PPS的主要作用是为用户提供系统参数下载服务。标识密码体制有两个主要缺点,在一定程度上限制了它的应用。一是用户的标识私钥在密钥中心的托管问题,用户的标识私钥必须由密钥中心生成,因此密钥中心和用户一样也拥有用户标识私钥,因此严格地说,标识密码体制产生的签名不具有不可否认性,这在法律上是个问题。相应地,标识密码体制产生的密文在密钥中心可以解密,有信息泄露的风险。二是用户标识私钥丢失后的问题。传统公钥体制中用户的标识和公钥绑定在一起, 如果用户私钥丢失,用户可以重新生成一对公钥和私钥,而在标识密码体制中,用户的标识就是公钥,因此无法被撤销。为了解决标识密码系统中存在的问题,研究人员分别提出了一些介于传统公钥密码系统和标识密码系统之间的一种公钥密码系统,如Gentry在“Certificate-Based Encryption and the Certificate Revocation Problem" (EUROCRYPT 2003) ψ Hdj ^ 基于证书的密码系统 CBE (Certificate Based Encryption)、Al-Riyami 禾口 Patersony ^"Certificateless Public Key Cryptography" (Asiacrypt 2003)巾 dj 白勺 $ 证书公钥密码系统 CL-PKC(Certificateless Public Key Cryptography)、Girault ^ "Self-certificated public keys”(EUROCRYPT 1991)中提出的自证书公钥系统 SC-PKC(Self-Certified Public Key Cryptography)。在假定密钥中心是可信任的情况下, 也就是密钥中心尽管能够计算出用户的标识私钥,但是不会替换用户的公钥,CBE、SC-PKC、 CL-PKC都能解决标识密码系统的私钥托管问题。其中无证书公钥密码系统CL-PKC中,用户在获得标识密码中心生成的标识私钥之后,选择自己的一个秘密,将这个秘密施加于标识私钥上,生成一对新的公钥和私钥。加密发送方需要获得接收方的公钥和标识进行加密操作。接收方只有获得相应的私钥方可解密,这个私钥已经不同于标识密码系统密钥中心初次生成的那个标识私钥。 CL-PKC的具体建立过程如下1)系统建立密钥中心KGC生成主密钥和公共参数;2)用户部分私钥获取KGC根据用户的标识ID,为用户生成标识私钥,作为用户的部分私钥sku, pmt ;3)用户私钥生成用户根据公共参数、自己的标识ID,生成用户秘密xu,并利用^ 将部分私钥sku,part转换成全部私钥Sku ;4)用户公钥生成根据公共参数、用户秘密\,生成用户公钥pku;5)加密根据接收方的公钥、标识ID,对明文消息加密,生成密文;6)解密利用自己的私钥Sku对密文解密,恢复明文消息。本发明提出一种无证书公钥密码系统的构造方法,其核心思想是利用研究人员提出的可随机化的签名方案,如“Unlinkable Randomizable Signature and Its Application in Group Signature" (Inscrypt' 07, LNCS 4990, pages 328—342,2008)。 一个可随机化签名比普通的签名方案额外包含了一个随机化算法tod,具体如下Gen 输入安全参数k,输出(pk,sk)的概率多项式算法,pk是公钥,sk是私钥;Sig 输入私钥sk和消息m,输出签名sig的概率多项式算法,签名可分成两部分, sig = (a, b);Ver 输入公钥pk、消息m和签名sig,输出1或0(表示接受或拒绝)的确定性多项式算法;fold:输入公钥pk、消息m和签名sig sig = (a,b),输出m的另一个不同签名sig' =(a',b')的概率多项式算法。
一个可随机化签名具有不可联系性,如果给定两个不同消息和相应签名Ov a0, bo), (IIl1, B1, bi),挑战者随机选择其中一个消息的签名并随机化生成一个完全不同的签名 (a, b),把签名的第二部分b给敌手,敌手不能通过有效算法区分b是对哪一个消息签名的随机化。基于椭圆曲线双线性对的可随机化签名还有另外一个特性,其签名验证可以比较容易地用来构造下列形式的标识密文〈pairing-DH token(r), Hiding(message ;pairing-DH value)>。本发明还利用了基于非交互零知识证明协议的知识签名。非交互式零知识协议(non-interactive zero-knowledge,简称NIZK)是一种只需进行一次信息传递的证明或论证系统,把非交互零知识证明协议转换成的签名方案称作知识签名,可参考 Bellare 禾口 Goldwasser 的"New paradigms for digital signatures and message authentication based on non-interactive zero knowledge proofs" (In Advances in Cryptology-CRYPTO' 89,LNCS 435,pages 194-211. Springer,1990) 和其他无证书公钥密码系统相比,本发明具有通用性且根据所述构造方法可以容易地得到安全性较高的签名和加密方案。
发明内容
本发明的目的是针对标识密码系统的一种安全缺陷,即用户的标识私钥被托管在密钥中心的问题,提出一种构造无证书公钥密码系统的方法,和其他无证书公钥密码系统以及其他类似方法相比,如基于证书的密码系统和自证书公钥系统,本发明具有通用性且根据所述构造方法可以容易地得到安全性较高的签名和加密方案。为达成所述目的,本发明利用了具有不可联系性的可随机化签名,包括系统建立方法、密钥生成方法、签名及验证方法和加密及解密方法。其中系统建立方法,具体包括如下步骤步骤1.密钥中心选择一个具有不可联系性的可随机化签名方案;步骤2.密钥中心根据所述可随机化签名方案选择密钥中心私钥和密钥中心公钥;其中密钥生成方法包括如下步骤步骤1.获得初始标识私钥用户提交自己的标识和私钥获取请求给密钥中心,密钥中心对标识进行可随机化签名,所得签名即为用户的初始标识私钥dID ;所述初始标识私钥,其特征在于,可以分成两个部分,分别记为aID和bID ;步骤2.生成当前标识私钥所述用户获得所述初始标识私钥dID后,将其随机化生成用户的当前标识私钥dID°;所述当前标识私钥dID°,其特征在于,可以分成两个部分,分别记为aID°和bID°,且 aID°和bID°分别由aID和bID随机化生成;步骤3.设置用户公私钥用户设置自己的用户私钥为所述当前标识私钥的第一部分Ad,设置自己的用户公钥为所述私钥在一个密码学安全的单向函数映射下的函数值;其中签名及验证方法包括如下步骤步骤1.生成临时标识私钥签名者对所述当前标识私钥dID°随机化,生成临时标
5识私钥(C ;所述临时标识私钥Clm1,其特征在于,可以分成两个部分,分别记为^11和bj,且 Bid1和bj可以分别由iiID°和bID°随机化生成;步骤2.生成签名给定任何消息,所述签名者基于所述临时标识私钥Clm1,生成一个基于非交互零知识证明协议的知识签名,将所述临时标识私钥的第二部分bj和所述知识签名作为所述签名者对所述消息的签名;其中加密及解密方法包括如下步骤步骤1.加密者要对明文加密时,首先获得解密者的用户公钥,生成基于双线性对的DH随机值,从所述DH随机值导出密钥,对所述明文进行加密;步骤2.所述解密者利用所述当前标识私钥dID°进行解密。本发明的有益效果本发明能够解决标识密码系统私钥被托管的安全缺陷,和其他类似方法比较,特别和其他无证书公钥密码系统方法相比,本发明具有通用性且根据所述构造方法可以容易地得到安全性较高的签名和加密方案。
图1是本发明无证书公钥密码系统的组成框图;图2是本发明图1中密钥生成的流程图;图3是本发明图1中签名/验证的签名流程图。
具体实施例方式下面结合具体实施例详细说明本发明技术方案中所涉及的各个细节问题。应指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。以Zhou—Lin在"Unlinkable Randomizable Signature and Its Application in Group Signature” (Inscrypt' 07,LNCS 4990,pages 328-342,2008)中提出的可随机化签名BBS04+为例。其中系统建立的步骤具体如下步骤1.密钥中心选择所述BBS04+签名方案;步骤2.选择密钥中心私钥为sk。= X,密钥中心公钥为pk。= {ρ, g,gl, h1 e, w, G1, GJ,其中w = g,,e是G1XG1到G2的双线性映射;其中密钥生成的步骤具体如下步骤1.获得初始标识私钥用户提交自己的标识ID和私钥获取请求给密钥中心, 密钥中心对ID进行可随机化签名,获得用户的初始标识私钥dID= (aID,bID),其中aID= (s, t),bID = A,s、t 是选自于 Zp* 中的随机值,A = aCg)tAx+s);步骤2.生成当前标识私钥用户获得初始标识私钥dID后,生成随机值r,将初始标识私钥随机化生成当前标识私钥dID° = (aID°, bID°),其中街=(s0, t0),bID° = Ar, s0 = s, t0 = rt ;步骤3.设置用户公私钥设置用户私钥sk = (s,rt),用户公钥pk = (pk0, Pk1), 其中Pk0 = gls0, Pk1 = glt(l,这里选择密码学安全的单向函数owf (x) = g,;其中签名及验证方法包括如下步骤
步骤1.生成临时标识私钥签名者选择随机值r',对自己的私钥dID°随机化,生成临时标识私钥 Clm1 = (Bid1, bj),其中 Bid1 = (S1,、),S1 = S0,ti = r' · t0, bj; = (bID°)r';步骤2 生成签名签名者生成一个基于非交互知识证明的签名SIG,比如按 Fiat-Shamir 变换生成的签名,可参考 Schnorr 的"Efficient signature generation by smart cards" (Journal of Cryptology,4(3) :161-174,1991)SIG = {(s,r',tO) eOV,w · pk0) = eQi^g,pk, ), gls = pk0,glt0 = pkj {m},将bj,SIG作为签名者对m的签名;步骤3.验证签名验证者使用签名者的公钥和标识验证SIG的正确性,如果通过, 签名验证通过;其中力口密及解密方法可按照Boneh禾口Frankliny在"Identity-Based Encryption from the Weil Pairing”中提出的方法,包括如下步骤:步骤1.加密者要对消息m进行加密时,首先获得解密者的公钥pk = (Pktl, Pk1)。 加密者选择τ;中的随机值θ,计算r = Hl ( θ || m),pairing-DH value = e (h^^, r · Pk1),C1 = (w · pk0)r, C2 = pairing-DH value θ , C3 = m H2 ( θ );其中HI、H2为相应的密码学安全的哈希函数。生成的密文为(C1, C2, C3);步骤2.解密者利用自己的私钥dID° = (s0, t0, AO)进行解密,具体如下首先计算出θ = e(A0, C1) C2, m = C3 H2 ( θ );再计算 r = Hl ( θ || m)最后验证C1 = (w· PkciZ是否成立,如果成立则解密成功,否则解密失败。以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种构造无证书公钥密码系统的方法,包括系统建立方法及密钥生成方法,其特征在于,所述系统建立方法具体包括如下步骤步骤1.密钥中心选择一个具有不可联系性的可随机化签名方案;步骤2.密钥中心根据所述可随机化签名方案选择密钥中心私钥和密钥中心公钥;所述密钥生成方法具体包括如下步骤步骤1.获得初始标识私钥用户提交自己的标识和私钥获取请求给密钥中心,密钥中心对标识进行可随机化签名,所得签名即为用户的初始标识私钥dID ;所述初始标识私钥,其特征在于,可以分成两个部分,分别记为和bID ; 步骤2.生成当前标识私钥所述用户获得所述初始标识私钥后,将其随机化生成用户的当前标识私钥dID° ;所述当前标识私钥dID°,其特征在于,可以分成两个部分,分别记为aID°和bID°,且街和 bID°分别由aID和bID随机化生成;步骤3.设置用户公私钥用户设置自己的用户私钥为所述当前标识私钥的第一部分 aID°,设置自己的用户公钥为所述私钥在一个密码学安全的单向函数映射下的函数值;
2.一种如权利要求1所述的无证书公钥密码系统,其中的签名和验证方法,其特征在于,具体包括如下步骤步骤1.生成临时标识私钥签名者对所述当前标识私钥dID°随机化,生成临时标识私钥 Clm1 ;所述临时标识私钥,其特征在于,可以分成两个部分,分别记为aj和bj,且a:和bj 可以分别由和bID°随机化生成;步骤2.生成签名给定任何消息,所述签名者基于所述临时标识私钥Clm1,生成一个基于非交互零知识证明协议的知识签名,将所述临时标识私钥的第二部分bj和所述知识签名作为所述签名者对所述消息的签名;步骤3.验证签名验证者使用所述签名者的标识和所述用户公钥验证所述消息的所述签名,如果通过,所述签名验证通过。
3.—种如权利要求1所述的无证书公钥密码系统,其中的加密和解密方法,其特征在于,具体包括如下步骤步骤1.加密者要对明文加密时,首先获得解密者的用户公钥,生成基于双线性对的DH 随机值,从所述DH随机值导出密钥,对所述明文进行加密; 步骤2.所述解密者利用所述当前标识私钥dID°进行解密。
全文摘要
本发明为解决标识密码系统的私钥托管问题,提出一种构造无证书公钥密码系统的方法,和其他类似方法相比,本发明具有通用性,且根据所述构造方法可以容易地得到安全性较高的签名和加密方案。本发明包括系统建立方法、密钥生成方法、签名及验证方法和加密及解密方法。其中系统建立方法利用具有不可联系性的可随机化签名;密钥生成方法包括获得初始标识私钥、生成当前标识私钥、设置用户公私钥等步骤;签名及验证方法包括生成临时标识私钥、生成签名、验证签名等步骤;加密和解密方法包括获取公钥并加密,及利用相应私钥解密等步骤。
文档编号H04L9/32GK102201920SQ20111019339
公开日2011年9月28日 申请日期2011年7月12日 优先权日2011年7月12日
发明者周苏静, 王勇刚 申请人:北京中兴通数码科技有限公司