《一种分布式的基于K,N门限证书加密方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种分布式的基于K,N门限证书加密方法及系统.pdf(17页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104168114A43申请公布日20141126CN104168114A21申请号201410387870922申请日20140807H04L9/32200601H04L29/0620060171申请人河海大学地址211100江苏省南京市鼓楼区西康路1号72发明人陆阳张全领李继国74专利代理机构南京经纬专利商标代理有限公司32200代理人朱小兵54发明名称一种分布式的基于K,N门限证书加密方法及系统57摘要本发明公开了一种分布式的基于K,N门限证书加密方法及系统,将秘密共享技术和基于证书加密相结合,所述方法包括生成系统参数、生成用户公钥和私钥、生成用户证书份额、验证用户证书。
2、份额有效性、合成用户证书、对消息加密和恢复消息的步骤,所述系统包括系统参数生成模块、用户密钥生成模块、证书份额生成模块、证书份额验证模块、证书合成模块、加密模块和解密模块。本发明所述技术方案大大增强了密码系统抵抗主密钥泄露、拒绝服务攻击及证书服务器故障的能力,有效克服了已有基于证书加密方法的缺点。51INTCL权利要求书4页说明书9页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书9页附图3页10申请公布号CN104168114ACN104168114A1/4页21一种分布式的基于K,N门限证书加密方法,其特征在于,包含以下步骤步骤A,生成系统公开参数集,同时分别生。
3、成N个证书服务器的主密钥共享,并在N个证书服务器上分别部署其主密钥共享;步骤B,根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥;步骤C,从N个证书服务器中任意选择K个证书服务器,对于所述K个证书服务器,分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额;步骤D,对于步骤C中生成的K个证书份额,分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性,若存在无效证书份额,则将其丢弃后,从已经生成有效证书份额的证书服务器之外的证书服务器中重新生成新的证书份额并验证其有效性,直至K个证书份额均为有效证书份额;步骤E,根据所述系统公开参数集和所述K。
4、个证书份额生成用户完整的证书;步骤F,根据所述系统公开参数集、待加密的明文、接收者的身份信息以及接受者的公钥,生成密文;步骤G,根据所述系统公开参数集、待解密的密文、接收者的公钥、接收者的私钥以及接收者的证书,恢复明文。2根据权利要求1所述的分布式的基于K,N门限证书加密方法,其特征在于,所述步骤A的详细步骤如下步骤A1,根据设定的安全参数Z,选择一个比特的大素数P,并生成两个P阶乘法循环群G和GT,并定义在群G和群GT上的双线性对EGGGT;其中,Z是正整数集合,双线性对EGGGT是群G与自身的笛卡尔积GG到群GT的映射,即双线性对EGGGT是指函数ZEP1,P2,P1,P2G为自变量,ZG。
5、T为因变量;步骤A2,从群G中随机选择一个生成元G、两个元素G2和G3、以及一个L1维向量UU,U1,UL,定义一个K1次多项式并计算G1GF0;其中,LZ是正整数,AJZP且ZP表示集合0,1,2,P1;步骤A3,定义两个抗碰撞哈希函数H10,10,1L和其中,H1是0,1到0,1L的密码学哈希函数,H2是笛卡尔积GTGG到集合的密码学哈希函数,0,1表示长度不确定的二进制串的集合,0,1L表示长度为L比特的二进制串的集合,表示集合1,2,P1;步骤A4,选择一个消息认证码方案MAC,VERIFY;其中,消息认证算法MAC以一个消息M和一个随机密钥MK为输入,产生消息M的消息认证码MAC;验。
6、证算法VERIFY以消息M、消息认证码MAC以及密钥MK为输入,输出“1”表示MAC是消息M有效的消息认证码或“0”表示MAC无效;步骤A5,将,N,K,P,L,E,G,GT,G,G1,G2,G3,U,H1,H2,MAC,VERIFY作为系统公开参数集PARAMS;权利要求书CN104168114A2/4页3步骤A6,分别生成N个证书服务器的主密钥共享MSKIFI,并分别在N个证书服务器上部署其主密钥共享MSKI;其中,3根据权利要求2所述的分布式的基于K,N门限证书加密方法,其特征在于,所述步骤B的详细步骤如下步骤B1,在集合中随机选择一个整数X作为身份为ID的用户的私钥USKID,即USK。
7、IDX;步骤B2,在群G中随机选择一个元素G,计算所述身份为ID的用户的公钥4根据权利要求3所述的分布式的基于K,N门限证书加密方法,其特征在于,步骤C中对于所述K个证书服务器分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额的详细步骤如下当I为大于等于1小于等于K的整数时,对于所述K个证书服务器中的每个证书服务器I步骤C1,用户将身份信息ID和公钥UPKID提交给所述证书服务器I;步骤C2,证书服务器I根据用户的身份信息ID和公钥UPKID计算出哈希值HH1ID,UPKID;步骤C3,证书服务器I在集合中随机选择一个整数R,根据其系统主密钥共享MSKI以及所述哈。
8、希值H计算出用户ID的证书份额其中,HJ是哈希值H二进制表示的第J位。5根据权利要求4所述的分布式的基于K,N门限证书加密方法,其特征在于,步骤D中所述对于K个证书份额分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性的详细步骤如下对于所述K个证书份额每个证书份额I步骤D1,根据系统公开参数集、用户的身份ID以及用户的公钥UPKID,计算哈希值HH1ID,UPKID;步骤D2,对于证书份额CERTID,I,验证等式是否成立,若等式成立,表明证书份额CERTID,I有效,则接受该证书份额;否则,表明证书份额CERTID,I无效,则丢弃该无效证书份额;其中,HJ是哈希值H二进制表。
9、示的第J位。6根据权利要求5所述的分布式的基于K,N门限证书加密方法,其特征在于,所述步骤E的详细步骤如下权利要求书CN104168114A3/4页4步骤E1,计算一组LAGRANGE插值J满足步骤E2,根据系统公开参数集PARAMS和所述K个证书份额CERTID,1,CERTID,K,生成用户ID最终的证书7根据权利要求6所述的分布式的基于K,N门限证书加密方法,其特征在于,所述步骤F的详细步骤如下步骤F1,发送者确定需要加密的明文M,并取得接收者的身份ID以及接收者的公钥步骤F2,随机选择一个比特串STR,并置消息M为明文M和比特串STR的级联M|STR;步骤F3,计算哈希值HH1ID,U。
10、PKID,在集合中随机选择一个整数T,依次计算H2C1,C2,C3和其中,HJ是哈希值H二进制表示的第J位;步骤F4,执行消息认证码方案的消息认证算法MAC以STR为密钥产生CC1,C2,C3,C4的消息认证码MAC;步骤F5,将CC1,C2,C3,C4,MAC作为明文M的密文发送给接收者ID。8根据权利要求7所述的分布式的基于K,N门限证书加密方法,其特征在于,所述步骤G的详细步骤如下步骤G1,接收者接收密文CC1,C2,C3,C4,MAC;步骤G2,根据接受者的公钥私钥USKID和证书计算步骤G3,以STR为密钥执行消息认证码方案的消息认证算法VERIFY,若算法VERIFY输出“1”,则。
11、明文M有效;否则,密文无效,解密失败。9一种分布式的基于K,N门限证书加密系统,其特征在于,包括系统参数生成模块,用于证书中心根据输入的安全参数生成系统密码系统的公开参数集和N个证书服务器的系统主密钥共享。用户密钥生成模块,用于系统用户根据系统参数生成模块生成的公开参数集以及用户的身份信息,生成用户的公钥和私钥。证书份额生成模块,用于证书服务器根据系统参数生成模块生成的公开参数集和系统主密钥共享、用户的身份信息以及用户密钥生成模块生成的用户的公钥,生成用户的一个证书份额。证书份额验证模块,用于系统用户根据系统参数生成模块生成的公开参数集、用户的权利要求书CN104168114A4/4页5身份信。
12、息、用户密钥生成模块生成的用户的公钥以及证书份额生成模块生成的用户的证书份额,验证证书份额的有效性。证书合成模块,用于系统用户根据系统参数生成模块生成的公开参数集和证书份额生成模块产生的用户的K个不同的有效证书份额,生成用户最终的证书。加密模块,用于发送者根据系统参数生成模块生成的公开参数集,待加密的明文,接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文。解密模块,用于接收者根据系统参数生成模块生成的公开参数集,加密模块生成的密文、用户密钥生成模块生成的接收者的公钥和私钥以及证书合成模块生成的接收者的证书,恢复明文。权利要求书CN104168114A1/9页6一种分布。
13、式的基于K,N门限证书加密方法及系统技术领域0001本发明涉及信息安全中的数据加密技术领域,尤其涉及一种分布式的基于K,N门限证书加密方法及系统。背景技术0002DIFE和HELLMAN在1976年提出了公钥密码体制PUBLICKEYCRYPTOGRAPHY的概念。在公钥密码体制中,每个用户拥有公钥和私钥两个不同的密钥,其中公钥可以公开,用于加密或验证签名;而私钥则需要保密,用于解密或签名。公钥密码体制的提出对公开网络上的保密通信、密钥分配、数字签名和认证带来了深远影响,在保障信息安全方面起到了极其重要的作用。0003基于证书密码体制CERTICATEBASEDCRYPTOGRAPHY是GEN。
14、TRY在2003年所提出的一种新型公钥密码体制,该体制有机结合了基于身份密码体制和传统公钥密码体制的优点,并有效克服了这两种密码体制中存在的固有缺陷。类似于传统公钥密码体制,基于证书密码体制也需要可信的证书授权中心CERTICATEAUTHORITY,CA为用户生成公钥证书,但该体制提供了一种高效的隐证书机制,即用户证书仅发送给证书持有人,并与其自行生成的私钥相组合产生最终的解密密钥或签名密钥。基于该机制,基于证书密码体制不仅消除了传统公钥密码体制中证书状态的第三方查询问题,简化了复杂的证书管理过程,而且克服了基于身份密码体制中固有的密钥分发问题和密钥托管问题。因此,基于证书密码体制是一种性能。
15、优良,便于开放网络环境中应用的新型公钥密钥体制。0004然而,在已有的基于证书密码系统中,仅有唯一的证书服务器持有系统主密钥并独立完成对用户的认证、证书的签发和撤消等任务。这种集中式的工作方式在实际应用中可能会带来如下安全的问题00051抵抗拒绝服务攻击和证书服务器故障的能力弱。由于整个系统仅有唯一的证书服务器完成对用户的认证、证书的签发和撤消的工作,因此一旦证书服务器遭受拒绝服务攻击或发生故障而无法正常工作,整个系统将可能陷于瘫痪状态。00062抵抗主密钥泄露的能力弱。由于证书服务器需要使用系统主密钥来完成用户证书的签发,因此一旦唯一的系统主密钥被泄露,整个系统将无安全性可言。发明内容000。
16、7本发明所要解决的技术问题是针对背景技术中的缺陷,将秘密共享的思想和基于证书密码体制相结合,提供了一种分布式的基于K,N门限证书加密方法。所述方法将系统主密钥分成NN1个系统主密钥共享,并将这些系统主密钥共享部署在N个证书服务器中;用户则可以从任意一个证书服务器处申请获得证书份额,然后通过组合K1KN个证书份额生成一个完整的证书。0008本发明为解决上述技术问题采用以下技术方案0009一种分布式的基于K,N门限证书加密方法,包含以下步骤说明书CN104168114A2/9页70010步骤A,生成系统公开参数集,同时分别生成N个证书服务器的主密钥共享,并在N个证书服务器上分别部署其主密钥共享;0。
17、011步骤B,根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥;0012步骤C,从N个证书服务器中任意选择K个证书服务器,对于所述K个证书服务器,分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额;0013步骤D,对于步骤C中生成的K个证书份额,分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性,若存在无效证书份额,则将其丢弃后,从已经生成有效证书份额的证书服务器之外的证书服务器中重新生成新的证书份额并验证其有效性,直至K个证书份额均为有效证书份额;0014步骤E,根据所述系统公开参数集和所述K个证书份额生成用户完整的证书;0015步骤。
18、F,根据所述系统公开参数集、待加密的明文、接收者的身份信息以及接受者的公钥,生成密文;0016步骤G,根据所述系统公开参数集、待解密的密文、接收者的公钥、接收者的私钥以及接收者的证书,恢复明文。0017作为本发明一种分布式的基于K,N门限证书加密方法进一步的优化方案,所述步骤A的详细步骤如下0018步骤A1,根据设定的安全参数Z,选择一个比特的大素数P,并生成两个P阶乘法循环群G和GT,并定义在群G和群GT上的双线性对EGGGT;0019其中,Z是正整数集合,双线性对EGGGT是群G与自身的笛卡尔积GG到群GT的映射,即双线性对EGGGT是指函数ZEP1,P2,P1,P2G为自变量,ZGT为因。
19、变量;0020步骤A2,从群G中随机选择一个生成元G、两个元素G2和G3、以及一个L1维向量UU,U1,UL,定义一个K1次多项式并计算G1GF0;0021其中,LZ是正整数,AJZP且ZP表示集合0,1,2,P1;0022步骤A3,定义两个抗碰撞哈希函数H10,10,1L和0023其中,H1是0,1到0,1L的密码学哈希函数,H2是笛卡尔积GTGG到集合的密码学哈希函数,0,1表示长度不确定的二进制串的集合,0,1L表示长度为L比特的二进制串的集合,表示集合1,2,P1;0024步骤A4,选择一个消息认证码方案MAC,VERIFY;0025其中,消息认证算法MAC以一个消息M和一个随机密钥M。
20、K为输入,产生消息M的消息认证码MAC;验证算法VERIFY以消息M、消息认证码MAC以及密钥MK为输入,输出“1”表示MAC是消息M有效的消息认证码或“0”表示MAC无效;0026步骤A5,将,N,K,P,L,E,G,GT,G,G1,G2,G3,U,H1,H2,MAC,VERIFY作为系统公开参数集PARAMS;0027步骤A6,分别生成N个证书服务器的主密钥共享MSKIFII1,2,N,说明书CN104168114A3/9页8并分别在N个证书服务器上部署其主密钥共享MSKI;0028其中,0029作为本发明一种分布式的基于K,N门限证书加密方法进一步的优化方案,所述步骤B的详细步骤如下00。
21、30步骤B1,在集合中随机选择一个整数X作为身份为ID的用户的私钥USKID,即USKIDX;0031步骤B2,在群G中随机选择一个元素G,计算所述身份为ID的用户的公钥0032作为本发明一种分布式的基于K,N门限证书加密方法进一步的优化方案,步骤C中对于所述K个证书服务器分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额的详细步骤如下0033当I为大于等于1小于等于K的整数时,对于所述K个证书服务器中的每个证书服务器I0034步骤C1,用户将身份信息ID和公钥UPKID提交给所述证书服务器I;0035步骤C2,证书服务器I根据用户的身份信息ID和公钥UPKID计。
22、算出哈希值HH1ID,UPKID;0036步骤C3,证书服务器I在集合中随机选择一个整数R,根据其系统主密钥共享MSKI以及所述哈希值H计算出用户ID的证书份额0037其中,HJ是哈希值H二进制表示的第J位。0038作为本发明一种分布式的基于K,N门限证书加密方法进一步的优化方案,步骤D中所述对于K个证书份额分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性的详细步骤如下0039对于所述K个证书份额每个证书份额I0040步骤D1,根据系统公开参数集、用户的身份ID以及用户的公钥UPKID,计算哈希值HH1ID,UPKID;0041步骤D2,对于证书份额CERTID,I,验证等。
23、式是否成立,若等式成立,表明证书份额CERTID,I有效,则接受该证书份额;否则,表明证书份额CERTID,I无效,则丢弃该无效证书份额;0042其中,HJ是哈希值H二进制表示的第J位。0043作为本发明一种分布式的基于K,N门限证书加密方法进一步的优化方案,所述步骤E的详细步骤如下0044步骤E1,计算一组LAGRANGE插值JJ1,K满足说明书CN104168114A4/9页90045步骤E2,根据系统公开参数集PARAMS和所述K个证书份额CERTID,1,CERTID,K,生成用户ID最终的证书0046作为本发明一种分布式的基于K,N门限证书加密方法进一步的优化方案,所述步骤F的详细步。
24、骤如下0047步骤F1,发送者确定需要加密的明文M,并取得接收者的身份ID以及接收者的公钥0048步骤F2,随机选择一个比特串STR,并置消息M为明文M和比特串STR的级联M|STR;0049步骤F3,计算哈希值HH1ID,UPKID,在集合中随机选择一个整数T,依次计算H2C1,C2,C3和0050其中,HJ是哈希值H二进制表示的第J位;0051步骤F4,执行消息认证码方案的消息认证算法MAC以STR为密钥产生CC1,C2,C3,C4的消息认证码MAC;0052步骤F5,将CC1,C2,C3,C4,MAC作为明文M的密文发送给接收者ID。0053作为本发明一种分布式的基于K,N门限证书加密方。
25、法进一步的优化方案,所述步骤G的详细步骤如下0054步骤G1,接收者接收密文CC1,C2,C3,C4,MAC;0055步骤G2,根据接受者的公钥私钥USKID和证书计算0056步骤G3,以STR为密钥执行消息认证码方案的消息认证算法VERIFY,若算法VERIFY输出“1”,则明文M有效;否则,密文无效,解密失败。0057本发明还公开了一种分布式的基于K,N门限证书加密系统,包括0058系统参数生成模块,用于证书中心根据输入的安全参数生成系统密码系统的公开参数集和N个证书服务器的系统主密钥共享。0059用户密钥生成模块,用于系统用户根据系统参数生成模块生成的公开参数集以及用户的身份信息,生成用。
26、户的公钥和私钥。0060证书份额生成模块,用于证书服务器根据系统参数生成模块生成的公开参数集和系统主密钥共享、用户的身份信息以及用户密钥生成模块生成的用户的公钥,生成用户的一个证书份额。0061证书份额验证模块,用于系统用户根据系统参数生成模块生成的公开参数集、用户的身份信息、用户密钥生成模块生成的用户的公钥以及证书份额生成模块生成的用户的说明书CN104168114A5/9页10证书份额,验证证书份额的有效性。0062证书合成模块,用于系统用户根据系统参数生成模块生成的公开参数集和证书份额生成模块产生的用户的K个不同的有效证书份额,生成用户最终的证书。0063加密模块,用于发送者根据系统参数。
27、生成模块生成的公开参数集,待加密的明文,接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文。0064解密模块,用于接收者根据系统参数生成模块生成的公开参数集,加密模块生成的密文、用户密钥生成模块生成的接收者的公钥和私钥以及证书合成模块生成的接收者的证书,恢复明文。0065本发明采用以上技术方案与现有技术相比,具有以下技术效果0066本发明将秘密共享的思想和基于证书密码体制相结合,提供了一种分布式的基于K,N门限证书加密方法。所述方法将系统主密钥分成NN1个系统主密钥共享,并将这些系统主密钥共享部署在N个分布式的证书服务器中;用户可以从任意一个证书服务器处申请获得证书份额。
28、,然后通过组合K1KN个证书份额生成最终的证书。与已有的基于证书加密方法相比,本发明所述方法的优点在于抵抗拒绝服务攻击、主密钥泄露以及证书服务器故障的能力得到了大大地增强,更适合于开放网络环境中的应用。主要原因如下0067首先,由于采用秘密共享技术将系统主密钥分成多个系统主密钥共享并部署在多个分布式的证书服务器中,所以数量不超过K个系统主密钥共享的泄露不影响其它系统主密钥共享的秘密性以及整个系统的安全性;0068其次,由于用户只要组合K个证书份额即可合成最终的证书,因此系统中只要存在数量不低于K个证书服务器能够为用户提供证书份额的签发服务,系统即可正常运行。附图说明0069图1是本发明所述的基。
29、于K,N门限证书加密方法的流程图;0070图2是依照本发明方法的密码系统执行的操作流程图;0071图3是本发明所述的基于K,N门限证书加密系统的示意图。具体实施方式0072下面结合附图对本发明的技术方案做进一步的详细说明0073本发明所述的基于K,N门限证书加密方法可基于双线性对和SHAMIR秘密共享技术来实现,下面首先简要介绍双线性对和SHAMIR秘密共享技术。0074令G和GT是两个P阶乘法循环群,其中P为大素数,G是群G的生成元。假设G和GT这两个群上的离散对数问题都是困难问题。如果定义在群G和GT上一个映射EGGGT满足下面的三条性质,则称该映射为有效的双线性对。双线性对EGGGT是笛。
30、卡尔积GG到群GT的映射,即双线性对EGGGT是指函数ZEU,V,其中U,VG为自变量,ZGT为因变量。0075双线性对应满足的三条性质为00761双线性对于任意的U,VG和有EUA,VBEU,VAB。说明书CN104168114A106/9页1100772非退化性其中是群GT的单位元。00783可计算性对于任意的U,VG,存在有效的算法计算EU,V。0079其中,大素数P对于离散对数问题而言是二进制表示的160比特,而对于大整数分解问题而言是二进制表示的512比特。循环群的概念为设H为群,如果存在一个元素UH使得HUK|KZ,则称H为循环群,称U是H的生成元。若生成元U的阶为N,即N是使得U。
31、的幂等于群H的单位元的最小正整数,则称H为N阶循环群。乘法循环群是指该循环群的生成元能够以乘幂的方法生成群中的所有元素。此外,其中ZP是指整数模的剩余类,即ZP0,1,P1。0080SHAMIR秘密共享技术设P为素数,1KN,若一个秘密分发者要将一个秘密XZP分发给N个成员,则首先置A0X,并在集合ZP上随机选取K1个元素AII1,K1,定义一个K1次的多项式然后将FII1,N作为秘密共享通过保密的方式发送给成员I。0081秘密X的N个秘密共享FII1,N具有如下性质组合任意不多于K1个秘密共享无法计算出秘密X;组合任意K个及K个以上秘密共享可完全确定多项式FX,进而能够计算出秘密X并确定及其。
32、它成员的秘密共享。0082此外,对于任意含有K个成员的集合SZP,对于任意的IZP和JS,存在容易计算的LAGRANGE插值J,使得以及0083根据以上对双线性对以及SHAMIR秘密共享技术的描述,下面结合附图和实现例对本发明提出的基于K,N门限证书加密方法进行进一步说明,但并不作为对本发明的限定。0084本发明所述方法涉及的实体如下00851证书中心负责生成系统公开参数集以及系统主密钥共享的可信第三方;00862证书服务器负责对系统用户进行验证并使用系统主密钥共享签发证书份额的可信实体;00873发送者消息的发送实体;00884接收者密文的接收实体。0089参照图1和图2,本发明所述方法的步。
33、骤具体描述如下0090步骤A,生成系统公开参数集,同时分别生成N个证书服务器的主密钥共享,并在N个证书服务器上分别部署其主密钥共享;0091具体步骤如下0092步骤101,根据设定的安全参数Z,选择一个比特的大素数P,并生成两个P阶乘法循环群G和GT,并定义在群G和群GT上的双线性对EGGGT;其中,Z是正整数集合,双线性对EGGGT是群G与自身的笛卡尔积GG到群GT的映射,即双线性对EGGGT是指函数ZEP1,P2,P1,P2G为自变量,ZGT为因变量;0093步骤102,从群G中随机选择一个生成元G、两个元素G2和G3、以及一个L1维向说明书CN104168114A117/9页12量UU,。
34、U1,UL,定义一个K1次多项式并计算G1GF0;其中,LZ是正整数,AJZP且ZP表示集合0,1,2,P1;0094步骤103,定义两个抗碰撞哈希函数H10,10,1L和其中,H1是0,1到0,1L的密码学哈希函数,H2是笛卡尔积GTGG到集合的密码学哈希函数,0,1表示长度不确定的二进制串的集合,0,1L表示长度为L比特的二进制串的集合,表示集合1,2,P1;0095步骤104,选择一个消息认证码方案MAC,VERIFY;其中,消息认证算法MAC以一个消息M和一个随机密钥MK为输入,产生消息M的消息认证码MAC;验证算法VERIFY以消息M、消息认证码MAC以及密钥MK为输入,输出“1”表。
35、示MAC是消息M有效的消息认证码或“0”表示MAC无效;0096步骤105,将,N,K,P,L,E,G,GT,G,G1,G2,G3,U,H1,H2,MAC,VERIFY作为系统公开参数集PARAMS;0097步骤106,分别生成N个证书服务器的主密钥共享MSKIFII1,2,N,并分别在N个证书服务器上部署其主密钥共享MSKI;其中,0098步骤B,根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥;0099具体步骤如下0100步骤107,在集合中随机选择一个整数X作为身份为ID的用户的私钥USKID,即USKIDX;0101步骤108,在群G中随机选择一个元素G,计算所述身份为ID的。
36、用户的公钥0102步骤C,从N个证书服务器中任意选择K个证书服务器,对于所述K个证书服务器,分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额;0103具体步骤如下0104步骤109,用户将身份信息ID和公钥UPKID提交给所述证书服务器I;0105步骤110,证书服务器I根据用户的身份信息ID和公钥UPKID计算出哈希值HH1ID,UPKID;0106步骤111,证书服务器I在集合中随机选择一个整数R,根据其系统主密钥共享MSKI以及所述哈希值H计算出用户ID的证书份额其中,HJ是哈希值H二进制表示的第J位。0107步骤D,对于步骤C中生成的K个证书份额,分别根。
37、据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性,若存在无效证书份额,则将其丢弃后,从已经生说明书CN104168114A128/9页13成有效证书份额的证书服务器之外的证书服务器中重新生成新的证书份额并验证其有效性,直至K个证书份额均为有效证书份额;0108具体步骤如下0109步骤112,根据系统公开参数集、用户的身份ID以及用户的公钥UPKID,计算哈希值HH1ID,UPKID;0110步骤113,对于证书份额CERTID,I,验证等式是否成立,若等式成立,表明证书份额CERTID,I有效,则接受该证书份额;否则,表明证书份额CERTID,I无效,则丢弃该无效证书份额;其中,。
38、HJ是哈希值H二进制表示的第J位。0111步骤E,根据所述系统公开参数集和所述K个证书份额生成用户完整的证书;0112具体步骤如下0113步骤114,计算一组LAGRANGE插值JJ1,K满足0114步骤115,根据系统公开参数集PARAMS和所述K个证书份额CERTID,1,CERTID,K,生成用户ID最终的证书0115步骤F,根据所述系统公开参数集、待加密的明文、接收者的身份信息以及接受者的公钥,生成密文;0116具体步骤如下0117步骤116,发送者确定需要加密的明文M,并取得接收者的身份ID以及接收者的公钥0118步骤117,随机选择一个比特串STR,并置消息M为明文M和比特串STR。
39、的级联M|STR;0119步骤118,计算哈希值HH1ID,UPKID,在集合中随机选择一个整数T,依次计算H2C1,C2,C3和其中,HJ是哈希值H二进制表示的第J位;0120步骤119,执行消息认证码方案的消息认证算法MAC以STR为密钥产生CC1,C2,C3,C4的消息认证码MAC;0121步骤120,将CC1,C2,C3,C4,MAC作为明文M的密文发送给接收者ID。0122步骤G,根据所述系统公开参数集、待解密的密文、接收者的公钥、接收者的私钥以及接收者的证书,恢复明文;0123具体步骤如下0124步骤121,接收者接收密文CC1,C2,C3,C4,MAC;说明书CN10416811。
40、4A139/9页140125步骤122,根据接受者的公钥私钥USKID和证书计算0126步骤123,以STR为密钥执行消息认证码方案的消息认证算法VERIFY,若算法VERIFY输出“1”,则明文M有效;否则,密文无效,解密失败。0127参见图3,本发明还提供了一种分布式的基于K,N门限证书加密系统,所述系统包括系统参数生成模块、用户密钥生成模块、证书份额生成模块、证书份额有效性验证模块、证书合成模块、加密模块以及解密模块;0128所述系统参数生成模块用于证书中心根据输入的安全参数生成系统密码系统的公开参数集和N个证书服务器的系统主密钥共享。0129所述用户密钥生成模块用于系统用户根据系统参数。
41、生成模块生成的公开参数集以及用户的身份信息,生成用户的公钥和私钥对。0130所述证书份额生成模块用于证书服务器根据系统参数生成模块生成的公开参数集和系统主密钥共享、用户的身份信息以及用户密钥生成模块生成的公钥,生成用户的一个证书份额。0131所述证书份额验证模块用于系统用户根据系统参数生成模块生成的公开参数集、用户的身份信息、用户密钥生成模块生成的公钥以及证书份额生成模块生成的用户的证书份额,验证证书份额的有效性。0132所述证书合成模块用于系统用户根据系统参数生成模块生成的公开参数集和证书份额生成模块产生的K个有效证书份额,生成用户最终的证书。0133所述加密模块用于发送者根据系统参数生成模。
42、块生成的公开参数集,待加密的明文,接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文。0134所述解密模块用于接收者根据系统参数生成模块生成的公开参数集,加密模块生成的密文、用户密钥生成模块生成的接收者的公钥和私钥以及证书合成模块生成的接收者的证书,恢复明文。0135以上只是对本发明的优选实施方式进行了描述。对该技术领域的普通技术人员来说,根据以上实施方式可以很容易地联想到其它的优点和变形。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员在本发明技术的方案范围内进行的通常变化和替换,都应包含在本发明的保护范围之内。说明书CN104168114A141/3页15图1说明书附图CN104168114A152/3页16图2说明书附图CN104168114A163/3页17图3说明书附图CN104168114A17。