一种高效无证书公钥加密方法与流程

文档序号:18406073发布日期:2019-08-10 00:23阅读:676来源:国知局
一种高效无证书公钥加密方法与流程

本发明属于信息安全技术领域,特别是涉及一种无证书公钥加密方法。



背景技术:

公钥加密(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)。无证书公钥密码体制同样不使用公钥证书,它结合了经典公钥加密和基于身份的加密体制,并克服了两种体制的缺点。在无证书加密体制中,仍然存在一个可信第三方密钥生成中心kgc(keygenerationcenter),与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-certificatepublickeycryptographyandcertificatelesssignature/encryptionschemeinthestandardmodel.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}nh5:{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=xu(h1(idu)p+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=x(pku+h2(pkid)(h1(idu)p+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}nh5:{0,1}n→{0,1}n,,其中{0,1}*表示任意比特长的二进制序列组成的集合,n为明文长度,即{0,1}n表示n比特长的二进制序列组成的集合,表示有限域;

②密钥生成中心选择主密钥并计算出主公钥ppub=sp和参数

密钥生成中心公开系统参数以便后续计算。

(2)生成密钥。

①提取部分私钥。

a.接收方提交个人信息idu给密钥生成中心;

b.密钥生成中心计算部分私钥并把私钥du发回给接收方;

②设置公钥。

a.接收方随机选择秘密值

b.接收方生成公钥pku=xu(h1(idu)p+ppub);

③设置私钥。

a.接收方使用部分私钥du,秘密值xu,公钥pku和用户身份idu,计算完整私钥

(3)加密。

明文发送方可以利用接收方的身份idu和公钥pku对消息m进行加密。参见图2,具体步骤如下:

①随机选择二进制序列σ∈{0,1}n,根据哈希函数h4计算参数x=h4(σ,m);

②计算r=gx

③计算密文参数u=x(pku+h2(pku)(h1(idu)p+ppub))和

④发送密文c=(t,u,w)给接收方;

(4)解密。

接收方在收到密文c后,根据自身私钥su进行解密,参见图3,具体执行以下步骤:

①计算并恢复出随机比特串

②计算明文

③计算通过验证r=r'是否成立,来验证密文完整性,若成立,则m为原明文,若不成立,则返回错误信息

本发明可用于云计算安全。当用户将本地信息上传云端时,通常使用aes(advancedencryptionstandard)进行加密,本发明可对密钥加密,保证密钥安全。使用公钥pkid加密密钥,任何攻击者只能获得密文c,而不能获得明文m。因本方法具有ind-cca2安全性,所以攻击者不能通过选择密文攻击破解密文c。其他用户从云端下载加密消息,在不知道发送方私钥sid的情况下无法获得密钥,也无法解密消息,所以只要发送方保管好完整私钥sid,aes密钥是安全的,发送方上传在云端的信息也是安全的。

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1