书签 分享 收藏 举报 版权申诉 / 17

一种分布式的基于K,N门限证书加密方法及系统.pdf

  • 上传人:n****g
  • 文档编号:671173
  • 上传时间:2018-03-03
  • 格式:PDF
  • 页数:17
  • 大小:2.50MB
  • 摘要
    申请专利号:

    CN201410387870.9

    申请日:

    2014.08.07

    公开号:

    CN104168114A

    公开日:

    2014.11.26

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):H04L 9/32申请日:20140807|||公开

    IPC分类号:

    H04L9/32; H04L29/06

    主分类号:

    H04L9/32

    申请人:

    河海大学

    发明人:

    陆阳; 张全领; 李继国

    地址:

    211100 江苏省南京市鼓楼区西康路1号

    优先权:

    专利代理机构:

    南京经纬专利商标代理有限公司 32200

    代理人:

    朱小兵

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种分布式的基于(k,n)门限证书加密方法及系统,将秘密共享技术和基于证书加密相结合,所述方法包括生成系统参数、生成用户公钥和私钥、生成用户证书份额、验证用户证书份额有效性、合成用户证书、对消息加密和恢复消息的步骤,所述系统包括系统参数生成模块、用户密钥生成模块、证书份额生成模块、证书份额验证模块、证书合成模块、加密模块和解密模块。本发明所述技术方案大大增强了密码系统抵抗主密钥泄露、拒绝服务攻击及证书服务器故障的能力,有效克服了已有基于证书加密方法的缺点。

    权利要求书

    1.  一种分布式的基于(k,n)门限证书加密方法,其特征在于,包含以下步骤:
    步骤A),生成系统公开参数集,同时分别生成n个证书服务器的主密钥共享,并在n个证书服务器上分别部署其主密钥共享;
    步骤B),根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥;
    步骤C),从n个证书服务器中任意选择k个证书服务器,对于所述k个证书服务器,分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额;
    步骤D),对于步骤C中生成的k个证书份额,分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性,若存在无效证书份额,则将其丢弃后,从已经生成有效证书份额的证书服务器之外的证书服务器中重新生成新的证书份额并验证其有效性,直至k个证书份额均为有效证书份额;
    步骤E),根据所述系统公开参数集和所述k个证书份额生成用户完整的证书;
    步骤F),根据所述系统公开参数集、待加密的明文、接收者的身份信息以及接受者的公钥,生成密文;
    步骤G),根据所述系统公开参数集、待解密的密文、接收者的公钥、接收者的私钥以及接收者的证书,恢复明文。

    2.
      根据权利要求1所述的分布式的基于(k,n)门限证书加密方法,其特征在于,所述步骤A)的详细步骤如下:
    步骤A.1),根据设定的安全参数γ∈Z+,选择一个γ比特的大素数p,并生成两个p阶乘法循环群G和GT,并定义在群G和群GT上的双线性对e:G×G→GT
    其中,Z+是正整数集合,双线性对e:G×G→GT是群G与自身的笛卡尔积G×G到群GT的映射,即双线性对e:G×G→GT是指函数z=e(P1,P2),P1,P2∈G为自变量,z∈GT为因变量;
    步骤A.2),从群G中随机选择一个生成元g、两个元素g2和g3、以及一个l+1维向量U=(u′,u1,...,ul),定义一个k-1次多项式并计算g1=gf(0)
    其中,l∈Z+是正整数,aj∈Zp且Zp表示集合{0,1,2,...,p-1};
    步骤A.3),定义两个抗碰撞哈希函数H1:{0,1}*→{0,1}l
    其中,H1是{0,1}*到{0,1}l的密码学哈希函数,H2是笛卡尔积GT×G×G到集合的密码 学哈希函数,{0,1}*表示长度不确定的二进制串的集合,{0,1}l表示长度为l比特的二进制串的集合,表示集合{1,2,...,p-1};
    步骤A.4),选择一个消息认证码方案(Mac,Verify);
    其中,消息认证算法Mac以一个消息M和一个随机密钥mk为输入,产生消息M的消息认证码mac;验证算法Verify以消息M、消息认证码mac以及密钥mk为输入,输出“1”表示mac是消息M有效的消息认证码或“0”表示mac无效;
    步骤A.5),将{γ,n,k,p,l,e,G,GT,g,g1,g2,g3,U,H1,H2,(Mac,Verify)}作为系统公开参数集params;
    步骤A.6),分别生成n个证书服务器的主密钥共享mski=f(i),并分别在n个证书服务器上部署其主密钥共享mski
    其中,f(i)=Σj=0k-1ajij,i=1,2,...,n.]]>

    3.
      根据权利要求2所述的分布式的基于(k,n)门限证书加密方法,其特征在于,所述步骤B)的详细步骤如下:
    步骤B.1),在集合中随机选择一个整数x作为身份为id的用户的私钥uskid,即uskid=x;
    步骤B.2),在群G中随机选择一个元素g′,计算所述身份为id的用户的公钥upkid=(upkid(1),upkid(2))=(gx,g).]]>

    4.
      根据权利要求3所述的分布式的基于(k,n)门限证书加密方法,其特征在于,步骤C)中对于所述k个证书服务器分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额的详细步骤如下:
    当i为大于等于1小于等于k的整数时,对于所述k个证书服务器中的每个证书服务器i:
    步骤C.1),用户将身份信息id和公钥upkid提交给所述证书服务器i;
    步骤C.2),证书服务器i根据用户的身份信息id和公钥upkid计算出哈希值h=H1(id,upkid);
    步骤C.3),证书服务器i在集合中随机选择一个整数r,根据其系统主密钥共享mski以及所述哈希值h计算出用户id的证书份额Certid,i=(Certid,i(1),Certid,i(2))=(g2mski(uΠj=1lujhj)r,gr);]]>
    其中,hj是哈希值h二进制表示的第j位。

    5.
      根据权利要求4所述的分布式的基于(k,n)门限证书加密方法,其特征在于,步骤D)中所述对于k个证书份额分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性的详细步骤如下:
    对于所述k个证书份额每个证书份额i:
    步骤D.1),根据系统公开参数集、用户的身份id以及用户的公钥upkid,计算哈希值h′=H1(id,upkid);
    步骤D.2),对于证书份额Certid,i,验证等式是否成立,若等式成立,表明证书份额Certid,i有效,则接受该证书份额;否则,表明证书份额Certid,i无效,则丢弃该无效证书份额;
    其中,h′j是哈希值h′二进制表示的第j位。

    6.
      根据权利要求5所述的分布式的基于(k,n)门限证书加密方法,其特征在于,所述步骤E)的详细步骤如下:
    步骤E.1),计算一组Lagrange插值λj满足
    步骤E.2),根据系统公开参数集params和所述k个证书份额{Certid,1,...,Certid,k},生成用户id最终的证书Certid=(Certid(1),Certid(2))=(Πj=1k(Certid,j(1))λj,Πj=1k(Certid,j(2))λj).]]>

    7.
      根据权利要求6所述的分布式的基于(k,n)门限证书加密方法,其特征在于,所述步骤F)的详细步骤如下:
    步骤F.1),发送者确定需要加密的明文m,并取得接收者的身份id以及接收者的公钥upkid=(upkid(1),upkid(2));]]>
    步骤F.2),随机选择一个比特串str,并置消息M为明文m和比特串str的级联m||str;
    步骤F.3),计算哈希值h″=H1(id,upkid),在集合中随机选择一个整数t,依次计算C1=e(g1,g2)t·e(upkid(1),upkid(2))t·M,C2=gt,C3=(uΠj=1lujhj)t,]]>φ=H2(C1,C2,C3)和
    其中,h″j是哈希值h″二进制表示的第j位;
    步骤F.4),执行消息认证码方案的消息认证算法Mac以str为密钥产生C=(C1,C2,C3,C4)的消息认证码mac;
    步骤F.5),将(C=(C1,C2,C3,C4),mac)作为明文m的密文发送给接收者id。

    8.
      根据权利要求7所述的分布式的基于(k,n)门限证书加密方法,其特征在于,所述步骤G)的详细步骤如下:
    步骤G.1),接收者接收密文(C=(C1,C2,C3,C4),mac);
    步骤G.2),根据接受者的公钥私钥uskid和证书Certid=(Certid(1),Certid(2))]]>计算m||str=C1·e(Certid(2),C3)e(g,C4)e(Certid(1)·g1H2(C1,C2,C3)·g3·(upkid(2))uskid,C2);]]>
    步骤G.3),以str为密钥执行消息认证码方案的消息认证算法Verify,若算法Verify输出“1”,则明文m有效;否则,密文无效,解密失败。

    9.
      一种分布式的基于(k,n)门限证书加密系统,其特征在于,包括:
    系统参数生成模块,用于证书中心根据输入的安全参数生成系统密码系统的公开参数集和n个证书服务器的系统主密钥共享。
    用户密钥生成模块,用于系统用户根据系统参数生成模块生成的公开参数集以及用户的身份信息,生成用户的公钥和私钥。
    证书份额生成模块,用于证书服务器根据系统参数生成模块生成的公开参数集和系统主密钥共享、用户的身份信息以及用户密钥生成模块生成的用户的公钥,生成用户的一个证书份额。
    证书份额验证模块,用于系统用户根据系统参数生成模块生成的公开参数集、用户的身份信息、用户密钥生成模块生成的用户的公钥以及证书份额生成模块生成的用户的证书份额,验证证书份额的有效性。
    证书合成模块,用于系统用户根据系统参数生成模块生成的公开参数集和证书份额生成模块产生的用户的k个不同的有效证书份额,生成用户最终的证书。
    加密模块,用于发送者根据系统参数生成模块生成的公开参数集,待加密的明文,接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文。
    解密模块,用于接收者根据系统参数生成模块生成的公开参数集,加密模块生成的密文、用户密钥生成模块生成的接收者的公钥和私钥以及证书合成模块生成的接收者的证书,恢复 明文。

    说明书

    一种分布式的基于(k,n)门限证书加密方法及系统
    技术领域
    本发明涉及信息安全中的数据加密技术领域,尤其涉及一种分布式的基于(k,n)门限证书加密方法及系统。
    背景技术
    Diffie和Hellman在1976年提出了公钥密码体制(Public Key Cryptography)的概念。在公钥密码体制中,每个用户拥有公钥和私钥两个不同的密钥,其中公钥可以公开,用于加密或验证签名;而私钥则需要保密,用于解密或签名。公钥密码体制的提出对公开网络上的保密通信、密钥分配、数字签名和认证带来了深远影响,在保障信息安全方面起到了极其重要的作用。
    基于证书密码体制(Certificate-Based Cryptography)是Gentry在2003年所提出的一种新型公钥密码体制,该体制有机结合了基于身份密码体制和传统公钥密码体制的优点,并有效克服了这两种密码体制中存在的固有缺陷。类似于传统公钥密码体制,基于证书密码体制也需要可信的证书授权中心(Certificate Authority,CA)为用户生成公钥证书,但该体制提供了一种高效的隐证书机制,即用户证书仅发送给证书持有人,并与其自行生成的私钥相组合产生最终的解密密钥或签名密钥。基于该机制,基于证书密码体制不仅消除了传统公钥密码体制中证书状态的第三方查询问题,简化了复杂的证书管理过程,而且克服了基于身份密码体制中固有的密钥分发问题和密钥托管问题。因此,基于证书密码体制是一种性能优良,便于开放网络环境中应用的新型公钥密钥体制。
    然而,在已有的基于证书密码系统中,仅有唯一的证书服务器持有系统主密钥并独立完成对用户的认证、证书的签发和撤消等任务。这种集中式的工作方式在实际应用中可能会带来如下安全的问题:
    (1)抵抗拒绝服务攻击和证书服务器故障的能力弱。由于整个系统仅有唯一的证书服务器完成对用户的认证、证书的签发和撤消的工作,因此一旦证书服务器遭受拒绝服务攻击或发生故障而无法正常工作,整个系统将可能陷于瘫痪状态。
    (2)抵抗主密钥泄露的能力弱。由于证书服务器需要使用系统主密钥来完成用户证书的签发,因此一旦唯一的系统主密钥被泄露,整个系统将无安全性可言。
    发明内容
    本发明所要解决的技术问题是针对背景技术中的缺陷,将秘密共享的思想和基于证书密码体制相结合,提供了一种分布式的基于(k,n)门限证书加密方法。所述方法将系统主密钥分 成n(n≥1)个系统主密钥共享,并将这些系统主密钥共享部署在n个证书服务器中;用户则可以从任意一个证书服务器处申请获得证书份额,然后通过组合k(1≤k≤n)个证书份额生成一个完整的证书。
    本发明为解决上述技术问题采用以下技术方案:
    一种分布式的基于(k,n)门限证书加密方法,包含以下步骤:
    步骤A),生成系统公开参数集,同时分别生成n个证书服务器的主密钥共享,并在n个证书服务器上分别部署其主密钥共享;
    步骤B),根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥;
    步骤C),从n个证书服务器中任意选择k个证书服务器,对于所述k个证书服务器,分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额;
    步骤D),对于步骤C中生成的k个证书份额,分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性,若存在无效证书份额,则将其丢弃后,从已经生成有效证书份额的证书服务器之外的证书服务器中重新生成新的证书份额并验证其有效性,直至k个证书份额均为有效证书份额;
    步骤E),根据所述系统公开参数集和所述k个证书份额生成用户完整的证书;
    步骤F),根据所述系统公开参数集、待加密的明文、接收者的身份信息以及接受者的公钥,生成密文;
    步骤G),根据所述系统公开参数集、待解密的密文、接收者的公钥、接收者的私钥以及接收者的证书,恢复明文。
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,所述步骤A)的详细步骤如下:
    步骤A.1),根据设定的安全参数γ∈Z+,选择一个γ比特的大素数p,并生成两个p阶乘法循环群G和GT,并定义在群G和群GT上的双线性对e:G×G→GT
    其中,Z+是正整数集合,双线性对e:G×G→GT是群G与自身的笛卡尔积G×G到群GT的映射,即双线性对e:G×G→GT是指函数z=e(P1,P2),P1,P2∈G为自变量,z∈GT为因变量;
    步骤A.2),从群G中随机选择一个生成元g、两个元素g2和g3、以及一个l+1维向量U=(u′,u1,...,ul),定义一个k-1次多项式并计算g1=gf(0)
    其中,l∈Z+是正整数,aj∈Zp且Zp表示集合{0,1,2,...,p-1};
    步骤A.3),定义两个抗碰撞哈希函数H1:{0,1}*→{0,1}l
    其中,H1是{0,1}*到{0,1}l的密码学哈希函数,H2是笛卡尔积GT×G×G到集合的密码学哈希函数,{0,1}*表示长度不确定的二进制串的集合,{0,1}l表示长度为l比特的二进制串的集合,表示集合{1,2,...,p-1};
    步骤A.4),选择一个消息认证码方案(Mac,Verify);
    其中,消息认证算法Mac以一个消息M和一个随机密钥mk为输入,产生消息M的消息认证码mac;验证算法Verify以消息M、消息认证码mac以及密钥mk为输入,输出“1”表示mac是消息M有效的消息认证码或“0”表示mac无效;
    步骤A.5),将{γ,n,k,p,l,e,G,GT,g,g1,g2,g3,U,H1,H2,(Mac,Verify)}作为系统公开参数集params;
    步骤A.6),分别生成n个证书服务器的主密钥共享mski=f(i)(i=1,2,...,n),并分别在n个证书服务器上部署其主密钥共享mski
    其中,f(i)=Σj=0k-1ajij.]]>
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,所述步骤B)的详细步骤如下:
    步骤B.1),在集合中随机选择一个整数x作为身份为id的用户的私钥uskid,即uskid=x;
    步骤B.2),在群G中随机选择一个元素g′,计算所述身份为id的用户的公钥upkid=(upkid(1),upkid(2))=(gx,g).]]>
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,步骤C)中对于所述k个证书服务器分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额的详细步骤如下:
    当i为大于等于1小于等于k的整数时,对于所述k个证书服务器中的每个证书服务器i:
    步骤C.1),用户将身份信息id和公钥upkid提交给所述证书服务器i;
    步骤C.2),证书服务器i根据用户的身份信息id和公钥upkid计算出哈希值 h=H1(id,upkid);
    步骤C.3),证书服务器i在集合中随机选择一个整数r,根据其系统主密钥共享mski以及所述哈希值h计算出用户id的证书份额Certid,i=(Certid,i(1),Certid,i(2))=(g2mski(uΠj=1lujhj)r,gr);]]>
    其中,hj是哈希值h二进制表示的第j位。
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,步骤D)中所述对于k个证书份额分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性的详细步骤如下:
    对于所述k个证书份额每个证书份额i:
    步骤D.1),根据系统公开参数集、用户的身份id以及用户的公钥upkid,计算哈希值h′=H1(id,upkid);
    步骤D.2),对于证书份额Certid,i,验证等式是否成立,若等式成立,表明证书份额Certid,i有效,则接受该证书份额;否则,表明证书份额Certid,i无效,则丢弃该无效证书份额;
    其中,h′j是哈希值h′二进制表示的第j位。
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,所述步骤E)的详细步骤如下:
    步骤E.1),计算一组Lagrange插值λj(j=1,...,k)满足
    步骤E.2),根据系统公开参数集params和所述k个证书份额{Certid,1,...,Certid,k},生成用户id最终的证书Certid=(Certid(1),Certid(2))=(Πj=1k(Certid,j(1))λj,Πj=1k(Certid,j(2))λj).]]>
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,所述步骤F)的详细步骤如下:
    步骤F.1),发送者确定需要加密的明文m,并取得接收者的身份id以及接收者的公钥upkid=(upkid(1),upkid(2));]]>
    步骤F.2),随机选择一个比特串str,并置消息M为明文m和比特串str的级联m||str;
    步骤F.3),计算哈希值h″=H1(id,upkid),在集合中随机选择一个整数t,依次计算C1=e(g1,g2)t·e(upkid(1),upkid(2))t·M,C2=gt,C3=(uΠj=1lujhj)t,]]>φ=H2(C1,C2,C3)和  
    其中,h″j是哈希值h″二进制表示的第j位;
    步骤F.4),执行消息认证码方案的消息认证算法Mac以str为密钥产生C=(C1,C2,C3,C4)的消息认证码mac;
    步骤F.5),将(C=(C1,C2,C3,C4),mac)作为明文m的密文发送给接收者id。
    作为本发明一种分布式的基于(k,n)门限证书加密方法进一步的优化方案,所述步骤G)的详细步骤如下:
    步骤G.1),接收者接收密文(C=(C1,C2,C3,C4),mac);
    步骤G.2),根据接受者的公钥私钥uskid和证书Certid=(Certid(1),Certid(2))]]>计算m||str=C1·e(Certid(2),C3)e(g,C4)e(Certid(1)·g1H2(C1,C2,C3)·g3·(upkid(2))uskid,C2);]]>
    步骤G.3),以str为密钥执行消息认证码方案的消息认证算法Verify,若算法Verify输出“1”,则明文m有效;否则,密文无效,解密失败。
    本发明还公开了一种分布式的基于(k,n)门限证书加密系统,包括:
    系统参数生成模块,用于证书中心根据输入的安全参数生成系统密码系统的公开参数集和n个证书服务器的系统主密钥共享。
    用户密钥生成模块,用于系统用户根据系统参数生成模块生成的公开参数集以及用户的身份信息,生成用户的公钥和私钥。
    证书份额生成模块,用于证书服务器根据系统参数生成模块生成的公开参数集和系统主密钥共享、用户的身份信息以及用户密钥生成模块生成的用户的公钥,生成用户的一个证书份额。
    证书份额验证模块,用于系统用户根据系统参数生成模块生成的公开参数集、用户的身份信息、用户密钥生成模块生成的用户的公钥以及证书份额生成模块生成的用户的证书份额,验证证书份额的有效性。
    证书合成模块,用于系统用户根据系统参数生成模块生成的公开参数集和证书份额生成模块产生的用户的k个不同的有效证书份额,生成用户最终的证书。
    加密模块,用于发送者根据系统参数生成模块生成的公开参数集,待加密的明文,接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文。
    解密模块,用于接收者根据系统参数生成模块生成的公开参数集,加密模块生成的密文、用户密钥生成模块生成的接收者的公钥和私钥以及证书合成模块生成的接收者的证书,恢复明文。
    本发明采用以上技术方案与现有技术相比,具有以下技术效果:
    本发明将秘密共享的思想和基于证书密码体制相结合,提供了一种分布式的基于(k,n)门限证书加密方法。所述方法将系统主密钥分成n(n≥1)个系统主密钥共享,并将这些系统主密钥共享部署在n个分布式的证书服务器中;用户可以从任意一个证书服务器处申请获得证书份额,然后通过组合k(1≤k≤n)个证书份额生成最终的证书。与已有的基于证书加密方法相比,本发明所述方法的优点在于抵抗拒绝服务攻击、主密钥泄露以及证书服务器故障的能力得到了大大地增强,更适合于开放网络环境中的应用。主要原因如下:
    首先,由于采用秘密共享技术将系统主密钥分成多个系统主密钥共享并部署在多个分布式的证书服务器中,所以数量不超过k个系统主密钥共享的泄露不影响其它系统主密钥共享的秘密性以及整个系统的安全性;
    其次,由于用户只要组合k个证书份额即可合成最终的证书,因此系统中只要存在数量不低于k个证书服务器能够为用户提供证书份额的签发服务,系统即可正常运行。
    附图说明
    图1是本发明所述的基于(k,n)门限证书加密方法的流程图;
    图2是依照本发明方法的密码系统执行的操作流程图;
    图3是本发明所述的基于(k,n)门限证书加密系统的示意图。
    具体实施方式
    下面结合附图对本发明的技术方案做进一步的详细说明:
    本发明所述的基于(k,n)门限证书加密方法可基于双线性对和Shamir秘密共享技术来实现,下面首先简要介绍双线性对和Shamir秘密共享技术。
    令G和GT是两个p阶乘法循环群,其中p为大素数,g是群G的生成元。假设G和GT这两个群上的离散对数问题都是困难问题。如果定义在群G和GT上一个映射e:G×G→GT满足下面的三条性质,则称该映射为有效的双线性对。双线性对e:G×G→GT是笛卡尔积G×G到群GT的映射,即双线性对e:G×G→GT是指函数z=e(u,v),其中u,v∈G为自变量,z∈GT为 因变量。
    双线性对应满足的三条性质为:
    (1)双线性.对于任意的u,v∈G和有e(ua,vb)=e(u,v)ab
    (2)非退化性.其中是群GT的单位元。
    (3)可计算性.对于任意的u,v∈G,存在有效的算法计算e(u,v)。
    其中,大素数p对于离散对数问题而言是二进制表示的160比特,而对于大整数分解问题而言是二进制表示的512比特。循环群的概念为:设H为群,如果存在一个元素u∈H使得H={uk|k∈Z},则称H为循环群,称u是H的生成元。若生成元u的阶为n,即n是使得u的幂等于群H的单位元的最小正整数,则称H为n阶循环群。乘法循环群是指该循环群的生成元能够以乘幂的方法生成群中的所有元素。此外,其中Zp是指整数模的剩余类,即Zp={0,1,...,p-1}。
    Shamir秘密共享技术:设p为素数,1≤k≤n,若一个秘密分发者要将一个秘密x∈Zp分发给n个成员,则首先置a0=x,并在集合Zp上随机选取k–1个元素ai(i=1,...,k-1),定义一个k–1次的多项式然后将f(i)(i=1,...,n)作为秘密共享通过保密的方式发送给成员i。
    秘密x的n个秘密共享f(i)(i=1,...,n)具有如下性质:组合任意不多于k–1个秘密共享无法计算出秘密x;组合任意k个及k个以上秘密共享可完全确定多项式f(x),进而能够计算出秘密x并确定及其它成员的秘密共享。
    此外,对于任意含有k个成员的集合S∈Zp,对于任意的i∈Zp和j∈S,存在容易计算的Lagrange插值λj,使得f(i)=Σj∈Sλjf(j)]]>以及x=f(0)=Σj∈Sλjf(j).]]>
    根据以上对双线性对以及Shamir秘密共享技术的描述,下面结合附图和实现例对本发明提出的基于(k,n)门限证书加密方法进行进一步说明,但并不作为对本发明的限定。
    本发明所述方法涉及的实体如下:
    (1)证书中心:负责生成系统公开参数集以及系统主密钥共享的可信第三方;
    (2)证书服务器:负责对系统用户进行验证并使用系统主密钥共享签发证书份额的可信 实体;
    (3)发送者:消息的发送实体;
    (4)接收者:密文的接收实体。
    参照图1和图2,本发明所述方法的步骤具体描述如下:
    步骤A),生成系统公开参数集,同时分别生成n个证书服务器的主密钥共享,并在n个证书服务器上分别部署其主密钥共享;
    具体步骤如下:
    步骤101),根据设定的安全参数γ∈Z+,选择一个γ比特的大素数p,并生成两个p阶乘法循环群G和GT,并定义在群G和群GT上的双线性对e:G×G→GT;其中,Z+是正整数集合,双线性对e:G×G→GT是群G与自身的笛卡尔积G×G到群GT的映射,即双线性对e:G×G→GT是指函数z=e(P1,P2),P1,P2∈G为自变量,z∈GT为因变量;
    步骤102),从群G中随机选择一个生成元g、两个元素g2和g3、以及一个l+1维向量U=(u′,u1,...,ul),定义一个k-1次多项式并计算g1=gf(0);其中,l∈Z+是正整数,aj∈Zp且Zp表示集合{0,1,2,...,p-1};
    步骤103),定义两个抗碰撞哈希函数H1:{0,1}*→{0,1}l其中,H1是{0,1}*到{0,1}l的密码学哈希函数,H2是笛卡尔积GT×G×G到集合的密码学哈希函数,{0,1}*表示长度不确定的二进制串的集合,{0,1}l表示长度为l比特的二进制串的集合,表示集合{1,2,...,p-1};
    步骤104),选择一个消息认证码方案(Mac,Verify);其中,消息认证算法Mac以一个消息M和一个随机密钥mk为输入,产生消息M的消息认证码mac;验证算法Verify以消息M、消息认证码mac以及密钥mk为输入,输出“1”表示mac是消息M有效的消息认证码或“0”表示mac无效;
    步骤105),将{γ,n,k,p,l,e,G,GT,g,g1,g2,g3,U,H1,H2,(Mac,Verify)}作为系统公开参数集params;
    步骤106),分别生成n个证书服务器的主密钥共享mski=f(i)(i=1,2,...,n),并分别在n 个证书服务器上部署其主密钥共享mski;其中,
    步骤B),根据所述系统公开参数集和用户的身份信息生成用户的公钥和私钥;
    具体步骤如下:
    步骤107),在集合中随机选择一个整数x作为身份为id的用户的私钥uskid,即uskid=x;
    步骤108),在群G中随机选择一个元素g′,计算所述身份为id的用户的公钥upkid=(upkid(1),upkid(2))=(gx,g).]]>
    步骤C),从n个证书服务器中任意选择k个证书服务器,对于所述k个证书服务器,分别根据其主密钥共享、系统公开参数集、用户的身份信息以及用户的公钥生成其证书份额;
    具体步骤如下:
    步骤109),用户将身份信息id和公钥upkid提交给所述证书服务器i;
    步骤110),证书服务器i根据用户的身份信息id和公钥upkid计算出哈希值h=H1(id,upkid);
    步骤111),证书服务器i在集合中随机选择一个整数r,根据其系统主密钥共享mski以及所述哈希值h计算出用户id的证书份额Certid,i=(Certid,i(1),Certid,i(2))=(g2mski(uΠj=1lujhj)r,gr);]]>其中,hj是哈希值h二进制表示的第j位。
    步骤D),对于步骤C中生成的k个证书份额,分别根据所述系统公开参数集、用户的身份信息以及用户的公钥验证其有效性,若存在无效证书份额,则将其丢弃后,从已经生成有效证书份额的证书服务器之外的证书服务器中重新生成新的证书份额并验证其有效性,直至k个证书份额均为有效证书份额;
    具体步骤如下:
    步骤112),根据系统公开参数集、用户的身份id以及用户的公钥upkid,计算哈希值h′=H1(id,upkid);
    步骤113),对于证书份额Certid,i,验证等式是否成立,若等式成立,表明证书份额Certid,i有效,则接受该证书份额;否则, 表明证书份额Certid,i无效,则丢弃该无效证书份额;其中,h′j是哈希值h′二进制表示的第j位。
    步骤E),根据所述系统公开参数集和所述k个证书份额生成用户完整的证书;
    具体步骤如下:
    步骤114),计算一组Lagrange插值λj(j=1,...,k)满足
    步骤115),根据系统公开参数集params和所述k个证书份额{Certid,1,...,Certid,k},生成用户id最终的证书Certid=(Certid(1),Certid(2))=(Πj=1k(Certid,j(1))λj,Πj=1k(Certid,j(2))λj).]]>
    步骤F),根据所述系统公开参数集、待加密的明文、接收者的身份信息以及接受者的公钥,生成密文;
    具体步骤如下:
    步骤116),发送者确定需要加密的明文m,并取得接收者的身份id以及接收者的公钥upkid=(upkid(1),upkid(2));]]>
    步骤117),随机选择一个比特串str,并置消息M为明文m和比特串str的级联m||str;
    步骤118),计算哈希值h″=H1(id,upkid),在集合中随机选择一个整数t,依次计算C1=e(g1,g2)t·e(upkid(1),upkid(2))t·M,C2=gt,C3=(uΠj=1lujhj)t,]]>φ=H2(C1,C2,C3)和其中,h″j是哈希值h″二进制表示的第j位;
    步骤119),执行消息认证码方案的消息认证算法Mac以str为密钥产生C=(C1,C2,C3,C4)的消息认证码mac;
    步骤120),将(C=(C1,C2,C3,C4),mac)作为明文m的密文发送给接收者id。
    步骤G),根据所述系统公开参数集、待解密的密文、接收者的公钥、接收者的私钥以及接收者的证书,恢复明文;
    具体步骤如下:
    步骤121),接收者接收密文(C=(C1,C2,C3,C4),mac);
    步骤122),根据接受者的公钥私钥uskid和证书Certid=(Certid(1),Certid(2))]]>计算m||str=C1·e(Certid(2),C3)e(g,C4)e(Certid(1)·g1H2(C1,C2,C3)·g3·(upkid(2))uskid,C2);]]>
    步骤123),以str为密钥执行消息认证码方案的消息认证算法Verify,若算法Verify输出“1”,则明文m有效;否则,密文无效,解密失败。
    参见图3,本发明还提供了一种分布式的基于(k,n)门限证书加密系统,所述系统包括:系统参数生成模块、用户密钥生成模块、证书份额生成模块、证书份额有效性验证模块、证书合成模块、加密模块以及解密模块;
    所述系统参数生成模块用于证书中心根据输入的安全参数生成系统密码系统的公开参数集和n个证书服务器的系统主密钥共享。
    所述用户密钥生成模块用于系统用户根据系统参数生成模块生成的公开参数集以及用户的身份信息,生成用户的公钥和私钥对。
    所述证书份额生成模块用于证书服务器根据系统参数生成模块生成的公开参数集和系统主密钥共享、用户的身份信息以及用户密钥生成模块生成的公钥,生成用户的一个证书份额。
    所述证书份额验证模块用于系统用户根据系统参数生成模块生成的公开参数集、用户的身份信息、用户密钥生成模块生成的公钥以及证书份额生成模块生成的用户的证书份额,验证证书份额的有效性。
    所述证书合成模块用于系统用户根据系统参数生成模块生成的公开参数集和证书份额生成模块产生的k个有效证书份额,生成用户最终的证书。
    所述加密模块用于发送者根据系统参数生成模块生成的公开参数集,待加密的明文,接收者的身份信息以及用户密钥生成模块生成的接收者的公钥,生成明文的原始密文。
    所述解密模块用于接收者根据系统参数生成模块生成的公开参数集,加密模块生成的密文、用户密钥生成模块生成的接收者的公钥和私钥以及证书合成模块生成的接收者的证书,恢复明文。
    以上只是对本发明的优选实施方式进行了描述。对该技术领域的普通技术人员来说,根据以上实施方式可以很容易地联想到其它的优点和变形。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员在本发明技术的方案范围内进行的通常变化和替换,都应包含在本发明的保护范围之内。

    关 键  词:
    一种 分布式 基于 门限 证书 加密 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种分布式的基于K,N门限证书加密方法及系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-671173.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1