一种基于证书代理重加密方法及系统的制作方法

文档序号:7776605阅读:189来源:国知局
一种基于证书代理重加密方法及系统的制作方法
【专利摘要】本发明公开了一种基于证书代理重加密方法及系统,涉及信息安全中的数据加密【技术领域】。为了解决现有代理重加密方法中存在的不足,本发明将基于证书密码体制和代理重加密相结合,提供了一种基于证书代理重加密方法,所述方法包括生成系统参数、生成用户公钥和私钥对、生成用户证书、对消息加密、生成代理重加密密钥、代理重加密和恢复消息的步骤。本发明还提供了一种基于证书代理重加密系统,包括系统参数生成模块、用户密钥生成模块、证书生成模块、加密模块、代理重加密密钥生成模块、代理重加密模块和解密模块。本发明所述技术方案不仅简化了证书的管理过程,而且不存在密钥分发和密钥托管的问题,便于开放网络环境的应用。
【专利说明】—种基于证书代理重加密方法及系统
【技术领域】
[0001]本发明涉及信息安全中的数据加密【技术领域】,特别涉及一种基于证书代理重加密方法及系统。
【背景技术】
[0002]随着信息技术的高速发展,电子数据的安全性问题越来越受到数据所有者的重视。数据加密技术是保障电子数据机密性的核心和关键技术,它通过加密密钥及加密算法将数据转换成无意义的密文,从而避免数据被未经授权者访问,有效保障了数据的机密性。
[0003]在现实社会中经常会遇到解密授权的情况。例如,一个公司经理需要到外地出差,为了不影响公司的业务,该经理需要委托一个可靠的助手在其出差期间帮他处理一些业务相关的加密邮件,但同时不希望将自己的私钥透露给该助手。为了解决上述解密授权的问题,Blaze等人于1998年提出了代理重加密的思想。在代理重加密系统中,一个拥有代理重加密密钥的半可信代理重加密中心,可以将经用户Alice的公钥所加密的消息M的密文直接转化为以用户Bob的公钥对消息M加密的密文,其中用户Alice称为委托方,用户Bob称为受理方。在这个过程中,半可信的代理重加密中心无法获知消息M的任何信息。由于代理重加密能够有效解决解密授权的问题,因此该方法有着很多重要的实际应用,如数字版权的跨域操作、加密电子邮件的转发以及公共云中安全数据的共享等。代理重加密一提出便受到广泛关注,国内外学者对其进行了深入的探讨和研究。但已有的代理重加密方法大多是在传统公钥密码体制下或基于身份密码体制下所提出的,因此这些方法要么存在复杂的证书管理问题,要么存在密钥分发和密钥托管的问题。而近期Sur等人所提出的无证书代理重加密方法尽管有效解决了复杂的证书管理和密钥托管问题,但仍存在密钥分发的问题。因此,现有的代理重加密方法在开放网络环境下的应用将会受到限制。
[0004]基于证书密码体制是Gentry在2003年所提出的一种新型公钥密码体制,该体制有机结合了基于身份密码体制和传统公钥密码体制的优点,并有效克服了这两种密码体制中存在的缺陷。基于证书密码体制的一个最大的特点是提供了一种高效的隐证书机制,即用户证书仅发送给证书持有人,并与其私钥相结合产生最终的解密密钥或签名密钥。基于该特点,基于证书密码体制不仅消除了证书状态的第三方查询问题,简化了传统公钥密码体制中复杂的证书管理过程,而且同时克服了基于身份密码体制中固有的密钥分发问题和密钥托管问题。因此,基于证书密码体制是一个性能优良,便于开放网络环境中应用的新型公钥密钥体制。

【发明内容】

[0005]本发明所要解决的技术问题是现有代理重加密方法中存在问题,本发明将基于证书密码体制和代理重加密体制相结合,提供了一种基于证书代理重加密方法。受益于基于证书密码体制的优良性能,本发明所提出的方法不仅简化了证书的管理过程,而且不存在密钥分发和密钥托管的问题。[0006]本发明为解决上述技术问题采用以下技术方案:
[0007]一种基于证书代理重加密方法,包含以下步骤:
[0008]步骤A,生成系统主密钥和系统公开参数集;具体过程为:
[0009]步骤101,证书中心根据设定的安全参数k e Z+,选择一个k比特的大素数P,并生成一个P阶加法循环群G和一个P阶乘法循环群GT,以及定义在群G和群Gt上的双线性对e: G X G — Gt ;其中:Z+是正整数,双线性对e:GXG — Gt是群G与自身的笛卡尔积GXG到群Gt的映射,即双线性对e:GXG —Gt是指函数z=e (P1, P2),其中PpP2 e G为自变量,z e Gt为因变量;
[0010]步骤102,从加法循环群G中选择两个生成元P和Q并随机选择《 e Z;,计算Qpub= α Q? g=e (P, Q)和 h=e(Q,Q);其中:集合.= !1,2,…;
[0011]步骤103,定义五个哈希函数 /V iO,IfxGxG, —Z H2: {O, 1}η- {O, 1}\H,: {0,1}* ^ Z;、H4IGtXGt - {O, 1}η 以及 ZZ5: Gr x Gr 4 Z:;其中=H1 是笛卡尔积{0,IKXGXGjIj^的密码学哈希函数,H2是{0,l}1j {0,1}η的密码学哈希函数,比是{0,1}*到的密码学哈希函数,H4是笛卡尔积GtXGt到{0,1}η的密码学哈希函数,H5是笛卡尔积
GtXGt到^的密码学哈希函数,n表示明文的比特长度,{O, 1}*表示长度不确定的二进制串
的集合,{O, ι}η表示长度为η比特的二进制串的集合,{O, IKxgxgt表示{O, I}'群G和群Gt的笛卡尔积,Gt X Gt表示群Gt和自身的笛卡尔积;
[0012]根据步骤101至步骤103,生成证书中心秘密保存的系统主密钥为Hisk=Ci,系统公开参数集为 params= {`p, G, GT, e, η, P, Q, Qpub, g, h, H1, H2, H3, H4, Hj。
[0013]步骤B,根据所述系统公开参数集,以及用户的身份信息,生成用户的公钥和私钥对,所述用户包括发送者和接收者;具体过程如下:
[0014]身份为Idu的用户首先右Z中随机选择一个整数Xt7GZ:作为自己的私钥SKu,即SKu=Xu ;然后利用系统公开参数集params生成自己的公钥PKu = {ΡΚ^,ΡΚ^)
= W )。
[0015]步骤C,根据所述系统主密钥和系统公开参数集、用户的身份信息和用户的公钥,生成用户的证书;具体过程如下:
[0016]身份为idu的用户将自己的身份信息idu和公钥PKu提交给证书中心;证书中心产生用户Idu的证书Certu= (H1Qdu, PKu) + a ) 4Q,然后将证书Certu发送给身份为Idu的用户。
[0017]步骤D,根据所述系统公开参数集、待加密的明文以及接收者的身份信息和公钥,生成原始密文;具体过程如下:
[0018]发送者使用接收者的身份idv和公钥PK, =(PA^PAfi)加密长度为n比特的明文Μ,发送者首先随机选择σ e {0,1}η并计算r=H3(M,σ , idv, PKv);然后分别计算Cl - Λ/?//, (σ) , C2=a@lIA{h'\{PK^')') , C3=rP 和 C4=r (H1 (idv,PKv) Q+QpJ ;最后将C= (C1, C2, C3, C4)作为明文M的密文发送给接收者idv。[0019]步骤E,根据所述系统公开参数集、发送者的身份信息、私钥和证书,以及接收者的身份信息和公钥,生成代理重加密密钥;具体过程如下:
[0020]发送者Idu根据接收者idv的公钥={PK\l\PK\2)),首先随机选择seZ并计算1 = 人Ili)');然后根据使用自己的私钥SKu和证书Certu以及接收者idv的公钥 PK1 = (PK)U, PK)2'),汁算 PRK^i = SKr-PKi'' , PRK^1 = silled, ,PK ,)0+ Qpuh)
和PRK;Z, Ortl ;最后将PRKW = (PRdpPRK^i ,)作为代理重加密密钥。
[0021]步骤F,根据所述系统公开参数集、原始密文以及代理重加密密钥,生成重加密密文;具体过程如下:
[0022]根据发送者idu提交的代理重加密密钥尸/?欠^V = (PRK^V,PRK^1,PRK^1 )以及以发送者的身份Idu和公钥PKu加密的原始密义(:=((;,C2, C3, C4),首先分别置C/ =C1,C2' = C2, C5' =PRKH ;然后计算 C; =e(C3,PRKZv)和Q' =e(C4,i^O ;最后将
C' =(idu,CV,c2',(V,C/,(V )作为代理重加密密文转发至接收者idv。
[0023]步骤G,根据所述系统公开参数集、待解密的密文以及接收者的私钥和证书,恢复明文,待解密的密文包括原始密文或者重加密密文;具体过程如下:
[0024]身份为idv的接收者使用自己的私钥SKv和证书Certv对密文C解密,根据密文C的类型,分为如下两种情形:
[0025]若密文C为未经重 加密的原始密文,即C=(Ci,Q C C),接收者1火首先计算(67 = C2 ? H4 (e(C4, Certr), (C3, 0SA:I ),进而计算并获得明文 I = C1 十 H2 ((67);然后计算
r=H3 (M, O,idv, PKv),并判断C4=r (H1 (idv, PKv) Q+QPub)是否成立:若成立,明文M有效;否则,密文无效,解密失败;
[0026]若C为代理重加密密文,即C= (idu,C/ ,C2' ,C3' ,C4' ,C5'),接收者idv首先依次计算 / = //,(e(C:,Cerll ),e(C^,Ccrti )sk!)和 c = C:十 //4((C;)' ,,(C; )1 …),进而计
算并获得明文AT = C;@H2(CT);然后计算r=H3(M, o,Idu, PKu),并判断C; = ?)视「和
C4/ =M是否成立:若成立,明文M有效;否则,密文无效,解密失败。
[0027]本发明还提供一种基于证书代理重加密系统,包括:
[0028]系统参数生成模块,用于根据输入的安全参数生成证书中心的主密钥以及密码系统的公开参数集;
[0029]用户密钥生成模块,用于根据系统参数生成模块生成的公开参数集,以及用户的身份信息,生成用户的公钥和私钥对,所述用户包括发送者和接收者;
[0030]证书生成模块,用于根据系统参数生成模块生成的主密钥和公开参数集、用户的身份信息以及用户密钥生成模块生成的公钥,生成用户的证书;
[0031 ] 加密模块,用于根据系统参数生成模块生成的公开参数集、待加密的明文、接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文;
[0032]代理重加密密钥生成模块,用于根据系统参数生成模块生成的公开参数集、发送者的身份信息和接收者的身份信息、用户密钥生成模块生成的发送者的私钥和接收者的公钥,以及证书生成模块生成的发送者的证书,生成代理重加密密钥;
[0033]代理重加密模块,用于根据系统参数生成模块生成的公开参数集、加密模块输入的原始密文以及代理重加密密钥生成模块生成的代理重加密密钥,生成重加密密文;
[0034]解密模块,用于根据系统参数生成模块生成的公开参数集、加密模块生成的原始密文或代理重加密模块生成的重加密密文、用户密钥生成模块生成的接收者的私钥,以及证书生成模块生成的接收者的证书,恢复明文。
[0035]进一步的,本发明的一种基于证书代理重加密系统,所述解密模块具体包括密文解密单元和密文有效性验证单元;其中:
[0036]所述密文解密单元用于解密者对密文进行解密,恢复明文;
[0037]所述密文有效性验证单元用于解密者对密文的有效性进行验证,进而判断密文解密单元输出的明文是否有效。
[0038]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0039]本发明将基于证书密码体制和代理重加密体制相结合,提供了一种高效的隐证书机制,即用户的证书仅发送给证书持有人,并与其私钥相结合产生最终的解密密钥,有效克服了已有代理重加密方法中存在的问题,是一种非常适合于开放网络环境中应用的新型代理重加密方法。主要原因如下:
[0040]首先,由于用户仅在获得证书的情况下才能解密当前接收到的密文,因此发送方也就无须在发送加密信息前获取接收方的最新证书状态信息,因此本发明不仅消除了传统代理重加密方法中对证书状态的第三方询问问题,同时也简化了证书的撤销问题。
[0041]其次,由于证书中心无法获知用户的私钥,所以该方法解决了基于身份代理重加密方法中固有的密钥托管问题。
[0042]此外,由于证书只是为了绑定用户公钥与用户身份之间的对应关系,可以公开地发送给用户,所以该方法也有效克服了基于身份代理重加密方法和无证书代理重加密方法中存在的密钥分发问题。
【专利附图】

【附图说明】
[0043]图1是本发明所述的基于证书代理重加密方法的流程图。
[0044]图2是依照本发明方法的密码系统执行的操作流程图。
[0045]图3是本发明所述的基于证书代理重加密系统的示意图。
【具体实施方式】
[0046]下面结合附图对本发明的技术方案做进一步的详细说明:
[0047]本发明所述基于证书代理重加密方法可基于双线性对来实现,下面首先简要介绍双线性对的基本定义和它满足的性质。
[0048]设G是一个阶为P的加法循环群,Gt是一个阶为P的乘法循环群,并且P是群G的生成元,其中P是一个大素数。假设G和Gt这两个群上的离散对数问题都是困难问题。如果定义在群G和群Gt上一个映射e:GXG — Gt满足下面的三条性质,则称该映射为有效的双线性对。双线性对e:GXG — Gt是群G与自身的笛卡尔积GXG到群Gt的映射,即双线性对e:GXG —Gt是指函数Z=MP1, P2),其中P” P2 e G为自变量,z e Gt为因变量。[0049]双线性对应满足的三条性质为:
[0050](I)双线性?对于任意的 P1, P2 G G 和 cub e 2;,有 e (aPi,bP2) =e (P1, P2)ab。
[0051](2)非退化性.(#7)#、,其中1务是群Gt的单位元。
[0052](3)可计算性.对于任意的P1, P2 G G,存在有效的算法计算e (PpP2)15
[0053]其中,大素数p对于离散对数问题而言不低于二进制表示的160比特,而对于大整数分解问题而言不低于二进制表示的1024比特。循环群的概念为:设H为群,如果存在一个元素PeH使得H= {kP I k G Z},则称H为加法循环群,称P是H的生成元;如果存在一个元素u G H使得H= {uk I k G Z},则称H为乘法循环群,称u是H的生成兀。若H为加法(乘法)循环群且生成元P (U)的阶为n,即n是使得P (u)的幂等于群H的单位元的最小正整数,则称H为n阶加法(乘法)循环群。简单来说,加法循环群是指该循环群的生成元能够以加法运算生成群中的所有元素,而乘法循环群是指该循环群的生成元能够以乘幂的方法生成群
中的所有元素。此外,=Z,,/_!()} =彳1},其中Z1^指整数模素数p的剩余类,即Zp= {0, I,..., p-1}。
[0054]根据以上双线性对的描述,下面结合附图和实现例对本发明提出的基于证书代理重加密方法进行进一步说明,但并不作为对本发明的限定。
[0055]本发明所述方法设计的实体如下:
[0056](I)证书中心:负责系统参数生成,即生成系统主密钥和系统公开参数集,以及对系统用户进行验证并签发证书的可信第三方;
[0057](2)委托方:加密消息的原始接收者,是委托受理方行使解密权的实体;
[0058](3)受理方:接收委托方的授权,代表委托方行使解密权的实体;
[0059](4)代理重加密中心:接收委托方的代理重加密委托,行使将委托方的原始密文转化为重加密密文的半可信第三方;
[0060](5)发送者:消息的原始发送实体;
[0061](6)接收者:密文的接收实体,可以是委托方,也可以是受理方。
[0062]参照图附图1和附图2,本发明所述方法的步骤具体描述如下:
[0063]步骤A,生成系统主密钥和系统公开参数集,具体步骤如下:
[0064]步骤101:根据设定的安全参数k E Z+,选择一个k比特的大素数p,并生成一个p阶加法循环群G和一个p阶乘法循环群Gt,以及定义在群G和群Gt上的双线性对e: GX G — Gt,其中双线性对e: GX G — Gt是群G与自身的笛卡尔积GX G到群Gt的映射。
[0065]步骤102:从加法循环群G中选择两个生成元P和Q并随机选择,计算Qpub= a Q, g=e(P,Q)和 h=e (Q,Q),其中集合 / = _丨1,2,_..,/; —U
[0066]步骤103:定义五个哈希函数 //,:_!0.1rxGxG,, — Z,,、H2: {0, l}n — {0,1}n、、H4:GtXGt- {。,『以及 H5:GtxGt^Z;,其中 H1 是笛卡尔积{0,IKxgxgt到^的密码学哈希函数,H2是⑷^广到{o,i}n的密码学哈希函数,H3是{0,1}*到<的密码学哈希函数,H4是笛卡尔积GtXGt到{0,l}n的密码学哈希函数,H5是笛卡尔积GtXGt到^的密码学哈希函数,n表示明文的比特长度,{O,1}*表示长度不确定的
二进制串的集合,{O, ι}η表示长度为η比特的二进制串的集合,{O, IKxgxgt表示{O, I}*、群G和群Gt的笛卡尔积,GtXGt表示群Gt和自身的笛卡尔积。
[0067]根据步骤101、步骤102及步骤103的执行结果,从而获得系统公开参数集params={p, G, GT, e, η, P, Q, Qpub, g, h, H1, H2, H3, H4, Hj 和系统主密钥 msk= α。
[0068]步骤B,根据所述系统公开参数集生成用户的公钥和私钥对,具体步骤如下:
[0069]步骤104:对于用户身份Idu,在Ζ:中随机选择一个整数% 作为其私钥SKu,即 SKu=Xuo
[0070]步骤105:计算并获得用户 Idu 的公钥 PK1 =(PK;[\PK:2') =(xt Q,g'.)
[0071]步骤C,根据所述系统主密钥和系统公开参数集、用户的身份和用户的公钥,生成用户的证书,具体步骤如下:
[0072]步骤106:对于用户身份Idu和公钥PKu,计算并获得用户Idu的证书Certu= (H1 Qdu, PKu) + a ”Q。
[0073]步骤D,根据所述系统公开参数集、待加密的明文以及接收者的身份和公钥,生成原始密文,具体步骤如下:
[0074]步骤107:根据接收者的身份idv和公钥i^ = (PA,PAf’)以及待发送的明文M,首先随机选择O e {ο, 1}η并计算r=H3(M, σ,idv, PKv);然后依次计算C1 = M @--,(σ),C2 =σ?/?4(Ιι'\(ΡΚ;2?),C3=rP 和 C4=r (H1 (idv, PKv)Q+QPub),从而获得明文 M 的原始密文C= (C1, C2, C? C4)。
[0075]步骤E,根据所述系统公开参数集、委托方的身份、私钥和证书以及受理方的身份和公钥,生成代理重加密密钥,具体步骤如下:
[0076]步骤108:根据委托方Idu的私钥SKu和证书Certu以及受理方idv的公钥PKi ={ΡΚ\}\ΡΚ\2]),首先随机选择并计算i =然后依次计算PRKl^l = SKl1-PK\U, PRKZ1 = Si! ? 人id "PU+ Q1J 舶 PRKl匕=(Certi,从而获得代理重加密密钥厂/?人^ WPRKURd.PRKU。
[0077]步骤F根据所述系统公开参数集、原始密文以及代理重加密密钥,生成重加密密文,具体步骤如下:
[0078]步骤109:根据代理重加密密钥K1,PRKZ1)以及以身
份idu和公钥PKu加密的原始密文C=(Ci,C2, C3, C4),计算并获得以身份idv和公钥PKv加密的代理重加密密文 C' =(14, C/ ,C2' ,C3' ,C4' ,Cs'),其中 c/ =C1, C2' =C2,
C: =e(C”PRKZ1 )’ c: =e(C4.PRKZ1)以及C; = PRd ,,
[0079]步骤G,根据所述系统公开参数集、待解密的密文(原始密文或重加密密文)以及解密者的私钥和证书,恢复明文,具体步骤如下:
[0080]当密文C为未 经重加密的原始密文,即C= (C1, C2, C3, C4)时,该解密模块7执行如下步骤:
[0081]步骤110:根据解密者idv的私钥SKv和证书Certv,以及密文CKC1, C2, C3, C4),计算 CT = C2 十 /Z4 (e(C4, Certv), (C3, Q)SK' ),进而计算并获得明文M = C1 ? H1 {a)。
[0082]步骤111:计算 r=H3 (M, o,idv, PKv),并判断 C4=r (H1 (idv, PKv) Q+QPub)是否成立:若成立,明文M有效;否则,密文无效,解密失败。
[0083]当密文C为代理重加密密文,即C= (idu,C/ ,C2' ,C3' ,C4' ,C5')时,该解密模块7执行如下步骤:
[0084]步骤112:根据代理方idv的私钥SKv和证书Certv,以及密文C= (idu,C1 / ,C2',C3 ' ,Ca',C5 '),依次计算 / = //5(c(C;,ar/, UiC^Certl f丨)和
cj = C;@HA{{C;r,{C;)VSK'),进而计算并获得明文 JkT = C1' ? TZ2 ⑷。
[0085]步骤113:计算 r=H3(M,。,Idu, PKu),并判断C3'=(尸略21)&'「和 C/ =hr 是否成立:若成立,明文M有效;否则,密文无效,解密失败。
[0086]参见附图3,本发明还提供了一种基于证书代理重加密系统,所述系统包括:系统参数生成模块、用户密钥生成模块、证书生成模块、加密模块、代理重加密密钥生成模块、代理重加密模块以及解密模块;
[0087]所述系统参数生成模块用于证书中心根据输入的安全参数生成证书中心的主密钥以及密码系统的公开参数集。
[0088]所述用户密钥生成模块用于系统用户根据系统参数生成模块生成的公开参数集以及用户的身份信息,生成用户的公钥和私钥对。
[0089]所述证书生成模块用于证书中心根据系统参数生成模块生成的主密钥和公开参数集,用户的身份信息以及用户密钥生成模块生成的公钥,生成用户的证书。
[0090]所述加密模块用于发送者根据系统参数生成模块生成的公开参数集,待加密的明文,接收用户的身份信息以及用户密钥生成模块生成的接收用户的公钥,生成明文的原始密文。
[0091]所述代理重加密密钥生成模块用于委托方根据系统参数生成模块生成的公开参数集,委托方的身份信息和受理方的身份信息,用户密钥生成模块生成的委托方的私钥和受理方的公钥以及证书生成模块生成的委托方的证书,生成代理重加密密钥。
[0092]所述代理重加密模块用于代理冲加密中心根据系统参数生成模块生成的公开参数集,加密模块输入的原始密文以及代理重加密密钥生成模块生成的代理重加密密钥,生成重加密密文。
[0093]所述解密模块用于解密者根据系统参数生成模块生成的公开参数集,加密模块生成的原始密文或代理重加密模块生成的重加密密文,用户密钥生成模块生成的解密者的私钥以及证书生成模块生成的解密者的证书,恢复出明文。
[0094]所述解密模块具体包括密文解密单元和密文有效性验证单元。
[0095]所述密文解密单元用于解密者对密文进行解密,恢复明文。
[0096]所述密文有效性验证单元用于解密者对密文的有效性进行验证,进而判断密文解密单元输出的明文是否有效。[0097]以上只是对本发明的优选实施方式进行了描述。对该【技术领域】的普通技术人员来说,根据以上实施方式可以很容易地联想到其它的优点和变形。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员在本发明技术的方案范围内进行的通常变化和替换,都应包含在本发明的保护范围之内。
【权利要求】
1.一种基于证书代理重加密方法,其特征在于,所述方法包含以下步骤: 步骤A,生成系统主密钥和系统公开参数集; 步骤B,根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥对,所述用户包括发送者和接收者; 步骤C,根据所述系统主密钥和系统公开参数集、用户的身份信息和用户的公钥,生成用户的证书; 步骤D,根据所述系统公开参数集、待加密的明文以及接收者的身份信息和公钥,生成原始密文; 步骤E,根据所述系统公开参数集、发送者的身份信息、私钥和证书,以及接收者的身份信息和公钥,生成代理重加密密钥; 步骤F,根据所述系统公开参数集、原始密文以及代理重加密密钥,生成重加密密文; 步骤G,根据所述系统公开参数集、待解密的密文以及接收者的私钥和证书,恢复明文,待解密的密文包括原始密文或者重加密密文。
2.根据权利要求1所述的一种基于证书代理重加密方法,其特征在于,所述步骤A具体过程如下: 步骤101,证书中心根据设定的安全参数k e Z+,选择一个k比特的大素数p,并生成一个P阶加法循环群G和一个P阶乘法循环群GT,以及定义在群G和群Gt上的双线性对e: G X G — Gt ;其中:Z+是正整数,双线性对e:GXG — Gt是群G与自身的笛卡尔积GXG到群Gt的映射,即双线性对e:GXG —Gt是指函数z=e (P1, P2),其中PpP2 e G为自变量,z e Gt为因变量; 步骤102,从加法循环群G中选择两个生成元P和Q并随机选择a e Z;,计算Qpub= a Q,g=e (P, Q)和 h=e(Q,Q);其中:集合 Z: = {1,2,...,/;-1}; 步骤 103,定义五个哈希函数 W1: K),IfxGxG, 4 Z H2: {O, 1}η — {O, 1}η、//?: !0, ^Ζ;、H4IGtXGt — {O, 1}η 以及 H5:GrXGr ^Ζ;,其中 H1 是笛卡尔积{0,IKxgxgt到ζ的密码学哈希函数,H2是{0,『到{ο,ι}η的密码学哈希函数,H3是{O, 1}*到Ζ:的密码学哈希函数,H4是笛卡尔积GtXGt到{0,1}η的密码学哈希函数,H5是笛卡尔积GtXGt到2.的密码学哈希函数,η表示明文的比特长度,{0,1}*表示长度不确定的二进制串的集合,{ο, ι}η表示长度为η比特的二进制串的集合,{O, IKxgxgt表示{O, I}*、群G和群Gt的笛卡尔积,GtXGt表示群Gt和自身的笛卡尔积; 根据步骤101至步骤103,生成证书中心秘密保存的系统主密钥为msk= α,系统公开参数集为 params= {p, G, GT, e, η, P, Q, Qpub, g, h, H1, H2, H3, H4, Hj。
3.根据权利要求2所述的一种基于证书代理重加密方法,其特征在于,所述步骤B具体过程如下: 身份为Idu的用户首先在 < 中随机选择一个整数xreZ;;作为自己的私钥SKu,即SKu=Xu ;然后利用系统公开参数集params生成自己的公钥PK, = (PK;\PK;2')= (-'',Q-g''1 )。
4.根据权利要求3所述的一种基于证书代理重加密方法,其特征在于,所述步骤C的具体过程如下: 身份为Idu的用户将自己的身份信息Idu和公钥PKu提交给证书中心;证书中心产生用户Idu的证书Certu= (H1Qdu, PKu) + a ) 然后将证书Certu发送给身份为Idu的用户。
5.根据权利要求4所述的一种基于证书代理重加密方法,其特征在于,所述步骤D具体过程如下: 发送者使用接收者的身份idv和公钥Z5K.= (PKli', PKl21)加密长度为n比特的明文M,发送者首先随机选择0 e {0,l}n并计算r=H3(M,0,idv,PKv);然后分别计算C、= M ? U2(O),C2= cr? I I4(JfAPK^Y), C3=rP 和 C4=r (H1 (idv,PKv) Q+QpJ ;最后将C= (C1, C2, C3, C4)作为明文M的密文发送给接收者idv。
6.根据权利要求5所述的一种基于证书代理重加密方法,其特征在于,所述步骤E的具体过程如下: 发送者Idu根据接收者idv的公钥= (/?:丨'Ip),首先随机选择StZ并计算I = II^ MX), PK^'Y );然后根据使用自己的私钥SKu和证书Certu以及接收者idv的公钥PK1 =(PK\\PKl2)) , [[ PRKrL =SKr-PKlu,層;2丄=SUI^idv,PK1 )Q + Qruh)和PRKsIl =ICertt ;最后将=(層;匕,PRJjRKZl )作为代理重加密密钥。
7.根据权利要求6所述的一种基于证书代理重加密方法,其特征在于,所述步骤F的具体过程如下: 根据发送者idu提交的代理重加密密钥/5Mn,/Md )以及以发送者的身份idu和公钥PKu加密的原始密文C=(Ci,C2, C3, C4),首先分别置C1' =C1,C2 / =C2, C;= PRKtr ;然后计算 C3'和 CV=KC45jPiC);最后将C' =(idu,CV,c2',(V,C/,(V )作为代理重加密密文转发至接收者idv。
8.根据权利要求7所述的一种基于证书代理重加密方法,其特征在于,所述步骤G的具体过程如下: 身份为idv的接收者使用自己的私钥SKv和证书Certv对密文C解密,根据密文C的类型,分为如下两种情形:若密文C为未经重加密的原始密文,即C=(Ci,C2, C3, C4),接收者idv首先计算ex = C2 ? /Z4 (e(C4, Certr), (C3,Q)SKy),进而计算并获得明文 I = C1 ? /Z2 ((67);然后计算r=H3 (M, a,idv, PKv),并判断C4=r (H1 (idv, PKv) Q+QPub)是否成立:若成立,明文M有效;否则,密文无效,解密失败;若C为代理重加密密文,即C=Qdu, C1' ,C2' ,C3' ,C4' ,C5'),接收者1火首先依次计算 b/MKq'Xcr/, UiC^Certl )sk' )和 a = C2'十//,((C4')1 ',(C:)1 ~),进而计算并获得明文 M = C;?H2(a);然后计算 r=H3 (M, o , Idu, PKu),并判断 < =(PK^Ysk' 和 C4' =hr 是否成立:若成立,明文M有效;否则,密文无效,解密失败。
9.一种基于证书代理重加密系统,其特征在于,包括: 系统参数生成模块,用于根据输入的安全参数生成证书中心的主密钥以及密码系统的公开参数集; 用户密钥生成模块,用于根据系统参数生成模块生成的公开参数集,以及用户的身份信息,生成用户的公钥和私钥对,所述用户包括发送者和接收者; 证书生成模块,用于根据系统参数生成模块生成的主密钥和公开参数集、用户的身份信息以及用户密钥生成模块生成的公钥,生成用户的证书; 加密模块,用于根据系统参数生成模块生成的公开参数集、待加密的明文、接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文; 代理重加密密钥生成模块,用于根据系统参数生成模块生成的公开参数集、发送者的身份信息和接收者的身份信息、用户密钥生成模块生成的发送者的私钥和接收者的公钥,以及证书生成模块生成的发送者的证书,生成代理重加密密钥; 代理重加密模块,用于根据系统参数生成模块生成的公开参数集、加密模块输入的原始密文以及代理重加密密钥生成模块生成的代理重加密密钥,生成重加密密文; 解密模块,用于根据系统参数生成模块生成的公开参数集、加密模块生成的原始密文或代理重加密模块生成的重加密密文、用户密钥生成模块生成的接收者的私钥,以及证书生成模块生成的接收者的证书,恢复明文。
10.根据权利要求9所述的一种基于证书代理重加密系统,其特征在于,所述解密模块具体包括密文解密单元和密文有效性验证单元;其中: 所述密文解密单元用于解密者对密文进行解密,恢复明文; 所述密文有效性验证单元用于解密者对密文的有效性进行验证,进而判断密文解密单元输出的明文是否有效。
【文档编号】H04L9/08GK103647642SQ201310572508
【公开日】2014年3月19日 申请日期:2013年11月15日 优先权日:2013年11月15日
【发明者】陆阳, 李继国 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1