一种基于属性的定长密文与密钥的加密、解密方法与流程

文档序号:12729808阅读:376来源:国知局
一种基于属性的定长密文与密钥的加密、解密方法与流程
本发明涉及信息安全
技术领域
,特别是指一种基于属性的定长密文与密钥的加密、解密方法。
背景技术
:近年来,伴随着长期演进(LongTermEvolution,LTE)等第四代移动通信技术的商业化应用,对于下一代通信技术(5G)的研究也已经悄然展开。相较于4G网络,5G网络将带来更高的峰值速率体验、高密集用户连接的优质服务、泛在网络互联互通、更优质的用户访问体验以及实时而可靠的网络连接。随之而来对安全性的要求也就越来越高。应用信息加密技术可以有效地保证5G无线网络的安全性与保密性,尤其是在当今电子商务、电子现金、数字货币、网络银行等各种网络业快速兴起的时代,如何保护信息安全使之不被窃取、不被篡改或破坏等问题越来越受到人们的重视。解决这问题的关键就是信息加密技术。所谓加密,就是把称为“明文”的可读信息转换成“密文”的过程;而解密则是把“密文”恢复为“明文”的过程。加密和解密都要使用密码算法来实现。密码算法是指用于隐藏和显露信息的计算过程,通常算法越复杂,得到的密文越安全。在加密技术中,密钥是必不可少的,密钥是在明文转换为密文或将密文转换为明文的算法中输入的参数。使用加密算法就能够保护信息安全使之不被窃取、不被篡改或破坏。但是,传统的基于属性加密算法中加解密的计算量都会随着系统中属性个数的增加而线性增加,导致加解密效率低。技术实现要素:本发明要解决的技术问题是提供一种基于属性的定长密文与密钥的加密、解密方法,以解决现有技术所存在的加解密效率低的问题。为解决上述技术问题,本发明实施例提供一种基于属性的定长密文与密钥的加密方法,包括:根据系统安全参数和系统属性集合,生成系统公钥和主密钥;向系统中的所有成员发送系统公钥,并秘密保存主密钥,所述所有成员包括:数据拥有者和数据使用者;对隐私数据文件进行加密得到数据密文,并根据隐私数据文件的访问策略属性集合、数据拥有者接收到的系统公钥,对加密算法使用的密钥进行加密,得到定长的密钥密文,其中,所述密钥密文包括访问策略属性集合;将加密得到数据密文和密钥密文上传至服务器。进一步地,生成的系统公钥和主密钥表示为:其中,pKey表示系统公钥,mKey表示主密钥,α、β为在Zq中随机选取的数,Zq={0,1,…,q-1},q为超过预定阈值的素数,α、β分别表示第一子密钥、第二子密钥,s为Ga的一个生成元,Ga表示乘法循环群,s表示pKey的第一子公钥,分别表示pKey的第二子公钥、第三子公钥、第四子公钥,m表示系统属性的数目,mj表示第j(j∈{1,2,…,m})个系统属性有mj个取值,kj表示第j(j∈{1,2,…,m})个系统属性的mj个取值中的第kj个。进一步地,所述分别表示为:其中,h0表示无碰撞的Hash函数。进一步地,得到的密钥密文表示为:CTP=(P,c0,c1,c2)c1=sτ其中,CTP表示密钥密文,P表示访问策略属性集合,JP={j|1≤j≤m},1≤kj≤mj,∧表示合取,m表示访问策略属性的数目,mj表示第j(j∈{1,2,…,m})个访问策略属性有mj个取值,表示第j(j∈{1,2,…,m})个访问策略属性的第kj个取值,c0、c1、c2分别表示第二子密钥密文、第三子密钥密文、第四子密钥密文,msg表示密钥,τ为在Zq中随机选取的数,τ∈Zq。本发明实施例还提供一种基于属性的定长密文与密钥的解密方法,包括:当属性集合为Q的数据使用者申请加入系统时,根据数据使用者的属性集合Q、生成的系统公钥pKey和主密钥mKey,生成数据使用者的私钥SecKeyu;当拥有私钥SecKeyu、属性集合为Q的数据使用者向服务器发出数据访问请求时,服务器将对应的数据密文和定长的密钥密文CTP发送给数据使用者;判断密钥密文中的访问策略属性集合P与数据使用者的属性集合Q是否匹配,若匹配,则对密钥密文CTP进行解密,得到解密密钥msg;根据得到的解密密钥msg对数据密文进行解密,得到数据明文。进一步地,所述私钥SecKeyu表示为:SecKeyu=(D,E)D=h1(r)其中,D、E分别表示第一子私钥、第二子私钥,h0、h1表示无碰撞的Hash函数,r为在Zq中随机选取的数,r∈Zq,Zq={0,1,…,q-1},q为超过预定阈值的素数,s表示pKey的第一子公钥,β表示第二子密钥,分别表示pKey的第二子公钥,d0、为简写形式,Q={Q1,Q2,…,Qm},m表示数据使用者属性的数目,mj表示第j(j∈{1,2,…,m})个数据使用者属性有mj个取值,kj表示第j(j∈{1,2,…,m})个数据使用者属性的mj个取值中的第kj个。进一步地,所述对密钥密文CTP进行解密,得到解密密钥msg包括:利用公式对密钥密文CTP进行解密,得到解密密钥msg;其中,c0、c1、c2分别表示第二子密钥密文、第三子密钥密文、第四子密钥密文,表示双线性对运算。进一步地,所述方法还包括:若密钥密文中的访问策略属性集合P与数据使用者的属性集合Q不匹配,则输出错误符号。本发明的上述技术方案的有益效果如下:上述方案中,对隐私数据文件进行加密得到数据密文,并根据隐私数据文件的访问策略属性集合、数据拥有者接收到的系统公钥,对加密算法使用的密钥进行加密,能够得到不会随着访问策略属性集合中属性个数变化而变化的定长密钥密文,且将密钥加密过程的计算量限制在固定值,当数据使用者对定长密钥密文进行解密时,能够将解密过程的计算量限制在固定值,从而能够提高加密解密的效率,并能够进一步降低加密客户端、解密客户端的硬件成本。附图说明图1为本发明实施例提供的基于属性的定长密文与密钥的加密方法的流程示意图;图2为本发明实施例提供的基于属性的定长密文与密钥的加密方法的模型示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本发明针对现有的加解密效率低的问题,提供一种基于属性的定长密文与密钥的加密、解密方法。实施例一参看图1所示,本发明实施例提供的基于属性的定长密文与密钥的加密方法,包括:S101,根据系统安全参数和系统属性集合,生成系统公钥和主密钥;S102,向系统中的所有成员发送系统公钥,并秘密保存主密钥,所述所有成员包括:数据拥有者和数据使用者;S103,对隐私数据文件进行加密得到数据密文,并根据隐私数据文件的访问策略属性集合、数据拥有者接收到的系统公钥,对加密算法使用的密钥进行加密,得到定长的密钥密文,其中,所述密钥密文包括访问策略属性集合;S104,将加密得到数据密文和密钥密文上传至服务器。本发明实施例所述的基于属性的定长密文与密钥的加密方法,根据系统安全参数和系统属性集合,生成系统公钥和主密钥;向系统中的所有成员发送系统公钥,并秘密保存主密钥,所述所有成员包括:数据拥有者和数据使用者;对隐私数据文件进行加密得到数据密文,并根据隐私数据文件的访问策略属性集合、数据拥有者接收到的系统公钥,对加密算法使用的密钥进行加密,得到定长的密钥密文,其中,所述密钥密文包括访问策略属性集合;将加密得到数据密文和密钥密文上传至服务器。这样,对隐私数据文件进行加密得到数据密文,并根据隐私数据文件的访问策略属性集合、数据拥有者接收到的系统公钥,对加密算法使用的密钥进行加密,能够得到不会随着访问策略属性集合中属性个数变化而变化的定长密钥密文,从而将密钥密文长度、密钥长度和密钥加密过程的计算量限制在固定值,能够极大地提高了数据的加密效率,同时降低加密客户端的硬件成本。本实施例中,数据密文不是定长的,数据密文的长度与待加密的隐私数据文件大小相关;根据隐私数据文件的访问策略属性集合、数据拥有者接收到的系统公钥,对加密算法使用的密钥进行加密,得到密钥密文是定长的。本实施例中,图2为基于属性的定长密文与密钥的加密、解密方法的模型示意图,图2中,授权机构完全可信并且具有最高的权限,主要负责系统公钥、主密钥等系统参数的生成及为数据拥有者和数据使用者授权;数据拥有者对要进行共享的文件数据进行加密,并将加密的数据文件上传到服务器。本发明实施例提供的基于属性的定长密文与密钥的加密方法的具体步骤可以包括:A11,生成系统参数,其中,系统参数包括:系统公钥和主密钥本实施例中,系统参数的生成由授权机构执行,根据系统安全参数和系统属性集合,生成系统公钥和主密钥。生成系统参数算法的输入为系统安全参数和系统属性集合Attr_U,算法的输出为系统公钥pKey和主密钥mKey。为了更好地理解系统参数的生成过程,先对生成系统参数涉及的参数进行说明:Ga和Gb是阶数为大素数q的两个乘法循环群,大素数q为超过预定阈值的素数,其中,s是Ga的一个生成元,是一个双线性映射,表示双线性对运算,→表示映射符号,Zq={0,1,…,q-1}。具有m个属性的系统属性集合表达式为Attr_U={u1,u2,…,um},其中,第j(j∈{1,2,…,m})个系统属性uj有mj个取值,对应的集合表达式为授权机构调用SetUp算法,输入系统安全参数和系统属性集合,产生系统公钥pKey和主密钥mKey,并向系统中的所有成员公开pKey,自己保存mKey,进而为数据使用者授权,在SetUp算法中,虽然输入的系统安全参数和系统属性集合不参与运算,但是如果不输入系统安全参数和系统属性集合,也无法求得系统公钥和主密钥。SetUp算法:定义无碰撞的Hash函数h0和h1:h1:Zq→Ga其中,在Zq中随机选取α,β并计算出:其中,1≤j≤m且1≤kj≤mj,h0(β||j||kj)中的||||表示连接符。输出系统公钥pKey和主密钥mKey如下:其中,pKey表示系统公钥,mKey表示主密钥,α、β为在Zq中随机选取的数,Zq={0,1,…,q-1},q为超过预定阈值的素数,α、β分别表示第一子密钥、第二子密钥,s为Ga的一个生成元,Ga表示乘法循环群,s表示pKey的第一子公钥,分别表示pKey的第二子公钥、第三子公钥、第四子公钥,m表示系统属性的数目,mj表示第j(j∈{1,2,…,m})个系统属性有mj个取值,kj表示第j(j∈{1,2,…,m})个系统属性的mj个取值中的第kj个。A12,生成系统公钥pKey和主密钥mKey后,授权机构向系统中的所有成员发送系统公钥pKey并秘密保存mKey,其中,所述所有成员包括:数据拥有者和数据使用者。A13,加密数据本实施例中,为了确保用户隐私数据文件的安全,数据拥有者会根据访问策略属性集合加密数据文件,之后将数据密文存储在服务器上。基于属性的加密算法大都比较复杂,当待加密文件很大时相应的计算开销也会非常大,因此直接使用基于属性的加密算法来加密数据文件并不实用。本实施例中,加密算法以AES加密为例,本实施例先使用AES加密算法对隐私数据文件进行加密得到数据密文,然后使用本文方案中提出的基于属性的加密算法对AES加密算法所使用的密钥进行加密,得到密钥密文,具体步骤如下:A131,数据拥有者调用AES加密算法加密隐私数据文件得到数据密文;A132,数据拥有者定义待加密数据的包含访问策略属性集合P的访问结构,即数据使用者的属性集合必须与访问结构中的访问策略属性相匹配才可以解密该数据;A133,调用本实施例的加密算法加密AES加密算法使用的密钥msg得到密钥密文CTP,将CTP与加密得到数据密文一起上传到服务器端。A133中使用的加密算法:Encrypt(pKey,msg,P)→CTP所述访问策略属性集合为:JP={j|1≤j≤m},1≤kj≤mj,∧表示合取。数据拥有者计算如下:其中,1≤j≤m且1≤kj≤mj。随机选取τ∈Zq并计算:c1=sτ输出AES加密算法使用的密钥msg的密钥密文为:CTP=(P,c0,c1,c2)其中,CTP表示密钥密文,P表示访问策略属性集合,JP={j|1≤j≤m},1≤kj≤mj,∧表示合取,m表示访问策略属性的数目,mj表示第j(j∈{1,2,…,m})个访问策略属性有mj个取值,表示第j(j∈{1,2,…,m})个访问策略属性的第kj个取值,c0、c1、c2分别表示第二子密钥密文、第三子密钥密文、第四子密钥密文,msg表示密钥,τ为在Zq中随机选取的数,τ∈Zq。本实施例提供的基于属性的定长密文与密钥的加密方法的效果可以通过仿真来进一步分析说明,表1为系统仿真采用的实验环境。表1系统仿真采用的实验环境虚拟机VmwareWorkstation12.1.1系统Ubuntu14.10编程软件Myeclipse2014数据库MySQL5.1当对同一个明文进行加密时,传统的基于属性加密算法的密钥密文长度随着访问策略中的属性个数的增加而线性增加,但本实施例提供的加密方法的密钥密文长度保持不变,不会受到访问策略中的属性个数及其他因素的影响。且传统的基于属性加密算法的执行时间与访问策略中属性个数成正比,而本实施例提供的加密方法执行时间近似为一个常量,与访问策略中的属性个数无关。实施例二本发明实施例还提供一种基于属性的定长密文与密钥的解密方法,包括:当属性集合为Q的数据使用者申请加入系统时,根据数据使用者的属性集合Q、生成的系统公钥pKey和主密钥mKey,生成数据使用者的私钥SecKeyu;当拥有私钥SecKeyu、属性集合为Q的数据使用者向服务器发出数据访问请求时,服务器将对应的数据密文和定长的密钥密文CTP发送给数据使用者;判断密钥密文中的访问策略属性集合P与数据使用者的属性集合Q是否匹配,若匹配,则对密钥密文CTP进行解密,得到解密密钥msg;根据得到的解密密钥msg对数据密文进行解密,得到数据明文。本发明实施例所述的基于属性的定长密文与密钥的解密方法,当属性集合为Q的数据使用者申请加入系统时,根据数据使用者的属性集合Q、生成的系统公钥pKey和主密钥mKey,生成数据使用者的私钥SecKeyu;当拥有私钥SecKeyu、属性集合为Q的数据使用者向服务器发出数据访问请求时,服务器将对应的数据密文和定长的密钥密文CTP发送给数据使用者;判断密钥密文中的访问策略属性集合P与数据使用者的属性集合Q是否匹配,若匹配,则对密钥密文CTP进行解密,得到解密密钥msg;根据得到的解密密钥msg对数据密文进行解密,得到数据明文。这样,当数据使用者对定长密钥密文进行解密时,能够将解密过程的计算量限制在固定值,从而提高解密效率,并进一步能够降低解密客户端的硬件成本。本发明实施例中,因为密钥密文中包含访问策略属性集合P,所以数据使用者提出访问文件请求以后,当且仅当其属性集合与密钥密文中的访问策略属性集合P相匹配时,才可以解密文件,没有被授权的数据使用者都不能访问原始数据文件。本实施例中,服务器也是普通的数据使用者,其属性集合与访问策略属性集合不匹配时也不能解密文件,从而保证方案的安全性;服务器主要负责存储数据拥有者加密上传的密钥密文及数据密文,并为提出数据访问请求的数据使用者提供下载服务。本实施例假设所有设备之间的信道都是绝对安全的。本发明实施例提供的基于属性的定长密文与密钥的解密方法的具体步骤可以包括:B11,当属性集合为Q的数据使用者申请加入系统时,由授权机构为数据使用者授权。本实施例中,由授权机构为数据使用者授权,算法的输入为系统公钥pKey、主密钥mKey和数据使用者的属性集合Q,输出数据使用者的私钥SecKeyu,具体的:当一个属性集合为Q={Q1,Q2,…,Qm}的数据使用者申请加入系统时,授权机构首先根据属性集合验证其合法性,然后调用CreateDu算法生成该数据使用者的私钥,使数据使用者可以访问其权限范围内的密文文件。CreateDu算法:CreateDu(pKey,mKey,Q)→SecKeyu选取r∈Zq并计算出:D=h1(r)其中,1≤j≤m且1≤kj≤mj,是的简写形式。输出数据使用者的私钥为:SecKeyu=(D,E)其中,D、E分别表示第一子私钥、第二子私钥,h0、h1表示无碰撞的Hash函数,r为在Zq中随机选取的数,r∈Zq,Zq={0,1,…,q-1},q为超过预定阈值的素数,s表示pKey的第一子公钥,β表示第二子密钥,分别表示pKey的第二子公钥,d0、为简写形式,Q={Q1,Q2,…,Qm},m表示数据使用者属性的数目,mj表示第j(j∈{1,2,…,m})个数据使用者属性有mj个取值,kj表示第j(j∈{1,2,…,m})个数据使用者属性的mj个取值中的第kj个。B12,当拥有私钥SecKeyu=(D,E)、属性集合为Q的数据使用者向服务器发出数据访问请求时,服务器将对应的数据密文和定长的密钥密文CTP发送给数据使用者。B13,解密数据本实施例中,服务器将对应的加密数据发送给数据使用者后,数据使用者调用解密算法进行解密,判断密钥密文中的访问策略属性集合P与数据使用者的属性集合Q是否匹配;当且仅当数据使用者的属性集合Q与密钥密文中的访问策略属性集合P相匹配时,才可以成功进行解密,获得AES算法的解密密钥msg,然后再使用解密密钥msg作为AES解密密钥对数据密文进行解密,得到数据明文。解密算法:Decrypt(P,Q,pKey,SecKeyu,CTP)→msg数据使用者检测P与Q的关系,如果P与Q不匹配,则输出错误符号,例如,⊥;如果P与Q匹配则继续解密,输出解密密钥msg:其中,c0、c1、c2分别表示第二子密钥密文、第三子密钥密文、第四子密钥密文,表示双线性对运算。本实施例中,而本实施例提供的解密算法执行时间近似为一个常量,与访问策略中属性个数无关,而传统的基于属性的解密算法执行时间与访问策略中属性个数成正比。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1