一种云端基于代理重加密的数据授权确定性更新方法与流程

文档序号:15567561发布日期:2018-09-29 03:42阅读:316来源:国知局

本发明涉及密文数据授权管理技术,特别是一种云端基于代理重加密的数据授权管理及确定性更新方法。



背景技术:

云计算以丰富的资源、强大的计算能力满足了人们数据共享的需求,越来越多的网络用户通过云获取软件、平台、基础设施等服务。用户将数据托管到云端,进行数据的存储、处理和共享,云为用户提供便捷的数据使用方式,同时也对用户数据的安全带来了诸多挑战:1)如何保障托管数据的机密性、完整性。2)如何保障用户数据访问控制策略的有效性。3)如何保障数据访问授权更新的确定性。

针对数据的机密性和完整性问题,出现了云端密文访问控制技术,通过指定密码算法和密钥对数据进行加密处理,加密后的数据以密文的形式保存在云服务器中,保证云数据的机密性。通常情况下,数据所有者在使用云服务前将数据进行加密处理,通过控制用户的密钥进行权限管理。例如,基于角色的加密、基于身份的加密、属性基加密等机制(abe)分别以用户角色、身份和属性为解密密钥参数。abe等机制的通过与访问控制模型结合,能够在一定程度上保证授权策略的有效性,kp-abe和cp-abe机制能够支持复杂策略,在细粒度的数据共享和管理方面具有十分广阔的应用前景,适用于解密方不固定的情况,加密方无需关注解密方具体的身份,仅定义解密方需要具备的属性即可,免除了数据共享中因解密方变化导致频繁分发密钥的问题。针对权限变更的确定性,当用户属性撤销、数据发生修改时,上述机制往往需要个人用户对整体数据内容进行重新加密。导致用户端计算量增加,为共享数据量巨大的云用户带来大量的计算负担,同时,云服务器强大的计算能力没有被充分利用。



技术实现要素:

本发明的目的在于提供一种云端基于代理重加密的数据授权管理及确定性更新方法。

实现本发明目的的技术方案为:一种基于代理重加密的数据授权管理及确定性更新方法,该方法基于系统模型实现,所述系统模型包含kgc服务器、rkm服务器、rkg服务器和re-enc服务器;

kgc服务器为用户进行重加密参数初始化,并产生公私钥对;

rkm服务器用于存储代理重加密密钥参数,同时也是解密密钥参数,该服务器与数据创建者进行交互,通过参数的管理实现授权的确定性变更;

rkg服务器用于代理重加密密钥的产生,通过用户的初始化参数和rkm服务器中存储的参数共同产生代理重加密密钥;

re-enc服务器用于代理重加密的运算;

数据授权管理及确定性更新方法的具体步骤如下:

(1)系统初始化

基于给定的参数,调用算法setup产生系统公共参数代理重加密相关的公/私钥参数;

(2)数据创建

数据创建者向kgc服务器提交密钥对产生请求kgc服务器调用算法层面函数keygeneration为创建者产生公私钥对,数据创建者对数据进行第一次加密,调用算法层面函数encryption产生密文并传输给re-enc服务器;

(3)代理重加密密钥参数生成

数据创建者在创建数据密文的同时,依据自身授权需求,产生代理重加密密钥参数,调用算法层面函数rkpara产生β,α为指定长度无符号字符串;数据创建者分别向rkg服务器和rkm服务器提交重加密密钥参数β、α;

(4)产生具有授权信息的密文数据

rkg服务器提取数据创建者提交的代理重加密密钥参数β,并向rkm服务器提取参量α,调用算法层面函数rekeygen产生代理重加密密钥;re-enc服务器获取重加密密钥,调用算法层面函数reencryption,运算共享密文;

(5)密文数据获取

数据共享用户向re-enc服务器提交重加密密文数据获取请求,re-enc服务器获取数据共享用户的请求后为其提供代理重加密后的共享密文;

(6)用户进行重加密密文解密

合法访问用户首先在rkm服务器获取解密参量α,其次以α和自身私钥为密钥解密,调用算法层面函数decryption解密密文获取数据;

(7)授权确定性更新

数据创建者欲更新,则修改rkm中的α参数列表,将需要撤销的授权对应的参数α进行删除。

与现有技术相比,本发明的显著优点为:(1)用户共享数据仅需要计算第一次的密文,其后依托于云平台根据共享者的参数进行数据的重加密,减轻用户的云端负担;(2)本发明将重加密密钥的参数进行分割管理,一部分包含共享用户的公私钥等参数托管到云端,另一部分则定义为解密参数,由所有者管理;数据解密则需要同时提供用户自身私钥和解密参数,当发生权限变更时,仅需要所有者更改解密参数,即可实现确定性权限更新。

附图说明

图1为本发明的系统模型示意图。

图2为本发明的基于代理重加密的数据授权管理及确定性更新方法流程图。

图3为数据创建与访问流程图。

图4为权限确定性更新流程图。

具体实施方式

一种基于代理重加密的数据授权管理及确定性更新方法,该方法基于系统模型实现,如图1所示,所述系统模型包含kgc服务器、rkm服务器、rkg服务器和re-enc服务器;

kgc服务器为用户进行重加密参数初始化,并产生公私钥对;

rkm服务器用于存储代理重加密密钥参数,同时也是解密密钥参数,该服务器与数据创建者进行交互,通过参数的管理实现授权的确定性变更;

rkg服务器用于代理重加密密钥的产生,通过用户的初始化参数和rkm服务器中存储的参数共同产生代理重加密密钥;

re-enc服务器用于代理重加密的运算;

如图2所示,数据授权管理及确定性更新方法的具体步骤如下:

(1)系统初始化

基于给定的参数,调用算法setup产生系统公共参数代理重加密相关的公/私钥参数;

(2)数据创建

数据创建者向kgc服务器提交密钥对产生请求kgc服务器调用算法层面函数keygeneration为创建者产生公私钥对,数据创建者对数据进行第一次加密,调用算法层面函数encryption产生密文并传输给re-enc服务器;

(3)代理重加密密钥参数生成

数据创建者在创建数据密文的同时,依据自身授权需求,产生代理重加密密钥参数,调用算法层面函数rkpara产生β,α为指定长度无符号字符串;数据创建者分别向rkg服务器和rkm服务器提交重加密密钥参数β、α;

(4)产生具有授权信息的密文数据

rkg服务器提取数据创建者提交的代理重加密密钥参数β,并向rkm服务器提取参量α,调用算法层面函数rekeygen产生代理重加密密钥;re-enc服务器获取重加密密钥,调用算法层面函数reencryption,运算共享密文;

(5)密文数据获取

数据共享用户向re-enc服务器提交重加密密文数据获取请求,re-enc服务器获取数据共享用户的请求后为其提供代理重加密后的共享密文;

(6)用户进行重加密密文解密

合法访问用户首先在rkm服务器获取解密参量α,其次以α和自身私钥为密钥解密,调用算法层面函数decryption解密密文获取数据;

(7)授权确定性更新

数据创建者欲更新,则修改rkm中的α参数列表,将需要撤销的授权对应的参数α进行删除。

进一步的,调用算法setup产生系统公共参数代理重加密相关的公/私钥参数的算法函数为:

参数建立:setup(q)→param

setup(q)→param,选取长度为q的素数p,群g1,g2为的乘法循环群,g为g1的生成元,哈希函数组h1,h2,h3,h4,其中,h1:{0,1}*→g1,h3:g2→{0,1}l,h4:{0,1}*→g1,公开参数param={p,g1,g2,g,hi(i=1,...,4)};定义双线性映射e:g1×g1→g2。

进一步的,数据创建的算法函数为:

初始密钥生成:keygeneration(param)→(ski,pki)

keygen(param)→(ski,pki),选取则ski=xi,

第一次加密:encryption(m,pka)→c1

数据创建者a使用自身公钥pka加密明文信息m,选取k∈g2,计算r=h2(m||k),则密文c1=(c11,c12,c13,c14,c15).

c11=gt

c12=k·e(pka,h1(pka))r

c14=h1(pka)

c15=h4(c11||c12||c13||c14)r

进一步的,代理重加密密钥参量生成的算法函数为:

重加密参量β生成:

rkpara(pkb,pka,ska,r)→β,产生上传到rkg服务器的代理重加密密钥参数,则

α为指定长度无符号字符串。

进一步的,调用算法层面函数rekeygen产生代理重加密密钥:

rekeygen(α,β)→rka→b,生成有a到b代理重加密密钥rka→b.则

re-enc服务器获取重加密密钥,调用算法层面函数reencryption,运算共享密文;

reencryption(c1,rka→b)→c2,加密代理对密文c1进行重加密,生成可以被skb所解密的密文c2=c′11,c′12,c′13,c′14,c′15);若e(c11,h4(c11||c12||c13|c14))=e(g,c15)则进行如下计算,否则反馈信息完整性错误:

c′11=c11

c′13=c13

c′14=h1(pkb)

c′15=h4(c′11,c′12,c′13,c′14)r

进一步的,用户进行重加密密文解密的算法函数为:

解密decryption(skb,c2,α)

用户b解密重加密后的密文,获取明文m;

若e(c′11,h4(c′11||c′12||c′13||c′14))=e(g,c′15)则进行如下计算,否则反馈信息完整性错误:

计算

计算明文

计算r=h2(m||k),若c′11=gr且c′12=k·e(pkb,h1(pkb||α))r,则输出明文m

下面结合附图和实施例对本发明进行详细说明。

实施例

图1为本实施例的系统模型图,其中:

数据创建者a:创建被访问数据m,并对其进行加密等安全处理,最终通过云服务器进行数据的共享,同时对数据的授权范围进行管理。

数据共享用户b:对消息m提出访问申请,通过云服务器获取数据并进行解密,最终实现数据或服务的获取。

kgc服务器:为用户进行重加密参数初始化,并产生公私钥对。

rkm服务器:用于存储代理重加密密钥参数,同时也是解密密钥参数,该服务器与数据创建者进行交互,通过参数的管理实现授权的确定性变更;

rkg服务器:用于代理重加密密钥的产生,需要用户的初始化参数和rkm中存储的参数共同产生代理重加密密钥;

re-enc服务器:用于代理重加密的运算;

潜在攻击者:系统面临这针对第一次加密密文和重加密密文的密码分析,针对rkm、rkg、re-enc数据库的破解和分析,同时需要应对rkg、re-enc和攻击者针对重加密密文的合谋攻击。

数据的创建和访问依托于网络:数据所有者a和共享用户b都可以连接到互联网,以便能够与rkg、re-enc云数据服务器、kgc和rkm可信服务器进行交互,实现数据创建和访问。

数据共享者不转存和私自存储已经授权的数据:共享者进行数据访问时通过网络进行参数的获取,并进行解密,其后并不进行数据的本地保存、转授权。

kgc、rkm、数据所有者和数据共享用户为可信,kgc负责公共参数和公私钥的产生,rkm则协助数据创建用户进行重加密密钥参数的管理,数据所有者是初次密文的创建者;访问用户不会主动泄露相关密钥数据.rkg、re-enc半可信服务器,负责产生重加密密钥产生、重加密密文生成等,该部分将忠实的进行数据密文重加密的实施,同时有泄露用户数据、挖掘用户隐私的可能。

本实施例通过用户数据创建、访问、权限更新3个过程说明本方法:

1)数据创建,如图3左边部分,以用户a为创建数据用户。

(1)a进行系统建立,调用算法setup产生系统公共参数代理重加密相关的公/私钥参数;

(2)a向kgc提交密钥对产生请求,同时提供参数q进行系统建立,kgc调用算法层面函数keygeneration为a产生公私钥对(pka,ska);

(3)a对数据m的进行第一次加密,调用算法层面函数encryption产生密文ca并传输给re-enc服务器;

(4)用户a在创建数据密文的同时,依据自身授权需求,产生代理重加密密钥参量,调用算法层面函数rkpara产生β;α则为指定长度无符号字符串。而后,a分别向rkg和rkm提交重加密密钥参数β、α,完成数据创建。

2)数据访问,如图3右边部分;

(1)假设用户b数据共享者,b向re-enc提交重加密密文数据获取请求;

(2)rkg提取a提交的参量β,并向rkm提取参量α,调用算法层面函数rekeygen产生代理重加密密钥rka→b;

(3)re-enc获取rka→b,调用算法层面函数reencryption,运算ca→b,并向b提供代理重加密后的密文ca→b;

(4)若b为合法访问用户,欲解密ca→b,首先b在rkm获取解密参量α,其次b以α和skb为密钥解密,调用算法层面函数decryption解密ca→b获取m。

3)权限更新,如图4所示;

假设a更新对b的权限,撤销b的访问权限:

(1)a更新rkm中b对应的α参数列表,将授权对应的参数α进行删除。

(2)b欲解密,b向rkm请求获取解密参量,由于b对应的参量已经被a更新,则b已经不具备解密的条件,因此无法解密。

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