【发明授权】一种高效无证书公钥加密方法_电子科技大学;内江市云启科技有限公司_201910348509.8 

申请/专利权人:电子科技大学;内江市云启科技有限公司

申请日:2019-04-28

发明/设计人:李发根;代强;朱梦迪;罗朝园;秦张弛

公开(公告)日:2020-10-23

代理机构:电子科技大学专利中心

公开(公告)号:CN110113155B

代理人:周刘英

主分类号:H04L9/08(20060101)

地址:611731 四川省成都市高新区(西区)西源大道2006号

分类号:H04L9/08(20060101);H04L9/06(20060101);H04L29/06(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.10.23#授权;2019.09.03#实质审查的生效;2019.08.09#公开

摘要:本发明公开了一种高效无证书公钥加密方法,属于信息安全技术领域。为了使用户能在无证书环境对通信内容进行加密,本发明的方法包括初始化系统参数后,密钥生成中心生成部分私钥并发送给接收方;接收方基于系统参数随机生成一个秘密值,并根据部分私钥设置完整私钥和公钥;明文发送方根据系统参数、接收方身份信息、公钥和消息,生成密文,并将该密文发送给接收方;接收方通过自己保存的私钥解密密文,生成明文。如果密文未被更改,经验证正确则输出“接受”,否则输出“拒绝”。本发明用于通信网络中的消息加密,提供机密性服务。

主权项:1.一种高效无证书公钥加密方法,用户能在无证书环境对通信内容进行加密,其特征在于,包括下列步骤:步骤1:系统参数设置:选择素数p,设置循环加法群G1和循环乘法群G2,G1、G2阶数均为p;设置P为G1的某一生成元;设置双线性映射定义5个安全哈希函数,H1:H2:H3:G2→{0,1}n,H4:H5:{0,1}n→{0,1}n;密钥生成中心KGC从有限域中随机选择主密钥s并计算出主公钥Ppub=sP和参数其中,{0,1}*表示任意比特长的二进制序列组成的集合,n为明文长度,{0,1}n表示n比特长的二进制序列组成的集合,表示有限域;公开系统参数步骤2:提取部分私钥:用户将自己的身份IDU发送给KGC,KGC计算部分私钥并把部分私钥DU返回给用户;步骤3:设置公钥:用户从有限域中随机选择秘密值xU,并生成公钥PKU=xUH1IDUP+Ppub;步骤4:设置私钥:用户使用部分私钥DU,秘密值xU,公钥PKU和用户身份IDU,计算完整私钥步骤5:加密:作为发送方的用户生成明文m∈{0,1}n,获取作为接收方的用户的身份信息IDU和公钥PKU;发送方生成密文c并发送给接收方,其中生成密文c的具体过程为:随机选择n比特长的二进制序列,记为σ∈{0,1}n,计算参数x=H4σ,m;计算参数r=gx和计算参数U=xPKU+H2PKIDH1IDUP+Ppub;计算参数生成密文c=T,U,W;步骤6:解密:作为接收方的用户获取密文c,并使用本端的完整私钥SU进行解密处理:根据公式计算参数r,根据公式得到参数σ,以及根据公式得到明文m;验证本端计算得到的r是否等于若是,则返回明文m,解密成功;如果不等,则返回错误信息。

全文数据:一种高效无证书公钥加密方法技术领域本发明属于信息安全技术领域,特别是涉及一种无证书公钥加密方法。背景技术公钥加密publickeyencryption也称为非对称密钥加密。在公钥密码体制中,每个用户都拥有一对公私钥,其中公钥对外公开,私钥由自己秘密保管。用户B使用A的公钥,对发送给A的消息进行加密,A用私钥解密密文。为了抵抗公钥替换攻击,我们需要一个可信的第三方——公钥基础设施publickeyinfrastructure,PKI,绑定用户的身份和公钥,以确认公钥的真实性和有效性。PKI的证书中心certificateauthority,CA尤为关键,CA签发公钥证书给用户,内容包含用户身份信息、公钥、所使用签名算法、证书有效期等信息,CA的证书库向所有用户开放,任何用户在与A通信之前,可以获得由CA颁发的A的公钥证书,因此CA必须保证其权威性和安全性。公钥证书解决了公钥的真实性和有效性问题,但证书维护管理成本很高。为了解决证书管理问题,文献《ShamirA.Identity-BasedCryptosystemsandSignatureSchemes.AdvancesinCryptology,LNCS196,pp47-53,1984》提出了基于身份的密码体制。在该体制中,用户公钥由用户身份ID决定,用户身份是公开且唯一的,不再使用公钥证书。而用户的私钥都由一个可信第三方私钥生成中心privatekeygenerator,PKG生成,主要依靠PKG中的主密钥masterkey生成用户私钥,因而基于身份的密码体制存在密钥托管问题,PKG拥有所有用户的私钥,不诚实的PKG可以伪造用户私钥,也可以窃听用户信息。为了克服基于身份密码体制的密钥托管问题,Al-Riyami和Paterson于2003年提出无证书公钥密码体制certificatelesspublickeycryptography。无证书公钥密码体制同样不使用公钥证书,它结合了经典公钥加密和基于身份的加密体制,并克服了两种体制的缺点。在无证书加密体制中,仍然存在一个可信第三方密钥生成中心KGCkeygenerationcenter,与PKG类似,它也拥有主密钥masterkey,但KGC仅产生根据用户身份信息生成部分私钥,用户收到该部分私钥后,再与自己随机选择的秘密值生成完整私钥,这样KGC只能知道用户的部分私钥,而不能知道其完整私钥,并且用户公钥由用户通过自己的身份信息、秘密值和系统参数求出,因而无证书加密解决了基于身份密码体制中的密钥托管问题。当前主要有以下几种无证书加密方法:文献《Al-RiyamiSS,PatersonKG.Certificatelesspublickeycryptography.AdvancesinCryptology-ASIACRYPT2003,LNCS2894,pp452-473,2003》提出了首个无证书加密方法,该方法在加解密过程中均需要使用双线性对运算,加密需进行3次双线性对运算和1次指数运算,解密需要1次双线性对运算,效率较低。该方法在适应性选择密文攻击Indistinguishabilityunderadaptivechosenciphertextattack,IND-CCA2下是安全的。对无证书加密方法的安全性来说,用户密钥的生成方式决定了两类攻击者,第Ⅰ类攻击者模拟外部攻击者,能够替换任意用户公钥,第Ⅱ类攻击者模拟KGC,能够产生用户的部分私钥。文献《Al-RiyamiSS,PatersonKG.CBEfromCL-PKE:PublicKeyCryptography-PKC2005,LNCS3386,pp398-415,2005》公开了一个更高效的无证书方法,该方法中,加密需要一次双线性对和一次指数运算,解密需要一次双线性对运算,效率提升。由于其在适应性密文攻击中,面对强Ⅱ类攻击者是不安全的,故对该方法进行了改进,使其具有IND-CCA2,改进方法可参考文献《QuisquaterJJ.Onconstructingcertificatelesscryptosystemsfromidentitybasedencryption.PublicKeyCryptography-PKC2006,LNCS3958,pp474-490,2006》。文献《BaekJ,Safavi-NainiR,SusiloW.CertificatelessPublicKeyEncryptionWithoutPairing.InformationSecurity,LNCS3650,pp134-148,2005》提出了第一个不基于双线性映射的无证书加密方法。在此之前无证书加密方法大多基于双线性对,由于双线性对运算计算成本相对于指数运算高很多,所以基于双线性对映射的加密方法大多效率低。Baek等人提出的方法加密需要4次指数运算,解密需要3次指数运算,运行效率较高。但其安全性证明存在缺陷,主要体现为:第Ⅰ类敌手不可以替换挑战者的公钥,故文献《SunY,ZhangF,BaekJ.StronglySecureCertificatelessPublicKeyEncryptionWithoutPairing.CryptologyandNetworkSecurity,LNCS4856,pp194-208,2007》给出了安全性更强的不基于双线性对的无证书加密方法,但该方法的运算效率稍低。文献《Al-RiyamiSS,CryptographicSchemesbasedonEllipticCurvePairings.RoyalHolloway,UniversityofLondon,2005》利用椭圆曲线构造具体的CL-PKC方法。该方法没有使用双线性对,在计算成本上比基于双线性对的加密算法更有优势。文献《LaiJ,DengRH,LiuS,etal.RSA-BasedCertificatelessPublicKeyEncryption,InformationSecurityPracticeandExperience,LNCS5451,pp24-34,2009》将大整数因子分解困难问题引入无证书加密,其基于RSA提出了更高效的方法,加密需进行3次指数运算,解密需1次指数运算,计算成本较之前的方法有了极大的提升,但其安全模型较弱,不具有IND-CCA2安全性。为此,文献《VivekSS,SelviSSD,RanganCP.CCASecureCertificatelessEncryptionSchemesbasedonRSA.ProceedingsoftheInternationalConferenceonSecurityandCryptography,IEEE,pp208-217,2014》提出改进方法,第I类和第II类攻击都基于RSA大整数难解问题。文献《LiuJK,AuMHA,SusiloW.Self-generated-certificatepublickeycryptographyandcertificatelesssignatureencryptionschemeinthestandardmodel.ASIACCS'07Proceedingsofthe2ndACMsymposiumonInformation,ComputerandCommunicationsSecurity,pp273-283,2007》首次在标准模型下构造了无证书加密方法,安全性更高,计算成本也更高,加密需1次双线性对运算和4次点乘运算,解密需要3次双线性对和1次指数运算。文献《XuL,WuX,ZhangX.CL-PRE:Acertificatelessproxyre-encryptionschemeforsecuredatasharingwithpubliccloud.ASIACCS'12Proceedingsofthe7thACMSymposiumonInformation,ComputerandCommunicationsSecurity,pp87-88,2012》提出了一种无证书的代理再加密方法,用于与公共云共享安全数据,它利用最大的云资源来降低数据所有者的计算和通信成本。另外,在公开号为CN104539423A的专利申请中,公开了一种无双线性对运算的无证书公钥密码体制的实现方法,该方法将系统生成和用户生成的两部分密钥合成为一个密钥对使用,密码运算时不需要使用双线性对运算,可以采用标准椭圆曲线的公钥密码算法。公开号为CN105871541A的专利申请公开了一种基于仲裁的无证书加密方法,该方法引入安全仲裁机构,以确保用户加解密的可控,但也带来了密钥管理问题。公开号为CN107580003A的专利申请公开了一种工业物联网环境下安全的无证书可搜索公钥加密方法,该方法克服现有方法无法抵挡外部攻击者或者恶意服务器进行离线关键字攻击的缺陷,但其计算成本十分高。发明内容:本发明的目的在于:针对现有的加密方法,提出一种高效实现无证书环境中的加密方法,为使用者提供保密性服务。本发明的高效无证书公钥加密方法,包括以下步骤:步骤1:系统参数设置:选择素数p,设置循环加法群G1和循环乘法群G2,G1、G2阶数均为p;设置P为G1的某一生成元;设置双线性映射定义5个安全哈希函数,H3:G2→{0,1}n,H5:{0,1}n→{0,1}n,其中{0,1}*表示任意比特长的二进制序列组成的集合,n为明文长度,{0,1}n表示n比特长的二进制序列组成的集合,表示有限域;密钥生成中心KGC从有限域中随机选择主密钥s并计算出主公钥Ppub=sP和公开系统参数步骤2:提取部分私钥Extract-Partial-Private-Key:用户将自己的身份IDU发送给KGC,KGC计算出部分私钥并把部分私钥DU返回给用户;步骤3:设置公钥Set-Public-Key:用户从有限域中随机选择秘密值xU,并生成公钥PKU=xUH1IDUP+Ppub;步骤4:设置私钥Set-Private-Key:用户使用部分私钥DU,秘密值xU,公钥PKU和用户身份IDU,计算完整私钥步骤5:加密Encrypt:作为发送方的用户生成明文m∈{0,1}n,获取作为接收方的用户的身份信息IDU和公钥PKU;发送方生成密文c并发送给接收方:①随机选择n比特长的二进制序列,记为σ∈{0,1}n,计算参数x=H4σ,m;②计算参数r=gx和③计算参数U=xPKU+H2PKIDH1IDUP+Ppub;④计算参数最后得出密文c=T,U,W,将密文发送给接收方;步骤6:解密Decrypt:作为接收方的用户获取密文c,并使用自己的完整私钥进行解密处理:①计算②计算③计算④验证本端计算得到的r是否等于若是,则返回明文m,解密成功,如果不等,返回错误信息。综上所述,由于采用了上述技术方案,本发明的有益效果是:本发明仅在解密阶段使用1次双线性对计算,计算成本低,效率明显高于以往的基于双线性对的无证书加密方法,从而高效的为无证书环境的用户提供保密性服务。附图说明图1是本发明的具体实施方式的系统结构示意图;图2是本发明具体实施方式的加密操作流程图;图3是本发明具体实施方式的解密操作流程图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。参见图1,为了使用户能在无证书环境对通信内容进行加密,本发明的高效无证书公钥加密方法包括下列步骤:设定系统参数,用于生成用户的私钥SID和公钥PKID,以及加密生成密文和解密恢复明文;用户提交身份信息ID给密钥生成中心,密钥生成中心根据系统参数和身份信息ID生成部分私钥DID并发送给用户;用户基于系统参数随机生成一个秘密值xID,根据秘密值xID与部分私钥DID设置完整私钥SID和公钥PKID;明文加密方根据系统参数、接收方公钥PKID、消息m和随机序列σ,将消息加密为密文c,并将c发送给接收方。接收方根据系统参数、自身私钥SID、密文c,将密文恢复为明文m,获得消息。参见图1,为了实现本发明的加密方法,其对应的加密系统包括密钥生成中心、发送方和接收方,处理过程主要包括:设定系统参数、生成密钥、加密和解密,各处理具体描述如下:1设定系统参数。①选择素数p,设置循环加法群G1和循环乘法群G2,G1、G2阶数均为p;设置P为G1的某一生成元;设置双线性映射定义5个安全哈希函数,H3:G2→{0,1}n,H5:{0,1}n→{0,1}n,,其中{0,1}*表示任意比特长的二进制序列组成的集合,n为明文长度,即{0,1}n表示n比特长的二进制序列组成的集合,表示有限域;②密钥生成中心选择主密钥并计算出主公钥Ppub=sP和参数密钥生成中心公开系统参数以便后续计算。2生成密钥。①提取部分私钥。a.接收方提交个人信息IDU给密钥生成中心;b.密钥生成中心计算部分私钥并把私钥DU发回给接收方;②设置公钥。a.接收方随机选择秘密值b.接收方生成公钥PKU=xUH1IDUP+Ppub;③设置私钥。a.接收方使用部分私钥DU,秘密值xU,公钥PKU和用户身份IDU,计算完整私钥3加密。明文发送方可以利用接收方的身份IDU和公钥PKU对消息m进行加密。参见图2,具体步骤如下:①随机选择二进制序列σ∈{0,1}n,根据哈希函数H4计算参数x=H4σ,m;②计算r=gx;③计算密文参数U=xPKU+H2PKUH1IDUP+Ppub和④发送密文c=T,U,W给接收方;4解密。接收方在收到密文c后,根据自身私钥SU进行解密,参见图3,具体执行以下步骤:①计算并恢复出随机比特串②计算明文③计算通过验证r=r'是否成立,来验证密文完整性,若成立,则m为原明文,若不成立,则返回错误信息本发明可用于云计算安全。当用户将本地信息上传云端时,通常使用AESAdvancedEncryptionStandard进行加密,本发明可对密钥加密,保证密钥安全。使用公钥PKID加密密钥,任何攻击者只能获得密文c,而不能获得明文m。因本方法具有IND-CCA2安全性,所以攻击者不能通过选择密文攻击破解密文c。其他用户从云端下载加密消息,在不知道发送方私钥SID的情况下无法获得密钥,也无法解密消息,所以只要发送方保管好完整私钥SID,AES密钥是安全的,发送方上传在云端的信息也是安全的。以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和或步骤以外,均可以任何方式组。

权利要求:1.一种高效无证书公钥加密方法,其特征在于,包括下列步骤:步骤1:系统参数设置:选择素数p,设置循环加法群G1和循环乘法群G2,G1、G2阶数均为p;设置P为G1的某一生成元;设置双线性映射定义5个安全哈希函数,H3:G2→{0,1}n,H5:{0,1}n→{0,1}n;密钥生成中心KGC从有限域中随机选择主密钥s并计算出主公钥Ppub=sP和参数其中,{0,1}*表示任意比特长的二进制序列组成的集合,n为明文长度,{0,1}n表示n比特长的二进制序列组成的集合,表示有限域;公开系统参数步骤2:提取部分私钥:用户将自己的身份IDU发送给KGC,KGC计算部分私钥并把部分私钥DU返回给用户;步骤3:设置公钥:用户从有限域中随机选择秘密值xU,并生成公钥PKU=xUH1IDUP+Ppub;步骤4:设置私钥:用户使用部分私钥DU,秘密值xU,公钥PKU和用户身份IDU,计算完整私钥步骤5:加密:作为发送方的用户生成明文m∈{0,1}n,获取作为接收方的用户的身份信息IDU和公钥PKU;发送方生成密文c并发送给接收方,其中生成密文c的具体过程为:随机选择n比特长的二进制序列,记为σ∈{0,1}n,计算参数x=H4σ,m;计算参数r=gx和计算参数U=xPKU+H2PKIDH1IDUP+Ppub;计算参数生成密文c=T,U,W;步骤6:解密:作为接收方的用户获取密文c,并使用本端的完整私钥SU进行解密处理:根据公式计算参数r,根据公式得到参数σ,以及根据公式得到明文m;验证本端计算得到的r是否等于若是,则返回明文m,解密成功;如果不等,则返回错误信息。

百度查询: 电子科技大学;内江市云启科技有限公司 一种高效无证书公钥加密方法