一种具有前向安全的高效公钥加密方法

文档序号:7778977阅读:236来源:国知局
一种具有前向安全的高效公钥加密方法
【专利摘要】本发明公开了一种具有前向安全的高效公钥加密方法,包括如下步骤:步骤一、系统初始化,计算用户的公钥PK与初始私钥SK1;步骤二、对密钥进行更新;步骤三、使用公钥PK对明文m进行加密,得到明文m在当前时间段i的密文CT;步骤四、使用当前时间段i的私钥SKi对密文CT进行解密,得到明文m。本发明的积极效果是:加密者只需要持有一个群元素,即可通过公开信息得到各个时间段的公钥。此外,公钥可以是身份信息,在此基础上,可将基于身份的加密方案转化为前向安全的公钥加密方案,得到在随机预言机模型下达到适应性选择密文安全的前向安全的高效公钥加密方案。
【专利说明】一种具有前向安全的高效公钥加密方法
【技术领域】
[0001]本发明涉及一种具有前向安全的高效公钥加密方法。
【背景技术】
[0002]当今随着互联网的普及,用户和企业都离不开密钥的保护。密钥在一个密码系统中有着异乎寻常的重要地位:在加密系统中只有掌握合法密钥的用户才能执行解密操作,而在签名系统中也只有掌握合法密钥的用户才能产生有效签名。现在使用的密码体制由算法和密钥组成,根据KerchhofT假设,密码算法是公开的,密码体制的安全性就完全依赖于密钥的保密性。目前,绝大多数密码系统都假设密钥能够得到妥善保管而不发生泄露,并没有对密钥泄露采取保护措施。然而,一个严峻的事实是:随着通信技术和计算机的迅猛发展,越来越多的密码系统被应用于诸如移动设备等安全性较差的环境,密钥泄露的发生在所难免。对于一个密码系统来说,密钥泄露无疑是一个毁灭性的打击,因为它意味着系统的安全性彻底丧失。
[0003]为了减小密钥泄露的可能性,早期采用的办法是分布式技术。具体做法是将密钥分成若干个子密钥,分别存放在不同的设备中,每一个密码操作必须是这些设备的共同协作才能完成。这样,即使攻击者能获得某些子密钥,也不能获得整个密钥,从而加大了攻击者获得密钥的难度。这些办法包括:秘密共享系统、门限密码系统以及前摄密码系统等。但是,这些系统都有很大的局限性,如开销太大,更致命的是,一旦有足够份额的子密钥泄露,系统的安全性仍然会彻底丧失。既然密钥泄露是无法避免的,那么就应当采用合适的技术来尽量减轻它带来的危害。前向安全就是这样一种技术,它不再是将密钥分成若干个子密钥,而是将密钥周期分成若干段,在密码系统中加入密钥更新算法,每个时间段开始时,用密钥更新算法得到新的密钥。而密钥更新算法是一个具有单向性的算法,由前面时间段的密钥更新得到后面时间段的密钥是容易的,反过来却是困难的。具有前向安全的密码系统可以保证:即使某个时间段的私钥发生泄露,也不会危害系统在该时间段以前的安全性,这样大大降低了密钥泄露带来的危害。
[0004]前向安全的概念源于Giinther和Diffie等在研究密钥交换协议时提出来的前向保密技术。在1997年ACM CCS会议上,发明人Anderson首次提出前向安全数字签名的概念时粗略地将其表示为当前私钥的泄露不会影响到过去的大量数字签名的安全性,直至1999年发明人Bellare和Miner在其发表的论文中给出了较正式的定义,即对于一个具有密钥更新(或者称为密钥演化)机制的数字签名方案,在其敌手模型中允许敌手进行选择消息攻击,并在其所选的时间段j泄露秘密密钥,敌手将试图对消息m伪造出关于某个时间段i (i〈j,对应时间段j之前的某一时间段)的签名,如果敌手的伪造是计算上不可行的,那么称方案具有前向安全性。
[0005]对于一个加密方案的前向安全性是指,当前秘密密钥的泄露不会造成攻击者得到解密过去时间段的密文的能力。如何构造前向安全的公钥加密方案,在过去很长一段时间内是一个公开的困难问题。直到2003年欧洲密码学会上,发明人Canetti, Hailevi和Katz借助基于身份的分层加密这一有力工具,才成功构造出一个前向安全的公钥加密方案。该文运用双线性对及二进制树的前序遍历等技术,使得密钥产生算法,加解密算法及密钥更新算法的时间复杂度都为O(log T),其密文平均长度也为0(log T),这里T是时间段总数。发明人Yao等将前向安全机制引入到基于身份的环境中,提出一个前向安全的基于身份的公钥加密方案。发明人Boneh等提出一个具有定长密文的前向安全的基于身份的公钥加密方案,具有更好的性质。发明人Yang Lu等人基于证书提出通用的前向安全加密方案,并给出 了具体算法。文献 “Forward-security in private-ley cryptography.”(M.Bellare and B.Yee, CT-RSA, 2003,LNCS, 2003,2613:1-18.)研究了对称加密方案的前向安全性,而文献 “Forward - Secure Hierarchical ID-Based Cryptography.” (D.Yaoand A.Lysyanskaya.Cryptology ePrint Arichive, 2003, Report2003/149.)则对具有前向安全属性的分层的基于身份密码进行了研究。但是这些算法的多个参数的时间复杂度仍为Odog T),在时间段总数较大的情况下不适用。
[0006]目前提出的前向安全公钥加密方案存在如下问题:
[0007]I)密文长度与时间段总数的对数成线性关系,其时间复杂度为O(1gT);
[0008]2)私钥长度与时间段总数的对数成线性关系,其时间复杂度为O(1gT);
[0009]3)加密、解密效率较低,都与时间段总数相关,其时间复杂度为O(1gT)。
[0010]因此,目前存在的前向安全公钥加密方案不适于实际应用。如何设计具有更高性能的、可证明安全的前向安全公钥加密方案,是本发明的主要工作。这些性能主要包括:定长密文,定长私钥,固定加/解密开销,固定密钥更新开销。这里的私钥长度是指,当前时间段中解密者用来解密密文所采用的私钥长度。

【发明内容】

[0011]为了克服现有技术的上述缺点,本发明提供了一种具有前向安全的高效公钥加密方法,基于对称加密的思想,给出一种简单的密钥演化方法,并将其嵌入到公钥加密方案中,得到高效的前向安全公钥加密方案。这里的公钥长度是指当前时间段中加密者用来加密明文所采用的公钥长度,它与时间段总数无关。加密者只需要持有一个群元素,即可通过公开信息得到各个时间段的公钥。此外,公钥可以是身份信息,在此基础上,下面的方案可将基于身份的加密方案转化为前向安全的公钥加密方案。我们将Fujisak1-Okamoto转换方法应用到传统公钥加密方案,得到在随机预言机模型下达到适应性选择密文安全(CCA2)的前向安全的高效公钥加密方案(efficient forward secure-Public Key Encryptionscheme),简记为 efs-PKE。
[0012]本发明解决其技术问题所采用的技术方案是:一种具有前向安全的高效公钥加密方法,包括如下步骤:
[0013]步骤一、系统初始化,计算用户的公钥PK与初始私钥SK1:
[0014]I)假定(G1, G2, Gt, e)是一个非对称双线性群,P1为G1的生成元;其中=G1, G2为两个q阶加法交换群,Gt为q阶乘法交换群;e为双线性映射e =GixG2 — Gt ;
[0015]2)从Z/中均匀选取主私钥S,并使公开系统参数=4 eG;其中:Z:为模q的整数剩余类环的非零部分,Q为一个k比特长的安全大素数,k为系统安全参数;G^=G1X {OJ,G1*为群G1除去其零元;
[0016]3)选取安全杂凑函数 H1: {0,I}* —G2*, H2:Gt - {0, l}n, /^,: {0,lj-H x {0,-> Z,^H4: {0,l}n— {0,l}n;其中:G/=G2\{OJ,G/为群 G2 除去其零元;
[0017]4)均匀选取Q1 ^ ,计算Qi=H1H(Q1)J=Z, 3,..., T ;其中蝴为第i个时间段对应的公钥;T为时间段总数;
[0018]5)计算第i个时间段对应的私钥名-.s'Q,(l</<n,< e G:,计算出全部私钥后销
毁s;
[0019]6)计算尽=,其中(I≤i≤T-1),其中:Ei为加密后产生的密文;
表示用对称密钥Cli对di+1进行加密;
[0020]7)获得公钥 PK= (G1, G2, Gt, e, T, P1, Ppub, Q1, H1, H2, H3, H4),和初始私钥 SK1= (1,(I1);
[0021]步骤二、对密钥进行更新:
[0022]I)如果i=T,则返回步骤一,重新初始化系统,否则进行第2)步;
[0023]2 )计算h = Decd,(乓);其中:Dec+ (乓)表示用对称密钥Cli对Ei进行解密;
[0024]3)计算 SKi+1=(i+l, di+1),删除 SKi,保存 SKi+1 ;
[0025]步骤三、使用公钥PK对明文m进行加密,得到明文m在当前时间段i的密文CT:
[0026]明文m G {0,l}n,随机选取《 — U{0,l}n,
[0027]I)计算 r=H3 (w , m), C^rP1 ;
[0028]2)计算 C2= ? ? H2(Hr), C3=In ? H4(?),其中 7 = K,;,"丨;丨(Ql)) e G1 ;
[0029]获得密文为CT= (C1, C2, C3);
[0030]步骤四、使用当前时间段i的私钥SKi对密文CT进行解密,得到明文m:
[0031]I)计算 C2 ? H2(G(C^di)) = W ;
[0032]2 )计算 C3 ? H4 (W) =m ;
[0033]3)验证C1是否等于rPi,若不相等,则拒绝接受密文;若相等,则输出明文m。
[0034]与现有技术相比,本发明的积极效果是:加密者所使用的公钥长度是恒定的,与不具有前向安全的传统公钥加密方案相同。这里,传统公钥加密方案是指经典的公钥加密方案,比如基于离散对数的公钥加密方案等。解密者尽管需要保存T个与私钥进化有关的公开参数,但是真正需要秘密保存的参数只有一个。另外,本发明还实现恒定密文长度、恒定加解密开销。因此,与目前存在的前向安全公钥加密方案相比,本方案的优势非常明显。具体优点如下:
[0035]I)加密/解密时间与传统公钥加密方案相同,时间复杂度为0(1);
[0036]2)私钥长度、密文长度与传统公钥加密方案相同,时间复杂度均为0(1);
[0037]3)给出一种基于身份公钥加密方案到前向安全公钥加密方案的转化方式,将前向安全公钥加密方案的安全性归约到基于身份公钥加密方案的安全性上;
[0038]4)达到前向安全的适应性抵抗密文攻击安全性,这是目前前向安全公钥加密模型下最强的安全性目标。【具体实施方式】
[0039]前向安全的高效公钥加密方案包括下面4个多项式时间算法:ef s-PKE.setup (), ef s-PKE.upd (), efs-PKE.enc (), efs-PKE.dec ()。其中,初始化算法 efs-PKE.setup (T,lk) = (PK, SK1),输入安全参数k与时间段总数T,输出用户的公钥PK与初始私钥SK1 ;密钥更新算法efs-PKE.upd(i, Sig=SKi+1,输入第i个时间段的私钥SKi,得到第i+1个时间段的私钥SKi+1,若i=T,则重新初始化系统;加密算法efs-PKE.enc (PK,i,m)=c,使用公钥PK加密明文m,得到m在当前时间段i的密文c ;解密算法efs-PKE.dec (SKi, i, c) =m,使用当前时间段i的私钥SKi解密密文C,得到明文m。具体方案如下:
[0040]一种具有前向安全的高效公钥加密方法,包括如下步骤:
[0041]步骤一、系统初始化,计算用户的公钥PK与初始私钥SK1:
[0042]I)假定(GpGhG1^e)是一个非对称双线性群,任意选取一个生成兀P1 G G1 ;其中:G1, G2为两个q阶加法交换群,Gt为q阶乘法交换群;e为双线性映射e =GixG2 — Gt 为G1的生成元;
[0043]2)选取Sec7Z/,使其中:s为主私钥,从Zq*中均匀选取;
Z;=Zq\ {0},即模q的整数剩余类环的非零部分,q为一个k比特长的安全大素数,k为系统安全参数;Ppub为公开系统参数,Ppub G G1*, G^=G1X {0J,即G1*为群G1除去其零元;
[0044]3)选取安全杂凑函数 H1: {0,I}*-G2*, H2:Gt - {0,l}n,Hx {Q,\)n ->
H4: {0, l}n- {0,l}n;其中 :GZ=GAIOJ,即 G/为群 G2 除去其零元;
[0045]4)均匀选取^ e ; ,计算Qi=H1H (Q1),i=2, 3,? ? ?,T ;其中=Qi为第i个时间段对应的公钥;T为时间段总数;
[0046]5)计算第i个时间段对应的私钥4 = &(1 < / < TXdi e G:,计算出全部私钥后销
毁s;
[0047]6)计算乓⑷H),其中(I≤i≤T-1),这里EiF需要秘密保存,其中洱为
加密后产生的密文;表示用对称密钥Cli对di+1进行加密,这里的di+1表示明文;
[0048]7)获得公钥 PK= (G1, G2, Gt, e, T, P1, Ppub, Q1, H1, H2, H3, H4),和初始私钥 SK1= (1,(I1)。
[0049]步骤二、对密钥进行更新:
[0050]I)如果i=T,则返回步骤一重新初始化系统,否则进行第2)步;
[0051]2)计算式+1.其中:/?% (乓)表示用对称密钥Cli对£1进行解密,这里的Ei表示密文,di+1表示解密后的明文;
[0052]3)计算 SKi+1=(i+l,di+1),安全删除 SKi,安全保存 SKi+1 ;
[0053]步骤三、使用公钥PK对明文m进行加密,得到明文m在当前时间段i的密文CT:
[0054]明文m G {0,l}n,随机选取 w —U{0, l}n。
[0055]I)计算 r=H3 (w , m), C^rP1 ;[0056]2) C2=O ? H2 ( nr),C3=IH ? H4 (o),其中"=KPpuh J~![ '(Q,))e G1.?t
[0057]则密文为CT= (C1, C2, C3)。
[0058]步骤四、使用当前时间段i的私钥SKi对密文CT进行解密,得到明文m:
[0059]I)计算 C2 ? H2(G(C^di)) = W ;
[0060]2 )计算 C3 ? H4 (W) =m ;
[0061]3)取r=H30,m),验证C1是否等于TP1,若不相等,则拒绝接受密文;若相等,贝!J输出明文m。
[0062]下表是本发明与已有发明的效率对比。通过对比看出,本发明的公钥长度与不具有前向安全的传统公钥加密方案(PKE)的相同,除了解密者需要保存的公开参数增加之外,其他各项指标都是0(1),与同类方案相比具有明显优势。
[0063]性能对比表
[0064]
【权利要求】
1.一种具有前向安全的高效公钥加密方法,其特征在于:包括如下步骤: 步骤一、系统初始化,计算用户的公钥PK与初始私钥SK1: 1)假定(G1,G2, Gt, e)是一个非对称双线性群,P1为G1的生成元;其中=G1, G2为两个q阶加法交换群,Gt为q阶乘法交换群;e为双线性映射e =GixG2 — Gt ; 2)从中均匀选取主私钥S,并使公开系统参数P/ = 《.其中a:为模q的整数剩余类环的非零部分,Q为一个k比特长的安全大素数,k为系统安全参数{0J ; 3)选取安全杂凑函数H1: {O,I}* —G2*, H2:Gt - {0, l}n, //,: |0,1!" X-JO, ^z;; ^H4: {0, l}n- {0,l}n;其中:G2*=G2\{0J ; 4)从G/中随机均匀选取Q1,记为Q1G,计算Qi = HiH(Qi)i = H3,…,T;其中蝴为第i个时间段对应的公钥;T为时间段总数; 5)计算第i个时间段对应的私钥式=sQ^1^^ e Gl,计算出全部私钥后销毁s ;6)计算乓=,其中(l<i<T-1),Ei为加密后产生的密文;EnCd (dM)衰示 用对称密钥Cli对di+1进行加密;
7)获得公钥PK= (G1, G2, Gt, e, T, P1, Ppub, Q1, H1, H2, H3, H4),和初始私钥 SK1= (1,(I1);
步骤二、对密钥进行更新: 1)如果i=T,则返回步骤一,重新初始化系统,否则进行第2)步; 2)计算4+1(巧);其中:Dec(/(馬)表示用对称密钥Cli对Ei进行解密;
3)计算SKi+1=(i+l, di+1),删除 SKi,保存 SKi+1 ; 步骤三、使用公钥PK对明文m进行加密,得到明文m在当前时间段i的密文CT: 明文 mG {0,l}n,随机选取 Co — U{0,l}n,
1)计算r=H3 (w , m), C^rP1 ;
2)计算C2= to ? H2 ( nr), C3=IH ? H4 (co ),其中7 =(,(广―,'(Q1)) e G1.获得密文为CT=(C11C21C3); 步骤四、使用当前时间段i的私钥SKi对密文CT进行解密,得到明文m:
I)计算 C2 ? H2(G(C^di)) = W ;
2 )计算 C3 ? H4 (w) =m ; 3)验证C1是否等于rPi,若不相等,则拒绝接受密文;若相等,则输出明文m。
2.根据权利要求1所述的一种具有前向安全的高效公钥加密方法,其特征在于:所述Ei无需秘密保存。
【文档编号】H04L9/30GK103684764SQ201310646062
【公开日】2014年3月26日 申请日期:2013年12月3日 优先权日:2013年12月3日
【发明者】张文政, 张李军, 张秀洁, 许春香 申请人:中国电子科技集团公司第三十研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1