云平台数据管理的方法和系统
技术领域
本发明涉及云计算,特别涉及一种云平台租户间数据共享的管理方法和系统。
背景技术
云计算可以是IT和软件、互联网相关的,也可以是任意其他的服务,它具有超大规模、虚拟化、可靠安全等独特功效。在云计算环境下,一切资源都是可以运营的,都可以作为服务提供,包括应用程序、软件、平台、处理能力、存储、网络、计算资源以及其他基础设施等。
在PaaS架构中,服务提供方提供基于互联网的平台服务,租户以“使用而不拥有”的租赁方式消费和利用。为获得规模效益,平台提供者以多租户模式提供服务托管。多个租户共享一个应用和数据库实例,但各租户能独立配置应用,好像在独立的环境中运行,以达到软硬件资源共享。这些租户通常有共享数据的需求,租用同一平台提供者服务为此提供了方便。租户间数据存储在平台提供者数据库中,逻辑上分属于不同的数据库。租户间通过平台提供者的数据共享实质上是跨数据库的数据共享。数据外连接是表间属性相等的广义笛卡尔积,体现了元组间的跨表关联。共享跨数据库的外连接具有重要的实用价值。由于租户不完全信任平台提供者,一般将隐私数据加密存储,所以无法直接通过跨数据库的外连接操作实现两个租户间隐私数据库的外连接共享。在不泄露其他数据的前提下,通过不完全可信的平台提供者,提供两个租户公平共享私有数据库加密数据外连接服务。现有技术存在隐私数据库外连接共享方法,但本质上只是一种查询方法,不是公平的共享方法,为实现双方公平共享,需执行该方法两次;并且信息经过Hash变换后再加密,即使信息拥有者也不能由解密得到原始信息,只能通过密文从备份信息中搜索,而租户不可能租用平台提供者服务,同时再备份隐私数据明文,因此不适用于两个租户间信息共享。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种云平台数据管理的方法和系统,针对PaaS中两个租户通过平台提供者共享私有数据库加密数据外连接,该方法包括:
共享请求方租户和共享接收方租户通过平台提供者交换共有属性的全集,实现属性值交集的共享;
平台提供者用该属性值生成的密钥加密对应元组其他属性值,然后向双方租户分发;
共享请求方租户利用所述交集生成的密钥解密,得到接收方与所述交集对应的元组的密文;
组合请求方和接收方的属性值交集中元素对应的元组,实现数据连接。
优选地,所述共享请求方租户和共享接收方租户通过平台提供者交换共有属性的全集,进一步包括:
步骤1、定义共享请求方租户R密钥为eR、e′R,共享接收方租户S密钥为eS、e′S;
在eR、eS作用下,R、S用可交换加密函数fe加密隐私数据,逻辑存储于隐私数据库DR、DS的表TR、TS中
TR、TS共有属性为A,记为TR.A、TS.A。共享请求方租户R希望与共享接收方租户S共享TR、TS在A上的外连接,R向S发起通过平台提供者P访问YS的请求,同时授予S通过P访问YR的授权;
其中,TR、TS的一个元组为bR、bS,全集为BR、BS;TR.A、TS.A的明文值分别为vR、vS,全集为VR、VS;vR、vS的加密值为yR、yS,加密值全集为
且其中,R、S向平台提供者P安全地分发密钥e′R、e′S。
步骤2、共享接收方S收到来自共享请求方R的请求,如果S接受该请求,则授予R访问YS的权限;
步骤3、R、S分别向平台提供者P出示S、R的授权证书,请求获得YS、YR;
步骤4、P验证R、S授权后,将YS、YR分别分发至R和S;
步骤5、对yR∈YR,共享接收方S计算feS(yR)、fe’S(feS(yR)),得到3元组:
将wR的全集WR发送给共享请求方R;
步骤6、对yS∈YS,共享请求方R计算得到3元组:
将wS的全集WS发送给共享接收方S。
优选地,所述平台提供者用该属性值生成的密钥加密对应元组其他属性值,然后向双方租户分发,进一步包括:
步骤7对yS∈YS,平台提供者P用e’S生成作为加密的密钥;生成2元组 向R发送w’S全集W’S;
对于yR∈YR,平台提供者P生成 向S发送w’R全集W’R。
优选地,所述共享请求方租户利用所述交集生成的密钥解密,得到接收方与所述交集对应的元组的密文,进一步包括:
步骤8、在R收到WR和W’S后,首先,R用eR解密wR∈WR,得
其次,在W’S和W″R中,如果2元组w’S第1分量和3元组w″R第2分量相等,则w″R的第1分量v属于VR∩VS;
再次,用与v对应3元组w″R的第3分量作为密钥,解密对应2元组w’S的第2分量,得到bS其他属性的密文
然后,通过v检索TR得到bR的ext(v)R;
最后,将 发给S;
其中,ext(v)R、ext(v)S为bR、bS的属性明文;
步骤9、共享接收方S接收到WS和W’R后,首先,S用eS解密wS∈WS,得
其次,在W’R和W″S中,如果2元组w’R第1分量和3元组w″S第2分量相等,则w″S的第1分量v属于VS∩VR;
再次,用与v对应3元组w″S的第3分量作为密钥,解密对应2元组w’R的第2分量,得到bR其他属性的密文
然后,通过v检索TS得到bS的ext(v)R;
将 发给R。
优选地,所述组合请求方和接收方的属性值交集中元素对应的元组,实现数据连接,进一步包括:
步骤10、R、S两方分别利用US、UR中验证US、UR的完整性,通过v检索TR、TS,得bR、bS的ext(v)R、ext(v)S,将ext(v)R、ext(v)S组合,得到外连接R∞S={(v,ext(v)R,ext(v)S)|v∈VR∩VS,bR.A=v∧bS.A=v}。
根据本发明的另一方面,提供了一种云平台数据管理的系统,用于在PaaS平台中实现租户的安全数据共享,包括:
属性全集交换模块,用于通过平台提供者交换共享请求方租户和共享接收方租户的共有属性的全集,实现属性值交集的共享;
加密模块,用于利用该属性值生成的密钥加密对应元组其他属性值,然后向双方租户分发;
解密模块,用于利用所述交集生成的密钥解密,得到接收方与所述交集对应的元组的密文;
数据连接模块,用于组合请求方和接收方的属性值交集中元素对应的元组,实现数据连接。
本发明相比现有技术,具有以下优点:
针对PaaS平台中两个租户通过平台提供者共享私有数据库外连接的问题,提出一种私有数据库加密数据外连接共享方法。在两个租户和平台提供者都不完全可信的条件下,可以实现租户间公平获得隐私数据的外连接,本方法具有可控的安全性,计算代价和通信代价较小。
附图说明
图1是根据本发明实施例的云平台数据管理的方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种云平台数据管理的方法。图1是根据本发明实施例的云平台数据管理的方法流程图。
首先,两个租户通过PaaS平台提供者利用可交换加密函数交换共有属性的全集,实现属性值交集的共享;
其次,平台提供者用该属性值生成的密钥加密对应元组其他属性值后向双方租户分发;
然后,租户利用交集生成的密钥解密,得到对方与交集对应的元组密文;
最终,通过组合自己和对方属性值交集中元素对应的元组,实现外连接共享。
以下实施例具体说明实施例的云平台数据管理的方法。如图1所示,实施本发明的具体步骤如下:
步骤1共享请求方租户R密钥为eR、e′R,共享接收方租户S密钥为eS、e′S。在eR、eS作用下,R、S用可交换加密函数fe加密隐私数据,逻辑存储于隐私数据库DR、DS的表TR、TS中。设TR、TS共有属性A,记为TR.A、TS.A。共享请求方租户(R)希望与共享接收方租户(S)共享TR、TS在A上的外连接,R向S发起通过平台提供者(P)访问YS的请求,同时授予S通过P访问YR的授权。
其中,TR、TS的一个元组为bR、bS,全集为BR、BS;TR.A、TS.A的明文值分别为vR、vS,全集为VR、VS;vR、vS的加密值为yR、yS,加密值全集为 R、S向平台提供者P安全地分发e′R、e′S。
步骤2共享接收方S收到来自共享请求方R的请求,如果S接受该请求,则授予R访问YS的权限。
步骤3R、S分别向平台提供者P出示S、R的授权证书,请求获得YS、YR。
步骤4P验证R、S授权后,将YS、YR分别分发至R和S。
步骤5对yR∈YR,共享接收方S计算feS(yR)、fe’S(feS(yR)),得到3元组:
将wR的全集WR发送给共享请求方R。
步骤6对yS∈YS,共享请求方R计算得到3元组:
将wS的全集WS发送给共享接收方S。
步骤7对yS∈YS,平台提供者P用e’S生成作为加密的密钥;生成2元组 向R发送w’S全集W’S。
对于yR∈YR,平台提供者P生成 向S发送w’R全集W’R。
步骤8在R收到WR和W’S后,首先,R用eR解密wR∈WR,得 其次,在W’S和W″R中,如果2元组w’S第1分量和3元组w″R第2分量相等,则w″R的第1分量v属于VR∩VS;再次,用与v对应3元组w″R的第3分量作为密钥,解密对应2元组w’S的第2分量,得到bS其他属性的密文然后,通过v检索TR得到bR的ext(v)R;最后,将 发给S。
其中,ext(v)R、ext(v)S为bR、bS的属性明文。Vext是除属性A外元组其他属性值的全集;Cext是Vext加密值全集,Dext是Cext上的概率分布。
步骤9共享接收方S接收到WS和W’R后,执行类似步骤8的操作,首先,S用eS解密wS∈WS,得
其次,在W’R和W″S中,如果2元组w’R第1分量和3元组w″S第2分量相等,则w″S的第1分量v属于VS∩VR;
再次,用与v对应3元组w″S的第3分量作为密钥,解密对应2元组w’R的第2分量,得到bR其他属性的密文
然后,通过v检索TS得到bS的ext(v)R;
将 发给R。
步骤10R、S两方分别利用US、UR中验证US、UR的完整性,通过v检索TR、TS,得bR、bS的ext(v)R、ext(v)S,将ext(v)R、ext(v)S组合,得到外连接R∞S={(v,ext(v)R,ext(v)S)|v∈VR∩VS,bR.A=v∧bS.A=v}。
为了证明上述共享过程的安全性,设模拟R的攻击者攻击协议。令VS={V1,…,Vt,Vt+1,…,Vm},VR={Vt+1,…,Vm,Vm+1,…Vn},t=|VS∩VR|,m=|VS|和n=|VS∪VR|,则攻击者拥有VR、VS∩VR、|VS|、eR、e′R、W={〈V,ext(V)R,ext(V)S〉|V∈VR∩VS},希望获得VS-VR和{ext(V)S|VVS-VR,V∈VS}。模拟攻击过程如下。
(1)在协议步骤5中,攻击者生成n个yi∈RDomF(i=1,…,n)模拟feS(yR),n个zi∈RDomF(i=1,…,n)模拟fe′S(yR),用eR、e′R生成3元组〈feR(Vi),feR(yi),fe′R(feR(zi))〉(i=1,…,n)。
(2)在协议步骤7中,模拟攻击过程如下:首先,对于{Vi|Vi∈VR∩VS,t+1≤i≤m},利用ζi=K(zi,ext(Vi)R)(t+1≤i≤m)得2元组〈yi,ζi〉(t+1≤i≤m);其次,产生t对〈yi,ζi〉(i=1,…,t),其中,ζi是Cext在Dext上的分布,yi、ζi是各自域上的随机值。
令xi=feR(Vi)。R、S的隐私数据以密文托管于P,P无法解密,仅获得|VS|、|VR|。R、S和P彼此间都有安全的信道,隐私数据在传输中安全。知D′1和D′2分布是不可区分的,则真实数据和模拟数据是不可区分的。所以本发明达到的最终结果实现了最少必要信息共享,即R只获得|VS|、VS∩VR和{ext(v)S|v∈VS∩VR},S只获得|VR|、VS∩VR和{ext(v)R|v∈VS∩VR},P仅获得|VR|、|VS|,双方无其他信息泄露。
综上所述,本发明提出了一种私有数据库加密数据外连接共享方法。在两个租户和平台提供者都不完全可信的条件下,可以实现租户间公平获得隐私数据的外连接,本方法具有可控的安全性,计算代价和通信代价较小。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。