一种基于属性基加密的雾协同云数据共享方法
技术领域
本发明涉及一种基于属性基加密的雾协同云数据共享方法。
背景技术
数据共享是大数据迅速发展的基础,而数据共享技术需要便捷可靠的平台系统和解决方案来处理数据的安全存储、管理和共享问题。随着云计算的快速发展,一些云服务供应商能提供更经济和更强大的计算和存储能力,个人和企业更愿意通过云平台来存储和管理数据,并且将数据分享给特定的用户群体。基于云平台的数据安全共享技术也因此被提出,比如:新型医疗云,用户可以将自己的健康信息上传到云平台,各种具有访问权限的医生和用户可以共享数据,用户和医生可以通过“医疗云”读取用户的健康信息来诊断病情。这种数据共享方式大幅度的改善了医疗健康服务,为用户带来了极大的便利,同时也节约了医疗服务提供者软硬件的部署成本,便于数据集中管理、存储和共享。然而在开放的云环境中存在着数据机密性,隐私保护,权限控制等具有挑战性的安全问题。为了保证数据机密性,数据文件往往被数据拥有者在本地加密后才外包给服务器,但这又引起效率、灵活性等问题。因此,如何既能提供隐私保护,又能灵活访问控制的数据共享机制已成为近年来的研究热点。
随着云计算的普及,移动设备可以随时随地存储/检索个人数据。因此,移动云中的数据安全问题变得越来越严重,阻碍了移动云的进一步发展。为了提高云安全性,已经进行了大量隐私保护方面的研究。现有的数据加密共享方案很难实现共享数据有效的专业信息分类和有效的数据分析,并且加密过程为资源受限的智能移动设备带来严重的资源消耗。同时,用户计算和存储成本仍然较高,不能实现更加细粒度的个性化和专业化访问控制。
发明内容
针对上述现有技术存在的问题,本发明提供一种基于属性基加密的雾协同云数据共享方法,该方法能便于实现共享数据的专业信息分类和有效的数据分析,能在实现用户隐私保护的同时对共享数据进行更加细粒度的访问控制,同时,能在加密过程有效地节省智能移动设备的资源消耗。
为了实现上述目的,本发明提供一种基于属性基加密的雾协同云数据共享方法,具体包括以下步骤:
步骤一:系统初始化;
a1:授权机构通过算法ACgen(U,λ)生成系统公钥PK和系统主密钥MSK;
授权机构在算法ACgen(U,λ)中输入全局属性U和安全系数λ,其中,U={u1,…,un},λ∈Zq,并选择两个阶为p的循环加法群和及一个双线性映射生成元为g,n个随机的群元素对应U中的n个属性,通过公式(1)输出公钥PK;授权机构随机选择元素α∈Zq,通过公式(2)输出系统主密钥MSK;
PK=g,gα,e(g,g)α,h1,…,hn (1);
MSK=gα (2);
a2:授权机构根据公式(3)运行算法CSgen来分别生成云服务提供商的私钥SK、雾节点的公钥PKf和雾节点的私钥SKf,并将公钥PKf发送给用户;
CSgen(PK,MSK,S,ci,fi)→(SK,PKf,SKf) (3);
式中,S为云服务提供商的属性集;
ci为云服务提供商属性;
fi为雾节点属性;
SK=(Y,Yx),x∈S,Y=gαgαt,t为随机数,t∈Zq;
PKf=e(β,g);
SKf=β,其中
步骤二:数据加密;
b1:用户使用基于共享内容密钥ck加密其共享数据D,加密后的共享数据
b2:用户基于属性基加密方案,用算法加密共享内容密钥,加密后的共享内容密钥 其中,ck为共享内容密钥,τ为访问策略,α,s∈Zq,s为密文因子,隐藏在访问控制策略树T中;其中,T由树节点和多项式两部分组成,(i,j)来代表每个树节点,i代表此节点在树的第i层,j代表此节点是第i层的第j个点,叶子节点是树的属性节点,非叶子节点是树门限节点,从上往下,为每一个非叶子节点(i,j)选择一个多项式q(i,j);
用户根据自己的经验和偏好定义个性化的访问策略,首先构建一个待发展的访问控制策略树T′,在T′中,根节点r掌管了整个T′,它的子节点为a和b,分别为个性化访问树Ta的根节点和专业化访问树Tb的根节点;然后从根节点r开始,用户设置qr(·)=s,并选一个点来定义多项式qr,完成T′的遍历后,每一个节点(i,j)都有自己的q(i,j)值,可作为这个节点的秘密因子,密文因子s被分发并藏在每一个叶子节点中,这个过程对应了Shamir秘密共享中的密钥分发;
b3:令s1=qa(·),s2=qb(·),即s1为Ta的秘密因子,s2为Tb的秘密因子,用户根据公式(4)为所有的Ta节点中的元素进行加密,加密后的Ta节点中的元素为Ca(i,j);用户选择随机数ε∈Zq,根据公式(5)来加密s2,加密后的s2为
b4:用户把加密的共享密文发送给雾节点;
步骤三:数据预处理;
雾节点接收到从用户传来的密文数据,通过决策树分类公式(6)计算每一条数据的所属专业概率Pi,并为每一条数据信息条目建立索引;
式中,Di代表一条共享信息;
H={ID1,ID2,…,IDm}代表专业集合;
步骤四:数据重加密;
d1:得到的所属专业概率之后,雾节点为这些数据信息定义专业化访问策略;雾节点通过构建Tb补充T′,在Tb中,根节点有个n子节点,每一个节点代表了在数据预处理阶段的所属专业概率,并且管理着对应的专业属性,Tb的叶子节点为专业属性,节点的门限为1,表示当云服务提供商的属性只要能满足一种专业属性时,它就满足了代表的访问策略,然后补充构建的T′形成T;再通过公式(7)解密来获取根节点b的密码因子s2:
d2:基于专业化访问策略来重加密共享数据,同时,雾节点加密每一条数据对应的相关专业条目;从根节点开始,雾节点从上至下遍历整个Tb之后,每一个节点(i,j)都有了自己特定的q(i,j)(·)值,对应该节点的秘密因子,b具有n个叶子节点,且每一个节点都对应了其中一个所属专业的概率,b的第i个子节点所属专业的概率用PDi表示,雾节点加密专业条目索引,雾节点通过公式(8)为每一个所属专业的概率计算出对应的专业条目密文
雾节点根据公式(9)为所有的Tb节点中的元素进行加密,加密后的Tb节点中的元素为Cb(i,j);
这样,b节点的秘密因子s2隐藏在了Cb(i,j)中,因为Ca(i,j)和Cb(i,j)具有相同的结构,统一他们为C(i,j),因此,秘密因子s藏在了C(i,j)中;
d3:重加密之后,雾节点将计算出的新共享密文发送到云服务器;
步骤五:数据解密;
e1:解密操作定义为Dec(CT,S,SK,PK),每一个节点(i,j)的解密结果定义为D(i,j),在解密隐藏在访问树T中的密文时,云服务提供商从下至上运行,解密过程中如果此节点(i,j)代表的属性不在属性集中,Dec(CT,S,SK,PK)=NULL,否则,
e2:如果一个云服务提供商的属性能满足Ta的策略时,能通过公式(10)计算出Deca;如果一个云服务提供商的属性能满足Tb的策略时,能通过公式(11)计算出Decb;
e3:解密ck;在访问控制树T中,根节点r的解密需要a节点的解密和b节点的解密,当一个云服务提供商的属性能满足Ta和Tb时,能通过公式(12)计算出DecT,进而ck就能被解密;
DecT=e(g,g)αts (12);
e4:解密CT;通过对称密钥ck解密CT,进而获得共享数据,因加密因子s由用户随机产生,用户即可以用s和公钥e(g,g)α来获取他的加密数据。
本发明构建了一个基于属性基加密的雾协同的数据安全共享方案,通过用户制定个性化的访问策略,其他用户可以检索他们的共享数据,并且可以在雾节点对数据进行预处理的时候保障用户的个人信息不被泄露。同时,该方案将部分加密计算,密文存储和能量消耗转移到了雾节点,减轻了云端用户设备的开销,有效地节省智能移动设备的资源消耗。本方法在保障了高效的数据共享服务的同时,提供了细粒度的访问控制。通过在掌握专业知识的雾节点上使用专业化的属性进行加密,共享数据可以被合适的云服务提供商访问以提供有效的数据服务。本方法还实现了高效的数据利用,可根据不同类别的专业领域,对原始共享数据进行分类,相关数据使用专业的云服务提供者的属性进行加密。因此,可以有效地访问和利用共享数据,通过有效的数据共享给生产生活带来极大的便利。
附图说明
图1是本发明的方法、LDSS-ABE和TFVO-CP-ABE应用于手机时的加密时间随着属性数量变化的示意图;
图2是本发明的方法、LDSS-ABE和TFVO-CP-ABE应用于传感器时的加密时间随着属性数量变化的示意图;
图3是雾节点上共享数据分为5类时,本发明方法属性百分比为1/2、1/3和1/4时在雾节点上的加密时间示意图;
图4是整个访问策略中有20个属性,本发明方法属性百分比为1/2、1/3和1/4时在雾节点上的加密时间示意图;
图5是共享数据分为5类时,本发明的方法、LDSS-ABE和TFVO-CP-ABE中存储成本和属性数量之间的关系柱状图;
图6是属性数为20时,本发明的方法、LDSS-ABE和TFVO-CP-ABE中专业类别与存储成本之间的关系柱状图。
具体实施方式
一种基于属性基加密的雾协同云数据共享方法,具体包括以下步骤:
步骤一:系统初始化;
a1:授权机构通过算法ACgen(U,λ)生成系统公钥PK和系统主密钥MSK;
授权机构在算法ACgen(U,λ)中输入全局属性U和安全系数λ,其中,U={u1,…,un},λ∈Zq,并选择两个阶为p的循环加法群和及一个双线性映射生成元为g,n个随机的群元素对应U中的n个属性,通过公式(1)输出公钥PK;授权机构随机选择元素α∈Zq,通过公式(2)输出系统主密钥MSK;
PK=g,gα,e(g,g)α,h1,…,hn (1);
MSK=gα (2);
a2:授权机构根据公式(3)运行算法CSgen来分别生成云服务提供商的私钥SK、雾节点的公钥PKf和雾节点的私钥SKf,并将公钥PKf发送给用户;
CSgen(PK,MSK,S,ci,fi)→(SK,PKf,SKf) (3);
式中,S为云服务提供商的属性集;
ci为云服务提供商属性;
fi为雾节点属性;
SK=(Y,Yx),x∈S,Y=gαgαt,t为随机数,t∈Zq;
PKf=e(β,g);
SKf=β,其中
步骤二:数据加密;
b1:用户使用基于共享内容密钥ck加密其共享数据D,加密后的共享数据
b2:用户基于属性基加密方案,用算法加密共享内容密钥,加密后的共享内容密钥 其中,ck为共享内容密钥,τ为访问策略,α,s∈Zq,s为密文因子,隐藏在访问控制策略树T中;其中,T由树节点和多项式两部分组成,(i,j)来代表每个树节点,i代表此节点在树的第i层,j代表此节点是第i层的第j个点,叶子节点是树的属性节点,非叶子节点是树门限节点,从上往下,为每一个非叶子节点(i,j)选择一个多项式q(i,j);
用户根据自己的经验和偏好定义个性化的访问策略,首先构建一个待发展的访问控制策略树T′,在T′中,根节点r掌管了整个T′,它的子节点为a和b,分别为个性化访问树Ta的根节点和专业化访问树Tb的根节点;然后从根节点r开始,用户设置qr(·)=s,并选一个点来定义多项式qr,完成T′的遍历后,每一个节点(i,j)都有自己的q(i,j)值,可作为这个节点的秘密因子,密文因子s被分发并藏在每一个叶子节点中,这个过程对应了Shamir秘密共享中的密钥分发;
b3:令s1=qa(·),s2=qb(·),即s1为Ta的秘密因子,s2为Tb的秘密因子,用户根据公式(4)为所有的Ta节点中的元素进行加密,加密后的Ta节点中的元素为Ca(i,j);为了在雾节点上案例构建Tb,用户选择随机数ε∈Zq,根据公式(5)来加密s2,加密后的s2为
b4:用户把加密的共享密文发送给雾节点;
步骤三:数据预处理;
雾节点接收到从用户传来的密文数据,通过决策树分类公式(6)计算每一条数据的所属专业概率Pi,并为每一条数据信息条目建立索引;
式中,Di代表一条共享信息;
H={ID1,ID2,…,IDm}代表专业集合;
步骤四:数据重加密;
d1:得到的所属专业概率之后,雾节点为这些数据信息定义专业化访问策略;雾节点通过构建Tb补充T′,在Tb中,根节点有个n子节点,每一个节点代表了在数据预处理阶段的所属专业概率,并且管理着对应的专业属性,Tb的叶子节点为专业属性,节点的门限为1,表示当云服务提供商的属性只要能满足一种专业属性时,它就满足了代表的访问策略,然后补充构建的T′形成T;b节点的密码因子为s2,隐藏在Tb中,雾节点通过公式(7)解密来获取根节点b的密码因子s2:
d2:基于专业化访问策略来重加密共享数据,同时,为了得到有效的数据分析,雾节点加密每一条数据对应的相关专业条目;从根节点开始,雾节点从上至下遍历整个Tb之后,每一个节点(i,j)都有了自己特定的q(i,j)(·)值,对应该节点的秘密因子,b具有n个叶子节点,且每一个节点都对应了其中一个所属专业的概率,b的第i个子节点所属专业的概率用PDi表示,为了更有效地将专业条目分享给不同的云服务提供商同时保护用户隐私,雾节点加密专业条目索引,雾节点通过公式(8)为每一个所属专业的概率计算出对应的专业条目密文
雾节点根据公式(9)为所有的Tb节点中的元素进行加密,加密后的Tb节点中的元素为Cb(i,j);
这样,b节点的秘密因子s2隐藏在了Cb(i,j)中,因为Ca(i,j)和Cb(i,j)具有相同的结构,统一他们为C(i,j),因此,秘密因子s藏在了C(i,j)中;
d3:重加密之后,雾节点将计算出的新共享密文发送到云服务器;
步骤五:数据解密;
只有当云服务提供商的属性能满足个性化的和专业的访问策略时,云服务提供商才能解密共享密文。同时,如果云服务提供商的属性能满足专业概率对应的访问策略时,云服务提供商就能解密,进而获取其对应的数据信息项目,一个具备属性集S的云服务提供商需要系统公钥和它的私钥来解密CT;
e1:解密操作定义为Dec(CT,S,SK,PK),每一个节点(i,j)的解密结果定义为D(i,j),在解密隐藏在访问树T中的密文时,云服务提供商从下至上运行,解密过程中如果此节点(i,j)代表的属性不在属性集中,Dec(CT,S,SK,PK)=NULL,否则,
e2:如果一个云服务提供商的属性能满足Ta的策略时,能通过公式(10)计算出Deca;如果一个云服务提供商的属性能满足Tb的策略时,能通过公式(11)计算出Decb;
e3:解密ck;在访问控制树T中,根节点r的解密需要a节点的解密和b节点的解密,当一个云服务提供商的属性能满足Ta和Tb时,能通过公式(12)计算出DecT,进而ck就能被解密;
DecT=e(g,g)αts (12);
e4:解密CT;通过对称密钥ck解密CT,进而获得共享数据,因加密因子s由用户随机产生,用户即可以用s和公钥e(g,g)α来获取他的加密数据。
通过数据解密过程可以看出,如果云服务提供商的属性能满足个性化和专业化的访问策略,那么他就能快速准确地获得共享数据。特别地,如果一个服务提供商具有的属性能满足数据信息对应的访问策略,他就能获得对应的数据信息条目,从而更加方便地获取他专业内的数据,从而能更好地服务于用户。
安全性分析:
本发明所提供的FAC-ABE(能保证数据隐私且访问控制灵活的雾协同云数据共享方案)可以实现数据保密性,以用户为中心的访问控制和防止共谋攻击。
在实现数据保密性方面,首先用户使用内容密钥对共享数据进行加密。同时,用户利用个性化访问策略加密内容密钥以进行安全数据共享。雾节点,云服务器和未经授权的云服务提供商在没有足够属性获得解密密钥情况下,无法解密共享密文。这样FAC-ABE可以保证数据在用户、雾节点、云服务器和云服务提供商的传输过程中,保持数据的机密性。此外,由于加密数据通过安全通道从用户通过雾服务器传输到云存储,因此FAC-ABE可以抵抗来自其他未授权实体的数据篡改。
在实现以用户为中心的访问控制方面,用户可以根据他的个人经验和要求,确定自己的数据被什么样的云服务提供者访问。Ta是用户根据自己的经验和兴趣,构建的个人访问策略,来对共享数据的内容密钥进行加密。只有具有满足属性的云服务提供商才有可能满足访问获得内容密钥。这样,用户就能决定他的共享数据由什么样的云服务提供商访问,从而满足他个性化的特定要求。另外在雾节点进行数据重新加密之后,用户可以检索和解密共享数据。在制定的方案中,由于对内容密钥加密的秘密因子由用户随机选择,用户可以直接使用秘密因子和系统公共密钥来解密共享的密文。因此,虽然雾节点对数据进行重新加密,用户也可以灵活地检索他的共享数据。
在实现防止共谋攻击方面包括:(1)雾节点和云服务器之间的合谋。密文数据在雾节点和云服务器分别是保持私密的。雾节点能解密Tb的秘密因子,但是它不能解密Ta的秘密因子。云服务器除了知道共享密文之外,不能获取其他的内容。因此,就算雾节点和云服务器共谋,它们也不能获取共享的数据。(2)雾节点和云服务提供商之间的共谋。首先,云服务提供商没有足够的属性能满足个性化访问控制树T,也就是说,它无法解密Ta。访问控制树是Ta和Tb的结合,当且仅当云服务提供商能解密出Ta和Tb,它能解密访问控制树T并获得内容密钥。雾节点能解密Tb的秘密因子。在这种情况下,雾节点和云服务提供商的合谋显然无法解密出T,也就是无法获得加密的共享数据。其次,云服务提供商的属性能满足个性化访问树Ta,即它解密出Ta。雾节点用自己的私钥解密出Tb的秘密因子。然而,只有授权机构知道随机指数因子和为云服务提供商随机选择的t,雾节点和云服务提供商都无法获得。云服务提供商无法和Tb的秘密因子相结合计算出T,从而获得内容密钥ck。另一方面,雾节点不能和Ta的秘密因子相结合解密出T。因此,雾节点和云服务提供商共谋和无法获取共享数据。
安全性分析表明该方案能保护用户共享数据的隐私,并保证在数据共享期间得到授权数据访问,以及抵御雾节点与其他未授权实体的共谋攻击。实验分析证明该方案能够在可接受的计算开销内实现有效的共享服务提供和有效的数据分析。
仿真与性能分析:
为了实现和检查方案的有效性,将所提的方案FAC-ABE与改进的ABE的属性加密方案LDSS-ABE和TFVO-CP-ABE进行性能比较,采用JAVA版本的密码库JPBC,从计算开销和存储开销两个方面验证所提出方案的有效性。LDSS-ABE方法是一种用于移动云计算的轻量级数据共享方案,TFVO-CP-ABE方法是一种可追责和完全可验证外包解密的CP-ABE方案。由于用户的智能终端设备多种多样,我们评估了该方案在两种设备的性能表现:手机和传感器。手机的配置为CPU海思麒麟980,6GB内存,传感器的配置为ARM Cortex-M3,256KB闪存,32KBSRAM。雾节点的配置为Intel Core i5 CPU,8GB RAM。时间以毫秒为单位(平均超过1000次迭代)。在大多数场合下,参与到加密中的属性数量基本不超过30个,因此评估该方案在30个属性之下的表现。
首先对比FAC-ABE和其他两种方案在手机和传感器上的时间成本,分别如图1和图2所示。由于LDSS-ABE和TFVO-CP-ABE方案没有雾节点的参与,因此这两种方案在雾节点上的加密时间为0,而FAC-ABE的加密时间随着专业访问策略中属性数量和专业类别数量的增加而增加。如图1和图2所示,手机和传感器的加密时间随着属性数量的增加而增加。三种方案中加密共享数据所花费的加密时间FAC-ABE最少。同时,FAC-ABE的加密时间大约为其他两种方案在相同属性数量下的加密时间的1/3倍。从图中可以看出,传感器加密比手机加密耗时更长。当访问策略中定义了20个属性时,LDSS-ABE传感器上的数据加密接近45s,而时,FAC-ABE仅消耗16s,这大大降低了计算时间。
在图3中,设置雾节点上共享数据分为5类时,比较FAC-ABE方案属性百分比P=1/2,1/3和1/4时,在雾节点上的加密时间。在图4中,设置整个访问策略中有20个属性,比较FAC-ABE方案属性百分比P=1/2,1/3和1/4时,在雾节点上的加密时间。如图3所示,当雾节点定制的访问策略中定义了5个类别时,当属性数比例越大,需要的加密时间越多。雾节点上的加密时间随着属性数量的增加而增加,当减少到1/2时加密时间最多,因为有P倍的加密负担从用户端转移到了雾节点上。如图4所示,雾节点上的加密时间随着专业条目的增加而增加。当雾节点对更多的专业类别进行分类时,雾节点需要更多的计算资源,这是可以接受的,因为云服务提供商可以更高效利用数据。
评估用户和雾节点的存储成本。在图5中,展示了三种方案的存储成本和属性数量的关系。对于雾节点上的存储成本,LDSS-ABE和TFVO-CP-ABE方案中由于雾节点没有参与,所以没有密文存储。在图5中,设置共享数据分为5类时,并说明三种方法中存储成本和属性数量之间的关系。在图6中设属性数为20时,说明专业类别与存储成本之间的关系。如图5所示,用户的存储成本随着属性数量的增加而增加。FAC-ABE的存储开销略大于LDSS-ABE中相同数量属性时的存储成本。对比的两种方案由于没有雾节点的重加密,因此存储成本都要小。总体来看,雾节点上的整体存储成本随着属性数量的增加而增加。如图6所示,当FAC-ABE中专业类别较多时,雾节点需要更多的存储成本,而其他两种方案中,当专业类别增加时,整体存储成本是稳定的。从图5和图6可知,雾节点上的存储成本超过对比方案的成本,这是合理的可接受的,因为雾节点将数据分类,并建立了索引,可以实现更有效的数据利用,也可获得更好的专业数据服务。
本申请所提出的一种基于属性基加密的雾协同云数据共享方案,在低资源消耗的情况下,实现了有效的数据共享和隐私保护。首先,由于雾节点定制了个性化和专业化的访问策略,方案为云端用户提供有效的数据共享。其次,方案通过将共享数据分类并将相关数据编入索引,增强了云服务提供商的数据分析效率。再者,即使在雾节点和其他部分的共谋下,方案也能保障共享数据的隐私保护。最后,方案将部分加密计算,密文存储和能量消耗转移到了雾节点,减轻了云端用户设备的开销。
本发明构建了一个基于属性基加密的雾协同的数据安全共享方案,通过用户制定个性化的访问策略,其他用户可以检索他们的共享数据,并且可以在雾节点对数据进行预处理的时候保障用户的个人信息不被泄露。本方法在保障了高效的数据共享服务的同时,提供了细粒度的访问控制。通过在掌握专业知识的雾节点上使用专业化的属性进行加密,共享数据可以被合适的云服务提供商访问以提供有效的数据服务。本方法还实现了高效的数据利用,可根据不同类别的专业领域,对原始共享数据进行分类,相关数据使用专业的云服务提供者的属性进行加密。因此,可以有效地访问和利用共享数据,通过有效的数据共享给生产生活带来极大的便利。